プログラミングは転職してさっさと現場で学べ
はじめに
最近、プログラミングを勉強する人が急激に増えてきましたが、自分もそのうちの一人です。
2019年の10月くらいからプログラミングを本格的に学習し始めて、2020年の4月にWebエンジニアとしてベンチャー企業に転職しました。
実際に独学で勉強していた時と、今エンジニアに転職して現場に入ってからを比べると、圧倒的に学習効率が違うことを実感しています。
やっぱり当たり前ですが、独学で学習するには色々な制約事項があって到達できるレベルには限界があります。
もし、副業で小銭稼ぎをしたいとかではなく、
- エンジニアとして転職して本業にしていきたい
- フリーランスエンジニアになってがっつり稼ぎたい
- 週3のリモートワークみたいなゆるい働き方をしたい
と思っているのなら、すぐにエンジニアに転身して現場で学びましょう。
理由を言わずとも、独学よりも現場で学んだ方がいいということはなんとなくわかると思いますが、今回は実際に自分が現場に入ってみて、感じた現場で学ぶメリットをしっかり言語化してみました。
現場で学ぶメリット
毎日8時間、強制的に学習できるから
エンジニアとして就職すると、当然毎日8〜10時間、強制的にプログラミングと向き合う時間を作ることができます。
独学しているときは、自分の本業があって、それが始まる前とか終わった後にしか学習することができません。
自分は、エンジニア転職する前、朝の7時から9時半、夜は20時から23時まで5時間半以上を学習していましたが、他の人は2時間とか3時間とかもっと少ないはずです。
独学では、朝はともかく、夜は本業で体力が削られたあとに、たった2時間ほどしか学習することができません。
これは体力的にも、学習時間的にも、かなり効率が落ちますよね。
ただ、一方でエンジニアを仕事にしてしまった場合は、プログラミングに全体力を当てることができて、なおかつ10時間くらい学習することができます。
体力と学習時間という観点では、現場以上の学習環境は存在しません。
自分も実際に現場に入ってみて感じた一番の恩恵は、この毎日10時間ほど強制的に勉強ができるという点です。
転職する前までは、早起きして一番初めに会社に行って、一番最後に会社から帰るという毎日を過ごして学習時間、作業時間を確保してましたが、やはりなかなかしんどいものです。
好きでやっているので嫌になることはないですが、体力的にしんどくなる日もありました。
今は仕事中に勉強ができるので、逆に仕事以外の時間はYouTubeやブログなど、プログラミング以外のことに時間を使えるようになりました。
これぞ最高の歯車が回っていますよね。
一日のなかで無駄に過ごしている時間がほとんどなくなったわけですから。
皆さんも実際に転職してみたら、このメリットは肌身に実感できると思います。
最高のメンターが周りにたくさんいるから
現場に入ると、会社にもよりますが優秀なエンジニアがゴロゴロといます。
もしわからないことがあれば、彼らがすぐ近くにいるので、すぐに聞きに行くことができるわけです。
そうすれば大体のことは一瞬で解決してくれます。
他の学習でも共通して言えることですが、特にプログラミングの場合はメンターの存在が大事になります。
自分のように勉強に慣れている人間であっても、やはりプログラミングは難しいので、わからないことは頻発します。
特にエラーにハマったら抜け出すのってなかなか大変ですよね。
ググれば大抵は解決できますが、ググってもググっても全然分からないこともあります。
そういうときは、わかる人に聞くのが一番早い。
しかし独学の場合は、身近にプログラミングができる人がなかなかいないので、それがなかなかできません。
プログラミングスクールに通うか、交流会や勉強会に参加してエンジニアと仲良くなるしかなさそうです。
しかし、どちらにしてもスクールの場合はお金がかかるし、勉強会などに参加して、質問できるレベルの知り合いを作るのはなかなか大変そうです。
メンターを雇うにしても、お金がかかって、なんだかな…という感じです。
一方で、エンジニアとして現場に入ってしまうと、周りに大量に優秀なメンターがいる上に、同じ社員として働いているわけなので、気軽に質問することができます。
個人差はありますが、大体のエンジニアさんは優しく教えてくれます。
あまり難しいことは独学ではやらずにおいておいて、必要最低限のことだけ学んで転職してしまう。
そして、難しいことに関しては現場に入ってから優秀なエンジニアに聞きながら学習するというのが一番効率的なので、皆さんもその作戦でいきましょう。
仕事としての責任感・義務感があるから
当然仕事をしているわけですから、自分に任された仕事を確実に納期までに全うする必要があります。
自分がやらなければいけない、そして期限が決まっているという強制力は驚くほどに自分を成長させてくれます。
理由の一つ目の「現場に入ると10時間強制的にプログラミングと向き合うことになる」というところでも出てきましたが、やはり学習において「強制力」がキーワードになります。
任されたからには、分からなくても、初めてやることでもとにかく絶対に遂行しないといけません。
納期までに遂行するために、死に物狂いで考えて、死に物狂いで調べて作業に取り掛かる事になります。
なかなか独学しているだけでは、死に物狂いで作業に取り掛かるのは難しいものです。
工夫することで一定程度まで集中力を高めることはできますが、死に物狂いで作業するという境地までには、なかなか至りません。
しかし、仕事でプログラミングをしていると、毎日最強に集中している状態です。
特に、プロジェクトの納期がはっきりと決まっている受託開発企業ではそういう傾向が強いです。
自分も現場に入ってからまだ日が浅い時でも、一週間でGithubが扱えるようになったり、Dockerの理解がかなり深まったりと、毎日確実にできるようになることがありました。
前職の大手企業にいた頃は、1日が終わった後に「あれ、今日なんの仕事をしてたっけとか」「今日は何ができるようになったんだろう」と疑問に思う日が多々ありました。
しかし今は、毎日毎日成長時間があってめちゃくちゃ充実しています。
もともと好奇心旺盛で勉強好きなので最高の環境ですよね。
皆さんも現場に入って、責任感と義務感に束縛されちゃいましょう。
実践を通して広く深く学べるから
実践を通して学ぶことの一番のメリットは何と言っても、チームでの開発経験が積めることです。
これは独学で勉強しているもの同士がチームを作って、開発しない限りは不可能です。
初心者同士がチーム作って何か一つのアプリを作ってみるというのもできなくはないですが、明らかに効率悪いので、そんなことをしている暇があったら、すぐにでも転職して、プロのエンジニアの中で揉まれた方がいいです。
現場に入ると、Githubでの共有の仕方、役割分担の仕方といったチームでの開発手順を学ぶことができる。
どこの会社もチームで開発するのが普通なので、チームで開発するというのはどんな感じなのかを知ることができることは大きいです。
次に転職するときも実務未経験ではなく、自信を持って「チームでの開発経験あります!」ということができる。
また、現場に入ると「そんな便利なソフトがあったのか」とか「そんな便利なツールがあったの」みたいな発見がいっぱいあります。
レベル低い話で申し訳ないが、現場に入るまで、GithubをGUIで確認できるSourcetreeとか、データベースをGUIで確認できるSequel Proを知りませんでした(笑)。
そしてこれらが便利すぎて感動しましたね。
Source treeとかGUIでコミット、プッシュ、ブランチの作成とかがクリックするだけでできるので、かなり楽です。
しかも、マスターと各ブランチの関係がビジュアルで示されているので、どのブランチがいつどこから切ったものなのかがすぐにわかります。
もし、まだ使っていない方がいればぜひ使ってみてください。
SourcetreeやSequel Proだけではなく、まだまだ現場に入ってから初めて知るような、ベテランエンジニアさんが使うツールやソフトウェアがたくさんあります。
このようなツールやソフトウェアによっても、さらに学習効率が上がっていきます。
最後に
ここまでで、現場で学ぶメリットについて4つまとめてきました。
まだまだ現場で学ぶメリットはあるぞという人がいると思いますが、パッと思い浮かんだものを列挙してみたので、今回はひとまずここまでとします。
自分の肌感覚だと、この4つのメリットが全て作用して、独学の時の50倍くらい(50倍という数字は適当です(笑))学習効率がいいんじゃないかと思います。
もし、エンジニア転職を目指しているなら、ポートフォリオを作り込んだり、転職に不要なスキルを覚えたりせずに、転職するのに必要なスキルセットのみを学習してください。
いかに独学期間を短くして、いかに早く転職するかが勝負です。
ある程度学習し終えて、それなりのポートフォリオサイトを作ったら「まだ不安だな」「まだ技術が足りていないかも」なんて思わずに、とりあえず面接に行ってみてください。
それで採用されたらラッキーです。
さらにいうと、それなりのポートフォリオサイトを作ってさえいれば、あとは面接でのコミュニケーション能力や人柄で採用されるので、技術力なんてそれほど気にしなくても大丈夫です。
未経験という時点で、面接官は誰もその人に技術力なんて求めていません。
必要なのは「やる気」「熱意」「自走力」「一緒に働きたいと思わせられるか」
これだけです。
ここにDockerやkubernetes、CircleCIが扱えて〜のような技術条件を未経験に求める企業はほとんどありません。
とにかく要するに採用に大きく影響するのは、技術要素以外の部分なので、ある程度学習したらすぐに転職活動を始めてください。
エンジニア転職活動については、よくされる質問や、ポートフォリオサイトのオススメの作り方などを、他の記事でまとめているので、そちらも参考にしてください。
- 毎日8時間以上強制的に勉強できるから
- 最高のメンターが周りにたくさんいるから
- 仕事としての義務感や責任感があるから
- 実践を通して広く、深く学べるから
今回の内容については以下の動画でも解説しているので、ぜひご覧ください^^