未経験プログラマーの勉強方法について
どうも、モチロウです。
ゆるくブログを続けていこうとすると気持ちが楽な反面、超不定期になってしまいますね。
書きたいことはボチボチあるのですが、生来のサボり癖が自分をブログから遠ざけてしまっているのです(いいから書けよ)
ということで、今回は未経験プログラマーであった私が転職をしてどのように勉強をしていたのか(するべきだったのか)お伝えしようと思います。
これからIT業界に転職を考えている未経験な人にとっては結構厳しい内容になるかもしれません。
しかし一個人の経験談に過ぎないので、あくまで参考程度にとどめて読んでいただけると幸いです。
さて、いきなり結論を言ってしまうと、IT業界未経験の人が独学をしつづけることはとても非効率です。
さらに独学で身に着けたスキルだけでいきなり転職をするというのは非常に難しいと思います。
理由は簡単で、独学で学べる範囲だけでプログラマーは務まらないからです。
私もプログラム学びたての頃は
「データ解析系の仕事に就きたいから、pythonやっておけばいいんだよな」
なんて簡単なことを思っていました。
それから書籍を買ってUdemyで動画を購入し黙々とインプットをメインに勉強をしていました。(ここ、テストに出るので覚えておくこと!)
しかし実際の業務ではpythonのみにとどまらずsqlもめちゃくちゃ書いています。
またAmazon Web Service(AWS)も思いっきり触っています。
そのほかにも通信がどのように行われてのか、データベース関連、インフラ周りの知識も必要になってきています。
私の場合はデータサイエンティストなので数学、統計学、機械学習などの知識習得も並行しなければなりません。
しかしデータ解析や機械学習で得られたアウトプットはあくまでも業務遂行のための道具に過ぎず、これらの結果があって初めてマーケティングや品質管理などといった分野に活かされていきます。
つまり各業界の専門知識が必要になって来るわけですね。
これらを全てがあって初めて正しい方向へと仕事を進めることができ、そこがゴールラインとなります。
と、私の場合で話を進めてしまいましたが、要は
「独学では実務で使われる本当の学習範囲が分かりづらい」
ということです。
今後は必要に応じてフロントエンドやアプリ開発系の知識も必要になってくるのでしょう・・・。
はい。ここで一息つきます・・・・・。
学ぶこと多過ぎっっっっっっっっっ!!!!!!!!
未経験だから仕方ないのですが、それにしても
学ぶこと多過ぎっっっっっっっっっ!!!!!!!!
まぁ、落ち着いていこうや。
人間誰しも未経験からのスタートなんだ。
そして今活躍しているあの人も最初は私と同じ思いだったはず
学ぶこと多過ぎっっっっっっっっっ!!!!!!!! と。
はい。一息つけましたね。
ここから話を戻します。
つまり、
「十分な知識をつけてから転職活動に臨もう」
という考えは効率が悪いのです。
だから私は
「いますぐ縁のある人にお願いして会社に入れてもらうこと」
が大事だと思います。
先ほど
『そこから、書籍を買ってUdemyで動画を購入し黙々とインプットをメインに勉強をしていました。』
と述べましたが、スキルを身に付けるためにはアウトプットも非常に大事です。
ただし、多くの教材で学べるアウトプットは写経に過ぎないと感じます。
(実際にそうでない教材もありますが)
一方、実務では常に自分で考えてアウトプットをしなければなりません。
ここが独学との差だと思います。
実務ではわからないことをインプットし、それをすぐにアウトプットできる環境にあります。
アウトプットがどのくらい大切なのかわかる記事を掲載します。
下記記事のメリット⑤以外がアウトプットの重要な点だと思います。
実務はインプットとアウトプットのバランスが取れている。
だからこそ今すぐインターンでもいいから会社に入ってスキルを身に付けた方がいいわけです。
と、ここまで
「四の五の言わず早く実務につけ!!!!」
とまくし立ててきましたが、ふと我に帰ってみたんですよ。
「どの目線で能書きたれているんだよ」と。
「おいおい、実務するにしてもそれを遂行する基礎知識なければどうにもならんやん」
と多くの読者から突っ込んでいることでしょう。
私もそう思います。
次に、私が公務員時代にどのように勉強していたかを簡単に紹介したいと思います。
まずは使ったサービスや書籍を下記にまとめておきます。
言い忘れていましたが、学んでいた言語はpythonになります。
Udemy
yukicoder(競技用プログラミング)
書籍
その他:Djangogirl(pythonを利用して実際にアプリを作る練習サイト)
(実はこれよりも倍のものを購入していたのですが、買ったままになっているのは内緒です・・・)
Udemyと書籍はインプットがメイン、yukicoderとDjangogirlはアウトプットメインという目的で、平日夜は1時間から2時間、土日はどちらも5時間程度勉強していました。
Udemyは時々 90%OFF!! といったセールを行なっていますので、そういったときに気になる動画を購入するのがベストです。感覚として大型連休や夏休みの頃に開催されているかなぁと思いますね。
そのせいで、見ていない動画が増えてしまったのですが・・・・。
Udemyは動画内で質問があればコメントすることができ、それに対して講師の方が回答してくれるのでつまづくこともあまりないのかなという印象です。
また他の視聴者の方の質疑応答も見れます。
基本的には上記にあげた教材を「深く」理解することができれば基礎知識の部分は十分だと思います。
またYoutubeでも多くの人が分かりやすい解説動画を出してくれていますので、そちらも参考にしたりしていました。
Youtuberの中にはslackといったサービスを利用してコミュニティを作り、そこで切磋琢磨している人達もいますので、独学しんどい人はコミュニティに入って勉強過程を報告するといった手段もいいと思います。
yukicoderに関してはアルゴリズム(問題が提示されており、それをプログラミングで解いていく)を考えるので学んだ言語のアウトプットとしては非常に有益だと思います。
競技用プログラミングで定期的にコンテストを行なっているAtCoderというサービスも自分のランクを知ることができるので学習するモチベーションに繋がると思います。
ちなみに私はペーペーを表す「灰色」です・・・。
競技用プログラミングは使用言語(私の場合はpython)を実際に使うこと以外に、他の人の回答方法(コード)を見ることができます。
これが非常に重要で、1つの問題に対して様々なアプローチを学ぶことが出来るのです。
これによって、新しい知識を身に付けていく事ができるわけですね。
といった感じで、公務員時代は黙々と勉強をしておりました。
今回の記事の内容はあくまで私の体験談になるので、多くの人に当てはまるわけではありません。
しかし、少なからずとも極小少数の人にはビビッとくるものがあるかもしれません。
この記事を参考にいますぐ行動に移してもらえれば、この記事を書いた甲斐があるなぁと思います。
最後に、一番大切なのは「継続すること」
新しいことに挑戦するのは骨が折れますが、一日1分でもいいから学ぶことから離れないことを意識していただければなと思います。