エンジニアの市場価値が高まったり、IoTやDX化のような言葉が流行ったりしてプログラミングに関心を持つ人も多いでしょう。
しかし、プログラミングの勉強は何から始めればよいのか、どの言語が良いのか、どの教材を使えば良いのか悩まれていませんか?
この記事を読むことで、次のことが理解できるようになります。
- プログラミングとは?
- プログラミングを勉強する流れとは?
- おすすめの教材
- プログラミング学習で挫折しないためには?
本記事は、超基本的な「プログラミングとは?」という内容から入ります。
基礎的なプログラミングについて理解がある方は、「初心者が陥るプログラミング学習における間違い」から読み進めてみてください。
最後まで読んでいただければ、
「プログラミングの勉強法は受験とはやり方が違うのか!」
「プログラミングは暗記ではなく実技なんだな!」
と、一般的な勉強とプログラミングの勉強の違いについて腑に落ちると思います。
本記事は、Web系開発会社であり、プログラミングスクールRUNTEQを運営する株式会社スタートアップテクノロジーが監修しています。
プログラミングとは?
プログラミングとは、コンピュータに対してコンピュータでもわかる言葉で指示書を書くことです。
コンピュータは、書かれたコードに従って動きます。
コンピュータは、人間が理解できる言葉で書かれた指示書を見ても理解できません。
だから、コンピュータでも理解できる言葉で書く必要があります。
それを「プログラム」と呼び、プログラムを書くことを「プログラミング」と呼びます。
パソコンやスマホからアクセスするWebページに始まり、銀行や証券会社のシステム、シミュレーションなど、エンジニアが様々な場面に適したプログラムを書き、コンピュータに働かせています。
プログラミングを勉強するメリット
プログラミングを勉強するメリットは3つあります。
- 圧倒的に市場価値が高い
- 物事を論理的に考えることができる
- 問題解決能力が身につく
これらの3つです。
1つずつ深掘りしていきます。
圧倒的に市場価値が高い
プログラミングができる人は圧倒的に市場価値が高いです。
IoTやDX化のような言葉を聞いたことがあると思います。
現代社会はあらゆる家電がインターネットとつながったり、ビジネスをデジタル化する方向で進んだりしています。
社会の急激なデジタル化にともなって、エンジニアの需要が圧倒的に高くなっているものの、実はまだまだ供給が足りていません。
様々な業界で大きな需要があります。
つまり、プログラミングができるエンジニアは、今後仕事に困ることはないでしょう。
物事を論理的に考えることができる
プログラミングを勉強することで、物事を論理的に考えられるようになります。
プログラミングはコンピュータに指示をする言語です。
指示した通りにコンピュータは動きます。
逆にコンピュータは指示通りにしか動きません。
なので、論理的に正しいコードを書かないとエラーを出してしまいます。
人間に指示する場合は、非言語で伝わる部分があります。
もしあなたの指示で論理的に足りない部分があっても、相手は自分の判断で補って行動してくれるでしょう。
しかし機械は、人間のように自己判断で補ってはくれません。
そのため、機械に理解してもらうコードを正しく書いていく中で、自然と論理的思考が身に付きます。
問題解決能力が身に付く
プログラミングで機能を実装していく中で、問題解決能力が身につきます。
プログラミングをしていると、うまく実装できないことはよくあります。
そのときに「どこまでがうまくいっているのか?」「どこまでがうまくいっていないのか?」など問題を切り分ける必要があります。
プログラミングを勉強していると日々エラーと格闘します。
また、検索して得た知識を組み合わせて機能を実装しなければならないこともあります。
このような経験から、プログラミングを勉強することで問題解決能力が高まっていきます。
初心者が陥る間違ったプログラミング勉強法
以下に、プログラミング初心者が陥りがちな誤った勉強法について列挙していきます。
基礎を完全に理解してから開発を始めようとする
プログラミングの勉強で一番成長するのは、自分で何かアプリを作ってみて、その時に頭を悩ませながら実装している時です。
プログラミングの文法を何度も覚えようと繰り返し勉強していても、いつまで経っても上達しません。
英語を英単語帳と英文法書だけで上達させるのは不可能で、実際に読み書きをすることが重要なのと同様に、プログラミングも文法があやふやな状態でもとりあえず作ってみることが重要です。
プログラミングの文法や概念は、触れているうちに腑に落ちていくものが多いです。
頑張って暗記しようとする
しかしプログラミングにおける勉強法は、覚えるというよりは体得することに近いです。
細かいことは覚えていないけど、その都度検索してコードを持ってきて実装する、というやり方でまったく問題ないのです。
実際に現役エンジニアが開発する時は、検索したり何かを調べたりといったことに多くの時間を費やしています。
下の動画が、エンジニアのイメージと実際の違いをうまく表しています。
エラーが出たら検索エンジンでエラー文を検索したりします。
また、自分で入力するとタイピングミスを引き起こしてしまうので、動画のようにコピー&ペーストでコードを写してくることも多いです。
現役エンジニアでも覚えていないことだらけですし、その都度調べています。
これから勉強を始めるという初心者の方も、細かい部分を詳細に記憶するのではなく、大きな流れを理解することをオススメします。
プログラミングの「覚えること、覚えないこと」に関しては「プログラミングの勉強に暗記は不要!最適な学習方法とは?」で詳しく解説しています。
ぜひこちらをご覧ください。
効率的なおすすめプログラミング勉強法の3ステップ
ここでは、初心者がどのようにプログラミングの勉強を進めていけばいいのかについて、具体的に解説していきます。
1.目的を決める
プログラミングを勉強するときは、まず学ぶ目的を決めましょう。
「プログラミング」と一口に言っても、さまざまな業界や言語があります。
目的に合わせてプログラミング言語を学んでいくのです。
多くの初心者は、なんとなくでプログラミングの学習を開始し、なんとなくで進めてしまいます。
これは、目的地を決めずに電車に乗るようなものです。
目的地を決めることで、学ぶ言語や、どれくらいの勉強時間が必要かがわかります。
- Web系エンジニアに転職したい
- 会社に依存しないスキルを身につけて転職したい
- アプリを開発してApple Storeで出品してみたい
- ホームページを作ってみたい
- 自分のブログのカスタマイズをしたい
例えばあなたの目的が、『Web系エンジニアに転職したい』というものだったとします。
すると、
- Web系エンジニアになるには『Web系スタートアップ企業』に就職するのが良さそう
- 就活に最低限必要な技術力は『自力で仕事ができるレベル』
- 転職するには、実力の証明として自分が開発したアプリが必要だ
などなど、やるべきことが決まっていきます。
何をどれくらい勉強するかを決めるためにも、まずは『目的』を決めることをオススメします。
エンジニア転職に必要なプログラミング知識を完全に網羅した記事を作成しています。エンジニア転職を目的にプログラミングの勉強を始める方は、こちらの記事をご覧ください。
2.写経をしながら基礎知識を身につける
プログラミングの基礎知識は、書籍やProgateのようなオンライン教材で身につけていきます。
プログラミングの基礎学習は書籍を読むだけではなく、実際に手を動かしながらコンピュータを動かしてみましょう。
基礎学習でお勧めの勉強法は「写経」です。
実際に書籍に書かれているコードを写して動くか確かめてみましょう。
と思われるかもしれません。
そういう場合は、参考書で書かれているコードに加えて、参考書を少し自分なりに変えて機能を実装してみてください。
例えばフォーム機能作成を勉強するときに、参考書には『名前』のみのコードが書かれているとします。
この時、参考書には書かれていないけど、『性別』のラジオボックスをつけてみるなどです。
この勉強法は、エンジニア出身の実業家のホリエモンも過去プログラミングを習得した方法です。
このようにまずは写し、理解を深めるために自分でオリジナルの機能を追加する勉強方法を試しましょう。
3.基礎学習で得た知識から実際にアプリを作ってみる
基礎学習が終わったら、その知識を使って自分のオリジナルアプリを開発してみましょう。
自分が欲しいな〜と思うようなアプリを実際に作ってみることです。
基礎学習の時点であやふやだった知識が、「なるほど、こうやって使うのか!」とスッキリ理解できるでしょう。
またオリジナルアプリは、エンジニア転職をするときに使う「ポートフォリオ」として役立ちます。
ポートフォリオとは、エンジニアやデザイナーが自分の仕事における技術を証明するための作品集のことです。
エンジニア転職の時に役立つポートフォリオの作り方は下の記事にまとめました。
どのようなポートフォリオが高評価されるのかをこちらの記事で確認してください。
アプリを作る時に、基礎学習で入れた知識をほとんど忘れていることに気づくでしょう。
この時、「基礎が疎かになっている!」と何度も基礎学習を繰り返す人がいますが、これは非常に非効率的です。
作りながら知識を補い、復習するイメージで学習していきましょう。
主な6つのプログラミング言語
ここまでプログラミングの勉強法について解説してきました。
次に、具体的にどのようなプログラミング言語があるのかをまとめてみました。
プログラミング言語は数百言語あります。
その中から主要なプログラミング言語を6つご紹介します。
HTML(Hyper Text Markup Language)
HTMLは、Webで使われるマークアップ言語(記号などで意味づけした文書を記述するための言語)です。
Webページの文章構造を記述するための言語で、厳密にはプログラミング言語ではありません。
Webページの「見出し」や「リンク」など文書構造を示したりして、文字だけの文書に見出しやタイトルやリンクのような意味づけをしていきます。
また、HTML自体はプログラミング言語ではないものの、JavaScript、Ruby、PHPなどと組み合わせて使用することは多くあります。
本ブログもHTML、CSS、JavaScript、PHPでできています。
CSS(Cascading Style Sheets)
CSSとは、Web上で使われるスタイルシート言語です。
スタイルシート言語とは、見た目を宣言したり、設定するための言語です。
HTMLの要素をどのように装飾し、表示するかを指示します。
HTMLの中で指定することもできますし、外部ファイルとして読み込ませることもできます。
今のWebページは装飾やデザインが当たり前です。
このデザイン部分や配色を実装するのがCSSです。
HTMLで書いた要素にデザインや装飾を加えていくのがCSSです。
記事内でも赤文字や蛍光マーカーで装飾している箇所があると思います。
これらはCSSにて文字を装飾しています。
JavaScript
JavaScriptは、Webページを動的に見せるためのプログラミング言語です。
JavaScriptが出てきた時は、当初Webブラウザに動的な変化を与える簡易な言語でしたが、Webアプリケーションとともにどんどん進化していきました。
特にページを遷移することなくリクエストを送りページに変化をつけるAjaxが流行り始めてから爆発的にJavaScriptの需要が増してきました。
Ajaxとは、Webページ全体をロードすることなく、Twitterの「いいね」ボタンのように部分的に表示を変化させることができる機能です。
今では非常に多くのWebサービスや、WebページにもJavaScriptが使われています。
Ruby
日本人のまつもとゆきひろさんが生み出したプログラミング言語です。
Web系のアプリ開発でよく使われます。
Web開発において非常に優れたフレームワークRuby on Railsによって少人数でサービスを立ち上げられるようになり、新しいサービスで勝負するスタートアップ企業で爆発的に使われるようになりました。
Railsでつくられたサービスとして「クックパッド」や「Hulu」などがあります。
日本人が作ったプログラミング言語で、日本人の中でRubyを使うエンジニアが多いので、日本語の教材が豊富で、日本人が勉強しやすい言語と言えます。
RubyとRuby on Railsの勉強法に関しては以下の記事で詳しく書きました。ぜひあわせてお読みください。
PHP(Personal Home Page Tools)
Webアプリ開発に特化したプログラミング言語です。
本サイトはワードプレスというブログシステムを使って構築しています。
ワードプレスサイトもPHPで作られたシステムです。
またPHPには、Laravelというフレームワークがあります。
Rubyの人気フレームワークのRuby on Railsと同様に、多くのWeb系企業で使われています。
PHPの勉強法に関しては以下の記事で解説しております。
ぜひ参考にしてみてください。
Java
Javaは、最も利用者が多いプログラミング言語です。
Javaはどんな環境でも使用することができ、Web開発からスマホアプリ、大規模システム、マイクロソフト(ゲーム)、Blueray Discなど様々な場面で使われる言語です。
Googleの開発言語としてもJavaは使われています。
名前が似ている言語でJavaScriptがありますが、JavaScriptとJavaは全く別の言語です。
Javaが非常に流行した時に、Javaの人気に便乗してJavaScriptと名前が付けられたと言われています。
Python
Pythonはオープンソースで、世界中で愛されるオブジェクト指向のスクリプト言語です。
単純な文法であるため、初めてプログラミングを勉強する人にもとっつきやすい言語と言えます。
さまざまな業界で使用されていて、特に最近では機械学習(AI)の分野で注目を浴び、最も人気のある言語の1つです。
Pythonの勉強法は以下の記事でまとめてみました。
ぜひこちらを参考にしてみてください。
初心者がプログラミング学習をする上でおすすめの教材
オンライン教材
progate
プロゲートは、主にWeb系言語を学べるオンライン教材です。
意外とハードルが高い環境構築(自分のパソコンでプログラミングができるようにツールを用いて環境を整えること)をせずに、ブラウザ上で学習を開始できます。
無料部分と有料部分がありますが、無料部分でも十分学習できます。
無料版 | 有料版 | |
料金 | 無料 | 月額980円 |
学べる言語 | 全て | 全て |
学べるコースの数 | 18 | 78 |
到達レベル | ゼロから始めるきっかけレベル | ゼロからプログラミングの基礎レベル |
ひとまず無料版のProgateで学習を開始してみてはいかがでしょうか?
ドットインストール
ドットインストールは、短い動画講義でできているオンライン教材です。
長い動画講義を聞いているとどんどん眠たくなりますが、ドットインストールは一本ごとに短いので、サクサク進められます。
おすすめ書籍
プログラミングの仕組み
プログラミングとは何か、アルゴリズムとは何か、など超基本的な内容が図解でわかりやすく解説されています。
また、プログラミング言語と一言で括っても様々な種類があります。言語ごとの特徴や機能なども詳しく図解で説明されています。
なんとなくプログラミングを勉強したいけど、そもそもプログラミングとは何かがわからない人はお勧めの書籍です。
Webの技術
最近はWeb系のプログラミング言語を扱えるエンジニアの需要が高まっています。
この背景からWeb系エンジニアを目指す人も多いでしょう。その場合、Webではどのような技術が使われているのかを理解しておくことは重要です。
Webの技術はスッキリイラストでまとめられていて、文量もそれほど多くはありません。またプログラミングを勉強しながら調べる辞書的な使い方もできます。
超勉強法
この本はプログラミングの本ではありません。勉強全般に使える本です。プログラミングの学習で重要な考え方や割り切り方が書かれています。
「基礎をやっていないから駄目だ」という罪悪感や、「基礎を完全にマスターしてから出ないと進んではならぬ」という固定観念は、捨てるほうが良い。
プログラミングの基礎的な文法は膨大ですし、基礎を完全に理解することは難しいです。
どうしてもわからなかったら、無理してその場でわからなくてもよくて、進めているといずれ腑に落ちる時がくるという内容が一貫して書かれています。
これくらい気楽に、「今は理解しなくて良い」と思って進めることが重要です。
プログラミング独学で挫折しないための4つの対策
プログラミングは参入する人が非常に多い一方で、挫折する人も非常に多いです。
そこで挫折を防ぎながら、初心者がプログラミング学習をやり切るための方法をご紹介します。
対策は以下の4つです。
- 1度で理解できないのは当たり前だと心得る
- 現役エンジニアに頼れる環境を整える
- 作りたいものを考える
- モチベーションが下がる前提で環境を整える
1.一度で理解できないのは当たり前だと心得る
プログラミングの勉強を進めていると、
こう考えてしまいがちです。
しかし、何事も最初からうまくできる人なんていません。
コードを書いたり、問題解決をしながらプログラミングに触れていくことで徐々にできるようになります。
慣れるまではなかなか思い通りに勉強が進まないし、思い通りに理解もできないし、うまく実装することも、エラー解決もなかなかできません。
でもみんなが通る道であり、他の人も同じ経験をしていることを理解しておきましょう。
2.現役エンジニアに頼れる環境を作る
プログラミングを仕事にできるレベルにまで引き上げようとすると、幾度となく壁があります。
- 環境構築につまずいて、いつまでもプログラミング学習を始められない
- エラーを解決できずになかなか先に進めることができない
- 転職用のオリジナルポートフォリオのアイディアが浮かばない
- ポートフォリオにどんな技術を使えばいいかがわからない
もちろん、自力で解決しようとすることは大事なことですが、1つのエラーを全く解決できずに1週間2週間と考え続けるのは流石に効率が悪いです。
初心者が、経験者に頼ることは全く悪いことではありません。
考え抜いたあとは、現役エンジニアに質問し解決できる環境を作っておきましょう。
3.作りたいものを考える
自分が作りたいもの、欲しいものを作っている方が勉強のモチベーションが上がります。
とはいえ、パッと「ああいうものを作ってみたい」とひらめく人は少数で、アイディアが思い浮かばない人の方が多いでしょう。
そんな時は、私たちRUNTEQの無料キャリア相談会にいらしてください。
『キャリア相談会』という名前ですが、キャリアだけでなく転職に必要なポートフォリオの相談にも乗っています。
このほか、
- 効率的な勉強法は?
- 転職活動の方法は?
- 本当に自分はエンジニア転職ができるのか?
のような悩みにもRUNTEQのキャリアアドバイザーがマンツーマンで対応させていただいております。
4.モチベーションが下がる前提で環境を整える(コミュニティに入る)
モチベーションは下がるもの、という前提で勉強を開始しましょう。
どんな人でも勉強を開始した当初の気持ちをずっと維持することは難しいです。
徐々に下がっていくのが普通です。
いつの間にか始めた時の気持ちを忘れて、プログラミング学習の優先順位が下がっていきます。
「途中でモチベーションは下がるものなのだ」という前提で、プログラミングの勉強を始めるべきです。
モチベーションが高い時に、現役エンジニアに質問できる環境や、エンジニアの横のつながりが作れるコミュニティに入り、途中でやめられないような環境を整備しておきましょう。
独学で学習することも非常に尊いことですが、それにこだわりすぎて最終目的を達成できないことの方がもったいないです。
独学という勉強法はあくまで手段であり、目的ではありません。
最終目的に効果的な手段を選ぶことをおすすめします。
まとめ
- プログラミングはコンピュータへの指示を書くこと
- 初心者がプログラミングを学ぶ際には細かいところまでは暗記しなくて良い
- 目的を持って勉強し、作りたいものを学ぶ
- 全て理解できなくても作りながら慣れてくる
- 参考書は写経しながら自分でオリジナルの機能もつけてみる
いかがだったでしょうか?
自分で作りたいと思ったものを実装することは楽しいです。
しかし最初は、勉強していても慣れないことばかりです。
向いてないのではないか、と辛くなってしまうことも多々あるでしょう。
ですが、みんな経験する道です。
また、プログラミングを勉強するにはプログラミングスクールに通うという選択肢もあります。
私たちが運営しているプログラミングスクールでは、Webエンジニアへの転職に特化してみっちり1000時間の学習を推奨しています。
ご自身の学習方法や言語の選択にご不安がある方は、ぜひともRUNTEQのプロのカウンセラーに学習相談してみてください!
みなさんがこれまでやってきた勉強法は、知識を仕入れて暗記するという方法がほとんどだったのではないでしょうか?
定期テストや資格試験は、暗記型の勉強の典型例ですよね。