プロジェクトに参画して9ヶ月経ったS君の最近成長したこと。

 

前回の記事(プロジェクト参加3か月目)の要約】

 


【担当業務】
参画して3ヶ月間時点ではVue.js、C#、ASP.NET Coreを使った簡単な機能を担当しか任されていませんでしたが、現在(参画して9ヶ月間時点)では、Vue.js、C#、ASP.NET Coreを使った一覧系機能、登録・編集機能、Microsoft AzureのAzure Functionsサービスを利用した外部システムとのファイル連携する機能を担当し、主要機能を複数任せられるようになり、プロジェクトに欠かせないメンバーへ成長してきています。

 

最近では、他人がPull Requestしたコードを自主的に読んでコメントしたり、頭に思い描いたコードを書けるようになってきています。

中でも無駄な処理をしないようにする意識が高く、クラスの特性を理解したコード作成(計算量を減らすコードの書き方)は以前と比べて理解ができているように感じます。

 

【スキルアップ】

ここに上げてるのは、向上したスキルの一例となります。

 

■ PostgreSQLのスキル向上

 ・基本的なDML(SELECT/INSERT/UPDATE/DELETE)やDDL(テーブル作成や削除)などのテーブル操作

 ・テーブル結合(inner joinやleft joinの使い分け)やサブクエリを使用して複数のテーブルに跨ったデータ取得

 ・グルーピングを利用したデータ取得

 

■ C#のスキル向上

 ・Dictionary型やList型を利用したデータ生成や使い分けの理解

 ・LINQを利用したデータ抽出

 ・Dapper(ORM:オブジェクトリレーショナルマッピング)を使用したテーブル操作

 ・Dapper Plusを使ったバルク処理(データ一括操作)

 

■ Vue.jsのスキル向上

 ・propsを使用して子コンポーネントと親コンポーネントのデータ受け渡し方法

 ・emitを使用して親コンポーネントから子コンポーネントへのイベント発火(親から子へのデータ受け渡し方法)

 ・コンポーネント作成やslotを利用したコンポーネントの再利用方法

 ・watchを使用してプロパティ変更の検出

 

■ Microsoft Azure(クラウドサービス)のスキル向上

 ・C#のプログラムからAzure Storage Blobへのコンテナへの接続やBlobのフォルダやファイル読み書き操作

 ・Potalサイト上でAzure Functionsの実行や開発ツールからAzure Functionsのデバッグ実行など

 

【上司の取り組み】

■ Vue.jsの仕様理解の向上
 参画直後はC#、ASP.NET Coreを中心に習得をしていましたが、本人も希望もあって最近ではVue.jsやJavaScriptを中心としたタスクを中心に担当してもらい、Vue.jsの仕様理解するような機会を多く作っています。

 

■ 問題を考える力の向上

 何か問題があった時に今までは上司に答えやヒントを聞くというやり方が多かったですが、「その行動に何が問題なのか」「どう行動するのが良かったのか」を考えてもらい、自主的に行動を起こせるようにしています。

 

■ 報告の精度向上
 報告内容が以前は全くできなかったですが、報告の必要性を理解することで、「報告内容の方法」「報告タイミング」が改善し、仕事が円滑に進むようになってきました。

 

お世辞ではなく本当に仕事がやりやすくなり、プロジェクトメンバーからもS君へ相談が増えてきた感じはします。

3ヶ月間の研修を終えたS君は、2023年2月から研修時の上司がいる5名のプロジェクトチームへ配属しました。

 

【概要】
プロジェクトでは、開発言語にC#、フレームワークにASP.NET Core、フロントエンド技術にVue.js、クラウドサービスにMicrosoft Azureを使ったWebシステム。

 

S君の上司がPL(プロジェクリーダー)で、参画している開発メンバーは別の会社の社員ですが、3名とも20代半ばで開発経験も1-3年目と若手メンバー中心の構成となっています。

 

普段はリモートワークで仕事を行なっていますが、S君が初めての開発で不安だったため、最初の3週間は事務所に集まりマンツーマンで作業を行うようにしました。

【担当業務】
S君は最初の3ヶ月間は、Vue.js、C#、ASP.NET Coreを使った簡単な機能を担当。


最初はコードの良し悪しを説明できず、他の開発メンバーの不適切なコードをコピペして利用していたり、gitが正しく使えずconflict解消などにハマっていましたが、参画して3ヶ月が立つ頃にはコードを理解せずにコピペしていると他の人に正しく説明ができかったり、古い書き方を何も考えず使っているのは技術者として間違いだと気づき自分で考えてコードを作成できるようになり、CLIを使ったgit操作やconflictの解消も一人でできるようになりました。

 

【上司の取り組み】

Qiitaなどからコピペ元を探すやり方を身につけてしまうと、答えを見つけて自分で解決したと勘違いしてしまう技術者になってしまうため、公式サイトを見て自分で考えてプログラミングするやり方を実践してもらっています。

 

また、可読性を高めるようなコーディング、最適なコードになっているか、アルゴリズムの考え方を1つ1つ確認し、なぜこの書き方がダメなのか、どういう方法にするべきだったのかを考えてもらうようにしてもらっています。

 

【初めてプロジェクト参加してみた感想】
プロジェクトに参加する前は、新しいことに対する挑戦、成長していくこと、スクール・研修で身に着けた実力を発揮したいという高揚感がありましたが、それと同じくらい新しいプロジェクトに対する不安を感じていました。

自分自身も研修で成長した実感はありましたが、経験のあるプログラマーと比較するとまだまだ未熟なため、これから関わっていく人達に迷惑をかけてしまい見捨てられててしまうのではないかと不安を感じていました。


しかし、実際に入ってみると見捨てられることなどなく、上司は常に親身に相談にのってくれ、成長を実感する日々を過ごしております。

 

と、プロジェクト参加して3ヶ月経った今、S君は過去を振り返って上記のように話してくれました。

 

プログラミングスクールに在籍していたS君は、2022年11月に入社しました。
S君は20代半ばで、ものすごくプログラミングが好き。休憩時間を使って近くの本屋に技術系の本を探しに行くくらいです。

S君のIT業界への転職理由は、技術発展の傍観者ではなく担い手になりたいと思ったから。
前職で様々な便利なIT技術を使用する際に便利さを享受するとともに、ただ提供されているものを使用していることに対して、時代に取り残されている焦燥感を感じており、その焦燥感を解消するとともに常に新しい技術に触れ、成長する技術の担い手になるために転職を決意しました。

 

と、志しを熱く語ってくれました。

研修内容
入社して最初の3ヶ月間は上司とマンツーマンでプログラミング言語とフレームワーク研修を行いました。
※研修後の配属先がWebを使ったシステム開発だったため、今回はJavaとSpring Bootを実施。

プログラミング言語学習
 1ヶ月半〜2ヶ月の間、Javaの学習を実施。
 元々言語の知識があったのとアルゴリズムが得意だったS君の習得レベルに合わせ、少し難易度を上げて実践的な研修を行いました。
 ここでは言語の基礎知識はの習得はもちろん、最適な構文の使い分け、実践的なコーディング、公式サイトを使った調べ方を学んでいきました。
 対面で研修で行なっていたため、アルゴリズムが思いつかない時は白板を使いながらアルゴリズムを考えていく訓練をしました。

フレームワーク学習
 1ヶ月〜1ヶ月半の間、Spring Bootの学習を実施。
 ここではSpring Bootを使ったWebアプリケーションの基礎、Thymeleafを使ったフロントエンドの学習、HTTPプロトコルの基礎、Spring Data JPAを使ったDBアクセスの学習を学んでいきました。
 プログラミング言語学習でS君がよく間違えていた内容を織り交ぜた課題を用意し、言語学習の復習と共にフレームワークの理解を深めていきました。

プログラミングスクールと研修との違いとは?
S君にプログラミングスクールと研修との違いについて感想を聞いてみると、以下のように語ってくれました。


スクールと研修との違いは教育の親身さにあると思っています。

スクールの授業は画一的・一般的な内容になってしまうため、表面上の理解にとどまってしまうことが多々ありました。

また、講師の方に質問することもできましたが、自分の成果物に対する質問ではなく、単純な疑問を質問してよいのだろうかという戸惑いもあり、結果動くだけのコードを書くだけになっていました。
 

それに対して研修では、疑問に思ったことが聞きやすい環境だったり、理解度が足りていない際に追加で課題を出してくれたり、コードを書いた際に丁寧にレビューをしてくれました。
そうして親身になって指導してくれたおかげで、ただ動くだけのコードを書くのではなく、よりよいコードを書くにはどうすればよいかと考えることができるようになりました。

研修終えたS君の感想

成長したことに対する達成感と更なる成長に対する期待を感じました。
3ヶ月の間、プログラミング言語の知識だけではなく、エラーなどが出た時の対処、よりよいコードを書くにはどうすればよいかなど、より実務に通じる経験も積むことができ、確かな成長を実感することができました。
 

また、研修前と比較して、プログラマーとして働くということに対し、より明確なイメージを持つことができ、更に成長し続けていくことに対する期待も感じることができました。

と語ってくれました。
 

これからのS君の成長が楽しみです。