駆け出しエンジニア(が陥りやすい病)から脱却した方法
概要
エンジニアとして働きだして 3,4年になって、ようやく初心者マークが取れ始めたかなと思う今日このごろ。
自分で初心者マークが取れ始めたというのはおこがましいですが、これは、最近になって 知るべきこと・勉強すべきことが理解できてきたな と感じることが増えてきたためです。
そのあたりの話を体験談として書いておこうかなと思います。
エンジニアなりたて(1年目くらい)
大学で情報系をかじっていたので、プログラムはかけるようになっていました。
ただ、オブジェクト指向?なんの意味があるんだ?という感じで、手続き型でしかプログラムを書けていませんでした。
駆け出しエンジニア(2-3年目くらい)
そこそこ勉強をし始めます。勉強と言っても、
- Vue.js がイケてるらしいので、チュートリアルを触って何か作ってみる
- TensorFlow でニューラルネット組んで MNIST 学習させてみる
のような、イケてる感じの技術 を触ってみていただけで、特に方向性があったわけではないです。
勉強することは悪いことではないのですが、視界が狭いがためにちょっとした悪影響が出てきていました。
例えば、
- Java や C言語は時代遅れなので触りたくない
- 密結合なプログラムに手を加えるのは人間のすることではない。ゼロから作り直したほうが早い
- 時代はクラウド。オンプレのやり方は勉強しなくていい
- アジャイルこそ正義。ウォーターフォールは無意味
- オブジェクト指向はたぶん廃れる。関数型知ってればOK
のような、 「〇〇は△△だからやらない・やりたくない」という 避けるための言い訳 をするようになっていました。
これが、タイトルに書いた陥りやすい病です。
こうなってしまうと、 自分の知っている知識だけが正義 になり、知らないことはすべて詭弁によって悪になります。
うまくいかないことも、自分の力不足ではなく、置かれている状況が悪いのが原因だと思うようになり、自分で物事を解決することをサボるようになります。
(実際に状況が悪いこともあるとは思いますが、その切り分けができない)
抜け出しエンジニア(4年目-いま)
病に陥っていましたが、今は良くなってきました。
抜け出した方法ですが、視野が広がって自然に治りました。
- プログラムを書けばシステムが作れるわけではない
- 複数の選択肢の中から、プロジェクトの目的にあった解決方法を提案できてこそエンジニアである
- 自分で設計を考えるより、先人たちの知見を借りたほうが良い設計・コーディングができる
- 世の中に「適当なコードでOK」と思っているエンジニアは少ないので、良くないように見えるコードにも原因がある
- 他人にリスペクトを持つ。自分が同じ状況に置かれたとして、それ以上良いコードが書けたか?
エンジニアというのは、システムを作り出すことで価値を創出しているのであり、単にコードを書く人ではありません。
そのことに気づけると、 自分はエンジニアとしてどんな価値を提供できているか を自問できるようになり、だんだん強くなっていける気がします。
まとめ
「自分はプロのエンジニアとして〇〇という価値を提供している」 と断言できる日が来てほしい。
Discussion