何が分からないのかが分からない
前提として、今までの経歴を少し書きます。
Webエンジニアへの転職前
プログラマ時代
SIerのプログラマとして開発したもの、全てオンプレミスなシステムでした。
経験言語は、VB.NET, C#.NET, C++Builder(ちょっとだけ)等で、Windows Formで作るアプリケーションがほとんどでした。
また、0からプロジェクトを作成するといったことはなく、誰かが作成したプロジェクトへ機能追加やバグ修正をしていました。 業務外にプログラミングの勉強をすることもなく「ちょっとしたプログラミングができるだけ」の状態でした。
プロジェクトリーダー時代
ずっとプロジェクトリーダーをやりたいと主張していたため たまたま社内の事情によりWebサービスのチームリーダーの席が空くタイミングで、Web系のプロジェクトに参画しました。
「リーダーはソースコードを書かずにプロジェクトを管理するべきだ」というミッションのもと React.jsで書かれたソースコードを見てさっぱり分からなかったため、SPAやMVVMなどの仕組みを勉強しながら、 わからないことはプログラマ1に質問して理解を試みました。
リーダーとしてプロジェクトを管理する上で必要な技術的要素は 都度プログラマとコミュニケーションをとることで補っていたため 自身がプログラミングすることはありませんでした。
転職を意識した頃
とあるタイミングで、SIerではなく自社製品の開発に携わりたいと考えたため求人情報を見始めました。 すると、自社開発はWeb系エンジニアの求人しかないという状況に気づきました。
しかし、その時の私はReact.js(MVVM)のソースコードはずっと見てきたので、きっと自分はWeb系のプログラマになることもできるだろう!という根拠のないポジティブさがありました。2
そして今までずっと馴染みのある(と思っていた)C#.NETでWebサービスを作っている会社に内定を頂きました。
転職直後
ソースコードがさっぱり理解できない
分からなさすぎるせいで何がわからないのかもわからず、パニックに陥りました。 そのため、どこから質問していいかもわかりませんでした。
少し整理すると、こんな状態です。
技術要素 | 経験 | 経験 |
---|---|---|
C# | 3年 | ちょっとしたプログラミングができる。 |
ASP.NET MVC | なし | 未知の世界。 |
RDB | 6年 | 初めてのRDBだったが、他のRDBではDB設計、クエリ作成、簡単なクエリチューニングができる。 |
HTML/CSS | なし | 少し読めるけど、いざ書こうと思うとどうしていいか分からない。 |
JavaScript | なし | 上に同じ。 |
GitHub | なし | 業務はずっとSVN。Gitは勉強会で少し触ったことがある(CommitのほかにPullとかPushがあるらしい、程度の理解)。 |
Jenkins | なし | 素敵なおじさんらしい。何かを動かしてくれる人??何のためにいる人なんだろう。 |
AWS | 1年 | ログインしてIAMなどの機能を触ったことがある。S3とかDynamo DBとかの言葉をさらっと勉強したことがある。 |
監視ツール | なし | 未知の世界。 |
アジャイル | なし | 憧れを持っていたので独学で調べていた。チームに「ふりかえり」の文化を取り入れてみるなど我流でチャレンジしていた。 |
優秀なエンジニアしかいない
入社前は自分でも頑張れば何かしらの役に立つと思っていましたが、井の中の蛙だったと認識しました。
周りのエンジニアは技術力はもちろんのこと、自身の取り柄だと考えていた積極性やコミュニケーション力も兼ね備えた優秀なエンジニアばかりでした。
私みたいな半端ものはおらず、自分は何ができるのだろう→何もできないのではないか、と思い始めました。
最初の1カ月
毎日、辞めることを真剣に考えました。
元のSIerに居ていれば、それなりに評価の元にずっと幸せに暮らせていたかもしれない。 何故身の丈に合ったことをしなかったんだろう。新しい会社の人たちにも、前の会社の人たちにも迷惑をかけて、自分は本当に最低な人間だ。なんてことを考えていました。
新しい会社はとても良くて、こんなところで働いてみたい、と前職で憧れても手に入らなかった環境でした。
そこで、どうにかして辞めないで良い道筋がないものか。辞める結果になるのならできる限りのことにチャレンジするか、と腹をくくりました。
どうやって今もまだ自分を保ちながら働いているのか、については次回以降にまとめることにします。