こんにちは。銀行員を辞めエンジニアへ転職したアトフジです。
2019年9月からプログラミング言語の学習を開始し、約3ヶ月でオリジナルのWEBサービスを制作し、約6ヶ月で3社から内定をいただきました。
銀行の仕事もやりつつの勉強だったので、確保できる時間が少ない中で割と効率的に学習出来たのではないかと思っています。
エンジニア転職を目指していて、なるべく早く転職したい。しかし、今やっている仕事と両立しなければいけないので時間の確保が難しい。
他の人はどうやって効率的に学習したんだろう。
仕事が大変だったり忙しいと、このような悩みを持つのは当然だと思います。
僕自身も同じ悩みから、効率を重視した学習方法を選択しました。
プログラミングの学習方法に正解はありませんが、一つのサンプルとして、僕の実践した学習方法をお伝えできればと思います!
仕事と両立しながらの学習時間は?
まず、仕事との両立で僕がどれくらいの学習時間を確保していたかというと平日は3時間〜4時間、休日は平均で6時間、多い日は8時間〜10時間学習していました。
朝が最高に苦手なので、平日はいつも21時過ぎから勉強を開始し、夜中の1時2時までやっていました。
ただ、仕事の疲れも当然あるので毎日出来ていたかというとそうでもありません。
平日に頑張りすぎた時の土曜日は一日中寝てしまった事もありますし、平日もお付き合いの飲み会があると、その日と次の日は疲れて出来なかったりと、割とプログラミングをしない日もありました。
もちろん毎日継続して学習できれば、それに越したことはありませんが、数日間空いてしまったとしてもモチベーションを下げず学習自体を続ける事の方がより重要です。
集計した訳ではありませんが、内定をいただくまでの学習時間はおおよそ300時間程度だと思います。
学習時間のイメージがなんとなく伝わったと思うので、じゃあ実際その学習時間で「どうやって学習したのか」についてお伝えします。
効率重視の結果「オンラインスクール」を選択
プログラミング学習する場合、完全に独学で学習する方法と、どこかのスクールに入りスクールの教材を使って学習する方法の大きく2つが挙げられます。
僕は効率重視のため「オンラインスクール」を選択しました。
具体的には「ウェブカツ」というオンラインスクールを選び、その動画教材を見ながら毎日勉強し、学習した内容をもとに、自分自身のWEBサービスを作った感じです。
【作成したWEBサービスのデモ動画】
サービス名:Engineer Town
概要:プログラミング初学者のためのアウトプット登録サービス
ウェブカツは有料のオンラインスクールです。
有名スクールのテックエキスパートよりは安いですが、それでも結構な額を支払います。
完全にお金で時間を買った感じです。
ちなみに3ヶ月でウェブカツを通して学習した項目は下記の言語・知識です。
HTML
CSS
JavaScript
jquery
PHP
mySQL
データベース
WEBサービスを作ろうと思ったら、最低限これらの知識は必要ですが、結構なボリュームだと思います。
これだけのボリュームを、もし独学で、かつ仕事と両立しながら勉強していたとしたら、おそらく3ヶ月でWEBサービスを作るだけの力は身に付かなかったです。
独学と何が違うのか?
僕自身は独学とオンラインスクール両方経験したことがあります。
先ほど挙げた言語・知識を学習した後、PHPフレームワークの一つの「Laravel」を完全独学で習得した。
独学とスクールどちらも経験したことのある身からすると、スクールの方が圧倒的に効率的で早くスキルが身に付きます。
なぜなら、スクールは「目的がある上でプログラミング言語を学ぶ」ことができる事です。
例えばウェブカツでは、HTMLとCSSは「簡単なホームページを作る」という前提で教材が作られています。
簡単はホームページを作ることを目的として、それに必要なHTMLとCSSを学習できるので、言ってしまえば最短ルートで学習できる訳です!
ただ単純にテキスト(本)を買って一から勉強しようとすると膨大な量をインプットする事になりますが、インプットする量が多すぎてしまうため、時間掛けた割りにあまり身になっていないという自体が起こりかねません。
特にCSSはめちゃくちゃ奥が深いので、全て勉強しようとするとドツボにはまります。
これは試験勉強を思い出していただけるとイメージしやすいと思います。
試験勉強で効率よく合格点を獲得するためには、問題集からやりますよね?
問題集は、試験によく出る問題を中心に作られていて、その問題を解くのに必要な公式や知識を教えてくれています。
一方でテキストは全てを網羅して解説はしていますが、必要のない情報も多く、テキストを時間を掛けて熟読したからと言って試験で良い点が取れる訳ではありません。
これと同じことがプログラミング学習にも言える訳です。
スクールではホームページの作り方やWEBサービスの作り方の答えを教えてくれるので、効率的に学習ができるということです!
後、環境構築と呼ばれるプログラミング言語を使うための環境を作る作業も、スクールでは教えてくれるので地味にありがたいです。
これから勉強する人には分かりにくいかもしれませんが、PHPという言語を使う場合は、自分のパソコンにPHPを動作させるためのサーバー環境を準備する必要があります。
データベースを利用する際も、データベース専用のサーバーを準備する必要があります。
独学でこれらの環境を構築するのは不可能ではありませんが、元々パソコンの知識が乏しい人がやろうとすると、かなり時間が掛かるか挫折してしまうと思います。
スクールに入ることが絶対の正解ではありませんが、どちらも経験したことのある立場からすると
もし限られた時間の中で効率的に習得したい
そのためにお金を出すのは惜しまない
という考えをお持ちでしたら、僕はスクールに入る事をお勧めします。
※スクールも玉石混合なので十分に調査はする必要があります。
ちなみに僕がウェブカツを選んだ理由の記事はこちらで詳しく述べています。
参考:僕がウェブカツを受講した経緯と炎上後も続けている理由【実体験】
スクールで学習しつつ自分で調べる方法が最も最速
前置きが長くなりましたが、結論です。
最速にプログラミングのスキルを習得する方法は「スクールで学習しつつ自分で調べる」事です。
スクールで学習し、わからない事があればGoogle検索で調べる。
スクールで学習し、スクールで習わなかった事をやるためにGoogle検索で調べる。
スクールが難しいので、他のオンライン教材も試してみる。
これが効率的にかつ早くプログラミングを習得するための方法だと僕は思っています。
今の時代、Googleで調べれば必要な情報は出てきます。
具体的な例をあげてみます。
例1
例2
例3
こんな感じで、スクールでの学習をベースに必要に応じて自分自身で調べて付け足していくスタイルが個人的にはお勧めします。
ちなみに例3は実体験です。
僕はHTML、CSSを勉強した時、そもそもウェブカツの動画教材を理解するための土台が不十分だと感じたので、一度Progateと呼ばれるオンライン教材を使って勉強しました。
Progateは初心者にも挫折しにくいよう、ゲーム感覚でプログラミング言語を教えてくれる教材なので、基礎知識を身に着けるためにお勧めです。
※ただしProgateだけやってもホームページやWEBサービスを作る実践力は身に付かないので、あくまで補助的役割で活用した方が良いです。
また、Udemyという動画教材を販売しているプラットフォームがあり、たまに格安セールをやっている時があるので、その時の興味のある教材をピンポイントで購入するのも良い方法かと思います!
その際のポイントも「何かしらの成果物を作るためにプログラミング言語を教えている」動画教材を選ぶようにしましょう。