こんにちは、新卒でエンジニアとして就職するヒデ(@hideto1939)です。
日々、プログラミングに取り組んでいます。
今回は、僕が試行錯誤して確立した「プログラミング勉強法の結論」をご紹介します。
僕のこれまでの失敗談も交えつつお話するので、参考にしていただけると嬉しいです。
また、「プログラミング」とありますが、「勉強の方法」としては、他のどんな分野にも応用できる普遍的なものなので、積極的に使っていただけると嬉しいです。
では、始めます!
プログラミング勉強法の結論。私の方法。【6つの手順】
さっそく僕の「プログラミング勉強法の結論」をお伝えします。
以下の6つの手順です。
- ざっくりと技術の「全体像」を掴む
- チュートリアル等のコードを写して動かしてみる
- チュートリアル等のコードを書き換えてみる
- 完全オリジナルのサービスを作る
- 実際の職場で「実務経験」を積む
- 同じ要領で技術を学ぶ。以下繰り返し

それぞれ解説していきます!
1.ざっくりと技術の「全体像」を掴む
イメージとしては「森を見た後に木を見る」です。まずは技術の「全体像」をつかみます。
細かいところまで踏み込む必要はありません。
あくまで、仕組みや機能、使い方などをザックリと理解すればOKです。
「技術の全体像をつかむための具体的な方法」として、僕は以下の勝又さんの動画を参考にさせていただいています。
「全体像を学ぶための教材」を選択したら、あとはそれをメモ帳等にまとめつつ理解していく感じですね。
「技術の全体像を学ぶためのツール」まとめ
「技術の全体像を学ぶためのツール」としては様々なものがあります。
僕が使っているものを一部挙げておきますね。
- Progate
- ドットインストール
- SkillHacks
- ネット記事(公式ドキュメントなど)
- 本
- YouTube

参考にして下さい!
Progate
「初心者が最初にすべき教材」の定番中の定番。
プログラミングに関する様々な技術について、ゲーム感覚で楽しく学べます。
説明には分かりやすいスライドが用いられており、これを読むだけでもかなり勉強になるのでおすすめです。

基本、無料で使えますが、課金することが学べる範囲が広がります!
>>Progate
ドットインストール
Progateと同様に定番の教材です。
Progateと違う点は、「説明が動画」という点です。
こちらもかなり分かりやすいので、「基礎を学ぶ教材」としてはとてもおすすめです。

Progateと同様、課金することで学べる範囲が広がります!
SkillHacks
フリーランスエンジニアの迫さん(@yuki_99_s)が開発された教材です。以下の項目について学べます。
- HTML
- CSS
- Bootstrap
- Ruby
- Ruby on Rails
最大の特徴は開発者の迫さんに「無制限の質問」ができる点です。
「挫折しない」という点に関してはピカイチの教材かと思います。

実際に「Skill Hacks」で学んだ僕の感想をまとめています!ぜひ!

ネット記事(公式ドキュメントなど)
ネットにも無限に記事はあります。
例えば、「公式ドキュメント」はおすすめです。「〇〇 ドキュメント」とか「〇〇 document」で検索すると出てきます。
あと、僕がよく検索するワードとしては、「〇〇 基礎」「〇〇 basics」とかですね。
この辺りの検索で出てきた記事を読んでおけば、「技術の全体像」は掴めると思います。

検索は「英語」でも行うようにしましょう。得られる情報量が格段に増えます。
本
個人的な優先度として、「本」はあまり高くないです。
しかし、「全体像をざっくりと掴む」という点に関しては、本も有効な手段となりえます。
例えば僕は最近、「Laravel」を学んでいて、以下の教材を使っています。
項目はこんな感じになっていて、Laravelの基本的な機能は網羅されている形です。
- Laravelを準備する
- ルーティングとコントローラ
- ビューとテンプレート
- リクエスト・レスポンスを補完する
- データベースの利用
- Eloquent ORM
- RESTfulサービス/セッション/ペジネーション/認証/テスト
本は「全体像をつかむ」「手元に置いて分からなかったときの辞書代わりに使う」という用途においては有効でしょう。
YouTube
最近はYouTubeにもプログラミングに関する動画は多数あります。
とはいえ、「日本語」の動画はまだ少ないのが現状です。
英語が苦手な人に関しては、上記の別の手段を使った方が良いかもしれません。

とはいえ、基本はコードを見ておけばいいので、英語が分からなくてもそんなに問題はないかとも思いますけどね。。
僕がよく観ている「プログラミング系のチャンネル」をご紹介します!(*´-`)

どのチャンネルもおすすめです!
2.チュートリアル等のコードを写して動かしてみる
次に、チュートリアル等のコードを写して、実際に動かしてみます。
「コードが示す挙動」を一つずつ確認していくイメージです。
これによって、より「技術の全体像」が掴めると思います。
使うツールとしては1で挙げたものでOKです。
とりあえず同じコードで良いので、実際に「手を動かして」コードを書いてみましょう。
3.チュートリアル等のコードを書き換えてみる(アレンジしてみる)
2で書いたコードを自分なりに書き換えてみます。
完全に変える必要はありません。数字や変数を変えてみるとか、それくらいでも理解は深まると思います。
様々な書き方を試してみて、技術のパターンとイメージを掴みましょう。

以上の1、2、3は完全に独立した手順というよりは「同時並行」で行っていく感じです!
4.その技術を用いた、「完全オリジナル」のサービスを作る。
チュートリアルや例題のコードではなく、「自分の頭で考えた」「完全オリジナル」のコードを書いてみましょう。
多分苦労しますが、OKです。苦労して調べて試行錯誤する過程で力が付いていきます。
むしろ「苦労(試行錯誤)を楽しむ」くらいのマインドで挑戦しましょう。
僕も実際に作っています。以下の記事では「Laravel」でサービスを作ったときの経験をまとめているのでぜひ!


「自分で考えてコードを書く」がスキルを伸ばすには一番です!
Webサービスって何を作ればいいの?
なぜなら、大切なのは「実際に手を動かしてスキルを伸ばすこと」だからです。
別に何を作ろうが、手を動かすことができればいいんです。。
とはいえ、それでは不親切だと思うので、一つヒント言うと、「日常の不便」に目を向けるのがコツです。
たとえば僕は以下のサービスを作りました。(先ほど紹介した「Laravel」で作ったサービス)
>>https://bookstorage.herokuapp.com/
「読みたい本を整理する」アプリです。
ぼく自身の、日常の「読みたい本が多すぎて整理しきれない」という問題に目を向けてみました。
少し神経を集中させて、「自分が日常で不便に感じていること」に注目してみましょう。
サービスのヒントが見えてくるはずです。
5.実際の職場で「実務経験」を積む
結局は、実際に「実務経験」を積むことが技術を伸ばすには一番です。
なるべく早く実務を積める環境に飛び込みましょう。
多分、「いきなり飛び込むのは怖い」という人もいると思います。
しかし、どうせ後から飛び込むのなら、早ければ早い方が良いです。勇気を出しましょう。
以下の記事は良い例です。モデルからエンジニアに転身した女性の記事ですが、すぐに「実務を積める環境」に飛び込んでいます。このくらいの勇気と胆力を持っておきたいものです。

6.同じ要領で技術を学ぶ。以下繰り返し
一つの技術の習得は、ここまででとりあえず完成です。
どんな技術を学べばいいか?
もちろんその人が目指す方向性や職場の方針によって変わってきます。
しかし、あくまで個人的な意見ですが、「自分の市場価値」に着目したとき、「古い技術」よりは「モダンな技術」に触れておく方が良いと思います。
「モダンな技術」をチェックする上で僕が使っているのは主に以下のツールです。
- ツイッター
- YouTube
- 各種トレンド把握サービス
ツイッター
「英語アカウント」を作って、海外の最新テクノロジー情報やプログラミングに関する情報を仕入れています。
気になった記事とかはリツイートするので、「情報収集したい」という方はフォローしていただけると嬉しいです。
YouTube
主に、先ほども紹介した「KENTA」さんの動画を参考にさせて頂いています。本当に有益な情報ばかりなのでおすすめです。
KENTAさんはツイッターやQiitaでも発信されており、こちらもチェックすることをおすすめします。
- ツイッター→勝又健太@テック系YouTuber
- Qiita→勝又 健太
こちらの記事なんかは「技術トレンド」を把握するのに役立ちますね。
各種トレンド把握サービス
トレンドのグラフも見るようにしています。
ざっくりと「今流行っている技術」を確認するためです。
僕が主に見ているのは以下の辺りですね。
「Google Trends」は、調べたい言語を多数入力することで、人気度を比較することができます。
こんな感じ。
その他、技術トレンドについて調べる方法は、この記事によくまとまっているので、興味のある方はお読み下さい。m(_ _)m
後は「エンジニア同士のコミュニケーション」とかですかね。積極的に色んな人とコミュニケーションを取って情報交換するのも大事だと思います。
思考停止するのではなく、「意識的」に情報を拾っていきましょう。
プログラミング学習における3つの注意点【手を動かす】
ここまで、「プログラミング学習の手順」をお伝えしてきました。次に、「プログラミング学習の注意点」をお伝えします。
以下の3つです。
- 基礎学習から実戦へのスパンを短く
- 自分で考えて手を動かす(自走能力)
- コンフォートゾーンから抜け出す
基礎学習から実戦へのスパンを短く
初心者が陥りがちな罠。
それは、「完璧な理解を求める」ことです。
例えば「コードや文法を覚える」などはまさにそうですね。
こちらの勝又さんの動画でいうと、「わかってから始めたい病」です。
ハッキリ言ってこの行為は改めた方が良いです。
なぜなら、いくら基礎ばかり学んでも大きな成長は望めないからです。
過去の僕は正にこの罠にはまっていました。「完璧」を求めすぎて「基礎」ばかり学んでいたのです。

Progateを何周もしていました。。
「基礎」はあくまで「基礎」です。
大切ではありますが、実際にコードを書かない限りは、いつまで立っても本当の意味での成長はできません。
「基礎学習→実践」のスパンを短くするのです。
自分で考えて手を動かす(自走能力)
いくら「コードを書く」ことが大切だと言っても、「お手本の丸写し」では力はつきません。
「自分の頭で考えて」コードを書く必要があります。
「基礎は理解できた」と感じたら、なるべく早く「丸写し」は卒業しましょう。
そして、既存のコードを変更してみるだけでも良いので「自分の頭で考えてコードを書く」フェーズに移行しましょう。

プログラミングの実務では、「自走能力」が求められます。練習段階から意識しましょう。
「丸写し」なら小学生でもできますからね。。
コンフォートゾーンから抜け出す
プログラミングに限らずですが、成長するためには「コンフォートゾーン」から抜け出す必要があります。
例えば、「Progate」は多くの人にとっての「コンフォートゾーン」です。
ゲーム感覚で楽しいですし、挫折することもありませんからね。
しかし、Progateを永遠にしていても、大きくスキルを伸ばすことはできないでしょう。
「負荷」が低いからです。
やはり成長するためには、自分に適切な負荷をかける必要があります。コンフォートゾーンから抜け出す必要があるのです。
「筋トレ」もそうですよね。いくら簡単に持ち上げられるバーベルを上げ続けていても、それ以上の筋肉は付きません。
プログラミング学習者にとって「コンフォートゾーンを抜け出す」は例えばこんな感じでしょうか。
- 自分でゼロからWebサービスを作ってみる
- クラウドソーシング等で案件を受注してみる
- エンジニアとして就活して就職する
これらの段階に移るのは、早ければ早いほど良いです。勇気を出して挑戦しましょう。

僕もこの点は注意しています!
プログラミング学習における注意点のまとめ
以下の3つです。
- 基礎学習から実戦へのスパンを短く
- 自分で考えて手を動かす(自走能力)
- コンフォートゾーンから抜け出す
要は「できることばっかりずっとやっていても成長しないよ」ということです。
自分に「負荷」がかかる環境に積極的に飛び込みましょう。

意識していただけると嬉しいです!
おわりに:一行でも多くコードを書こう!
もう一度プログラミング学習の6つの手順を振り返っておきます。
- ざっくりと技術の「全体像」を掴む
- チュートリアル等のコードを写して動かしてみる
- チュートリアル等のコードを書き換えてみる
- 完全オリジナルのサービスを作る
- 実際の職場で「実務経験」を積む
- 同じ要領で技術を学ぶ。以下繰り返し
何度でも言います。
プログラミング上達への一番の近道は「一行でも多くコードを書く」ことです。
いくら楽譜の読み方を学んでもピアノが弾けるようにはならないのと同じです。
いくらドキュメントや資料を読み込んでも、実際にコードを書かないことには、いつまでたってもコードを書けるようにはなりません。
この点だけは常に意識していただけると嬉しいです。
今回は以上となります。
この記事が、あなたが「プログラミングを効率よく学ぶ」上で、少しでも参考になっていたら嬉しいです。

僕もコツコツ頑張ります!
では!m(_ _)m
こちらの記事もおすすめです!



コメント