プログラミングを学ぶと、自分が実装したい作業を思いどおりに作ることができます。
しかし、実際にプログラミングを学ぶ方法は数え上げれば切りがありませんが、プログラミングを学びたいと思っても、『何を』『どのようにして』知識習得すれば良いかわからない!という方も多いのではないでしょうか。

そこで今回は、プログラミングをこれから学びたいという初心者の方に必見の、プログラミングをゼロから学ぶための方法をお教えします。

自分のパソコンスキルのレベルやスケジュールによって、何から始めればいいのかは変わってきますので、これからプログラミングを学びたい方はぜひ参考にしてみてください。

プログラミングを学ぶ一連の手順

programming.jpeg

プログラミングを学ぶというと、「プログラミング言語の構文(書き方・文法)を覚える」と考える人が多いです。確かに、構文を覚えることは勉強の重要な要素の一つですが、プログラミングを学ぶ時には構文の暗記を超えてやるべきことがいくつもあります。

プログラミングとは、突き詰めて考えると日曜大工に似ています。何を何のために作りたいか考え、自ら設計し、作り、自分で使ったり多くの人に使ってもらうのが、日曜大工のすべての工程です。同じように、プログラミングでは設計や制作に重点を置きがちですが、そもそも何のためにプログラミングを学ぶのかを考えるところから、プログラミングの勉強はスタートします。

それでは、プログラミングはどういった手順で学んでいけばいいのでしょうか。

1. プログラミングを学ぶ目的を明確にする

プログラミングを学び始める前に考えるべきことは、『プログラミングを通して何を作りたいのか』『何を目的にプログラミングを学ぶのか』を明確にすることが大切になります。その理由としては、制作目的によって学ぶべきプログラミング言語は変わってくるからです。

2. これから学ぶプログラミング言語を決める

先ほど述べたように、プログラミング言語は自分の制作目的に応じて作成することが大切です。どのプログラミング言語を選ぶかによって、今後のエンジニア人生が変わるとも言われているほど、最初に学ぶ言語は重要です。

iPhoneやAndroidなどのスマホ向けネイティブアプリを作りたいのか、Webアプリケーションを作りたいのか、ゲームを作るのか、サービスを作るのか、目的によって、学ぶべき言語は変わってきます。また、難易度や性質によっても勉強の取り組みやすさが変わってくるので、慎重に選ぶようにしましょう。

3. コードを書いてみる

これからプログラミングを学ぶための様々な方法をご紹介していきますが、多くの場合はサンプルコードをもとにコードを書いていく(コーディングする)ことになります。

サンプルコードは、プログラミングを学ぶのに最適な教材です。例えば、英語や中国語などの言語を勉強する場合に、文法だけを学ぶよりも、ダイアログと呼ばれる会話形式で学ぶことを加えたほうが、実際にその文法がどのように使われているかを理解しやすくなります。プログラミングも同じで、サンプルコードがあれば、構文だけでなく、その使い方や考え方を学ぶことができます。

この時に注意したいのが、ただサンプルコードを書き写すだけにならないようにすることです。そのまま書き写すだけでは、自分の血肉とはなりません。そのコードを書くことでどう動くのか、なぜそのようにコードを書くのかを理解しながら書くことで、自分の再現したいものをプログラミングできる応用力が身に付きます。

4. フィードバックをもらう

この工程は軽視されがちですが、フォードバックをもらうことは非常に重要です。アルゴリズムや構文に間違いがなければプログラムは作動しますが、効率よく、無駄なく、クリーンにコードを書けるようになったほうが、誰が見てもわかるようにコードの可読性が上がるだけではなく、実際にかかるプログラミングの作業時間も短縮できます。

それでは実際に、プログラミングを学ぶ方法を具体的に見ていきましょう。

様々な学習方法 -書籍で学ぶ-

ほとんどの書店では「プログラミング本」コーナーが設置されていますが、プログラミング関連の書籍はたくさん発刊されています。

<特徴>
・ 自分のレベルや目的に応じた本を選ぶことができる
・ 持ち運びに便利なので勉強しやすい
・ 索引が付いている場合が多く、辞書代わりにもなる
・ 強制力に乏しく、継続には意思の力が必要
・ 年月が経過すると情報が古くなる

学ぶべきプログラミング言語が決まっている場合は、基本的なことを解説している入門書から読み始めるのがいいでしょう。しかし、プログラミングの考え方自体を学びたい場合には、次の書籍がオススメです。

1. プログラミング入門講座 ―― 基本と思考法と重要事項がきちんと学べる授業

book1.jpg
プログラミング入門講座 ―― 基本と思考法と重要事項がきちんと学べる授業

プログラミングに興味はあるけれど、そもそもの「学び方」が分からないノンプログラマーにオススメの一冊です。
プログラミングの手順がイラストで紹介されており、初心者でも分かりやすく学ぶことができます。また、こちらの書籍でも初心者におすすめの学習サービスなども紹介されています。

2. ちゃんと使える力を身につける Webとプログラミングのきほんのきほん

book2.jpg
ちゃんと使える力を身につける Webとプログラミングのきほんのきほん

Webとプログラミングの両方の概念や仕組を学ぶことで、最終的にはWebプログラミングのことがすっきり理解できる内容になっています。この本では例としてPHPとJavaScriptが取り上げられていますが、サーバーサイド・クライアントサイドの違いをはじめとして、根幹の仕組を理解しておくことで、新しい言語を学ぶ際にも短期間で身に着けられるような考え方も学ぶことができます。

3. プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則

book3.jpg
プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則

脱初心者を目指したい、初中級レベルの方にオススメなのがこちらの本です。どうすればもっといいコードが書けるようになるのかのヒントや、もっとこうすればいいのにというトピックが網羅されています。実際に「3年目までの」プログラミング経験者に向けて書かれていますが、経験の浅い深いに関係なく読む価値があるでしょう。

様々な学習方法 -ゲームやアプリで学ぶ-

本を読んでもいまいちイメージが湧かない方は、実際に手を動かしてゲームやアプリで学んでみるのはいかがでしょうか。

<特徴>
・隙間時間で気軽にプログラミング学習ができる
・ゲームをクリアする要素(ゲーミフィケーション)によって継続しやすい
・実際のプログラミングを学ぶわけではないので、最初に自分でプログラミングする際には戸惑うことも

それでは実際に、プログラミングが楽しく学べるゲームやアプリをピックアップしてご紹介していきます。

4. Flappy Code

flappy.jpg
Flappy Code

「Flappy Bird」というゲームに似た、プログラミングを学べるサービスです。NPO団体のCode.orgが開発・配布しています。ブロックを組み合わせてプログラミングする形式になっており、プログラミングの概念を完全に理解していなくても大丈夫です。作ったゲームはシェアすることもできます。

5. Swift Playgrounds

playground.png
Swift Playgrounds

Swift Playgroundsは、iPad用のプログラミング学習のためのアプリです。Appleが用意しているいくつかのサンプルコードのほか、独自で教材を開発することもできます。

様々な学習方法 -オンライン学習サイトで学ぶ-

インターネットでの動画の閲覧が一般的になるにつれ、動画を使ってプログラミングを学ぶことができるサイトも増えてきました。

<特徴>
・開発言語や目的別に動画形式で学ぶことができる
・比較的短い時間でトピックを学べるので、隙間時間でも気軽に学べる
・会員登録すると、進捗状況が一目でわかる

オンライン学習サイトは非常にたくさんあります。サービスによって開発言語や対応状況などの強みが変わってきますが、初心者にオススメのオンライン学習サイトは次の3つです。

6. ドットインストール

dotinstall.jpg
ドットインストール

ドットインストールは、全ての動画が3分で完結する、非常に細かくステップごとに学べるのが特徴です。有料会員限定のコンテンツもありますが、有名な言語の入門講座は会員登録なしで無料で学ぶこともできます。2016年11月現在、4,000本を超えたカリキュラム動画が視聴可能です。

7. Progra!

progra.jpg
Progra!

Progra!は、「最も簡単なプログラミング学習サイト」をうたっているオンライン学習サービスです。PHP、Ruby、Python、VBAの4言語に対応しています。
簡単な穴埋めをするだけでプログラミング学習ができます。

8. Udemy

udemy.jpg
[Udemy](https://www.udemy.com/jp/

Udemyはアメリカ発のオンライン教育プラットフォームです。Udemyでは誰でも先生になって自分の講座をインターネット上に公開することができ、講座の販売金額の30%をUdemyに支払うというビジネスモデルになっています。日本語にも対応しており、Excel講座やYouTube講座など、他のサービスにはないユニークな学習トピックが公開されているのも魅力の一つです。

様々な学習方法 -ブログやまとめサイトで学ぶ-

プログラミングに関する情報ブログでは、プログラミングの最新情報を発信しています。比較的最近登場してきた言語に関しては、その言語の使い方や特徴などをまとめた記事が書かれることもあります。

<特徴>
・最新情報やコラムを読むことができる
・オススメサイトや学習サイトのリソースが充実している

9. Code部

codebu.jpg
Code部

Code部はオンラインプログラミングスクールのCodeCampが運営する、プログラミング初心者を応援するメディアです。有名ITベンチャー企業へのインタビューや、オススメ本の紹介など、毎日チェックしておきたいサイトです。

10. ferret

ferret.png
ferret

この記事が書かれているメディアferretでは、Webマーケティングに関する最新情報をお届けしています。注目の学習サービスのまとめ記事なども配信しているので、ぜひ毎日チェックしてみてください。

11. POSTD

postd.jpg
(POSTD)[http://postd.cc]

POSTDは、リクルートが運営する、プログラミングするエンジニアに向けたトレンドメディアです。アルゴリズム・機械学習・ゲーム開発など、中〜上級者向けの情報が中心ですが、ある程度勉強が進んできた時に知っておきたいメディアの一つです。

12. Webクリエイターボックス

webcreatorbox.jpg
Webクリエイターボックス

Webクリエイターボックスは、世界的に活躍するWebクリエイターのManaさんが発信するWebクリエイターのための情報ブログです。JavaScriptCSS、WordPressのテクニックなどはもちろん、Web界隈の最新情報も発信されています。

様々な学習方法 -Q&Aサイト・情報サイトで学ぶ-

プログラミングを学んでいる間に、疑問が浮かぶことがあるかもしれません。そうした疑問を解決する一番の方法は、「すでに知っている人に聞くこと」です。プログラミングに関するQ&Aサービスや情報サイトは、そうした疑問を簡単に解決することができるでしょう。

<特徴>
・Q&Aサービスでは自分の分からないところを部分的に質問することができる
・情報サイトでは細かい検索機能によってリファレンスとして活用できる

13. Qiita

qiita.jpg
Qiita

Qiitaは、プログラミングに関する知識を記録・共有するための技術情報共有サービスです。記事に付けられたタグや、投稿ユーザー、ストック数、投稿日時の指定など、強力な検索機能で記事を探すことができます。「この言語のそこについて知りたい!」という時に、役に立つでしょう。

14. stack overflow

stackoverflow.jpg
stack overflow

stack overflowは、プログラマーとプログラミングに熱心の人向けのQ&Aサイトです。1つの疑問に対して1トピックのスレッドが立つので、あなたが遭遇した実際の問題にどのように対処したか、具体的に何をしているのか、何が上手くいかないのかを投稿すると、他のユーザーからその問題を解決するための回答が投稿されます。回答率も公表されており、おおむね80%をキープできているようです。

様々な学習方法 -スクールで学ぶ-

自分のペースで学習しながら、その場で質問もできるのが、実際に先生に学ぶスクール形式のサービスです。時間や場所に縛られず、オンラインで学ぶ方法もあれば、対面で直接教わりたい人向けに校舎に足を運ぶ方法もあります。

<特徴>
・自分のペースで学習でき、進捗も管理してくれる
・その場で質問ができ、レスポンスのタイムラグも短い
・自分の強みや弱点をその場で教えてもらえる。
・無料体験授業を用意しているスクールもある
・基本的に入会金や受講費用が必要

15. CodeCamp

codecamp.png
CodeCamp

CodeCampは、ビデオ通信を利用した、現役プログラマーによるオンラインプログラミングレッスンサービスです。満足度は91%。レッスンは毎朝7時〜深夜23時40分まで開講しており、忙しい社会人でも確実にプログラミングを習得することができます。プログラミングだけでなく、PhotoshopやIllustratorなどのデザインも学ぶことができます。

16. インターネットアカデミー

internetacademy.jpg
インターネットアカデミー

インターネットアカデミーは、Web業界に特化したスクールです。スクールは渋谷と新宿の2校にあり、集団のライブ授業のほか、マンツーマン授業やオンライン授業もあります。日本初のW3Cメンバー認定校です。

17. TechAcademy

techacademy.jpg
TechAcademy

TechAcademyは、全額返金保証のある、パーソナルメンターがつくオンラインスクールです。従来の通学形式ではなく、「ブートキャンプ」という短期集中の連続コースを1回ずつ購入して学習する形を取っています。

18. G's Academy Tokyo

gsacademy.jpg
G's Academy Tokyo

G's Academyは、デジタルハリウッドが立ち上げた、「オリジナルのWebサービスやアプリ開発」にフォーカスを当てた、ギークのための学校です。もちろんギークといっても、初心者から学習することができます。最大の強みはデジタルハリウッドのネットワークを活用しているとことで、卒業後の「就職」はもちろん「独立」までもサポート。提携のシードアクセラレーターが独立をバックアップします。対面とオンラインの両方で学ぶことができます。

様々な学習方法 -勉強会やイベントで学ぶ-

これまでの学習で基礎的な基盤が身についたら、勉強会やイベントに足を運んでみるのもいいでしょう。IT勉強会では、様々なレベルのプログラミング学習者が集まり、情報交換や学習支援を行っています。また、プログラミングの世界も移り変わりが激しく、こうした勉強会やイベントに参加することで、業界の最新情報を手にいれることもできます。

<特徴>
・ 様々なレベルの学習者が集まる
・ 講師 / 生徒の垣根を超えて学び合う空間がある
・ 業界の最新情報を入手することができる
・ 地域によって開催頻度が異なる

19. ATND

atnd.jpg
ATND

ATND(アテンド)はリクルートが運営するイベントの告知・運営管理サービスです。ほとんどの勉強会やイベントはITや技術に関するもので、開発言語や興味関心によって様々なイベントが募集されています。

20. connpass

connpass.jpg
connpass

connpass(コンパス)はBePROUDが運営するIT勉強会支援プラットフォームです。大規模なものから小規模のものまであり、読書会や女性中心、初心者の会など、様々な目的の勉強会が開催されています。

21. dots.

dots.jpg
dots.

dots.(ドッツ)では勉強会や講演会、交流会やセミナーなどの様々なイベントを公開しています。他の複数のイベントプラットフォームから情報を集約し、カレンダーで検索することができて便利です。登録している会員であれば、渋谷のコワーキングスペース「dots.」を利用することができます。

まとめ

初めてプログラミングをする際には、まず何をしたらいいかわからない人もいるでしょう。そこで今回は、プログラミングを学ぶ時の方法論について、具体的なリソースも含めてご紹介しました。

それぞれの方法は、レベルや目的によって一長一短あるでしょう。大切なことは、自分のレベルや目的、そして自分の性格を知り、実際に行動してみることです。独学では歯が立ちそうにない人は、ぜひ実際に通って先生から直接学ぶほうがよいかもしれませんね。

一方、ある程度プログラミングを学んで自分で作りたいプログラムを作ることができるようになったら、本や教材を作ったり、セミナーや勉強会を開いたりするのも面白いかもしれません。ぜひ自分にあった学習法を見つけてみてください。