「独学でプログラミングすること」と「エンジニアとして仕事をすること」の違い

「独学でプログラミングすること」と「エンジニアとして仕事をすること」の違い

はじめに

コジマです。

未経験だけどエンジニアになりたくて独学でプログラミングを勉強しました。

そういう方は多いと思います。

未経験からエンジニアになったという人も独学しているときとのギャップを感じることがあると思います。

「独学でプログラミングすること」と「エンジニアとして仕事をすること」
ってなにが違うのかな~と思いながら自分なりに整理してみました。

そもそもプログラミングの比重はそんなに高くない

ずっと開発フェーズに携われる可能性も否定しませんが、そもそもプログラミングもとい開発というのは
エンジニア全体の業務として比重の高いものではありません。

こちらが「V字モデル」という図になります。


V字モデルとは?
より引用

開発工程(コーディング)というのは案件を受注してから納品する間の間のほんの一部でしかないことがわかります。

さらに言えば納品後に保守もあります。
保守という仕事については以下の記事もあるのでよかったら併せて読んでください。
エンジニアには保守という作業もある

よく「開発がしたい」という人の気持ち、とてもよく分かりますが、
私たちが向かうべき場所はV字モデル一番下の「コーディング」を終わらせることではなく、
V字モデル一番右上の「受け入れテスト」を完了させ、お客様に満足して利用し続けて頂くことなのです。

「お客様」というのは受託であれば契約先の企業であったり、自社プロダクトであれば利用ユーザのことを言います。

人が作ったコードを読む

仕事だと他人が作ったコードに手を加えることが多々あります。というか基本そうです。
独学で他人が作ったコードをgithubから拝借して機能追加を行った人なんかもしかしたらいるかもしれませんが、
おそらくほとんどいないんじゃないかと思います。

独学で書籍や動画などで学んできた人には膨大な量のソースコードに見えるかと思います。
そして複雑かつ難解に見えるかと思います。

それを目を凝らして読んでいかなくてはなりません。
難しいと思っても理解しなくてはいけません。書き方が汚ければリファクタしますし、コメントがなく理解しがたければ理解してコメントを書きます。

自分も他人が読んで分かりやすいコードを書きます。
コーディング規約があればそれに従います。

チームとして活躍できるようにならなくてはいけません。

期限までにやりきらなくてはいけない

納期ってやつがあります。

私たちはお金をもらって期限までにシステムを完成させるプロです。
納期までに完成させられないということは会社にとって損失であり、顧客の信用を失うことです。

スキルが低いうちは求められる成果を出すために人の何倍も働いて成果を出さなければいけない
ということもあります。

うわ~ブラックかよ・・

って思うかもしれませんが、それが裁量ってやつです。

就職できたら勉強おしまいではない

「時間外の勉強は残業に相当する」という考えがある人はこの業界向かないと思うので
なるはやで別の道を探された方がよいかと思います。

高みにいる人達は常に仕事だけでなく勉強もすることが習慣であり、
勉強が苦ではない人たちや勉強は趣味のようなもので勉強とも思ってないような人達ばかりです。

努力が習慣化できないとエンジニアのプロとして働いていくことに限界を感じるかもしれません。

さいごに

必ずしもその限りではないかもしれませんが、概ねこんな感じだろうと思います。

未経験からエンジニアに~!?みたいな胡散臭いことも実現するのは不可能ではないと思いますし
誰にでもチャンスはあると思ってはいます。

しかし、それ相応の覚悟は必要だと思います。
だってみんな日々自己研磨してるんだもの。単純計算でもそれ以上の努力なしでは追いつくことは不可能。。

やっぱり自分には合わなかったなーと言ってやめてく人も見たことあります。

甘い汁の世界ではないですが、本気で向き合えば楽しい世界なので
自分もこれからさらに精進していきます。

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


雑記カテゴリの最新記事