>>No1エンジニア養成プログラム テックキャンプ
「プログラミングを勉強してみたい」と考えていませんか?
近年は未経験からでもプログラミングを始められるサービスや環境が整っています。ですが、具体的に何から始めればいいのか、どんなサービスを利用すればいいかは分かりにくいと感じている方もいらっしゃるでしょう。
そこでこの記事では、初心者が悩みがちなプログラミング学習の準備について解説します。
スムーズに学習が開始できるよう、本記事の内容をお役立てください。
この記事の目次

プログラミングを始める前に
プログラミングを始める前に以下の2点を考えておく必要があります。
この記事もオススメ

プログラミングを身につける目的を明らかにする
プログラミングを学ぶ際、一番大切なのはプログラミングで何を作りたいのかを考えることです。
言い換えると「なぜプログラミングを学ぶのか」という目的を明確にするということ。
- プログラミングでWebサービスを作って運用する
- プログラミングを学んでエンジニアとして転職する
これらもプログラミングを身につける目的となります。目的はできるだけ具体的に設定することをおすすめします。
なぜなら、具体的な目的を設定できると必要な学習内容も導き出しやすいからです。
「プログラミング学習」と一言で表しても、何を達成したいかによって学ぶべき内容は変わります。
「iOSアプリを作りたいならSwift」「AI(人工知能)の開発をしたいならPython」など、それぞれ目的によって適している言語や技術が異なります。
自分はなぜプログラミングを学ぶのか曖昧なまま独学を始めると、壁にぶつかった時に「なんで勉強しているんだっけ?」と迷ってしまい、挫折しやすくなるのです。
まずはあなたがなぜプログラミングを身につけたいのか、目的を考えてみましょう。


プログラミングは目標を達成する手段。「プログラミングの習得」自体を目的にするのも明確とは言えません。
学習するプログラミング言語を選ぶ
次に学習する言語を決めます。作りたいものに必要な言語を選ぶと良いでしょう。
例
・iOSアプリ→Swift
・Androidアプリ→Java、Kotlin
・Webサービス→Ruby、PHP、Python
・IoT→Python
・ブラウザゲーム→JavaScript
将来的にプログラミングを仕事にしたいのであれば、言語によって求人数や平均年収が変わることも理解しておいてください。どの言語を学ぶか決める基準となるしょう。
プログラミング言語によって学びやすさも違いがあります。Ruby、PHP、Pythonなどスクリプト言語と呼ばれるプログラミング言語は、比較的初心者が学びやすいと言われています。
この記事もオススメ



書籍や学習サービスを活用して学習する
準備ができたら実際に学習を始めてみましょう。近年は初心者向けの書籍や、学習サービスが増えており、誰でも簡単にプログラミングを学べるようになっています。
教材は何でも構いません。あなたが学びやすいものを選んでください。
注意点としては、最初からレベルの高い教材に手をつけないことです。特に未経験者の場合、いきなりレベルの高いことをやろうとしてもうまくいかないケースがほとんど。


できないことばかりだと「自分には才能がない」と悲観的になってしまい、挫折の道をたどってしまいがちです。
早くプログラミングを身につけたい気持ちはわかりますが、独学で進めるならば取り組みやすい初心者向けの教材から初めるべきです。自分のレベルにあった教材を選びましょう。
この記事もオススメ



無料カウンセリング!本日も予約受付中
「プログラミングが難しくて挫折しそう」「効率的に学ぶ方法を知りたい」という方は、プログラミング学習の悩みを解決できる無料カウンセリングに参加してみませんか?満足度93%!※
プログラミングを知り尽くしたプロのカウンセラーが、中立な立場であなたの悩み解決をサポートします。
ブログ読者特典でAmazonギフト券3000円分もプレゼント中!無理な勧誘は一切行いませんので、お気軽にどうぞ。※2018年10月24日〜11月16日(N=106)

プログラミングに必要なもの
「プログラミングを始める際に何が必要なの?」と悩んでいる方に向けて、最低限必要なものを紹介します。
パソコン
まずはパソコンが必要です。普段使っているパソコンでも問題ありませんし、プログラミング用に新たに購入するという手もあります。
個人でプログラミングを学ぶ上で、特に性能にこだわる必要はありません。ですが、ゲーム開発など、マシンの性能によって処理が難しくなる場合があるので、高性能のパソコンを購入した方が良いでしょう。
デスクトップ型かノート型かで迷う場合、ノート型の方が学習をする上では軍配が上がります。
ノートパソコンであれば、どこでも場所を問わずに学習ができますし、もしプログラミングスクールに通ったり、勉強会に参加したりする場合はノートパソコンでないと持ち運べません。
OSに関しては、基本的に基本的にWindows・Macのどちらでも問題はありません。ただプログラミングを学習する上では、Macの方がおすすめではあります。
以下の記事で詳細を解説しているので、迷っている方は参考にしてください。
この記事もオススメ



ネット環境
ネット環境が整っていることも、プログラミング学習の前提となります。
エラーやわからない部分があると検索して答えを探すことになりますし、プログラミング学習のWebサービスを活用することもあるでしょう。
クラウドのテキストエディタを使うことがあれば、常にインターネットに繋げる必要が出てきます。
できるだけ回線速度も高速である方が、ストレスフリーで学習できるでしょう。
テキストエディタ
次にプログラミングをする「開発環境」を整えます。具体的にはテキストエディタが必須となり、場合によってIDE(統合開発環境)も必要となります。
これにより効率よく学習を行うことができるのです。
整った開発環境で学習すれば、動作を随時確認しながら学習ができますし、エラーの該当箇所も見つけやすくなります。
テキストエディタは、簡単に言えばプログラムコードを記述するためのエディタです。メモ帳などデフォルトのエディタでもプログラムが書けないわけではありません。
ただし、プログラミングに特化したテキストエディタであれば、さまざまなメリットがあります。特に問題がなければ、以下3種類のうちどれかをダウンロードすることをお勧めします。
・Atom
・Sublime Text
・VSCode
この記事もオススメ



統合開発環境
IDEとは、「Integrated Development Environment」の頭文字をとったもので、プログラミングに用いられるテキストエディタやコンパイラ、デバッガなどのツールを統合したものを指します。
要するに、プログラムを書く・実行する・不具合の箇所を見つけるといったことが1つでできるソフトウェアです。
具体的には、Javaの開発元であるOracleが提供しているIDE「Net Beans」や、PHP、Ruby、Pythonなどをサポートする「Ecripse」、iOSアプリの開発に使われる「Xcode」などが挙げられます。

プログラミング初心者が学習するべきスキル・知識
プログラミングでは、さまざまなものづくりが実現できます。そしてその目指す目標・目的によって、学ぶべきことなども変わるのは冒頭で説明したと通りです。
この項ではWebアプリケーションを作る場合を例に、学習する必要があることについて解説します。
Linuxコマンド
Linuxコマンドを覚えることで、コンピューターを「コマンド」で動かすことができます。ターミナルやコマンドプロンプト画面で使用します。例えば、
cd desktop
と打ち込むとデスクトップ上にあるデータの操作ができるようになり、
rm A.rb
と打ち込むと「A.rb」という名称のファイルを削除することができるのです。
これにより、マウスカーソルなどを使わずに、パソコンを操作することができるようになります。プログラミングを学習する上で必ず出てくるものなので、基礎的な部分だけでも押さえておきましょう。
この記事もオススメ



データベース
データベースは、Webアプリケーションで使うさまざまな情報を格納するものです。データを保存したり、必要に応じて検索し取得することができます。
例えばアカウント登録の機能を実装する場合、ユーザー名や画像などを保存します。そしてユーザー画面を開くと、ユーザー名や画像を取得して画面表示させるのです。
またパスワードは開発者でも判別できないように、ハッシュと呼ばれる形に変換して格納します。
データベースはMySQLやPostgreSQLなどのデータベース言語を学ぶことで操作できるようになります。
バージョン管理
アプリケーション開発を行う際は、バージョン管理をできるようになると効率よく開発を進められます。
バージョン管理とは、プログラムコードの変更履歴を管理する技術です。具体的にはGitと呼ばれる技術を学ぶことで、バージョン管理を行うことができます。
例えば、開発を進めていくうちに、「数日前の状態に戻したい」となることがあります。その際にGitを使うと、特定の状態にコードを戻すことができるようになるのです。
また複数人で作業をする場合、お互いの作業が干渉し合わないようにするためにGitを活用することができます。
Webアプリケーションフレームワーク
出典元:Ruby on Rails
アプリケーションの構築に役立ちます。Webアプリケーションフレームワークとは端的にいうと、Webアプリケーションの開発を行う際の枠組みのこと。
汎用的な機能や、基本的な構造を提供します。一方、Webアプリケーションフレームワークを使用しないと、全ての処理や機能をイチから全て記述して実装しなければならなくなります。
プログラミング言語によって使用できるWebアプリケーションフレームワークは異なります。
代表的なものは以下の通りです。
・Ruby:Ruby on Rails
・PHP:Laravel、cakePHP
・Python:Flask、Django
Webアプリケーションフレームワークではどの機能をどういう風に組み合わせればいいのかがあらかじめ準備されているので、その枠組みに沿って開発することで効率的にアプリケーションを作り上げることができます。
サーバー
プログラミング言語だけでなく、サーバーについての知識も必要です。
Webアプリケーションの開発は、手元のパソコン内にローカルサーバーを立ち上げて行いますが、それだけでは自分以外の人が利用することができません。
これを誰でもアクセスできるようにするために、プログラムをサーバー上にアップする必要があります。
Webアプリケーションをアップすることができるサーバーはさまざまですが、初心者であればAWSやHerokuなどのサービスが使いやすいでしょう。
プログラミング学習の効率化に必須の環境・習慣
プログラミング学習を効率化させるために必要なものを紹介します。
疑問を解決できる環境
疑問を解決できる環境があるかないかでは、学習スピードが大きく変わってきます。具体的にはメンターやプログラミングスクールなどです。
もちろん、プログラミングを学ぶ際に「自分でGoogle検索などを使って調べる」というのも重要です。エンジニアとして仕事をするのであれば不可欠と言えるでしょう。
ですが、完全に初心者のうちは、「どうやって調べていいのかすらわからない」という状況になりがち。「調べ方がわからない」あるいは「何がわからないのかすらわからない」という状況です。
エラー解決一つとっても、基礎をしっかり理解できない初心者の段階で自力で解決するというのはかなりハードルが高いです。
もちろん一つひとつ自力で解決していくこともできるかもしれませんが、かなり時間と労力がかかります。その過程で挫折してしまう人もいるでしょう。
それよりもプログラミングができる人に質問した方がはるかに効率的ですし、理解できるまで説明してもらえます。
一人で頭を抱えずに済む環境を用意した方が、スムーズに学習できると言えるでしょう。
個人メンター
個人でメンター(講師)をつけるという方法です。知人や友人でプログラミングができる人がいれば質問するのも良いですし、スキルシェアのサービスなどを使ってメンターを頼むというのも良いでしょう。
プログラミングスクール
全くプログラミングをしたことがない人であれば、プログラミングスクールに通うことをお勧めします。
プログラミングスクールでは、初心者でも分かりやすいテキストを使いながら学習できますし、その途中で分からないことがあった時にはメンターに質問することができます。
気軽に質問し放題の環境というのは、なかなか作れるものではありません。プログラミングスクールは効率的に無駄なく学習できる環境であると言えるでしょう。
アウトプットの習慣
プログラミングの学習でもっとも大切なのが、アウトプットです。実際に手を動かしながら学んでいくことで、知識の定着につながります。
プログラミングの文法や知識は、書籍やテキストを読むだけでは身につきません。いざコードを書こうとした時に全然書けないという状況になりがちです。
また学習した文法も「どういった場面でどのように使えるのか」が分からないと、実際にアウトプットできません。
自分で能動的にコードを書いていくことで、学んでいる内容の深い部分まで理解できるようになります。おすすめは「サービスをひとつ作りながら学ぶこと」です。
オリジナルサービスの構想がある場合は、目標が明確なのでモチベーションを高く保ちながら学べます。
そうでない場合でも、既存のサービス(例えばSNSなど)を自分の手でイチから作ってみることで、「この文法はこう使うのか」と、理解を深めることができるでしょう。
さいごに
プログラミングに必要なものを解説しました。プログラミングを誰でも学べる環境は整っています。
学習サービスやスクールなどを活用し、実際に自分のパソコンでコードを書いてみましょう。手を動かして書くことこそが、プログラミング学習の第一歩です。