現場でジュニアクラスのエンジニアの方を指導する機会を得た際に、1on1(1対1で仕事の悩み事や雑談をするコミュニケーションの場)でお話する際によく聞く言葉があります。
「自分はエンジニアに向いてないと感じる」
「と感じる」に一縷の望みと教えてもらっている相手への遠慮が含まれている日本人らしい気遣いを感じさせる言葉です。
しかしながら、もしあなたがエンジニアを目指そうとしていて「向いていないかも」と思ったら早めに理解しましょう。
あなたはエンジニアに向いていません。
というよりも、全人類の中で向いている人なんておそらくいません。
たいていの場合、エンジニアの仕事に慣れてきて「ある程度やれる」ところまで到達したあたりで「向いてないかも」と考えるのをやめる段階に入ります。ですが、その「ある程度やれる」までたどり着けるかどうかが「向いている」か「向いていない」かの分かれ道になるでしょう。
このコンテンツでは、ストレートに「最後は根性頼み」という結論に至りますが、なぜその結論に至るのか興味がある方は読んでみてください。
エンジニアをしていると「すごいなぁ。自分は理系全然わからない」と言われることがあります。
運営者の田邉は文系です。理系科目は比較的得意でしたが、専門的にコンピュータサイエンスを大学で学ぶ機会はありませんでした。
おそらく大学でコンピュータサイエンスを学んだ人でさえ、実際に営利サービスを開発するときに大学で学んだ内容が役立つ機会はそう多くないでしょう。なぜなら、コンピュータサイエンスは将来的に学生が営利サービスを開発することを前提に作られた学問ではないからです。
こういった背景から、現場で役立つエンジニアは現場で育つという当たり前の概念があります。
プログラミングスクールなどで「より現場に近い環境」を提供しているサービスも増えましたが、それでもやはり暗黙的に尻を叩かれながら進捗を確認しつつシステムを構築していくことは緊張感のある状況の連続です。
そのような状況下では文系出身、理系出身、芸術出身、体育出身など関係なく、「仕事の成果」しか関係なくなります。そしてそれはエンジニアのみならず、すべての職種で共通する現実です。
IT業界はとにかく技術的進歩のスピードが速く、昨今ではChatGPTを代表としたAIプロダクトが世間を驚かせる日々です。
これによって「多くの職業はなくなる」と言われていますが、実質的にシステムのような広範囲にまたがる知識を必要としつつ、勘所やら暫定対応やらを求められる仕事はなくなるとは思えません。
学び続ける気概さえあればAIにも勝てます。
逆説的にいえば、実装をコピペで済ますエンジニアや古く非効率なやり方に囚われ続けてしまうエンジニアは淘汰されるといってよいでしょう。
「勉強が好き!」と声を大にして言える人は多くないと予想されますが、「何かを学んで問題を解決する達成感」は経験したことがある人であれば快感であることは理解できるはずです。
エンジニアの現場はこういった頭を悩ませる対象は尽きることがありません。もし問題解決後のコーヒー(茶でもOK)がおいしく感じられるなら、あなたはエンジニアに向いていると言えるでしょう。
エンジニアの現場で発生する多くの問題は「気合いと根性」で解決できます。
ひたすらログを漁ったり、ひたすらトライ&エラーを繰り返したり、ひたすらググり続けることは日常茶飯事です。
「泥臭い」と表現されやすい地味で大変、しかし高尚な作業ではありますが、エンジニアにとってこの耐久力テストは当たり前になっていきます。中学校の部活動などで「これなんの意味があるの?」と思える基礎練習をひたすら繰り返すように、我々エンジニアは「結果的に無駄だった」経験は膨大な量になります。
こういった経験でさえ、呼吸をするように日常生活に気合いと根性を溶け込ませることができることはエンジニアにとっての必須技術です。
さらに社会性が求められます。コミュ力ではありません。
こういった気合いと根性はシステムだけでなく、ステークホルダーやマネージャーといった「システムの内部事情に明るくない人」向けに進捗や状況を伝達するホウレンソウ(報告・連絡・相談)にも適用されます。伝われないなら伝わるまで、という英会話でのコミュニケーションに似ているところがあります。
また、リモートワークしやすい職業がゆえに自身の仕事の成果を正しく伝え、決まり事を守る社会性も大切な能力です。
会社支給の端末で違法アップロードサイトを閲覧してはいけませんし、昼寝から目覚めるのが遅れてWeb会議に遅刻してはいけません。
一昔前であれば、エンジニア(というよりプログラマ)はひたすら黒い画面と格闘する孤高の戦士のイメージがありました。もっと言えば3K(きつい、汚い、危険)な職業とすら言われていました。
時代の変遷に伴いこのイメージは完全に払拭され、ベンチャー企業の求人ページなどを見ると、都会のおしゃれなオフィスでおしゃれな方々が楽しく爽やかに仕事をしている風景がよく見られるようになりました。
リモートワークが隆盛を誇る現在においても、コミュニケーションに重きを置くことで認識齟齬をなくす努力や状況確認を都度行っていく姿勢を保持するための努力はどの企業でも実施されています。
このような中で、エンジニアも当然、一人の社会人としてコミュニケーション能力を求められます。
実際、カタカタとキーボードを打ち込み続けることができる時間はそれほど多くなく、仕様策定の打ち合わせやらプロジェクト管理やらでチームメイトと連携を取り合う時間は膨大です。無駄なミーティングをなくしましょう、というのが現代でもよく見られる光景ではありますが、それでもコミュニケーションを少なからず取りながら仕事するのが当たり前なのでコミュ力は最低限持っておきましょう。
先述した通り、都会のオフィスでスタイリッシュに働けるような空気感はありますが、実際は泥濘を進むごとく様々な問題に対処しながら仕事をすることになります。
突然降ってくる謎の仕様、厄介かつ問題解決の糸口さえつかめないバグ、さらにクライアントワークではお客様の意図を考慮しながら「あえて最適化しない」という現象も起こりえます。
もしあなたがスタバでMacを開いて優雅なコーディングをして、一息つくためにアフタヌーンティーを楽しめるエンジニアを目指すのであればエンジニアへの夢を止める以外の選択肢がありません。コーヒーを流し込み、必死に脳を覚醒させながら世界に悪態をついた後に自身の能力不足を嘆き続けるお仕事です。
フリーランスであれば回避可能ではありますが、一人の企業人であれば社内政治のようなものと無縁になることはありません。
上長がはりきって社内の問題を巻き取り続けると、当然チームメンバーとして巻き込まれます。これが出世競争やボーナスアップ作戦に乗るだけならまだしも、単なる上長の独り相撲だったときはいくらかストレスを感じる可能性があります。
エンジニアはアーティストではなく、企業やプロダクトにおける労働者であることを忘れてはいけません。
会社に利益をもたらすことでお給料をいただく一般的な労働者です。営業の方々とも仲良くするべきですし、総務の方々とも仲良くやっていけるように心がけましょう。
自分自身、何度「向いていない」と思ったかわかりません。
ひたすら目の前のタスクを消化し、新しいプロジェクトが始まれば使われている技術を学んで実践する、を繰り返していたら10年以上の月日が経っていました。
辞めなかったのは生活のためです。
今でも自分がいわゆる「ハッカー(優秀なエンジニアの意)」であるとは思えません。人より少しだけエンジニアの現場に慣れているだけです。
「向いている」とか「向いていない」とか考えるより前に、とにかく頭と手を働かせて呼吸をするように仕事できるようになることが大切です。
また、単純にテック界隈の進歩を愛し、自身の仕事によって誰かの生活が少しだけ豊かになっていると夢想しながら好きになっていけるとよいです。
なんだかんだ楽しい職業なので、今日も一生懸命学んで小さな一歩を刻んでいきましょう!