プログラミング初心者におすすめの学び方や勉強方法を紹介していきます。
初心者が効率よくプログラミングを勉強していくにはどうすればよいんだろう・・?
プログラミングを勉強するにあたり、初心者の場合は何をどのように勉強すればよいのか分かりませんよね。
また一言で「効率」といっても方法は100人いれば100通りの方法があります。
この記事では、どのように勉強をすればプログラマとして仕事レベルになるかを説明いたします。
その他にも
- 効率的なプログラミング勉強方法
- プログラミング学習の始め方
- やってはいけない勉強方法
などを解説していきます。
目次
プログラミングの勉強方法!効率的な学び方
プログラミングの勉強方法として最もオーソドックスなのは次の3つです。
- トライ&エラー(試行錯誤)
- OJT(現場における研修)
- ハンズオン学習(スクールなどで実際に触りながら学習)
ただ、どの学習方法をとっても、以下に記載する事柄を無くしてプログラミング習得はありません(これは断言できます)。
インプットアウトプット
プログラミングは学習したことをアウトプットしましょう
では、ここでいうインプットとアウトプットは一体何になるでしょうか。
- インプット=座学もしくは講師から学んだ技術的情報
- アウトプット=学んだことを実際に自分で書きだした(作成した)結果
になります。
インプットとはつまり「知っている」レベルのことを指します。
アウトプットは「実際にできる」レベルです。
一見似たように思えますが
- 知っている
- 実際にできる
の2つは大きな違いがありますね。
例を挙げますが、「病気について知っている」のと「実際に病気の治療ができる」では大きく違います。
それはプログラマでも同じことで「aは文字列です」と知っているのと、実際に「string a と書ける」のでは全然違います。
勉強しているうちはバグがいくらあっても大丈夫です。
あまり理解していなくても「学んだことを一度プログラムとして書き出す」ことをするといいですよ。
基礎を身につける
プログラミングの学習はまずしっかり基礎を身に着けるのがおすすめです。
勉強するうえで習得するべき基礎は以下の5つだけです。
- 変数と定数
- オブジェクト型
- 分岐
- 繰り返し処理
- 入力と出力
言語による多少の書き方には差異があるものの、「基礎」は全く変わりません。
皆さんに馴染みのある例を挙げるなら、「携帯でLineができる人」はメールもできますよね。
それは「入力の仕方」や「送り方」が違うだけだからです。
- 相手を選択する
- 文字を入力する
- 送信ボタンを押す
という「基礎」が変わらないからです。
できるならメンターをつける
効率よくプログラミングを学習するならメンターをつけるのがおすすめです。
平たく言えば「指導先輩」です。
メンターがいるのといないのとではかなり違います。
プログラミング初心者は、プログラミングを理解した「つもり」になってしまうことはありがちです。
プログラミングの理解が不十分だと
- 本番環境や顧客環境で重大障害を発生させてしまう。
- エラーが出たとき解決するのに時間がかる。
- 解決に時間がかかると、どんどんモチベーションが下がり、学習の質が悪くなる
といった厄介な弊害があります。
また、エラーが出てもすぐに助けてくれます。
なので、プログラミングを学習するときは、指導者をつけるようにしましょう。
プログラミングの写経について
プログラミング初心者はプログラムを「写経」すると効率よくプログラミングを学べます。
自分でコードを書いていると、なぜこの部分でこのような処理をしているのかを考えます。
仕事で仕様変更があった際には独力でどこを直せばよいかわかるようになります。
写経をする上でのオススメの勉強法は、以下の手順です。
- 写経をするプログラムからコメントを全部削除する
- 自分の言葉でコメントを入れる(極端に言えば全ての行にコメントを入れてみましょう)
- そのプログラムを可能な限り独力で作成してみる
- 出来なかったところをメモで書き出す
- 出来なかったところをもう一度写経しながら完成させる
- 3ができるようになるまで反復練習する
まずは参考プログラムを写してみましょう。
そののち、今度は見ないで書けるようになりましょう。
プログラミング学習の始め方!
ここまでは勉強における「心構え」や「テクニック」を記載してきました。
以下では実際に「プログラミングの学習をどのように始めるか」について触れていきます。
プログラミング学習の流れとマインドアップ
プログラミング初心者はマインドマップを作りましょう
「プログラマを志望する人」や「若手プログラマ」が挫折する要因の一つとして、「漠然と勉強をしている」ということです。
そういうときのために、マインドアップを行います。
やり方は至って簡単です。
- 用紙の真ん中にゴールを書きます。
- ゴールに向かうためにはどのようなスキルを習得するべきかを書きだし、線で結び付ける
- スキルを習得するために何を勉強しなくてはいけないのかを書き、それらを線で結び付ける
- 現在の自分の立ち位置になるまで繰り返す
ゴールのために必要な道筋は一つだけではありません。
考えられる多数の道筋を書いていきます。
以下に簡単な例を記載します。
(実際に筆者が過去に作ったものです)
ゴール:『ゲームエンジニア』になる
2.専用のツールとしてUnityが存在する
3.UnityはC#という言語で動いている
→C#を勉強しなくてはいけない
4. Unityを動かすためにはVisual Studioが必要だ
5. Visual StudioはMicrosoftからダウンロードできる
→Microsoftからダウンロードしよう
これはあくまでも開発を行うにあたり「言語として何が必要か」について書いたものです。
他にも
- アクションゲームなら物理の法則が必要だ
- 音楽ゲームならタイミングを計るためのタイマーの知識も必要だ
など多角的にゴールへのアプローチをしていきました。
そしてクリアしたものに対して、チェックマークをつけます。
自分がクリアしたことが目に見えてわかり、着実にゴールに近づいていることが分かるようになります。
マインドマップを作ると、自分をRPGの主人公にして、ゲームをしている感覚になります。
プログラミングの学習順序!何から始めるべきか
まずは「Hello World」を出力しましょう。
Hello Worldが出力できるとプログラミングをする環境が整ったことの証明になります。
Hello Worldを表示できるようになったら、あとは「コードを追加していくだけ」だから楽になります。
初心者はまずは、「Hello World」を表示できるようになることを目標にしましょう。
やってはいけないプログラミングの学び方
では、ここからは実際にやってはいけない勉強方法について説明していきます。
これから解説していく以下の勉強方法をしている人は正直、スキル習得に限界があります。
なので、すぐにでも辞めて、マインダーやスクールの講師、学校の先生に相談することをお勧めします。
ノートにメモ
プログラミングで学んだことをノートに書き込む学習はおすすめしません。
「テクニックやこうすればよい」と教わったことは「メモ」を取ったほうがいいです。
理由として
- プログラムはノートの上では動かない
- ノートにミスがあった場合、ノートはミスを指摘してくれない
というのがあります。
何十行とプログラムをノートに書いたところでプログラムは動いてくれません。
相談したテクニックをノートに書いて、実際にPCに打ち込んでどのように動いたかを分析しましょう。
昨今の開発ツールは「プログラムの構文ミス」をリアルタイムで検出してくれるものも存在します。
しかし、ノートにメモを取るだけでは、構文ミスもわかりません。
仮に「写し間違え」があった場合、何をどのように間違えたのかわかりません。
実際にその間違いに気が付くのはツールが「ここに構文エラーがあります」と指摘してきたときです。
それならプログラムをメモするより実際に打ち込んだほうが早いです。
以前1つ実験をしたことがあります(全員には事前に意図を説明してあります)。
5名の工学部卒業生(全員情報工学科)と5名の文系卒業生(全員プログラミング未経験)に対して全く同じ課題を出しました。
また以下の2つルールを設定しました。
- 工学部卒業生はプログラムを一度ノートに書きだしてからプログラミングする
- 文系卒業生はPCにプログラムを直接打ち込む
結果として、文系卒業生が課題を仕上げるまでに平均で5日かかったところを、工学部卒業生は10日かかりました。
情報系を専攻したにも関わらずこれだけの効率の差が出てしまいます。
なので、これから学習を始める初心者は、どんどんコードを打ち込みましょう。
プログラミング 暗記
次に挙げるのがこのプログラミングの暗記ですが、これは絶対にやめてください。
暗記するのは結果論でしかありません。
こういう要件の時にはこういうプログラムを書くのか
と、「自分の開発実績から暗記をして書くこと」は悪くはありません。
しかし、初心者はサイトのサンプルを見て、暗記した内容を「理解した」と思い込んでしまう傾向にあります。
ただ何となく暗記するだけでは、使用が変更した時に対応することができません。
それさえ理解できれば、暗記していなくても調べることができます。
なので闇雲に暗記しようとするのではなく、コードの意味を理解するように心がけましょう。
未経験からエンジニア転職!
副業・フリーランス転職にも完全対応!
社会人がエンジニア転職するなら
『プログラミングジャパン!』
まずは無料体験レッスンで詳しく話を聞いてみよう!