エンジニアという職業の適性について
twitterを見てると、たまに
・エンジニアはずっと勉強し続けないといけないから辛い
・どんどん新しいライブラリやフレームワーク、言語が出てくるので、常に技術のキャッチアップをしないといけないのが辛い
というツイートを見る。これについて思うところを書いてみる。
※1 上記のようなツイートをする方は往々にして「Web業界のエンジニア」の方だと思うので、この記事もWebのエンジニアを対象として書く。
※2 思いっきり当たり前なことをただ書き連ねているだけ。
技術の栄枯盛衰
エンジニアじゃなくても他の業界でも起きていることだとは思うが、技術にも、ツールにも栄枯盛衰はある。それが特に顕著なのがWEB業界だと思う。今流行っているもの、メインで使っているものが数ヶ月後にはもう古いと言われることがよくある。古いと言われているからといって、それが使えないというわけではない。
○新しい技術を使う理由
常に新しい技術を使ったほうが良いとは限らないが、それでも新しいものを使ったほうが良い理由はいくつかある。
・従来の技術では解決できなかったことが解決できる
・従来の技術ではできなかったことができるようになる
・従来の技術よりも使い勝手が良い
・従来の技術よりセキュリティが良い
・従来の技術はメンテナンスされていない
他にも理由はいくつか挙げられるが、この5つが大きいかなと。特に後ろ2つ。セキュリティ的に危ないのにメンテナンスされていない技術など誰が使うのか。
○従来の技術を使う理由
逆に、従来の技術(古いと言われている技術)を使う理由を考えてみる。
・新しい技術はまだ成熟していないので不具合のリスクがある
・成熟しており、枯れている
・ドキュメントや知見が多い
・その技術を使える人材が多い(可能性)
新旧どちらにもメリット・デメリットはある。ケースバイケースで何を使うかは議論する必要があるが、最適なものを選択していただければと思う。
エンジニアに適している人とは?
しかし、ここで一つ問題がある。新しい技術を使うか否かを判断するには、新しい技術の事を知る必要がある。とうに新しいものが世に出ており、世間でも使っている事例が多い中、自分(達)知らないから従来の技術を使おうというのは、エンジニアとして怠慢ではないか?エンジニアは技術で問題を解決するのが存在価値だと思うのだが、その技術力を伸ばすことを怠り、知らないからという理由で切るのは、技術的な判断ではないと思う。
もちろん実際の現場では、リソースが限られているので、もしメンバーの誰かが知っていても他のメンバーが新しくキャッチアップする工数を加味し、今回は見送るということもあって当然で、それは自分も経験がある。しかし、では新しい技術をいつ学ぶのか?業務中に学べないなら、プライベートで学ぶしかないだろう。ここで冒頭の『学ぶのが辛い』ツイートにつながる。
(ちょっと余談)
学生の頃に勉強が嫌いだった人はいるだろう。それはある意味正しくて、(勉強の文字通りなのだが)強いて勉めるからだ。
子供は自分の興味があることは放っておいても勝手に学ぶ。大人がこれも必要だー!というものを、大人の言うとおりに学ばさせられるから勉強が嫌いになる。
しかしここで私が言いたいのは、「じゃあ学生の頃に自分が好きなものについて、しっかり勉強したのか?」ということ。なにか一つでも精魂込めて学んだ経験(私はこれを「突き抜けた経験」と呼んでいる)を持っている人は、社会人になっても学ぶことはそれほど嫌いではないのではないかと思う。
運良く良い教師に出会えていたら、自分が好きなものについてはおそらく成績が良いだろうから、そこをしっかり褒めてくれているはず。そうすると、子供はどんどん自分が得意なことについて伸ばそうとまた勉強する。この相乗効果により自分の武器ができるのである。他が駄目でも武器を一つでも持っている人は強い。(そして皮肉なことに、社会ではその武器を求められる。)
(閑話休題)
ツイートをされている方々には残念だが、上記の理由からエンジニアは学ぶこと、もっというと学び続けることが必要なのである。そして、技術は常に進歩・変化し続ける。だから我々技術を駆使し生きているものも、常に変化・勉強し続けなければならないのだ。
以上から、エンジニアに適している人間とは
「学ぶことが好きな人」
と言うのが、私の現時点での結論だ。「モノづくりが好きな人」や「いろいろ効率化するのが好きな人」も適している事が多いだろうが、この業界もご多分に漏れず、望んだ業種に就けたとしても、やりたいような業務ができるとは限らない。単調な作業や物凄く地味な作業を求められることも多い。
しかし、どんな作業でもなにか学びはないか?という視点を持つ人は、そのような作業でも着々とこなすし、予想していなかったようなことを発見・共有してくれることがある。また経験として、素晴らしいエンジニアの方々は本当に学ぶことが大好きな人が多いなと思う。
学ぶものについて
技術やツールは面白いもので、何十年使われているものもたくさんある。例えば、RDBMS、バージョン管理システム(現代ではGit)jQuery、LaTeX、Microsoft Officeなど。もちろん生き残っているのは、これらの技術やツールが本当に素晴らしいからなのだが、おそらく共通していることは、根本的に学ぶ必要があるもの(いわゆる基礎・基本となるもの)を備えていると感じる。これらは今後もよっぽど技術革新がなければ、別の技術を学ぶ上で必ず生きてくるので学ぶべきだと思う。
その上で、新しい技術も学ぶことが望ましい。一つの指標として、エンジニア界隈では有名な@t_wadaさんのスライドが良いです。個人的には、『毎年1つの言語を勉強する』が良いなぁと思い、実践しています。
さらにここで大学時代の指導教授のご指導を一つご紹介。
勉強する仕方と言うか、何を勉強した方が良いか。それは次の3つをバランスよく勉強することだ。
・今自分が専門にしていること
・自分の専門に関係する別の分野
・全く専門分野とは関係ないこと
専門分野の枠を超えないとアイディアはなかなか生まれない。進歩も少ない。広く世界を見て、活かせるものを探す意味でも、他のものも一緒に学んだほうが良い。
終わりに
自分にとって新しい技術を学ぶ(身につける)と、できることが増えるし見えてくるものもあるので、物凄く楽しいと自分感じる。成長を実感できるからだ。勉強することは、そのまま自分が成長することに繋がっていると実感としてあるので、自分は学ぶことが好きだ。
この感覚はエンジニアだけではないと思うので、みなさんもどんどん新しいものを学んでいってみてほしい。では(=゚ω゚)ノ
この記事が気に入ったらサポートをしてみませんか?