ファンブリューの金井です。
エンジニアという職は常に勉強で、新しいニュースを見てはその技術を試し、今の仕事で使えるのか趣味で終わるのか一体どっちなんだと、考えながら過ごしている人も多いでしょう。
そんな日々に疲れてしまうこともあります。
今回は「なぜ自分はこんなに学習をしているのか」と疑問に感じてしまう、ふとした瞬間について書いてみたいと思います。
決してこれを読んで、じゃあ、エンジニアをやめるか(やめとくか)ということではありません。
他の人も同じことを考えているんだな、と共感してもらえるところが1つでもあれば、また明日から頑張れるのではないかと思っています。
永遠と発表される新技術
私の場合、IT系の新技術は、はてなブックマークやスマホのGoogleアプリのニュースなどから仕入れることが多いですが、毎日のように新情報が発表されています。
既存技術のバージョンアップならまだアップデート内容を追いかけるぐらいで済みます。
ただ、全く知らないものだと、「まずは試してみるか」となり、インストールしてチュートリアルをやってみてと、どこかでまとまった時間を取って触ることも多いです。
けれども、そうやって結構な頻度で新技術に触れているつもりでも、他のエンジニア仲間と話していたり、Twitterなどで自分の知らない情報を出てくると、
「全然追いかけられていない」
とブルーな気持ちでいっぱいになります。
実際には全ての技術を追いかけるのは不可能なのですが、自分の知らない情報が有益だとなおさら「何で見逃していたんだ」という気持ちになるのです。
そして、こういったことが何度も続くと、もはや「学習しても無駄か」といった、良くない思考が働きます。
実際に無駄ではないことに気づいてますが、どうでもよくなるという感じです。
エンジニアをやっていて、何度もそういった無気力的な状態に陥ったことがありますが、結局、興味があって好きでやっている部分もあり、またどこかでポツポツと触り始めます。
エンジニアは職業ではありますが、仕事と考えすぎると嫌になる瞬間があるので、時折、なぜこの仕事をしているのか思い出すようにしています。
理解が甘くて辛い
エンジニアの仕事をやっていると、「完全に理解してないと解決できない」と思う問題が発生することがあります。
例えば、あるライブラリを使っていて、ドキュメント通りにやっていてもうまくいかないとき。
well documentedなものであっても、ハック的な方法でしか解決できない場合もあります。
しかし、人によってはドキュメントを読めば、その書き手が言わんとしている裏側も理解でき、ハック的な方法にも簡単に気づく人がいます。
こういった人たちは、洞察が深い・理解力がある、そう言い換えられるかもしれません。
でも、普通の人がそこまで理解するには、時間も体力も足りないと感じることがあります。
そう思いながら中途半端に理解して作業を進めると、「しっかりと理解しておけば無駄に時間を食うこともなかった」と後から後悔するようなハマり方をしたりします。
感覚的な話ですが、新しい技術が出るたびに触りまくるチュートリアルマニアなれば、学習速度は少しずつスピードアップしますし、ハマりどころもわかってきます。(外国人の書くドキュメントの癖があります)
脳筋的発想ですが、こんな頭を使うような仕事に思えても、繰り返しの訓練は効果があります。
数学でもどの公式を使うのか、どうやって解くのか、正解を導き出すまでのスピードを上げる勉強をしたことはありませんか。
そんな気持ちで私の場合は、新しい技術に取り組んでいます。
結局は「急がば回れ」が多い
話は変わりますが、15分悩んだら人に聞くというルールも聞いたことがあるかもしれません。
しかし、その15分でどれだけ深く思考できるかによって、大きく変わると考えています。
自分も経験がありますが、15分経過したから質問するだけの人になってしまわないか心配です。
それならば、1週間かけて理解し、人に訊かれる立場になった方が後の自分のためになることもあります。
この15分の見極めは、結局、何時間・何日と悩んだ経験のある人が「これはいくら自分で調べてもわからないな」という肌感によって得られた時間感覚なのだと思っています。
すごく体育会系な話になりますが、頭がちぎれるほど悩んだ経験がなければ、深い洞察は得られません。
その経験がないと、あまり考えずに時間経過で自動的に人に尋ねるだけのエンジニアになってしまいます。
エンジニアであるなら、いずれは問題を解決できる側に回りたいですよね。
とても単純なエラーで何時間も悩んだ経験は決して無駄ではないと、私は言いたいと思います。
仕事をこなす量に何倍もの差が出たとき
これはIT業界に限らないことではありますが、「あの人はすごい」と言われている人は、文字通り普通の人の何倍もの生産性を叩き出すことがあります。
そういった人を近くで見ているとわかるのですが、決して一つの作業がとてつもなく早いとかではないことに気づきます。
いくらタイピングが早くなっても、コードを書くスピードが上がっても、生産性が何倍もなることは通常ありません。
ただ、コミットする内容が非常に的確なことが多いのです。
書かないコードは一切書かないし、お客さんの利益になることを狙って仕事をこなすので、蓋を開けると「一番結果を出したのは彼だよね」みたいな雰囲気になります。
そうなると、エンジニアとしての知識は同じぐらいでも、結果として大差をつけられていることに気が付きます。
誰かと比べて勝ち負けでありませんが、人一倍努力して学習をしている人には面白くありません。
会社の上司の評価に納得がいかないならまだいいかもしれません。
「あの上司の考えに納得がいかない」と怒りの矛先を向けることができます。
しかし、エンジニアとしての知識としては勝っていても、そういったトータルで負けたと感じてしまうと、今までの学習は何のためなのか、と徒労感を味わうこともあります。
これに関しては、IT技術以外の知識や、人間力などの幅の広さが影響していると思っています。
エンジニアから営業に転向するとわかりますが、ガチでエンジニアリングをしている人たちは思考が偏ります。
エンジニアとそれ以外という雑な括りですが、その違いについてはまた別の機会に書いてみたいと思います。
好きな技術がEOLになる
これはオープンソースでも、ライセンス購入していても同じですが、自分が得意としている・もしくは好きな技術の終了が発表されることがあります。
個人で趣味として使い続けることはできても、仕事での新規採用は難しく、現在使用中のプロジェクトでもセキュリティ面や他の技術との兼ね合いで変更を余儀なくされることがあります。
本当に好きな技術ならとても残念なことですが、自分が良いと思ってプロジェクトの初めに採用した技術なら、それは技術選定のミスと言えます。
もちろん、それは結果論なところもありますが、いわゆる技術的負債と言われる、悲しい言葉に言い換えられます。
そうなった時、「初めから枯れた技術を使えばこうはならなかったんじゃないか」という思いがふと頭によぎります。
であれば、新しい技術を学ぶより、既存の技術をしっかりとより深く学び、使いこなすことに注力した方が良かったのではないかと、今更なことを思い始めるわけです。
新しいことを学ぶと少なからずこういった失敗があることは絶対に忘れてはいけません。
それでも学び続け、時には決断して選ぶのがエンジニアの仕事なのです。
エンジニアの仕事の魅力を自分なりに整理しよう
共感を覚えていただくために書いた記事ではありますが、このままではエンジニアは辛いという印象しか残りづらいので、自分なりの継続方法を考えてみます。
方法は本当に十人十色だと思いますが、やはり根幹である「なぜエンジニアになったのか」をよく考えることが大事でしょう。
私はプログラマーに憧れがあったのですが、新卒の時にその幻想はすぐに打ち砕かれました。
(そもそも、プログラミングをさせてもらえなかった)
とはいえ毎日学習をして日々実力がついていくことに喜びを感じていました。
そして、最後に正社員時代にお世話になった会社ではテレワークという自由な働き方にも気づかせていただきました。
以降、フリーランスになって収入が上がったりと金銭面的な結果もついてきましたが、自由な働き方やお金だけなら、エンジニア以外の仕事もあります。
何かしら、学ぶのが好きであったり、ものを生み出すのが好きだったり、この仕事でしか得られないような喜びを見出すと継続しやすいでしょう。
ここまで読んでいただき、ありがとうございました。
ファンブリューではエンジニアになりたい人を支援しています。
現在こんなお悩みがあれば、ぜひ一度ご相談ください。
- プログラミングを学習したいが、何から始めたらいいかわからない。
- IT業界に就職するために必要な知識が何かわからない。
- 実務経験がなくて現場に入れない