TL;DR
技術に興味がなくても、エンジニアとして生きていくことはできる。
対象読者
自分を技術に興味がない側の人間だと思う方
筆者について
- Webアプリケーションの開発エンジニア。主な仕事はプログラム詳細設計、画面設計、コーディング。
- 技術にあまり興味がない。
初めに
エンジニア界隈では、以下のような主張がしばしば見られる。
- 休日に勉強するべきである。
- 最新の技術動向は常にチェックするべきである。
- 技術イベントには参加するべきである。
- 毎日コードを書くべきである。
- レガシーな技術ではなく、モダンな技術を習得するべきである。
etc...
そしてこれらの"べき論"がさらに加速すると、 「技術に興味がない人はエンジニアに向いていない」 という主張すら出現し、それに同調する声も少なくない。
最近、とあるSNSで以下のようなやり取りを見かけた。
駆け出しエンジニアの質問
休日に勉強するべきですか?
現役エンジニアの回答
そのような質問をする時点でエンジニアに向いていません。辞めましょう。
これから書きますが、技術に興味のない駆け出しエンジニアさん、全然問題ないです。自分もそうですが、楽しくエンジニアをやっています。「稼げそうだから」とか、「リモートワークしたいから」とか、「IT分野がアツそうだから」とか、そのような動機でエンジニアになってもよいと思います。しかし生き残るためには必要な勉強はしてください。
私は、技術に興味がないからといって、エンジニアに向いていないとは思わない。技術への興味と向き不向きは、必ずしも一致するとは思わない。私自身、技術に対する興味はあまりないが、エンジニアという職業は自分に向いていると思っている。
そこで、「エンジニアと技術への興味」 について、今一度自分の考えを整理し、それが技術的関心が低いがため肩身の狭い思いをしているエンジニアや、これからエンジニアを志す方の背中を押すことが少しでもできればと思い、当記事を執筆するに至った次第である。
「技術に興味がないとエンジニアに向いていない」の根拠
まず、「技術に興味がないとエンジニアに向いていない」という主張は、どのような考えから生じるものであるのだろう。私は、以下がその根拠の代表的なものであると思う。
エンジニアは技術について勉強し続けることが必要であり、それは興味を持っていないと難しい。
しかし、私はそんなことはないと思う。
技術について勉強し続けることは必要なのか
これはある程度真であると思う。何故ならば、技術は進化や変遷が激しく、そのスピードも年々上がっているように感じるためである。
コンピュータサイエンスの基礎的な技術がコロコロ変わっていくかといえばそうではないと思うが、実際に現場レベルで求められるもの、例えばプログラミング言語やAWS/GCP/Azure等のクラウドサービスと呼ばれるものは、移り変わりが早いと言えるだろう。
しかし、一度現場レベルの技術を身に付けてしまえば、その後は日々勉強し続けないとエンジニアとして職を失う、といったことは考えにくいと思う。
極端な例だが、動的型付け言語がこの世から消滅したとしても、RubyやPHPのエンジニアがいきなり職を失うかと言われれば、そんなことはなく、現場レベルの技術力があれば、静的型付け言語への対応にもそう時間は要しないだろう。加えて今はエディタによる補完機能が強力であるため、静的型付け言語を用いて開発しているエンジニア全てが"型安全"や"コンパイラの挙動"などを正しく理解しているかといえばそうとも言えず、雰囲気で書いているエンジニアも中にはいることだろう。
冒頭に「ある程度真」と表現したのはこのためであり、一度現場レベルの技術力を身に付ければ、その後ずっと勉強し続けないと職を失うということはないと思うため、この意味では偽であると思う。
また、昨今ChatGPTやGitHub Copilotに代表される、エンジニアリング業務に近しい分野の革新的なAI関連サービスの出現・進化が著しいが、技術者だからといって、それらの最新情報を常に追う必要は必ずしもないと思う。革新的な技術やサービスであっても、現場への導入は段階的にグラデーションのように進むものであると思う。もちろん、最新の技術動向を追うことに越したことはないが、それをするほどの技術的関心や体力がないのであれば、今いる職場の技術導入の雰囲気に応じて、必要なタイミングに必要な情報をキャッチアップする戦略でも、生き残っていくことはできるだろう。
技術に興味なき者は、自ら道路を作る必要はなく、先人たちが綺麗に舗装してくれた道路を、感謝の念を忘れず堂々と進んでいけ。
興味を持っていないと勉強し続けられないのか
これに関しては、私は明確に違うと思う。
興味がなくても勉強することはできる
当たり前だが、別に興味がなくても、勉強することはできる。興味と行動は分けて考えるべきだ。私自身、興味のない技術であっても、今現在の業務に必要であれば、もしくは将来的なキャリアに必要だと考えれば、休日の時間を惜しんでも勉強する。そしてそれは、特段珍しいことではないと思う。
私はエンジニアになる以前、金融機関に勤めていた。周りの同僚を見ると、必ずしも「金融」に興味のある人ばかりではなく、むしろどちらかと言えば興味のある人の方が少なかったように思う。
しかし、彼らは業後や休日にも勉強をしていた。何故ならば、現在の業務や将来の昇進に必要だからである。
エンジニアも全く同じで、今現在の業務の遂行や将来なりたい理想像に近付くために必要であるならば、興味の有無に関わらず、勉強をしなければならない。
エンジニアは、興味と行動を不可分なものと見做す傾向が他職種に比べて強いように思うが、実際のところ、興味がなくても勉強を必要とする業界はいくらでもあり、仕事以外においても、興味がなくても必要だから勉強することは珍しくないのである。高校受験や大学受験を経験した者のうち、学問に興味があったから勉強していた者はどれほどいたであろうか。
余談:エンジニアと怠惰
この部分に限った話ではないが、これはあくまで持論であり、科学的な根拠を調査したわけではない。人の性格に踏み込む話題であるため、あくまで私自身の推測に過ぎないことを特に強調しておきたい。
SNSでエンジニアの投稿を見ていると、しばしば「怠惰」や「面倒臭い」という単語を目にすることがある。肌感でしかないが、それらは非エンジニアの投稿と比較すると、やや多いと感じる。
怠惰な人は、興味があることは時間を忘れるほど熱中するというストロングポイントがあるように思う。しかし一方で、興味がないことに対しては、集中力が持続しないという側面もあると思う。技術に興味があるエンジニアであれば、これは特に問題とはならないが、興味がないとすると、それは悲劇的であろう。
「技術に興味のない人はエンジニアに向いていない」という意見は、もしかしたらこの部分と混同されているのかもしれない。「怠惰な人は興味がないことに対する集中が難しい」+「怠惰な人が技術を勉強する必要のあるエンジニアになる」=>「技術に興味のない怠惰な人はエンジニアに向いていない」という論の展開があるのかもしれない。
20230814追記
コメントにて、エンジニアの投稿に「怠惰」という単語をよく見かけることに対し、ラリー・ウォール氏の提唱した、プログラマの三大美徳のうちの「怠惰」との関連についてご指摘いただきました。確かに、この文脈や意味合いで用いられていることも充分考えられそうです。
エンジニアである前にビジネスマンである
ここでは、組織の中で働くエンジニアに限定して話を進める。
組織の中で働く以上、エンジニアとしての価値を決めるものは、如何にその組織の利益に貢献するか である。あくまで技術力はその中の一つの手段である。
そうであるならば、必ずしも最新の技術に対する興味や知見がなくても問題ない。その組織で採用されている技術に明るく、それを用いて組織の課題を解決できればよいのである。
例えレガシーな技術しか使えなかろうが、最新の技術に疎かろうが、自らの技術をもって所属する組織の課題を解決することができたならば、その人は立派なエンジニアであり、そしてビジネスマンなのである。
職業エンジニアになれ
組織の中で働く以上、自分の能力をもって組織の利益に貢献することは当然のことである。エンジニアであるならば、手段は技術に基づいたエンジニアリングである場合がほとんどだろう。
そうであるならば、技術に興味があるとかないとか、そんなことは関係ないのである。動機はもっとシンプルで、「組織の利益に貢献するために必要なことを勉強する」、ただそれだけのことなのだ。興味と行動を分離し、「必要だから勉強する」と割り切るスタンスが重要 なのである。
仕事に必要なことを勉強することができないのだとしたら、エンジニアに向いているいない以前に、そもそも社会人として組織から認められる人材になることは難しいだろう。
将来に対するアプローチ
現在(現職場の現業務)に対する必要を満たすことができたならば、後は将来に対する備えをすれば、どこに不安が残るだろうか。将来なりたい自分像があるのであれば、それに向けて取り組めばよい。しかし、なりたい将来像はないがエンジニアとして食べていきたいという人向けに、自分が実践している対策をいくつか紹介しよう。
資格をとる
個人的なおすすめは、年2回のIPAの資格試験を受けることだ。そうすることで、1年で全く勉強しない期間をなくすことができ、年2回のため試験勉強に日々追われることもない。
何故IPAかというと、有効期限がないからである。一度取得しさえすれば、履歴書の資格欄に未来永劫記載することができる。技術に興味なき者にとって、2, 3年で有効期限が切れる資格のために時間を費やすことは、気が進まないだろう。
※情報処理安全確保支援士に関しては、登録制度を採用しているため、有効期限がないという表現は厳密には不適切であるかもしれない。詳細はIPA公式HPを参照されたい。
Webエンジニアであるならば、基本情報、応用情報、情報処理安全確保支援士、ネットワークスペシャリスト、DBスペシャリスト、システムアーキテクトは、実務にも関連するであろうし、持っていて損はないだろう。また、自分の立場に応じて、プロジェクトマネージャを受験するのもよいだろう。
IPAで必要な試験を取り終えてしまったら、LPIやAWS、Oracleの認定資格など、「エンジニア 資格 おすすめ」でググって出てきたもので自分の業務に近そうなものを、年2回くらい受験すればよい。
ここで注意点は、資格を取り過ぎないことだ。技術に興味がないという前提に立てば、その分野の勉強に日々追われることは、苦痛以外の何物でもないだろう。あくまで将来に対する備え、何かあった時のセーフティネットくらいに考え、苦痛を感じない範囲で取り組むようにしよう。
また、ここでエンジニア資格要不要論を論じるつもりはないが、資格は持っていた方がよいと思う。特に、私のような技術に興味なき者は、個人開発の成果をGitHubに上げるというようなムーブを取ることもないと思うので、資格が唯一の客観的なITスキルの証明材料になり得る ことがあるからである。私のGitHubの個人アカウントは枯れ果てている。最近某車会社の除草剤が話題となったが、私のGitHubにも撒いたのかと疑いたくなるほどである。
さらに余談であるが、「資格より実務で経験してきたことの方が重要」という意見を、しばしば転職市場で耳にする。面接であることないことを言うのが上手な人もいるため、個人の主観に委ねられる過去の実務での貢献度だけではなく、資格についても評価対象とした方がよいと感じる。その人がその資格相当の実務を行うことができるかどうかは別としても、少なくとも、「ある時点においてその資格取得の要件を満たす結果を出した」ということは事実であるからだ。仕事においても、ある期限までに結果を出すことは非常に重要である。
技術書を読む
読むだけで問題ない。私は、1日30ページを目安に、技術書を読むようにしている。面倒臭いので、エディタを開いてコードを書くことはしない。ただ読むだけである。これならそこまで時間はかからず、負担も感じない。読むだけでも何となくはその技術に対する理解を深めることができる。
動画を"見る"
YouTubeやUdemyなどで、動画コンテンツを見る。ここで重要なのは、"観る"のではなく、ただ"見る"ということだ。完璧に理解しようとして"観よう"としても、興味がないことは続かないので、気付けば別のものを見ていることだろう。当たり前だが、エディタは開かなくてよい。(開いてもよい)
適当な集中力でも続けられるように、ただ"見る"だけに徹する。人間の脳と五感は素晴らしいものなので、過去に見聞きした記憶が頭の片隅にあるくらいの状態でも、「あ、あの時のあれか」みたいに、将来的に結び付くことがあるかもしれない。
エンジニア仲間と食事に行く
エンジニア仲間と食事に行くと、必ずと言ってよいほど、技術的な話になる時間帯がある。その中で、最近の技術動向をキャッチアップできることもある。
私の友人に、ブロックチェーン技術に精通している友人がいる。私は、その人がブロックチェーンのどのような部分に惹かれているのか知りたく、ブロックチェーンに関する書籍や動画コンテンツに目を通したり、彼の成果物を確認したり、実際に自分でコードを書いてみたりした。その結果、ブロックチェーン技術の触りくらいは理解できるようになった。
このように、技術に興味がなくとも、人に興味があれば、その人を通じて何かしらの技術を知る機会となるかもしれない。
技術アカウントをXでフォローする
私は、Xでフォローしている技術者の投稿をよくチェックしている。すると、技術界隈で話題になっていることを表面的に把握することができる。
当記事執筆時には、「Rubyのreturn記述」に関する小論争を観測した。それらに関する幾つかの投稿を眺めるだけでも「なるほど、技術者はこのような視点で言語を眺めているのだな」と勉強になる。
興味がないからこそやってみる
資格を取得したり、技術書を読んだり、動画を見たり、実は私は技術に興味がある側の人間なのではないかと、疑念が生じている人もいるかもしれない。そこで、本日の行動を時系列で紹介する。
Time | Action |
---|---|
15:00 | 起床 |
~16:00 | 朝食兼昼食 |
~21:00 | YouTube, Netflix |
~22:30 | 夕食、散歩 |
22:30 | 友人から記事を書けと連絡が来る |
~24:00 | YouTube, Netflix |
24:00~ | 当記事の執筆開始 |
ご覧の通り、普段はYouTube, Netflixに大半の時間を費やしている。かなりの余談であるが、私は現在、TBS系「日曜劇場」枠で放送中の 『VIVANT』 というドラマに非常に熱中しており、本編を再鑑賞したり、その考察動画を見漁ったりしている時間が多い。
話が脇道に逸れてしまったが、伝えたいのは、興味がないからこそ、勉強することに価値がある ということだ。
今は興味が持てなくとも、勉強し続けてさえいれば、もしかしたら興味のある技術に出逢うかもしれない。宝くじだって買わなけらば当たることはないのである。
若干ニュアンスが異なるかもしれないが、Xでフォローしている方が、やる気の如何を問わず強制的にまとまった時間を使って取り組み、その結果生じる(内発的な)動機付けに期待することを、「念能力で殴る」 と表現していた。
興味がないことに取り組んだ結果、後から興味が生じることも往々にしてあるのである。
技術に興味がある者に、興味なき者は勝てるのか
残念ながら、上を目指せば目指すほど、技術に興味がある人に技術力や知見で勝つことは難しいだろう。技術に興味がある者が1日3時間勉強するのなら、興味なき者は4時間勉強すれば勝てるのか?そう単純な話ではないからだ。
技術に興味のある者は、机に向かって勉強に費やす時間以外にも、トイレに行く時やご飯を食べている時、散歩している時など、日常のありとあらゆる場面で技術について考えていることだろう。もしかしたらそちらの時間の方が長いかもしれない。
そのような人には、残念ながら興味なき者は敵わない。純粋に、技術に向き合っている時間や量、質が違うからだ。
しかしそう悲観することはない。何故ならば、そのような人は私の観測範囲ではほんの一握りであり、必要に応じた勉強を怠らずにできていれば、多くの環境で通用する技術力を身に付けることはできるからである。
また、エンジニアだからといって、技術力を磨くだけが生き残る術ではない。技術的な話ができる前提での顧客折衝力や、エンジニアの横の連携を生み出す力、他のエンジニアをリードする力、管理者として技術者をマネジメントする力などなど、純粋な技術力以外にも現場で必要とされる能力は多岐に渡るからである。
それでも自分がエンジニアに向いていると思うワケ
ここまで、技術への興味なきエンジニアとして、私の考えや実践していることを書き連ねてきた。相変わらず技術に興味は持てないが、それでも私はエンジニアに向いていると思っている。その理由を紹介する。
細かい作業が好き
エンジニアリング業務においては、細かい作業が多い。当たり前であるが、コロンがないだけで動かなかったり、スペースが全角になっているだけで不具合となったりする。しかし、最近ではこのような部分はエディタが吸収してしまうことが多く、嫉妬することも多い。
プログラムを書く場面のみならず、設計書を作成する場面など、たかが体裁の調整のためだけに字句を削ったり、句読点を付けたり、誤字を修正したり、上司好みに合わせたりするその細かい単純な作業が、自分は何とも好きなのである。
アウトプットが早く確認できる
たった一行コードを付け加えただけでも、それで機能の不具合が解消され、それが画面上に現れることがある。例えば「この部分の数字が出ない」という不具合を解消するため、エディタを開き、ほんの少しコードを修正し画面を更新すれば、もう直っているなんてこともあるのである。
少し視野を広げれば、勉強した内容がすぐに活かせる場面がある。例を挙げればキリがないが、自分が知らない技術を必要とする業務の担当となり、それについて自分が調べるなり勉強するなりした結果、業務を無事遂行することができたという経験は、大なり小なりほとんどのエンジニアが経験したことがあるだろう。
このように、インプットやアクションに対するアウトプットの発現が早いことや、自分が習得した内容により業務を遂行したというダイレクトな実感が、自分を飽きさせず、楽しいという気持ちにさせているのだろう。
"好き"が持つ熱量の強さ
再三述べているように、私自身は技術への興味はそこまでないが、周りには技術が好きだからエンジニアをしているという人がそこそこいる。他職種と比べ、純粋な興味関心を持ちながら仕事に取り組んでいる人の割合は多いだろう。
そのような空間にいると、貴重な瞬間を体験することがある。上手く言語化できないのがもどかしいが、誰かの"好き"という熱量に、周り、ひいては自分までもが引っ張られているという実感との遭遇である。
好きであるという感情が秘める熱量は、想像以上に大きいものがあると感じる。
インターネットというダイナミズムに魅せられて
インターネットに限らず、プライベートなネットワーク空間であっても、自分が作成したプログラムに対して自分の知らない誰かがリクエストを送り、レスポンスが返った結果、そのユーザの必要を満たしているという事実は、エンジニアが実感できる最強のダイナミズムと言えるのではないだろうか。
加えて、自分の作成したプログラムがインターネットを通じて全世界に公開され、そしてそれを見ず知らずの人が利用するという点に、非常にロマンを感じるし、一種の興奮さえ覚える。
自分なりの美しさを求めるのが好き
コードには"美しさ"というものが存在する。同じように動作するコードであっても、汚いものもあれば、息を呑むほどに美しいものもある。
もちろん優先すべきは、そのプロジェクトのコーディング規約であったり、応答速度やメモリ効率等の性能指標であったりするが、それらをクリアした後は、自分が美しいと思うようなコードを書くことが許される空間がある。それはもはやリファクタリングなどと呼ぶものではなく、化粧直し、もしくは盆栽とでもいうべき至高の領域 であるのだ。
これらのように、エンジニアリング技術そのものに興味はないが、エンジニアリング業務を通して得られる体験が楽しくてたまらないから、私は自身がエンジニアに向いていると感じるのである。
最後に
以上より、私は、必ずしもエンジニアであるからといって技術に興味を持つべきだとは思わない。
例え技術に興味がなくとも、組織の中で求められる能力を発揮できさえすれば、飯の種に困ることはないだろうし、エンジニアリング業務を通して得られる体験の方に興味がある人もいるだろう。
また、今興味がないからといって、この先ずっと興味を持てないということではない。
最後に、この言葉を紹介する。
頂への途を見つけたなら険しいのか?己に向いているのか?可能なのか?
そんなものは関係ない ”ただ登る”
少なくとも俺にアメリカンフットボールを教えたマルコという男はそうしてきた
才能が足りぬのなら臆面もなく人の手にすがり
己の手を汚し愛する者に侮辱され それでもなお頂点を獲るために
全ての男が本来持っている焼け付くような渇き ただ頂点を獲るために!
by アイシールド21 峨王力哉
この期に及んで頂点を目指せと言いたいわけではない。必要なことであれば、自分に向いているのか、そんなことは関係なく、ただその必要を満たすために"登れば"よい。
そうすればきっと、エンジニアとして飯を食っていくことはできると思います。