転職後、最初の1カ月にやったこと(メンタル編)
長くなりそうだったので、「メンタル編」「スキル編」に分けようと思いました。 まずは「メンタル編」です。
自分を騙す
こんな優秀なエンジニアだらけの素敵な環境で働けてラッキー♪ みんなに迷惑かけるけど、自分の成長のために好きなだけ勉強させてもらおう!
と、自分を騙すことにしました。
本当は上記のような考え方がとても嫌いです。 けれど、このままではずっとネガティブなことばかり考えていては、自分の行動を全て否定してしまい、動けなくなってしまう、と思いました。
そこで上記の考えを好き嫌いの軸で考えて、嫌いだからやりたくない、という自分を騙すことにしました。 積極的に上記の考えになることで、ポジティブに行動ができるようになり、迷惑をかけない存在に到達することへの近道と考えたためです。
自分を正しく評価をする
自分を騙し、日々を過ごしながらほんの少しできることが増えてきました。
自分ができることなんて、もちろん周りの優秀なエンジニアと比べると意味のないような些細なことばかりです。
そうやって自分のしたことに対して価値を見出さないことで、毎日が辛いのであれば比べなければ良い。相対評価の癖をやめて、絶対評価をすることにしました。
どんなに小さなことでも自分がしたことに対して評価をするために、自分がしたことを文字に書き起こしました。
「分からない」が言える環境を作る
私は新卒の頃に質問をすることにあまり抵抗がない方でした。
自分が社会人として何の力もないことを理解した上で、今自分が分からないことを無くしておくことで今後きっと会社に貢献できるだろう、自分が質問をすることは会社・自分の双方の利益だと考えたからです。
けれど、今回は違いました。
自分をさらけ出す
恥ずかしがる自分を知る
周りがあまりに優秀なエンジニアだったので、私もきっと優秀なエンジニアを期待されているのでは、と考えてしまいました。 そのため、自分をさらけ出すことに恥ずかしさを感じました。
そのため(私が勝手に考えた)周囲からの期待を裏切りたくないと思ってしまい、下手な質問ができずにいました。
新卒の頃の自分と比較し、会社の利益より自分の感情を優先してることに気づきました。 しかし、このままでは会社に何の貢献もできないまま去っていくことになる、と思いました。
スキルが低いことを周知の事実にしてしまう
わからないこと、出来ないことを言うことにしました。
自分から周囲の期待値を落とすことで、私は「何の力もないこと」自他共に理解した上であれば、恥ずかしがるものはなくなります。
例えば
「CSSを書いたのは今日が初めてです。」
「このファイルに書かれていることが1行目から全部理解できていません。」
みたいなことを積極的に発信するようにしました。(もちろんとても辛かったです)
チームメンバーを信じる
教育担当がいないことへの不安
新卒と違って中途入社なので、チームメンバーに私を育てる義理はありません。
まずチームに参画した際に、誰に質問すれば良いか聞いてみましたが、チームメンバーの誰にきいても大丈夫だよ、と言われました。
しかし、担当が明確になっていないことにより、私のような出来ない人の面倒をみるようことを貧乏くじのように感じているメンバーがいたらどうしよう、と不安に思いました。
相手に「質問していいよ」と言わせる
私はエスパーではないので、会話というコミュニケーションでしか知りえる方法はありません。
チームメンバーが全員そろっている場で「自分が質問をすることで、迷惑だと感じている人がいるのではないかと不安に思う」と言いました。 どんな時に質問をしても迷惑でないか、どんな粒度・タイミングなら問題がないか、などを聞きました。
その時に「今のままの質問ペースでいい」「細かなことまで聞いてくれて良いと思っていた」等、メンバーが言ってくれた肯定的な言葉を信じることにしました。 (ここでも言葉の裏を探ろうとしたり、メンバーを疑おうとする心は不要のため、「自分を騙す」ことにしました。)
たくさん愚痴を言う
自分の感情の整理のため、家族や友人にたくさんの弱音を吐きました。
真摯に耳を傾けて、時にはアドバイスをくれるような関係の人がいることは、本当に有難いと思っています。
愚痴を言い続けることがないよう、その人たちのためにも、はやく現状を改善するための行動しないとと思いました。
メンタル面への取り組みについては以上です。
次はスキル不足を補うために取り組んだことについて書きたいと思います。
何が分からないのかが分からない
前提として、今までの経歴を少し書きます。
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に居ていれば、それなりに評価の元にずっと幸せに暮らせていたかもしれない。 何故身の丈に合ったことをしなかったんだろう。新しい会社の人たちにも、前の会社の人たちにも迷惑をかけて、自分は本当に最低な人間だ。なんてことを考えていました。
新しい会社はとても良くて、こんなところで働いてみたい、と前職で憧れても手に入らなかった環境でした。
そこで、どうにかして辞めないで良い道筋がないものか。辞める結果になるのならできる限りのことにチャレンジするか、と腹をくくりました。
どうやって今もまだ自分を保ちながら働いているのか、については次回以降にまとめることにします。
ブログを始めます
何のためにブログを書くのかを、自分のためにまとめておこうと思います。
ブログを始めるきっかけ
転職
大学卒業以降SIerを2社経験し、昨年秋頃にSIerという枠からの離脱を考えました。
そして、ありがたいことに先々月より自社開発のWebサービスをやっている会社で働き始めました。
入社後の壁
入社前は、自分の技術力は高くないけれどなんとかなるだろう。と思っていたのですが
、いざ業務が始まると本当に世界が違うということを痛感しました。
何が辛かったかというと、
- ソースコードがほとんど読めない
- 同僚の言葉が難しくて会話が理解できない
- 同僚の技術レベルが高い
今まで自宅にPCもない開発環境もない状態で過ごしてきたのですが、これまでと同じ生活をしていたら業務についていくことすらままならない、という現実に直面しました。
自己学習を始める
SIerに居たころには技術力の向上に目を向ける必要性がありませんでした。
プロジェクトリーダーをやらせていただいた際も、ソースコードを書かなくてよい。書かないでうまくプロジェクトを管理できる方法を模索したほうが良い。という考えの元に働いていました。
そのため、転職後初めて自分の技術力に向き合い、苦しみながらもどうするべきかを考えました。
そして、業務時間外の自己学習を始めました。
恥ずかしいことに30代にして初めて自宅で開発環境を構築しました。
ブログを書く目的
自己学習の備忘録
このブログは、主に自己学習内容の備忘録として作成しました。
「どんな学習をして何を学んだか」を主目的としつつ、
「何にチャレンジしてどう思ったか」「新しい会社働くうえでの悩み」も書こうと思います。
言語化スキルに向き合う
現在の会社の最終選考時、「貴方はしっかり考えているのに、言語化が上手ではない。言語化スキルを伸ばすことが貴方の課題だね。」と言われました。
その上で内定をいただいたのですが、その時から「言語化」というものに目を向けました。
ブログという他の人の目にみえる場所でアウトプットを日常的に行うことで、言語化スキルの向上も狙いたいと考えています。
[補足] ブログに書かないこと
自戒のために記載しておきます。
- ネガティブなこと"だけ"をかかない
- 会社の愚痴"だけ"をかかない
"だけ"という部分には、何らかの現象や感情に対して、それを分析した上で次につなげる行動を書いたり、自分が持つべき志をかくようなものであれば可としようと思っています。