始めに
こんにちは〜、まんじです。
今回は「プログラミングがつらいのは最初だけなのか?」というテーマを書きたいと思います。
結論から書くと、こんな感じに個人的には思っています。
- 0~実務入るまで: 普通につらい
- 実務入ってから1~2年: わりとつらい
- 実務入って2年目以降: つらいこともわりとある
「つらいのは最初だけです!今だけがんばりましょう!」みたいなことは言われがちなんですけど、実際のところは実務入ってからもそれなりにつらいことは多いです。
というぼくの実体験と現実的な内容とつらい時にはどうすればいいのか?的な内容を今回はお届けしたいと思います。
エンジニアの年数ごとのつらみ
0~実務入るまで: 普通につらい
0~実務入るまではプログラミング勉強始めましたゾーンなんですけど、この時期が多分1番つらいというか、大変なのかなと思ってます。
つらい理由は一般的にはここらへんかなと推測してます。
- プログラミングをいくらがんばって勉強しても無給
- 仕事しながらの場合は仕事終わってから1日3~4時間とか勉強する必要あり(疲れる)
- 仕事してない場合でも1日の大半をプログラミングに費やす必要あり
- 本当にエンジニアをやれるか不安
- モチベーション維持がつらい
自分が0~実務入るまでにプログラミングで辛かったのは、イマイチ終わりが見えなかったってのとモチベーション維持でした。
「毎日やってるけど、これいつになったら終わるんだ?」と感じていて、毎日継続するのがしんどかった記憶が強いです。
このシーズンはほとんどの人が「プログラミングが良いってネットで見て始めてみたけどプログラミングつらい・・・」と思う人が多いと思われます。
実務入ってから1~2年: わりとつらい
「プログラミングがんばって勉強してポートフォリオ作って実務に入ったぞ!」となってからも、実際このシーズンは結構つらいです。
具体的にどこらへんがつらいのかというと、ここらへん。
- 実務の仕事に全然ついていけない
- タスク(仕事)が終わらないし、実装方法が分からない
- 〜までにと期日が決まってるけど、全然仕事が進まない
- 先輩に聞くにしても何をどう聞いていいか分からないし聞きすぎると悪いような気がして質問できない
すごいざっくりと書くとするなら、「やべえ!全然できねええ!!!!仕事ついていけねえ!!!!!!!くそつれええ!!!!!!」みたいな感じです。
自分もプログラミング独学で勉強してから長期インターンを始めたものの、最初の頃は仕事についていけなさすぎてまじでつらかった記憶が強いです。
コードレビュー依頼して大量のコメントが戻ってきたりとか、予定通りタスクが終わらなくて「はぁ、、、今日もだめだった、、、」とか、そんなことを毎日思って生きてました。
プログラミングを勉強して仕事入るまでの時期とはまた違った種類のつらさがこの頃はありました。
ある程度センスが良い人でも最初の頃はかなり苦戦してるってのは現場で見てると思いますけど、そこで踏ん張れる人は半年後~10ヶ月後ぐらいから普通に馴染み始めます。
実務入ってから挫折していく人も割合的にはまあまあいます。
実務入って2年目以降: つらいこともわりとある
この時期に入ってくると、徐々に「プログラミングつらい…」みたいな感情は減ってくる傾向にあるのかなとは思います。
もちろん、2年目以降でも全然ついていけないタイプの人は基本的につらいというか、その場合はここらへんで普通に挫折するか転職するかってケースになることが多いです。
基本的には1~2年目ぐらいの頃に「ちょっと無理やりプライベートでも勉強やら実装してなんとかする」ってことをしなかった人は2年目以降も微妙になるので挫折するパターンが多い印象です。
一方でそれなりに1~2年目がんばった系の人は、良い感じの会社に転職したり(ミドルベンチャーとかメガベンチャーとか待遇が良いスタートアップなど)、フリーランスなったりってパターンが多いです。
この時期は2極化しやすい時期な気がしていて、がんばれなかった系の人は挫折って感じで、がんばった系の人は年収上げたり待遇良いところに飛び立っていくような感じではあるけど、、、普通に地味に最初入った会社でシコシコ正社員を続ける人がなんだかんだで1番多いかも。
2年目以降はちゃんとがんばった系もしくは少しがんばった系の人は、「仕事ついていけなくてプログラミングつらい…」みたいなことは少ないかなーと思います。
ただ個人的には「プログラミング地味すぎてつまんなくね?」とは思ったりはします。
つらい時期にはどうすればいいのか問題
全体的な時期に言えること
大体ここらへんに落ち着きます。
- まずスキームを知ること(ゴールと現在地を把握する)
- 自分のゴールを達成するために継続すること
スキームを知るってのは、2年後とか3年後にこうなれるから、つらくても今はがんばろうみたいなスタンスのことです。
つらいからってただ無思考に耐えてもあんまり意味がなくて、「今は結構つらくても2~3年やった結果、家からフルリモートでフリーランスにして月50万円稼げそう」とかそういうふうに必要だから壁を突破するみたいなイメージです。
自分も25歳からプログラミングを始めてプログラミングでフリーランスで年800万円とか普通に取れるようになりましたけど、途中途中は正直クソしんどいというかやめたい時期は結構というかめちゃくちゃありました。
その頃はこの記事たちに書いてた。
ただ基本的に、プログラミングに限らず全スキル全職業に共通して言えるのが、さくっと楽に短期間で一般的な収入とかの得やすさを超えるのはほぼ不可能なので、ここらへんは犠牲を払うポイントかなーとは個人的には思っています。
イメージとしては、高学歴GETするために大学受験の勉強をつまんなくても1年とか継続して毎日長時間やるみたいなスタンスです。
プログラミングも同じで、2~3年そこそこ犠牲を払ってやってそこそこ高いスキルになって、自分の時間を高く売れる様にしたり専門的な知識を身につけて人生を楽にするみたいな感じですね。
0~実務シーズンまでにつらい場合
このシーズンは、とりあえずメンターでもなんでもいいので、ロードマップひいてもらって「やる」ってことに徹することが大事な気がします。
具体的にはポートフォリオ作って仕事に応募するってだけなんですけど、使う技術とかどういう会社に応募したほうがいいとか、そういう微妙なTipsとかもあったりするんで独学よりは誰かに教わるほうが効率が良いのは間違いないです。
実務入ってから1~2年がつらい場合
実務に入ってからに関していうと、1~2年ぐらいはその入った会社の仕事につらくても集中するのが大事というか、結果的にそれが将来を自分を助けるかなと思います。
一般的には仕事って労働時間だけ働きたいマインドにはなりますけど、エンジニアの場合はスキルが高ければ良い待遇で働けるようになるんで、いればっていいっていう仕事よりかは成果報酬にやや近い労働モデルです。
なので、プライベートな時間も最初の頃は使って仕事のタスクを終えにいったり周辺技術を勉強したりするってことを結構つらいですけどやってると1~2年後に良い待遇が得やすいです。
基本的には1日10時間理論とかを週3~4とかでぶちまかして、そこそこプライベートな時間もありつつ、、、ってぐらいだと良いのかなと思います。
自分の体験談的なところでいうと、長期インターンで1日6時間の稼働幅で朝2時間ぐらいだけ自分で勉強というか仕事のタスクの実装方法調べたりはしていたりしました。(今から振り返ると、全然やってない🥹)
なんにせよ、この時期は結構大事。
実務入って2年目以降でつらい場合
自分の場合だと重い実装とかよくわからない実装は「つらいな〜」って思うことが多いんですけど、2年目以降に関して言っても、、、「困った時は量を入れて解決する」ってのがベストアンサーな気がしています。
たま〜〜〜〜に、自分なんかも12時間ぐらいやる日はありますけど、基本的には長くても8時間稼働時間 + 1時間ぐらいには落ち着いてるかなーという印象です。
どうしても間に合わせたい時だけ1時間とか多く稼働するスタンス。
ちょっと間に合わないところを無理やり最後に詰め切るってのが個人的には地味に大事だと思っています。
間に合わないとかそういう状況を常に許容していると、徐々に現場というか職場からの評価とかも落ちがちなのと最後に詰めることができないっていう習慣というかベースとなるマインドみたいなものが出来上がってしまいがちかなーというところです。
2年目以降に関しては1~2年目にしっかり土台ができてれば、あとは困った時に量を入れて解決していくぐらいのスタンスにはなるかなってところです。
まとめ
「プログラミングがつらいのは最初だけなのか問題」ってことで書いてみたんですけど、最初の頃のがやっぱつらいことは多いと思います。
ある程度やってきてから(2年目以降?とか?)は、思いっきりつらいみたいなことはほぼなくなってきて、たまに実装が重いとかよくわからんとかが結構つらいことかなーとは思ってます。
要所要所でつらいことはあるんで、そのタイミングで本当にやるべきことなのであれば、乗り越えていく必要があります。
というわけで、終わりです。