入社直後
大学院を卒業し、小学校から続く学生生活が終わりました。
毎朝ちゃんと起きて、弁当を作って満員電車で通勤し、居眠りせずに8時間も真面目に働くことができるのか?と不安しかありませんでした。
社会人1日目。新入社員代表の挨拶を任されたり、各所から激励の言葉をいただけたりと、なんとか前向きに過ごせました。
2日目。この生活を続けるのは過酷すぎると感じました。会社という箱に詰められ、自由がなくなってしまったような感覚。この窮屈さに何十年も耐えなければいけないと落胆しました。
3日目。2日目までの業務は手続きやPCのセットアップがメインでしたが、3日目からは、情報学やプログラミングの座学が始まりました。気づくと、昨日までの絶望感が、不思議と消えてきていました。慣れなのか、研修についていけているという自信が出てきたのかはわかりません。自分にも意外と適応力があるのだと思えた日でした。
入社して1週間が経ち、なんとか社会人生活の流れを掴めました。また、休日のありがたみと嬉しさを強く感じました。大学のときは平日に休みの日があったり、大学院に至っては、研究成果さえ出せていれば、毎日何をするかは自由だったので、休日の特別感を感じることができました。
上半期(4~9月)
社会人になった感想はさておき、1年目で習得したことの整理をしてみました。
半年間は研修期間で、プログラミングの座学や演習を行いました。。
- Pythonの学習
- C++の学習
- Gitの使い方
- クラス設計やオブジェクト指向プログラミングの座学と演習
- PythonやC++を用いたプログラミング課題
- 新人チームでの小規模なアプリ開発
大学時代は、情報系でもなく、物理の勉強や実験系の研究がメインだったため、初めは同期の中で一番進みが遅かったです。しかし、PythonはAtCoderである程度自在に扱える状態だった上、帰宅後や休日も、誰よりも勉強していた自信はありました。そのお陰で、チーム開発でも、おいていかれることはなく、課題で作成するアプリの設計に積極的にかかわることができました。
また、クラス設計は、得意かもしれないと感じました。私は、要点を理解して整理するのが得意なのかもしれません。抽象的なこと、概念的なことを自分なりに解釈し、アウトプットできるという強みに気づきました。
下半期(10~3月)
新人期間の残り半年は、現場に仮配属し、トレーナーさんについてもらいながらの実務経験です。
- Webアプリのプロトタイプ開発 2か月半
- Reactでフロントエンドアプリ開発
- AWSのバックエンド機能開発
- 機能仕様作成、実装、テストまで
- AWS環境でのバックエンド開発 3か月
特に、フロントエンド開発は未知の領域で、コードの流れが、これまでのプログラミングと全く違うことに苦戦しました。また、社内でReactを得意とする人がほとんどおらず、自分なりに本を買って読んだり、Udemyで勘所を掴んでいきました。状態管理や、描画のタイミングなど、ユーザーインターフェースを持つアプリ開発の勘所を把握できました。ここを乗り越えたことで、やれる!作れる!と思える領域が広がりました。
AWSは、使い方さえ知ってしまえば、比較的理解はしやすかったです。バックエンドのほうが、頭の使い方は簡単そうだと感じました。
3か月目からは、比較的大規模なWebシステムのプロジェクトの一員として、サーバーサイド(バックエンド)機能改修を担当しました。プロジェクトのコードや仕様の理解の仕方を、手探りで学んでいきました。
ここで初めて、規模の大きな初見のプログラムを読むのに、データの入り口と出口までの流れを、アーキテクチャーレベルで追う、という感覚を身に着けました。特に、ドメイン駆動設計。UseCaseやRepositoryのような層構造は、見通しをクリアにしてくれました。
他にも、報告や質問、人に頼ることの大切さを学びました。
取得した資格
基本情報技術者試験
入社して1ヶ月、GW明けに初回受験し、合格しました。A問題対策では、IT用語を一通り理解できるようになりました。B問題はほぼプログラミングの穴埋め問題でした。Pythonは学生時代にAtCoderでかなり直感的にコードを書けるレベルだったので、満点をとれました。
AWS Certified Cloud Practitioner
業務でAWSを使うようになったので、初心者向けの資格を取得しました。勉強期間は1カ月程度。サービスの名前と特徴を覚えることができたので、日々の報告で周囲の業務内容を何となくわかるようになりました。
良かったこと
1年目でとにかく広くやれたことです。システムの全体像と、それぞれの技術領域(バックエンド、フロントエンド、スマホアプリ、インフラ構築など)が、大体何をしているかを理解することができました。また、「広く浅く」の状態ををなるべく補強すべく、自分なりにやったことと周辺知識の勉強もしました。
次年度に応用情報技術者試験に合格できましたが、1年目で、微力ながらも関係する領域の広いシステム開発に携わり、自分事として捉えて仕事をできたことが大きいと思います。
気づいたこと
社会人は、考えていたより自由かもしれないと思いました。満員電車が嫌なら歩くか自転車で通勤すればいいし、有休を取得して旅行にも行けます。しかも、計画的に有休をとれば、休んでいるのにお金が出ます。仕事へのやりがいは、技術力の向上や、資格取得などに見出すことができます。
学生時代に思い悩んでいた、社会人になったら、自分を保てなくなるのではないか、という不安は、意外にも杞憂でした。
読んだ本
- 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方
- 独習Python
- 独習C++ 新版
- 図解即戦力 Amazon Web Servicesのしくみと技術が これ1冊でしっかりわかる教科書
- モダンJavaScriptの基本から始める React実践の教科書 (最新ReactHooks対応)
今後について
サーバー開発を極めたいです。特に、大規模開発を加速させるような、アプリケーションの設計手法や、CI/CD環境を構築方法を学びたいです。
コメント