皆さん、プログラミングは簡単ですか?
MENTAでプログラミングを教えているのですが、プログラミングができるのが当然と思い込んでいる人がけっこう多い印象です。
なので、プログラミングが理解できない自分に劣等感を感じている方もいらっしゃいます。
自分は現在、未経験からエンジニアに転職して3年が経ちましたが、
3年経ってもプログラミングは、めちゃくちゃ難しいです。
勉強しても勉強しても、現場で使用されている技術について網羅することはできませんし、プラスアルファ、新しい技術に関しましても常に積極的に情報をとりにいかないといけません。
SNSなどを見ていると、
「短期間でこんなサイトができました!」とか、
「未経験からフリーランスとして仕事を獲得できました」とか、
あたかもプログラミングは簡単といっているようなコンテンツもよく見かけます。
しかし、プログラミングはそんな簡単なものではありません。
今回は、自分の経験をもとに、プログラミングを習得する目安を書いてみます。
プログラミング開始〜2ヶ月目
プログラミングを始めて2ヶ月。自分は会社の研修でプログラミングを叩き込みました。
学習時間は1日15時間ほど。睡眠時間を削って、勉強してました。
2ヶ月でPHPとJavaの基本的な構文は理解しましたが、頭で理解したというよりは、丸暗記した感覚に近く、自分で1から何かプログラムを作れといわれても、全くできる気がしない状況でした。
半年:現場で揉まれる日々
研修では毎日、死ぬほど勉強しましたが、
それでも現場では全く歯がたちませんでした。
現場のソースが何を書いているのか全くわからない状況でしたが、任されたタスクはなんとしてでも完遂しないといけません。
毎日、胃が痛い思いをしながら必死に仕事にとりくみ、半年後にはPHPを使ってなんとなく仕事の仕方がわかってきたレベル感でした。
任されたタスクに関しては、なんとなくこなせるレベルにはなってきましたが、
基本がしっかりと理解できていないと痛感。
ただ、基本からメイン言語を学習、可読性の高いコードについて調べたり、最新の技術などを自発的に学習する余裕はなく、目の前のタスクをこなすことに精一杯だったと思います。
1年目:まだまだエンジニアとして仕事ができない
プログラマーに転職して1年がすぎたころに、新規開発案件にジョインしました。
新規開発案件は、運用業務とはまったく違い、いちからプロジェクトを自分で設計する力が問われました。
また、納期が押しに押しまくるプロジェクトで、開発スピードも問われます。
1年間、毎日継続して学習してきたつもりでしたが、プログラマーとしてのスキルがまったく不十分であることを痛感しました。
その当時の自分には完全にキャパオーバーで、結果、メンタルを病み、体調を壊しました。
1年半:フリーランスとして独立するも…
新規開発案件で、体調を崩し、結果、会社員をやめることになりました。
その結果、フリーランスエンジニアとして仕事をスタートさせました。
曲がりなりにも、新規開発案件も経験ができていたので、エンジニアとしてのスキルは底上げされていましたし、スタミナも昔に比べると、かなりついてきた実感はありました。
ただ、フリーランスになって、最初に着任した現場は1ヶ月でクビになりました。
個人的にはかなりショックなできごとでしたが、またしても自分のスキル不足を痛感しました。
2年目:ようやく少しプログラミングで仕事ができるように…
1ヶ月で現場から退場した後は、1ヶ月ほど仕事がない時期が続きました。
そのときに、N予備校でプログラミングを集中的に学習しました。
その当時の自分に足りないスキルを広く浅く補填することができました。(大変おすすめです!)
1ヶ月後に無事仕事が見つかりました。
PHPのプロジェクトでしたが、開発するのはLINEボット。
今まで開発したことがないプロジェクトでした。
またもや現場のソースがかなり難解で、使用したことがない技術もたくさんあり、現場も長時間労働するような雰囲気の現場でしたが、
エンジニアとして仕事をする以上、ここで終われないということで、今まで以上に必死に仕事をがんばりました。
今までタフな現場だったこともあってか、自分はなんとか乗り越えることができましたが、同じ日にジョインしたエンジニアが自分以外に数名いましたが、彼らは1ヶ月も経たない内に去っていきました。自分の前任も1ヶ月でリタイアしたみたいです。それだけエンジニアは厳しい仕事なんだなーと、理解してきた頃でした。
3年目:スキルアップ!少しずつ余裕が生まれ始める頃
現在、3年がたちました。現場もありがたいことに、今も継続して仕事ができています。
そのほかに、MENTAでプログラミングを教えるようにもなりました。
自分のレッスンでは、現場で自分が経験したような苦しい思いを少しでもしないように、必要な知識をお伝えしています。
1年で70名以上の方にプログラミングを教えさせていただきましたが、この経験のおかげで、プログラマーとしてのスキルが数倍まで底上げされたように思います。
人に教えるということは、自分の中で曖昧だった知識が整理され、
毎日何十人とコードレビューをしていると、ソースを読むスピード、可読性の高いコードの書き方など、徹底的に鍛えられました。
そのおかげで、今の現場では、少しずつ教わる側から教える側にシフトしてもいますし、ある程度の信頼も得られてきたかなと感じています。
ただ、まだまだ技術的には勉強しないといけないことがたくさんあります。
3年経って、仕事があるからといって、学習の手を止めてはいけません。
常に努力をし続ける必要があります。
まとめ:プログラミングの習得には時間がかかる
簡単に自分の経験を時系列で紹介してみました。
簡単にまとめると、
- 1年目:まったくスキルが足りない
- 2年目:少し知識がついてきたけど、現場のレベルには歯が立たない
- 3年目:少し理解できるようになってきた。自分のビジネスや趣味、新しい技術のキャッチアップする余裕が少し出てくる
というような感じですかね。
プログラミングの習得には時間がかかります。
1年、3年、5年、10年と続けることで、見える世界がきっと変わってくるでしょう。
一朝一夕で手に入る技術など、たかがすぎていますし、
その程度で現場で仕事をすることはできません。
甘い言葉に流されてはいけません。
なので、プログラミング習得には時間がかかるということをしっかりと理解していただいて、毎日自分のできることに挑戦してみてください^^