新卒で自社開発企業にエンジニア就職

楽ではないプログラミング独学勉強法【まずは脱初心者を目指そう】

ノロノロ

どうも、プログラミング大好きすぎて同期から「コードギーク」と呼ばれたノロノロです。
プログラミング独学に関する勉強法について知りたい。まずは適正を知るためにも独学から始めたいしね。

読者

という人に向けて記事を書きました。
記事の内容
・楽ではないプログラミング独学勉強法【まずは脱初心者を目指そう】

まずはじめに言っておくと、プログラミング独学はそれなりにきついです。

プログラミングはある程度慣れたらスイスイ理解が進んでいくのですが、それまでの過程がかなりきついんですよね。

僕は大手プログラミングスクールで毎日10時間以上の勉強を2ヶ月間していたのですが、初めの時期が1番しんどかったですし(今は独学でも全然平気ですが)。
なので、いつでも挫折できてしまう「独学」を選ぶ以上、まずは「学習をする上での強い動機」を決めるのがベスト。

ぐちぐち言ってても始まらないので、早速見ていきましょう。




プログラミング独学勉強法の全体図を把握

まずは強い動機を決めることが1番なんですが、そうはいっても全体が見えてこないと頭がバグってしまうので、全体図から見ていきましょう。

結論から言うと、僕がプログラミングを勉強する上で大切だなあと思うことは以下。

・❶:学習に対する強い動機
・❷:ゴールの設定
・❸:ゴールまでの学習時間の把握
・❹:選ぶ言語
・❺:具体的なプログラミング勉強法
この5つです。

とはいっても、❹以外はどれに取り組むにしても意識すべきことです。ブログでもそうですし、受験勉強でも大事なことだと思います。

なので、そこまで新しいことを学ぶ必要はなし。自分に必要なことだけ汲み取って、早くコードを書いていきましょう。

・❶:学習に対する強い動機

・❶:学習に対する強い動機←今ココ!
・❷:ゴールの設定
・❸:ゴールまでの学習時間の把握
・❹:選ぶ言語
・❺:具体的なプログラミング勉強法
まずは学習に対する強い動機を決めるべき。

スクールとかに通うなら話は別ですが、独学となると自己管理がめちゃくちゃ大事になってきます。

自己管理を徹底しない限りすぐ挫折することになるなあと。プログラミングはそれだけ挫折率が高いんですよね。

とはいえど、自己管理にも限界はあり、「プログラミングを勉強する意味」が自分の中で確立されてないとダメなんですよ。

ノロノロ

学習を長期的に続けていくためにも、「強い動機」は必要なんだよね。
とはいってもそこまで深く考える必要はなくて、自分の中にある「負の感情」をメインに考えていくのがベスト。

例えば僕だと以下のような感じ。

・負の感情
→外を歩き回る仕事は嫌
→スーツをなるべく着たくない
→陽キャ感あるトークは嫌
・正の感情(正の感情を軸にしてもOK)
→給料が比較的高い
→フリーランスになっても安定的に仕事が供給される
なんか軽すぎるやつもありますが、僕的には「外を歩き回る仕事が嫌」がダントツで強い動機ですね。

室内でじっと仕事をするのが向いている性格で、外にあまり出たくないので。常に引きこもっていたいタイプです。

こんな感じで、各々「絶対にプログラミングを続けなければならない」という強い動機を1つでもいいので持ってください。

人は苦痛から逃れたい生き物ですからね。嫌なことが動機だとほんと頑張れますよ。ソースは僕と僕の同期たちです。

MEMO
ステップ❶:強い動機を持つことがまず1つ。

・❷:ゴールの設定

・❶:学習に対する強い動機
・❷:ゴールの設定←今ココ!
・❸:ゴールまでの学習時間の把握
・❹:選ぶ言語
・❺:具体的なプログラミング勉強法
動機づけができたら次は「ゴール」を決めましょう。ゴールがないと継続して頑張れないですからね。

そして、当記事でいうプログラミング独学のゴールは次のように定義します。

・実務未経験でもエンジニア就職・転職できる「ポートフォリオ」を作ること。
こんな感じです。

ポートフォリオは何かってというと、企業等に自分の技術力をアピールする作品のことです。

口で伝えてもパッとしないと思うので、以下のポートフォリオを見ていただけるといいのかなあと。

・サプリメント口コミ共有サービス「SuppleBox(サプリボックス)
・Webサービス「Lookmine
こんな感じのアプリを作ればOKです。

こうみるとめちゃくちゃハードル高そうですが、大丈夫です。つけるべき機能とかも後々説明しますね。

この段階でまず理解すべきことは「ゴール」。
エンジニアになるための武器としてのポートフォリオ。これを作るのをゴールにして独学学習を進めていくのがベスト。

Progateや技術書で基礎ばっかやってても技術力は伸びないですからね。いろんな人が言ってると思いますが、経験的にもこれは事実です。

MEMO
ステップ❷:ゴールの設定。

・❸:ゴールまでの学習時間の把握

・❶:学習に対する強い動機
・❷:ゴールの設定
・❸:ゴールまでの学習時間の把握←今ココ!
・❹:選ぶ言語
・❺:具体的なプログラミング勉強法
ゴールがわかったら、ゴールを達成するための学習時間をおおよそ割出していきます。

独学系の記事を読んでいる方は、おそらくあまり時間を捻出できないと思うので、以下のような時間設定がいいかなあと。

・期間:4ヶ月間
・1日あたりの学習時間:1日2時間の学習(土日は8時間程度やるのが無難)
この期間には理由があります。

期間を4ヶ月に設定したのは、学習を飽きないようにするためで、半年〜1年もダラダラ学習していると確実に飽きてきます。

そんなことなら4ヶ月程度でそれなりのポートフォリオを作って、未経験者に門戸を開いている企業でガリガリコードを書いていくべき。

そして、4ヶ月でポートフォリオを完成させるのは1日2時間は必要かなあと。
僕は1ヶ月半でポートフォリオを完成させましたが、それは1日10時間以上毎日勉強したからです。

なので、最低でも1日2時間は確保してください。土日なんかはもっと学習時間を確保できると思うので、爆速で終わらせたい方は活用するべき。

MEMO
ステップ❸:ゴールまでの学習時間の把握

・❹:選ぶ言語

・❶:学習に対する強い動機
・❷:ゴールの設定
・❸:ゴールまでの学習時間の把握
・❹:選ぶ言語←今ココ!
・❺:具体的なプログラミング勉強法
ここでやっとプログラミングらしい段階ですね。

そして結論から言うと、次の言語を選ぶのがいいと思います。

・言語:Ruby
・フレームワーク:Ruby on Rails
・RDB:MySQL
・Saas:Github
この組み合わせが1番作業しやすいと思います。

この段階だと「何言ってんの?全く意味わからんわ」状態だと思いますが大丈夫です。

2週間もやっていれば、それらの役割もちゃんと理解できます。才能とか関係なし。

それと、言語選びって議論が起こりやすいところなんですよね。

・今その言語は主流じゃない。
・いやいや、これよりこっちを選ぶべきだろ。
・その言語を選ぶとかセンスなさすぎ。
・その言語とフレームワークはオワコン。
宗教論争でしかないです。きりがないですし、初心者からしたら「結局なに選んだらいいの?」って感じ。

なので、比較的日本で需要のあるとっかかりやすい言語を選ぶのがベスト。

RubyとRailsは初心者でもとっかかりやすいですし、僕も個人的にRubyが1番わかりやすくプログラミングとしても楽しめるよなと思います。

PythonとかGoを考えるのは後でもいいと思います。それなりにエンジニアとしてのキャリアがしっかりしてから考えるのがいいのかなあと。

MEMO
ステップ❹:選ぶ言語。

・❺:具体的なプログラミング勉強法

・❶:学習に対する強い動機
・❷:ゴールの設定
・❸:ゴールまでの学習時間の把握
・❹:選ぶ言語
・❺:具体的なプログラミング勉強法←今ココ!
いよいよ具体的な学習方法です。

使っていく参考書・ツールは以下。

・Progate:おすすめ度(⭐️⭐️⭐️⭐️☆)
・Udemy:おすすめ度(⭐️⭐️⭐️⭐️⭐️)
・ドットインストール:おすすめ度( ⭐️⭐️☆☆☆)
こんな感じで、特にこだわりもないならUdemyとProgateを併用することをおすすめします(めっちゃわかりやすい)。挫折はまずしないと思います。
・Progate:HTML&CSS、Ruby、Ruby on Rails、Git、SQL、JavaScript(余裕があれば)
・Udemy:Ruby、MySQLの教材
まずはProgateがいいですかね。

月額980円で受け放題ですし、プログラミングがどんなもんかざっと把握できるので。

そして、Progateで肩慣らししたら以下の記事にあるUdemy教材で一通り勉強するのがいいと思います。
Ruby初心者でも取り組みやすいおすすめUdemy教材を紹介するよ こうして一通り基礎ができたら、実際にアプリを作ってみてください。スクリーンショット 2019-09-03 15.25.54.png
まずは上記画像にあるこれらの機能を実装してみてください。

ProgateやUdemyを参考すればわりと簡単に実装できますし、基礎の構築にもなるので。

もちろん最初は「なにこれ?なんかへんなエラーもでてきた….」みたいな状況に陥ると思います。

ノロノロ

今の僕でもそんな状況に陥るしね。
プログラミングは疑問の連続で、ピースがハマったと思っても全然違うみたいなことはよくありますよ。

ただ、しっかり動機付けをして、ゴールを決めて、毎日コードを書いてたら確実に技術力は伸びます。

MEMO
ステップ❺:具体的なプログラミング勉強法。

・ここまできてプログラミング独学きついと思ったなら

ここまできてプログラミング独学きつそうだなと思った人もいるかもしれません。

まあそれは当たり前で、プログラミングはよくわかないことに悩まされることの連続で、「めっちゃ簡単」ってわけではないですからね。

僕はスクールに通っていたのですが、同じエラーに2日悩まされたこともあります。スクール時の同期もみんな同じ経験をしています(どんなに優秀な人でも)。

プログラミング独学は比較的難易度が高い
のは事実だと思います。挫折率の高さは数字をみてもわかりますからね。

ただ、独学でやると決めた以上やるしかないです。

エンジニアというキャリア選択をするなら最低限の学習は必要ですし、それすらできないならエンジニアになってからきついと思います。

とまあそんなこと言いましたが、そこまで肩の力いれずに頑張るのがベスト。
独学無理だったらスクール通うかあぐらい楽観的でいいと思いますよ。僕もそうでしたし。

というわけで独学学習がんばってください!僕も引き続きコードを書いていきます。

【転職特化】おすすめのプログラミングスクール3選【時間ない人】 【2週目】テックキャンプ (エンジニア転職)の記録 【精神崩壊】 大学生はプログラミングスクールに通うべきか【実際に通った僕の解】