どうも、ウェブ系ウシジマくんです。
RaiseTechやTake off Railsでメンターをやるようになってから、これまで以上に未経験からエンジニアを目指す方々との触れ合いが多くなりました。
かつては僕も未経験からエンジニアになりましたが、色々と経験を積み2年半が経とうとしています。
過去を振り返ってみると、苦しい時期もありましたが、それでもエンジニアに転職できて良かったなと今でも変わらず思えています。
とはいえ、エンジニアに慣れても志半ばで挫折し、その道を諦めてしまうケースも残念ながらあるのも事実。
ということで、今回の記事では、エンジニアとして成長していくために必要なマインドを、ウェブ系ウシジマくんが重要だと考える3つのポイントにフォーカスして書いていきたいと思います。
常に相手が何の結果を求めているかを意識する
エンジニアの世界では、常に結果が全てです。
その人がどれだけ頑張っていようが、相手が求める結果を提供できなかった場合、容赦なく切られます。
それはどんな雇用形態においてもでして、フリーランスや派遣の場合はもちろん、正社員なら試用期間内で適性がないと思われれば、その時点でサヨナラ。
僕はこれまで、
- 受託企業でフリーランス
- SES企業での正社員
- 自社開発の正社員
といったような各業態で働いてきており、長く続いた案件もあれば、スキルが足りずに1ヶ月で終了となったこともありました。
1ヶ月の超短期で契約が終了になったのは、単純に相手が求めるスキルセットと自分が今持っているスキルがミスマッチを起こしていたからですね。
面談の際にはスキルはマッチングしていると思っていても、実際にチームで働いてみるとアンマッチだったというのはよくあります。
だからこそ、運よく面談を潜りチームへジョインできたとしても、油断してはなりません。
はじめのうちは、業務に慣れるため、簡単なタスクを任されることになると思いますが、その際に
- タスクのゴール
- タスクを完了するまでの予想工数
- タスクの緊急度
を意識することをオススメします。
これらの部分はタスク管理ツールなどで可視化されていますが、それとは別に自分の中でも考えておくことが重要です。
その上で、
- タスクを期限通りにこなす事が相手の求める事だとすれば、その期待を上回る結果をだすにはどうすればいいか?
仮に自分の今のスキルでは期限通りにタスクをこなすのが難しい場合、どういったところからなら結果をだす事ができるのか?
を考えられるといいですね。
学習し続けることに対する投資を惜しまない
ITは日々進化しています。
そのスピードは凄まじく、半年前にスタンダートとなっていた技術ややり方が既に枯れたものになっていたというのは日常茶飯事。
だからこそ、自分が今持っている技術だけでなく、常に情報感度を高めてキャッチアップしていく姿勢が成長するためには必要なんですね。
そこに対して苦痛やダルさを感じず、一定のペースでコツコツと続ける事ができる人はエンジニアの適正は大いにあると言えるでしょう。
枯れた技術を使っていたとしても、その中で新しいコードの書き方を試してみたり、より速度の速いプログラミング言語にリプレイスしてみたり。
そのような技術提案ができるエンジニアは、短期間でも圧倒的にスキルが伸びていきます。
なお、新しい技術のキャッチアップ方法には色々な方法がありますが、有益な情報というのは総じて安くないケースがほとんどです。
そういった場合に、躊躇なく自己投資としてお金をかける事ができるかどうかも、最短で習得できるかどうかの分かれ道になりますね。
試行錯誤しながら苦労し、1年掛かって技術を習得したとしても、その頃には既に使われなくなっているかもしれません。
逆に、今現場の第一線で活躍しているエンジニアからお金を払い、3ヶ月の短期集中で習得した方がいいです。
時間が節約できるのはもちろん、それによって高単価な案件に参画する事ができれば、リターンも大きくなります。
また、そのエンジニアとの繋がりという人脈も作れるので一石三鳥と言えるのではないでしょうか。
仮にその自己投資した対象が想像以上に品質が悪く、失敗したとしても、今度は自分がそれを超えるものを作ればいいだけですかね。
目先の金額だけで物事を取られず、投資する事で自分にとってリターンが大きい場合は。迷わずGOです。
質問や意見を述べる時は必ず自分なりの答えを用意しておく
駆け出しの頃、僕が一番苦労した部分がここです。
実際、質問する事は悪いことでは
ありません。
間違った認識のままタスクを進めて、出来上がった成果物が相手の求めるものと全く異なっていた場合、それも期待に答えていないことになりますからね。
ただ、どんな理由であっても、自分の仕事を放棄するような質問の仕方をするのはNGです。
最初は見過ごしてくれるかもしれませんが、それが3回くらい続いた場合、間違いなく相手からの信頼度は地に落ち、最悪の場合は契約終了になります。
自分の仕事を放棄する質問についての具体的な例としては、
「この部分のタスクを進めているのですが、どんなコードを書けばいいでしょうか?」
といったような具体ですね。
実際、僕は過去にこのような質問を繰り返した結果、当時のチームリーダーから、呼び出しをくらい、次のような言葉をもらいました。
「ウシジマくん、質問することは悪いことじゃない。
でもね、「どのようなコードを書けばいいですか?」というのは、ウシジマくんに任せたタスクを相手に丸投げしていると一緒なんだよね。
それは仕事を放棄しているのと同じ。
実際にコードを書いて試してみて、自分なりの考えを踏まえた上で質問してくれたら、答えやすいんだけどね。
申し訳ないけど、今月いっぱいで契約終了とさせてもらえるかな」
その際、僕は頷くことしかできず、言葉通りそのまま契約終了となりました。
プログラミング言語ごとには、大抵簡単に処理結果を試せるコンソール機能が備わっています。
そのコンソールやデバッグを駆使して、それぞれの変数や配列の中身をみてコードを試していく事が重要です。
何回か自分なりにコンソールやデバッグで試してみて、やっている内容に自信がなくなってきたら、それまでやったことを踏まえて方向性があっているかを質問する。
そういった形で当時の自分が進められていたら、また違った結果になっていたかもしれません。
もし、今このブログを読んでいるあなたが何かしらの教材やスクールに受講している場合、ちょっとずつでいいので、このような自分なりの答えを持った上で質問する練習をしていきましょう。
やらないと同じ失敗を繰り返すだけですが、意識して挑戦し続けることで着実にできるようになります。
具体的な質問方法のやり方に関しては、以下の記事にが参考になるので、時間があるときにぜひご一読ください。
Take off Rails
東京フリーランス
まとめ: 3つマインドを意識して成長し続けられるエンジニアになろう
今回紹介した3つのマインドセットは、無意識に出来ている人からすると「何を当たり前なことをw」と思うかもしれません。
ですが、意外かもしれませんが出来ている人の方が実は少数だったりします。
時間は有限ですし、全力投球できる期間というのはどうしても限られていますからね。
だったら、常に成長し続けられる方が後悔しないでしょ?ということです。
今回の記事が参考になれば嬉しいですね。
最後までお読みいただき、ありがとうございました。