知識

開発会社が監修!初心者がプログラミングの最も効率的な勉強法を徹底解説!

効率の良いプログラミング勉強法 (1)

エンジニアの市場価値が高まったり、IoTやDX化のような言葉が流行ったりしてプログラミングに関心を持つ人も多いでしょう。

しかし、プログラミングの勉強は何から始めればよいのか、どの言語が良いのか、どの教材を使えば良いのか悩まれていませんか?

この記事を読むことで、次のことが理解できるようになります。

  • プログラミングとは?
  • プログラミング学習の勉強の流れとは?
  • おすすめの教材
  • プログラミング学習で挫折しないためには?

本記事は、超基本的な「プログラミングとは?」という内容から入ります。基礎的なプログラミングについて理解がある方は、「初心者が陥るプログラミング学習における間違い」から読み進めてみてください。

最後まで読んでいただければ「プログラミングの勉強は受験勉強とはやり方が違うのか!」「プログラミングは暗記ではなく実技なんだな!」と一般的な勉強とプログラミングの勉強の違いが腑に落ちると思います。

プログラミングとは?

プログラミングとは、コンピュータに対してコンピュータでもわかる言葉で指示書を書くことです。コンピュータは書かれたコードにしたがって動きます。

コンピュータは人間が理解できる言葉で書かれた指示書を見ても理解できません。だからコンピュータでも理解できる言葉で書く必要があります。それを「プログラム」といい、プログラムを書くことを「プログラミング」と言います。

パソコンやスマホからアクセスするWebページに始まり、銀行や証券会社のシステム、シミュレーションなどさまざまな場面でプログラムが書かれコンピュータに働かせています。

プログラミングを勉強するメリット

プログラミングを勉強するメリットは3つあります。

  1. 圧倒的に市場価値が高い
  2. 物事を論理的に考えることができる
  3. 問題解決能力が身につく

これらの3つです。1つずつ深掘りしていきます。

圧倒的に市場価値が高い

プログラミングができる人は圧倒的に市場価値が高いです。

IoTやDX化のような言葉を聞いたことがあると思います。現代社会はあらゆる家電がインターネットとつながったり、ビジネスをデジタル化する方向で進んだりしています。

社会の急激なデジタル化にともなって、エンジニアの需要が圧倒的に高くなっているものの、実はまだまだ供給が足りていません。様々な業界で大きな需要があります。

つまり、プログラミングができるエンジニアは、今後仕事に困ることはないでしょう。

物事を論理的に考えることができる

プログラミングを勉強することで、物事を論理的に考えられるようになります。

プログラミングはコンピュータに指示をする言語です。指示した通りにコンピュータは動きます。

逆にコンピュータは指示通りにしか動きません。なので、論理的に正しいコードを書かないとエラーを出してしまいます。

人間に指示する場合は、非言語で伝わる部分があります。もしあなたの指示で論理的に足りない部分があっても、相手は自分の判断で補って行動してくれるでしょう。

機械は人間のように自己判断で補ってはくれません。そのため、機械に理解してもらうコードを書く中で論理的思考が身に付きます。

問題解決能力が身に付く

プログラミングで機能を実装していく中で、問題解決能力が身につきます。

プログラミングをしていると、うまく実装できないことはよくあります。そのときに「どこまでがうまくいっているのか?」「どこまでがうまくいっていないのか?」など問題を切り分ける必要があります。

プログラミングを勉強していると日々エラーと格闘します。また検索して得た知識を組み合わせて機能を実装しなければならないこともあります。

このような経験からプログラミングを学習することで問題解決能力が高まっていきます。

初心者が陥るプログラミング学習における間違い

基礎を完全に理解してから開発を始めようとする

プログラミング学習で一番成長するのは、自分で何かアプリを作ってみて、その時に頭を悩ませながら実装している時です。

プログラミングの文法を何度も覚えようと繰り返し勉強していても、いつまで経っても上達しません。

英語を英単語帳と英文法書だけで上達させるのは不可能で、実際に読み書きをすることが重要なのと同様に、プログラミングも文法があやふやな状態でもとりあえず作ってみることが重要です。

プログラミングの文法や概念は触れているうちに腑に落ちていくものが多いです。

頑張って暗記しようとする

みなさんがこれまでやってきた勉強は、知識を仕入れて暗記する方法がほとんどだったのではないでしょうか?定期テストや資格試験は暗記型の勉強の典型例ですよね。

しかし、プログラミングの学習は覚えるというよりは体得することに近いです。細かいことは覚えていないけど、その都度検索してコードを持ってきて実装することが多いです。

現役エンジニアが開発するとき、多くの時間を検索したり、調べることに時間を費やしています。下の動画が非常にエンジニアのイメージと実際の違いをうまく表しています。

エラーが出たら検索エンジンでエラー文を検索したりします。

また自分で入力するとタイピングミスを引き起こしてしまうので、動画のようにコピー&ペーストでコードを写してくることも多いです。

現役エンジニアでも覚えていないことだらけですし、その都度調べています。これから勉強を始める人も、細かい部分を詳細に記憶するのではなく大きな流れを理解することをオススメします。

効率の良いおすすめのプログラミング学習の3ステップ

1.目的を決める

プログラミングを学習するときは、勉強する目的をまず決めましょう。

「プログラミング」と一口に言っても、さまざまな業界や言語があります。目的に合わせてプログラミング言語を学んでいきます。

多くの初学者はなんとなくプログラミングの学習を開始してしまいます。これは目的地を決めずに電車に乗るようなものです。

目的地を決めることで、勉強する言語や、どれくらいの学習時間が必要かがわかります。

目的の例
  • Web系エンジニアに転職したい
  • 会社に依存しないスキルを身につけて転職したい
  • アプリを開発してApple Storeで出品してみたい
  • ホームページを作ってみたい
  • 自分のブログのカスタマイズをしたい

例えば、『Web系エンジニアに転職したい』をあなたが目的に設定したとします。

すると、

  • Web系エンジニアになるには『Web系スタートアップ企業』に就職するのが良さそう。
  • 就活には最低限必要な技術力は『自力で仕事ができるレベル』
  • 転職には実力の証明として、自分が開発したアプリが必要だ

などなどやるべきことが決まっていきます。

何をどれくらい勉強するかを決めるためにも、まずは『目的』を決めることをオススメします。

エンジニア転職に必要なプログラミング知識を完全に網羅した記事を作成しています。エンジニア転職を目的にプログラミングの学習を始める方は、こちらの記事をご覧ください。

開発会社が教える未経験からWeb系エンジニアへ転職をするためのロードマップ

2.写経をしながら基礎知識を身につける

プログラミングの基礎知識は、書籍やProgateのようなオンライン教材で身につけていきます。

プログラミングの基礎学習は書籍を読むだけではなく、実際に手を動かしながらコンピュータを動かしてみましょう。

基礎学習でお勧めの勉強法は「写経」です。実際に書籍に書かれているコードを写して動くか確かめてみましょう。

らんてくん
らんてくん
なんか写してるだけだとあまり理解できてない…ただの写す作業になりそうだな〜

と思われるかもしれません。そういう場合は、参考書で書かれているコードに加えて、参考書を少し自分なりに変えて機能を実装してみてください。

例えばフォーム機能作成を勉強するときに、参考書には『名前』のみのコードが書かれているとします。この時参考書には書かれていないけど、『性別』のラジオボックスをつけてみるなどです。

この勉強法はエンジニア出身の実業家のホリエモンも過去プログラミングを習得した方法です。

このようにまずは写し、理解を深めるために自分でオリジナルの機能を追加する勉強方法を試しましょう。

3.基礎学習で得た知識から実際にアプリを作ってみる

基礎学習が終わったら、その知識を使って自分のオリジナルアプリを開発してみましょう

自分が欲しいな〜と思うようなアプリを実際に作ってみることです。基礎学習の時点であやふやだった知識が「なるほど、こうやって使うのか!」とスッキリ理解できるでしょう。

またオリジナルアプリは、エンジニア転職をするときに使う「ポートフォリオ」として役立ちます。ポートフォリオとは、エンジニアやデザイナーが自分の仕事における技術を証明するための作品集のことです。

エンジニア転職の時に役立つポートフォリオの作り方は下の記事にまとめました。どのようなポートフォリオが高評価されるのかをこちらの記事で確認してください。

未経験Webエンジニア向けポートフォリオの作り方【転職で役立つ】未経験者からWebエンジニア転職を目指す方向けのポートフォリオの作り方を、実際のRUNTEQ受講生の例を交えてご紹介。ポートフォリオが転職活動に必要な理由・作成のメリット・デメリットなどの基礎的な知識から、READMEや画面遷移図などの具体的な開発の手順、就職活動で使える数字を意識した実績の作り方などの実践的な内容まで、プログラミングスクール運営で培ったノウハウをすべてお届けします。情報は随時更新中です。...

アプリを作る時に基礎学習で入れた知識をほとんど忘れていることに気づくでしょう。

この時、「基礎が疎かになっている!」と何度も基礎学習を繰り返す人がいます。これは非常に非効率的です。

作りながら知識を補い、復習するイメージで学習していきましょう。

主な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です。

CSSで装飾された文書

HTMLで書いた要素にデザインや装飾を加えていくのがCSSです。

記事内でも赤文字蛍光マーカーで装飾している箇所があると思います。これらはCSSにて文字を装飾しています。

JavaScript

JavaScriptはWebページを動的に見せるためのプログラミング言語です。

JavaScriptが出てきた時は、当初Webブラウザに動的な変化を与える簡易な言語でしたが、Webアプリケーションとともにどんどん進化していきました。

特にページを遷移することなくリクエストを送りページに変化をつけるAjaxが流行り始めてから爆発的にJavaScriptの需要が増してきました。

Ajaxとは、Webページ全体をロードすることなく、Twitterの「いいね」ボタンのように部分的に表示を変化させることができる機能です。

Image from Gyazo

今では非常に多くのWebサービスや、WebページにもJavaScriptが使われています。

Ruby

日本人のまつもとゆきひろさんが生み出したプログラミング言語です。Web系のアプリ開発でよく使われます。

Web開発において非常に優れたフレームワークRuby on Railsによって少人数でサービスを立ち上げられるようになり、新しいサービスで勝負するスタートアップ企業で爆発的に使われるようになりました。

Railsでつくられたサービスとして「クックパッド」や「Hulu」などがあります。

日本人が作ったプログラミング言語で、日本人の中でRubyを使うエンジニアが多いので、日本語の教材が豊富で、日本人が勉強しやすい言語と言えます。

PHP(Personal Home Page Tools)

Webアプリ開発に特化したプログラミング言語です。

本サイトはワードプレスというブログシステムを使って構築しています。このワードプレスサイトもPHPで作られたシステムです。

またPHPにはLaravelというフレームワークがあります。Rubyの人気フレームワークのRuby on Railsと同様に、多くのWeb系企業で使われています。

Java

Javaは最も利用者が多いプログラミング言語です。

Javaはどんな環境でも使用することができ、Web開発からスマホアプリ、大規模システム、マイクロソフト(ゲーム)、Blueray Discなど様々な場面で使われる言語です。

Googleの開発言語としてもJavaは使われています。

名前が似ている言語でJavaScriptがありますが、JavaScriptとJavaは全く別の言語です。

Javaが非常に流行した時に、Javaの人気に便乗してJavaScriptと名前が付けられたと言われています。

Python

Pythonはオープンソースで、世界中で愛されるオブジェクト指向のスクリプト言語です。

単純な文法であるため、初めてプログラミングを勉強する人にもとっつきやすい言語と言えます。

さまざまな業界で使用されていて、特に最近では機械学習(AI)の分野で注目を浴び、最も人気のある言語の1つです。

プログラミング勉強をする上でおすすめの教材

オンライン教材

progate

プロゲート

プロゲートは主にWeb系言語を学べるオンライン教材です。

意外とハードルが高い環境構築(自分のパソコンでプログラミングができるようにツールを用いて環境を整えること)をせずに、ブラウザ上で学習を開始できます。

無料部分と有料部分がありますが、多くの教材は無料で学習ができます。

プロゲート

ドットインストール

ドットインストールは、短い動画講義でできているオンライン教材です。

長い動画講義を聞いているとどんどん眠たくなりますが、ドットインストールは一本ごとに短いので、サクサク進められます。

ドットインストール

おすすめ書籍

プログラミングの仕組み

プログラミングとは何か、アルゴリズムとは何か、など超基本的な内容が図解でわかりやすく解説されています。

また、プログラミング言語と一言で括っても様々な種類があります。言語ごとの特徴や機能なども詳しく図解で説明されています。

なんとなくプログラミングを勉強したいけど、そもそもプログラミングとは何かがわからない人はお勧めの書籍です。

図解まるわかりプログラミングのしくみ

Webの技術

最近はWeb系のプログラミング言語を扱えるエンジニアの需要が高まっています。

この背景からWeb系エンジニアを目指す人も多いでしょう。その場合、Webではどのような技術が使われているのかを理解しておくことは重要です

Webの技術はスッキリイラストでまとめられていて、文量もそれほど多くはありません。またプログラミングを勉強しながら調べる辞書的な使い方もできます。

Web技術の基本

超勉強法

この本はプログラミングの本ではありません。勉強全般に使える本です。プログラミングの学習で重要な考え方や割り切り方が書かれています。

「基礎をやっていないから駄目だ」という罪悪感や、「基礎を完全にマスターしてから出ないと進んではならぬ」という固定観念は、捨てるほうが良い。

プログラミングの基礎的な文法は膨大ですし、基礎を完全に理解することは難しいです。

どうしてもわからなかったら、無理してその場でわからなくてもよくて、進めているといずれ腑に落ちる時がくるという内容が一貫して書かれています。

これくらい気楽に、「今は理解しなくて良い」と思って進めることが重要です。

超勉強法はこちら

プログラミング独学で挫折しないための4つの対策

プログラミングは参入する人が非常に多い一方で、挫折する人も非常に多いです。

そこで挫折を防ぎながら、プログラミング学習をやり切る方法をご紹介します。対策は以下の4つです。

挫折しないための対策
  1. 1度で理解できないのは当たり前だと心得る
  2. 現役エンジニアに頼れる環境を整える
  3. 作りたいものを考える
  4. モチベーションが下がる前提で環境を整える

1.一度で理解できないのは当たり前だと心得る

プログラミング学習をしていると、

自分にはセンスがないんだ…自分には向いていないんだ…

こう考えてしまいがちです。

しかし何事も最初からうまくできる人なんていません。コードを書いたり、問題解決をしながらプログラミングに触れていくことで徐々にできるようになります。

慣れるまではなかなか思い通りに勉強が進まないし、思い通りに理解もできないし、うまく実装することも、エラー解決もなかなかできません。

でもみんなが通る道であり、他の人も同じ経験をしていることを理解しておきましょう。

2.現役エンジニアに頼れる環境を作る

だいそんさんに頼れる

プログラミングを仕事にできるレベルにまで引き上げようとすると、幾度となく壁があります。

  • 環境構築につまずいて、いつまでもプログラミング学習を始められない
  • エラーを解決できずになかなか先に進めることができない
  • 転職用のオリジナルポートフォリオのアイディアが浮かばない
  • ポートフォリオにどんな技術を使えばいいかがわからない

もちろん、自力で解決しようとすることは大事なことですが、1つのエラーを全く解決できずに1週間2週間と考え続けるのは流石に効率が悪いです。

初心者が、経験者に頼ることは全く悪いことではありません。考え抜いたあとは、現役エンジニアに質問し解決できる環境を作っておきましょう

3.作りたいものを考える

自分が作りたいもの、欲しいものを作っている方が勉強のモチベーションが上がります。

ただ、パッと「ああいうものを作ってみたい」とひらめく人は少数で、アイディアが思い浮かばない人の方が多いでしょう。

そもそもどういうものが作れるのかさえわからない…

そんな時は、私たちRUNTEQの無料キャリア相談会にいらしてください。

『キャリア相談会』という名前ですが、キャリアだけでなく転職に必要なポートフォリオの相談にも乗っています。このほか

  • 勉強方法は?
  • 転職活動の方法は?
  • 本当に自分はエンジニア転職ができるのか?

のような悩みにもRUNTEQのキャリアアドバイザーがマンツーマンで対応させていただいております。

無料キャリア相談会へ申し込む

4.モチベーションが下がる前提で環境を整える(コミュニティに入る)

モチベーションは下がる前提で勉強を開始しましょう。

どんな人でも勉強を開始した当初の気持ちをずっと維持することは難しいです。徐々に下がっていきます。

いつの間にか始めた時の気持ちを忘れて、プログラミング学習の優先順位が下がっていきます。

途中でモチベーションが下がる前提で、プログラミングの学習を始めましょう。

モチベーションが高い時に、現役エンジニアに質問できる環境や、エンジニアの横のつながりが作れるコミュニティに入り、途中でやめられないような環境を整備しておきましょう

独学で学習することも非常に尊いことですが、それにこだわりすぎて最終目的を達成できないことの方がもったいないです。

独学は手段であり目的ではありません。最終目的に効果的な手段を選ぶことをおすすめします。

まとめ

本記事のまとめ
  • プログラミングはコンピュータへの指示を書くこと
  • プログラミングは細かいところまでは暗記しなくて良い
  • 目的を持って勉強し作りたいものを学ぶ
  • 全て理解できなくても作りながら慣れてくる
  • 参考書は写経しながら自分でオリジナルの機能もつけてみる

いかがだったでしょうか?

自分で作りたいと思ったものを実装することは楽しいです。しかし最初は勉強していても慣れないことばかりです。

向いてないのではないか、と辛くなってしまうことも多々あるでしょう。ですが、みんな経験する道です。

また、プログラミング学習にはプログラミングスクールに通うという選択肢もあります。

私たちが運営しているプログラミングスクールでは、Webエンジニアへの転職に特化してみっちり1000時間の学習を推奨しています

ご自身の学習方法や言語の選択にご不安がある方は、ぜひともRUNTEQのプロのカウンセラーに学習相談してみてください!

RUNTEQの無料キャリア相談会を見てみる