まだまだ寒い日々が続いていますが
皆さんいかがお過ごしでしょうか?

もう少しで春の息吹とともに、社会人新生活が始まる方も
いらっしゃるのではないでしょうか。

今回は、新入社員が開発現場に出て最初の3か月間に立ち向かわなければならない問題
についてお話したいと思います。

最優先事項を3つのポイントに絞ってみたいと思います。

最低限業務を行っていく上で、プログラミングの実力がどの程度必要なのか?

入社前に行っていた学習や、入社後の研修時の学習範囲外の問題にどの程度ぶち当たるのか?

着任後も学習しなければならないことは何か?

まず、1点目「プログラミングの実力がどの程度必要なのか?」ですが
よく初学者の方の相談を乗っていて、頻繁に耳にするのが
「基礎構文は理解しているが、どうやってそれらを組み合わせて1つのアプリケーションを作成していって良いかわからない」ということです。

着任早々、開発業務で困りたくないものです。

実は「○○を身に着けると一定の水準・品質でアプリケーションが作れる技術者になれます」
という免許・資格はありません。

つまり技術者ごとに能力差がバラバラであるということです。
その能力差は、一人の技術者が1日あたりに生み出せる精度の良いコード量で測ると
数十倍から数百倍の差となって現れてきます。

スタート地点から相当な能力差が生まれたりしますが
違いを生み出している要因は、初学者の学習方法です。

受け身ベースで、写経学習のみ行っている。

作りたいアプリがあるから、どんどん壁にぶち当たって創意工夫する学習を行っている。

あなたの学習方法は、どちらに傾倒しているでしょうか?

ソフトウェア開発技術者は、毎日のように初めての事に触れる機会が多い業務です。
所見でも分析力・推論力を発揮して、本質を追求しその上でお客様との交渉や
開発メンバーと議論し業務を遂行していく必要があります。

プログラミングを行っていく製造フェーズで、仕様を正確に理解しなければならないのですが
アプリ制作経験がない場合、気持ちに余裕がなく仕様理解をおろそかにし間違ったプログラムを
実装してしまうこともあります。

後の工程であるテストフェーズでは、製造されたコードに何らかの問題が潜んでいるものです。
それを見つけるために「デバッグ」を行う必要がありますが、
1本のアプリケーションを作り上げたことのない方は、その
デバッグ力がまったく備わっていません。
恐らく原因不明のハマりからもなかなか抜け出せないでしょう。

おそらく半数の新人は既存アプリケーションの「エンハンス」担当を任されることでしょう。
機能拡張は、既存ソースを理解するところから始まります。

そこで私がお勧めしている鍛錬方法は「オープンソースコードの改変」です。
既存ソースの改変でしたら、1からアプリケーションを作成するよりずっと敷居が低いです。
オープンソースコードの改変などを行って、場慣れ感を養うことができます。
自分の向上したい技術内容と、コードの題材に恵まれる必要がありますが
写経ばかり行っている人よりはるかに使えるエンジニアになれます。

未知の分野でも自分が理解できる領域まで情報を精査し、扱えるレベルまで落とし込みアプリを完成させることができた経験数をいかに積むかがとても大事になります。

長くなってしまったので下記は次回とさせていただきます。
最後までご高覧いただきまして有難うございました。

・入社前に行っていた学習や、入社後の研修時の学習範囲外の問題にどの程度ぶち当たるのか?
・学習しなければならないことは何か?

関連記事

プログラミングでもっとも大事な事
https://menta.work/post/detail/14347/9BSOoOhvVU3D3IwUNjGF
オブジェクト指向プログラミングのメリット・デメリット
https://menta.work/post/detail/14347/slgw1gZRzsEYS7sllBgO