独学でプログラマーになった僕のお金をかけないプログラミング勉強方法

こんにちは!

独学でPythonを学び、現在経営者/プログラマーとして仕事をしている育児フルコミットお父さんのじゅん(@loveqpmayo)です!

 

この記事ではプログラマーとして仕事をする前の僕のように

プログラマーになりたいけど、実際にどうやって勉強していけばいいんだろう?“と考えている方を対象にしています

プログラマーになれた僕のメリットは、家で仕事が完結するので家族との時間が多くなったことです、これって子育てを全力で楽しみたい僕にとって最高の仕事かも!と最近感じています

また”結局プログラミングスクールに行くのが近道かよ!金ねえーよ!!”ってなっている方も僕の独学勉強法を参考にしてもらえればと思います

 

僕が実際にプログラマーとしてコードを書き、システム開発を行うまでの期間は”半年間の独学+α”でした

自分自身で会社を経営しているため必要となるプログラミング仕事を自分で作り出し、雇っているプログラマーに作動しない箇所を教えてもらいながら現在上達をしていますが、最初の半年はひたすら独学で(1人で)プログラミングを勉強をしていました

 

初心者がプログラマーになりたいとネットをググると”プログラマーに最短でなる方法 = オンラインスクール”みたいなステマが溢れ出てきます

僕は独学に最低限のお金で取り組み最大限の成果を出すのが好きなタイプです

半年間でプログラマーとして働くためにかけた学習コストは大体5万円程度です

そのうちいらなかったなーという学習コストは3万円分程度です

個人的の体感としては超効率プログラミング学習を行えば2万円でプログラマーとしてデビューできると考えています

図書館など利用すれば、独学プログラミング習得は無料で可能だと思います!

 

あの学習コスト無駄だったなー”という後悔をこのブログを読んでくれた方にはしてほしくないと考えています

正しい努力をすれば、プログラミングの勉強の難易度は低いです

プログラミングを独学で勉強して自分でサービスを作ってみたい!!

そんな情熱があるうちに正しい努力で勉強をしてみましょう!

 

0.独学でプログラミングを学ぶための心構え

プログラミングを学ぶ前に学習するプログラム言語を決める

プログラミングの価値は”アイディアを形にできること”です

独学でプログラマーを目指す方にはまずこの”作りたいサービス、対象物を明確化すること”から独学でプログラミングを勉強する前に考えてみてください

プログラミングと一口に言っても、サービスによって使われる言語は様々です

 

自分自身が作りたいサービスはどんなプログラミング言語を使用するのかを考えて、学習する言語を決めましょう!

僕が初めて作ったサービスはデータを集計したいと考えたため、人気プログラミング言語の”Python“を選択しました

できる範囲でサービスの因数分解を行う

学習する言語が決まったら、そのサービスに必要となる機能の因数分解を行います

プログラミング初心者であった僕が最初に躓いたのが、自分の作りたいサービスの因数分解(機能の分解)を行うことができずどこから作っていっていいのか全くわからず立ち止まっていました

ネットで検索すると情報は色々出てくるのですが、”何を、どうするべきか”わからなかったのです

サービスの因数分解はこんな感じで行います

大項目 中項目 小項目
No
1 エンジニア-利用登録 利用登録 Facebook
2 Github
3 Google
4 メールアドレス再設定
5 新規登録
6 エンジニア-レジュメ レジュメ作成 チュートリアル
7 エンジニア-学習 日本語学習 コンテンツ一覧
8 コンテンツ詳細
9 テキストコンテンツ表示
10 コンテンツタイピング
11 動画視聴
12 エンジニア-マイページ 学習 最近勉強した内容
13 次の内容
14 学習カレンダー
15 設定 アカウント設定

この因数分解を行うと、自分が何をすべきかが明確になり、進むべき道がわかりやすくなるのでプログラミングの理解度が一気に深まります

1.独学でプログラミングを学ぶために

プログラミングの学習方法の比較

プログラミングを学ぶ環境は様々ありますが、どの学習方法も一長一短があり、色々な学習方法を重ねることでプログラミングの独学を進めていくことがプログラマーデビューの近道です

まずはプログラミング学習方法を比較してみましょう

書籍 学習サービス ワークショップ プログラミングスクール
学習環境 自分のみ オンライン 集団 個別/集団
理解度
進歩度 自分のペース 自分のペース 参加者が全体に合わせる 個人の進歩に応じて調整/集団の場合は調整不可能
継続性 ×
コスト ×
エリア どこでも どこでも 人口密集地 どこでも
対象者 中級-上級 初級-中級 初級 初級-中級

どのプログラミング学習方法が、個人にとって最良であるかは学習をする人の好みによりますが、僕がプログラミング初心者からコードを自分で書いてシステムを構築できるまでになった学習方法はこんな感じです

オススメのプログラミング独学方法

1.Progateドットインストールの無料会員になってプログラミングの基本を学ぶ

無料で利用できる範囲で、自分が作るサービスのプログラミング言語を学びます

僕の場合、わからなくてもとにかく進み続けた結果、Pythonについてのコンテンツを4周することでPythonについてなんとなく理解を深めることができました

 

2.ワークショップへ参加/わからない部分をプログラマーに聞く・質問する

都心に住んでいれば、プログラマー勉強会的なものが数多く開かれています、そこで自分が腑に落ちないところを聞いたりして腹落ちするまで勉強をします

またそういったコミュニティへの参加が厳しい方はQiitaでわからない部分を聞くor探しましょう

やはり、ハマるところは誰もがはまっているようで、似たような事例がたくさん上がっています

Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。コードを書いていて気づいたことや、自分がハマったあの仕様について、他のエンジニアと知見を共有しましょう 😉

3.書籍/動画学習で仕上げる

ある程度プログラミングへの知識が深まったら参考書を使用し、自分の作りたいサービス作成に向けて本格的に動き出しましょう

独学において、書籍は手を出しやすいものですが、書籍を参考にプログラミングを行うのは素人にとって無駄なコストになる確率が高いです

僕もプログラミング独学を始めようと、勢いで参考書をいくつか購入しましたが、結局1回も使わずにさよならしてしまった参考書も多いです

 

勉強する対象が決まり、プログラミングへの理解が深まった段階で、書籍は初めて真価を発揮するものなので、最初に買わないようにしましょう!

またUdemyのような動画学習プラットフォームも初心者は避けるべきです

初心者用と謳っている動画学習コンテンツでも、実際には難しい場合がほとんどです

動画コンテンツを利用しての独学も、プログラミングへの理解が深まった段階で、利用するといいでしょう

僕の購入してよかった参考本を掲載しておきます!

 

2.プログラミングの概念を学べるオンラインサービス

独学プログラミングの理解に役立つおすすめオンラインサービス一覧

プログラミングの概念を学べるコンテンツは数が多く、そのどれもが無料で利用することができます

ここでは実際に僕が独学をする上で利用したオンライン学習サービスを紹介します

Progate

https://prog-8.com

ドットインストール

https://dotinstall.com

Hour of Code

https://hourofcode.com/jp

lightbot

http://lightbot.com/

CodeMonkey

Front Page

Scratch

https://scratch.mit.edu/

03.独学プログラミングで最も大事なこと

実際に手を動かし自ら考えて手を動かす

僕と同時期にプログラミング学習を独学ではじめ、僕はある程度プログラミングを理解するレベルまで到達することができましたが、一緒にプログラミング学習を始めた友達は本を買って満足したのかプログラマーデビューをすることが出来ませんでした

 

多分ですが友達が独学でプログラミングをマスターできなかった理由は

・自分の作り出したいサービスの因数分解が出来ておらず、何をしていいかわからなかったこと

・プログラミングが自分にあっていなかったこと

だったかなーと思います

自分の理想とする姿に届かないと、ヒトは努力し続けるのが難しくなる生き物です

目標となるサービスの細分化ができていれば、努力するベクトルはわかりやすいので、努力が長続きしやすい=独学が継続しやすいと思います

 

独学プログラミング学習において初心者が挫折する部分は完全に”努力するベクトル”が見えず、ただ解説書を眺めているだけになってしまいアウトプットが出せず、心が折れてしまうことだと思います

独学でプログラミングを学ぶ難易度は指針があれば難易度が低いです

逆に指針がないとかなりレベルが高い独学テーマになります

 

自分がどんなサービスを作りたいのか、そしてそのサービスを細分化することができればプログラマーとしてデビューできる日は近いです!!

頑張っていきましょう!!

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

%d人のブロガーが「いいね」をつけました。