未経験エンジニア1年目：学びにおいて効果的だと感じた取り組み

## はじめに
　この記事では2023年度、新卒1年目(SE1年目)の振り返りをしようと思う。IT知識・プログラミングスキルゼロからの私にとって、IT業界につま先を踏み入れた2023年度は、全てが初めての経験・学びで個人的にはとても楽しかったし、悔いのない1歩を踏み出せたと感じている。何がその要因かは明らかで、それはアサイン先での取り組みであったと思っている。
　具体的な取り組みは後述するとして、そもそもの背景を簡単に記載する
## 背景
　2023年度私はOJTとして、同期5人とアジャイル道場にアサインされた。アジャイル道場では、アジャイルコーチの指導の元、PBL(Project Based Learning)にて、開発スキルを培っていくというものだった。とは言っても実際の開発時間は1日4時間と決めており、残りの時間は土台となる知識やスキルを学習する取り組みに費やしていた。私個人としては、もちろん開発を進める上で開発スキルやPOとのコミュニケーションの取り方など多くを経験できたと思っているが、未経験者からすると、より効果的だったと感じるのは開発以外の学習としての取り組みの方である。
　実際に行っていた主な取り組みと概要・感想が以下である。

## 取り組み内容
* 読書会
* 技術記事投稿
* 外部のカンファレンス・勉強会への参加
* 資格取得
* Java 100 本ノック
* RoboCode
* 実技試験
* （同期とのチーム開発）

### ~読書会~
#### 概要
　アジャイルコーチからSE1年目が読むべき本を推薦していただき、チームメンバー間で読むタイミングを合わせ、書籍の内容に関してのディスカッションを行った。
以下がアジャイル道場の読書会で読んだ主な書籍である。
* SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発
* エクストリームプログラミング
* アジャイルサムライ−達人開発者への道−
* 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
* 達人プログラマー ―熟達に向けたあなたの旅― 第2版
* リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
* リファクタリング(第2版): 既存のコードを安全に改善する
* テスト駆動開発
* Clean Architecture　達人に学ぶソフトウェアの構造と設計
* 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方
* JUnit実践入門 ~体系的に学ぶユニットテストの技法

#### 感想
　知識ゼロの私からすると、何が正しいことなのか右も左もわからない状態の中で、正しい知識の土台を作成するという点においてはかなり有用だったと感じている。そもそも自分一人だったら何を読むべきなのかすらわからなかったと思うしそういう意味でも読む本を指定していただけたことはとても助かった。

### ~技術記事の投稿~
#### 概要
　得た知見のアウトプットや参加した外部のカンファレンスの感想を記載した記事を投稿した。

#### 感想
　アウトプットすることで知識として定着することを改めて認識した。とは言いつつも 2023 年度はそこまで記事を投稿できなかったので 2024 年度は自分の中で投稿に対する敷居を下げどんどん投稿していきたい（目標は月1ペース）。
　あとはマークダウン記法はこの Qiita の記事投稿を通して習得できた気がしている。

### ~外部のカンファレンス・勉強会への参加~
#### 概要
　SE として勉強になる有用な王道カンファレンスをアジャイルコーチから教えていただき参加した。
　以下が昨年度参加した主なカンファレンスである。
* Developers Summit 2023 Summer（2023.07.27）
* 開発生産性の未来：世界と日本の最前線事例から培うFour Keys向上〜ハイブリッドカンファレンス〜 (2023/11/28 12:00〜)
* プロダクトマネージャーカンファレンス 2023 | pmconf 2023
* Developers CAREER Boost 2023 （2023.12.09）
* CloudNative Days Tokyo 2023
* Regional Scrum Gathering℠ Tokyo 2024
* Developers Summit 2024（2024.02.15-16）
* Object-Oriented Conference 2024

#### 感想
　モダンな技術知識はもちろんだが、社外の世界、自社の立ち位置、自身の市場価値など、社内に閉じこもっていたら絶対に把握できないことを把握できるとても良いチャンスだと感じた。
　あとは、同期と一緒に参加できたこともとても助かった。仮に自分一人だったらなかなか参加しづらかったと思うし、行っても楽しさを見出せなかったかもしれない。

### ~資格取得~
#### 概要
　アジャイル道場としては以下の資格を取得するために、勉強時間や費用を設けた。
* アジャイル検定
* Java Silver
* Java Gold

#### 感想
　資格勉強を通じてシンプルに Java という言語の文法や書き方を体系的に学ぶことができた。確実で開発業務内でのコーディングレベルがアップしたと感じる。
　また、チームとして最低限の知識が共通認識として出来上がることで、チームの開発力の底上げにも繋がったと感じる。
　
### ~Java 100 本ノック~
#### 概要
　Java の問題集を用いてコーディングスキルの向上を計った。
https://github.com/JustSystems/java-100practices
#### 感想
　Java のコーディングを「学ぶ」というよりかは、実際のコーディングによってアウトプットを習慣化することで「慣れる」ことができた。また、他の人と自分のコーディングの違いもわかるのでかなり勉強になる。

### ~RoboCode~
#### 概要
　プログラミングで自身のロボットを作成してチームメンバー間で覇者を決めた。
#### 感想
　Java の基本的な文法の実践の場として楽しくアウトプットできた。また、結構盛り上がるのでチームの親睦を深めるというコンテンツとしても活用できそうだなと感じた。

### ~実技試験~
#### 概要
　アジャイルコーチから出題される簡単なAPIを実装する試験。
#### 感想
　単純に Java のコーディングスキルもそうだが、DDD や TDD、DB、Javadoc、エラーハンドリング、Dockerなど、1年間通して学んだことの集大成のアウトプットをする場として最適な問題と環境だった。細かく評価もしていただけるし、受かるまで何度も挑戦させていただいたのでかなり勉強になったし、確実に成長できたと感じている。また、一人でエラーの解決をして、正常に動いた際の脳汁が溢れ出てくる感じ、プログラミングの楽しさを知ることができた。

### ~同期とのチーム開発~
#### 感想
　同期だからこそ何でも話せるし質問をするハードルがめちゃくちゃ低くて、未経験で右も左もわからなかった私からするとめっちゃくちゃ助かった。また、同期だからこそ近い目標として据えやすく切磋琢磨できる環境だったと感じる。
 
## 終わりに
　以上が1年目で開発業務以外で行った主な取り組みである。本当にどの取り組みも自身のSEとして生きていく上での血肉になったと思うし、そのような環境やアジャイルコーチ、チームメンバーに囲まれていたことはかなり幸運だったと感じている。おかげでSEとしての1歩目を気持ちよく踏み出せたので、この1年で経験したこと学んだこと感じたことを無駄にせず邁進して行こうと思う。