見出し画像

エンジニアで飯を食っていくのに必要なスキルや特性

こんにちは、鬱気味のHisashiです。

今回は、エンジニアで飯を食っていくのに必要なスキルや特性について、お伝えします。

誰でもエンジニアになれるのか?

最近よく炎上するTECH CAMPをはじめ、プログラミングスクール界隈が人気な昨今ですが、

プログラミングスクールに通えば、だれでもエンジニアになれる!

という、広告の謳い文句に騙される人が増えた気がします。

では、誰でもエンジニアになれるのか?という命題について、現役エンジニアの目線で回答すると、答えはNOです。

では、なぜ誰でもエンジニアになれないのか?について、説明します。

エンジニアで飯を食っていくのに必要なスキルや特性

まず、貴方がエンジニアになり、フリーでも会社員でも、とにかく技術職として飯を食っていくために必要なスキルやと特性ってなんでしょうか?

エンジニアに向いている人とは?的な記事は多くみると思います。

ただ、スキルや特性までは深堀していない記事が多いので、現役エンジニアの目線で深堀していきます。

ずばり、エンジニアに必要なスキルや特性は、

①国語力
②継続力
③疑う力
④好奇心
⑤素直さ

です。

多分、今まで上記を必要なスキルや特性に掲げるエンジニアやインフルエンサーはいなかったと思います。
斬新かもしれませんが、順番に解説していきます。

なぜ国語力が必要か?

なぜ、数学力や論理的思考力ではないの?という人がいらっしゃると思いますが、冷静になって考えてみてください。

貴方が建築士さんだと仮定しましょう。
建築士さんが、クライアントに家を設計した場合、どのように説明しますか?

材料力学や建築工学でよく使う数式で説明しますか?
それとも、図だけ見せますか?

違いますね。

数字や図はもちろん使いますが、まず相手にわかる言葉で説明しますよね。
また、相手が住みたい家の条件や間取りの話をしてきたら?そう、国語力がないと相手の要求を言語化できませんよね?

そう、だから国語力が必要なんです。
さらに、相手が英語を話す人なら、+αで英語力も必要になります。

エンジニアは、専門的な技術職です。
プログラマーでも、インフラエンジニアでも、データベースエンジニアでも、必ず国語力が必要になります。

ここまでお伝えして、勘のいい人だとお分かりになった方もいらっしゃるかと思います。

国語力≒相手がわかる言葉を選んでつたえる力≒コミュニケーション能力

そう、国語力は、コミュニケーション能力の根幹をなす大事なスキルです。
国語力があれば、おのずと質問力も磨かれます。

国語力、軽視しないでください。

なぜ継続力が必要か?

継続力も必要です。

なぜなら、エンジニアの仕事の大半は、「トライアンドエラー」だからです。

勿論、私も未知の技術やサービスはあります。

未知の技術やサービスを使えば、エラーが多発することもしばしばです。

その際に、根気よくトライアンドエラー(いわゆるモグラ叩き)を出来るか?って結構大事なスキルだったりします。

なぜ疑う力が必要か?

次に大事なのが、疑う力。つまり、相手の言ったことを疑う力です。

この場合の疑う心とは、「本当か?」というよりは、「なぜそのようなことを言うんだろうか?」という、発言の前提条件や背景を明らかにする力と言い換えた方がわかりやすいかもしれません。

たまに、

お客様が言ったことを疑うのか?君は!?

という、変な上司がいましたが、それこそ「うっせーわ」です。

お客様が「なぜそう言ったのか?」と、背景や前提条件まで理解しなければ、お客様の要望を理解したとは言えません。

現場でよくあるのが、

「○○のつもりで、△△といったんだけど、自分の勘違いだった。やっぱり▲▲にしてほしい」

と言われることがあります。

また、昨今のビジネス環境は変化が著しく、「AのつもりがやっぱBで!」と、顧客の要求が変わることはしばしばあります。

その際に、背景を理解しておけば、要求が発生した時点で、

「将来的に環境変わったらAじゃ大変だと思いますので、Bのほうがよくないっすか?」

と逆に提案できるわけです。

なぜ好奇心が必要か?

好奇心がない人は、悪いこと言わないので、そもそもエンジニアになるのをやめた方がいいです。

エンジニアは、様々なビジネス上の課題を技術によって解決する専門職です。

それが、

「○○という技術でやると1週間でできるんですけど、自分全く○○に興味ないので、△△でやります。その場合1か月ほどかかります」

と言われたら、貴方がクライアントの場合どう思います?

最新技術を常に使用する必要はありません。ケースバイケースです。
場合によってはレガシーな技術のほうが安定することもあります。

しかし、常に最新技術をキャッチアップしておかなければ、いざというときに使い物にならないし、クライアントに選択できる選択肢が日に日に少なくなってしまいます。

話が変わりますが、Ruby on Railsは、今は日本国内を中心に案件が多いですが、いずれはPythonや後発の言語に淘汰されていくと思います。

その場合、「自分はPythonには興味ないから」と言ってると、飯が食えなくなってしまうかもしれませんよ?

なぜ素直さが必要か?

最後に素直さですが、これはメチャクソ大事です。
前述の①~④よりも大事です。

理由は2つあります。

A. 成長スピードがはやくなる
B. トライアンドエラーのスピードがあがる

よく、Aの話は、自己啓発セミナー等で「素直な方が成長する」とよく聞きますよね。

技術を扱う専門職についても、その点は同じです。

ただ、Bの側面は、あまり言及する人がいませんので、ここでお伝えしておきます。

例えば、プログラミングをしていて、自分の書いたソースコードを動かしてみたらエラーが起きた。その時、貴方はどう思いますか?

ⅰ.そんなはずはない!手順通りにやったのに何で?
ⅱ.どうしよう!?なんでエラーが出たんだろう?
ⅲ.ぬるぽ(Null Pointer Exception)かよ。どれどれ、スタックトレース見るか…。

他にもあると思いますが、代表的な心理状況を3つピックアップしました。

この時に、エラーの解決に向けて一歩目を踏み出してるのはⅰ~ⅲのうち、どれでしょうか?

まあ、おのずとピンときますよね。

ⅲですね。

最後に

ここまで、エンジニアに必要なスキルや特性についてお伝えしました。
正直なところ、自分に①~⑤の適性がないのに1からエンジニアを目指す人は、もう少し真剣に自分のキャリアを考えた方が身のためです。

もし、TECH CAMP等のプログラミングスクールを卒業しても、今のコロナ禍においては就職先がないですし、運よく企業のプロジェクトにアサインされたとしても、すぐに切られてしまうのが関の山です。

考えればわかると思いますが、エンジニアにもIT業界の草莽期から活躍する10年戦士や20年戦士がうようよいます。彼らとどう渡り合いますか?

ただ、彼らも高齢化してきており、必ずチャンスはあるはずです。
プログラミングスクールの過大広告をうのみにせず、地道にプログラミングスキルを磨きましょう。

自分でWebサービス(Saas)を立ち上げてもいいと思いますし、今の会社でエンジニアリングをアピールして、社内SE等になった方がよっぽど早くエンジニアになれると思います。

この記事が気に入ったらサポートをしてみませんか?