ITエンジニアはコーディングが得意な人ではない
最近、副業でITエンジニアを目指す人も増えてきていますね。そして皆がこぞって学んでいるスキルは、コーディングです。(HTMLとかCSSとかPHPとかいろいろやってますね)
しかしコーディングだけを学び、学習のスコアがどれだけ高かったとしても、現場に出ることができないという人も多いのではないでしょうか。
厳しいことを書きますが正直にいうと、コードだけ書ける人間は同じチームには不要です。
エンジニア歴10年の私も同じ考えです。
今回は、ITエンジニアにとって本当に必要なスキルを3つ紹介します。
この3点を抑えることでキチンとエンジニアとして成長することができるはずです。
ITエンジニア にとって本当に必要なスキル
ITエンジニア になりたいなら、報告・連絡・相談スキルを磨け
報告・連絡・相談能力。これは社会人として絶対に必要な基礎の力です。
そしてエンジニアを名乗るなら、この基礎力を最大限使いこなせる必要があります。
エンジニアの仕事の大半は、極論8割が報告・連絡・相談の連続です。
そして、一連の報連相で得た知見や思考を整理し、正しく「言語化」することが主なエンジニアの仕事です。
コードを書いたり、動くものができたり、テストしたりは、上記の仕事で出てくる副産物だと考えておきましょう。
要件定義
報連相を高度に利用するポイントの1つ目が要件定義と呼ばれる工程です。
大体の仕事はソフトウェアを作ることを依頼されるところから始まります。
そしてお客様は大体何かを作ってほしいのでエンジニアを雇うのです。
しかし、「何か」をつくってほしいのですが、具体的に作ってほしいものがしっかり決まっていることは極めて稀ですね。10年やっていますが、しっかりビジョンをもっている顧客はほぼいません。
エンジニアの仕事の初手は「何か」が「具体的にどういうソフトウェアで何を得たいのか」を顧客と相談しながら、顧客の思考を言語化するところから始まります。
これが要件定義です。この段階では、コーディングなんてほぼ出てきません。
正直、PCなしの紙と鉛筆でも仕事はできます。
そして、ここのタイミングで報連相を怠ると、最終的にゴミが出来上がります。
顧客はゴミなんかほしくないし、エンジニアもゴミになるものを一生懸命つくりたくないですね。
コーディングなんかより、まず報連相ができないとエンジニアという職は全うできないことがわかります。
設計
当たり前ですが、作るものがわかっても、どうやって作るか決まってないと作れません。
どうやってつくるのかを決めるのが設計です。
このタイミングでも報連相は絶対に必要です。
実現可能な設計なのか・無理がでないか、いつまでにできる見通しなのかをこのタイミングで考えます。そして、顧客が存在する以上は、上記の構想をしっかりと誤解なく伝達する必要がありますね。
ここでも報連相をなめると、顧客が誤解をしてしまい良い結果がうまれず、ゴミができあがります。
顧客はゴミなんかほしくないし、エンジニアもゴミになるものを一生懸命つくりたくないですね。
この段階では、すこーしだけプロトタイプを作ったりするのでコーディングすることがありますが、設計のうち2割くらいしかコードは書きません。
そしてここでは、顧客以外にもチームメンバーとの共通理解を作ったり、機能を把握しあったりとチーム間の報連相も発生します。
設計のうち8割が報連相だと考えてよいです。
実装
ここで初めてコーディングがメインで登場します。
でも、コーディングをスムーズに進めるためには、当然報連相が必要です。
このコードの記述方法でよいか?きちんと意図の伝わるコードがかけているのか?などを気にしながらコーディングをします。
でも、初心者はうまく動かせないと思います。そして、多く戦うのはビルドエラーや動作不良です。
ここでも報連相が必須です。
「なんかエラーになって動かないのです。どうしたらいいですか?」
報連相がアウトな例
こんな質問をしてくる人がめちゃくちゃ多いです。これ自称コーディングできる人あるあるです。
これは一番チームでいらないので本当にやめましょう。
しっかり思考を言語化して、誤解のないように報連相することが大事です。
このコミュニケーションをおろそかにする人は、チームから弾かれます。結構弾かれる人をたくさん見てきました。
YYYYYYYをしようとして、ZZZZZZZを試したところ、XXXXXXというエラーが発生した。解決方法がわからない。何かヒントが欲しい
このくらい報告がないと、人のエラーはみんなわかりません
しっかりと論理的に自分の状態を伝えられるようになることが、コーディングよりも大事なエンジニアの素質です。
思考の言語化
このようにエンジニアは常に報連相をし続ける職業であり、誤解のないように思考の言語化を繰り返すことが仕事です。
まずは報連相をできるようになることが、エンジニアにとって1つ目の必須スキルですね。
ITエンジニア になりたいなら、人との交流を大事にするべし
一人でコーディングする仕事もありますが、上記でまとめた通り確実に報連相が必要になる仕事であり、報連相するためには相手が必要になります。
そして、仕事をするなら一緒にやって楽しい人と活動したいですよね。そこで絶対必要になるのは、コミュニケーション能力です。
技術力で黙らせるタイプのエンジニアもいますが、本当に少数です。
後発のエンジニアはまず交流を大切にしてください。
エンジニアコミュニティなどに加わって勉強会に参加してトレンドの技術を抑えたり、自分で発表して知見を人に伝えることで学びを深めたり、それをチームに共有したり。
人と交流することでエンジニアは成長します。
人とのかかわりを持ちたくないから、エンジニアになろうとするのは正直エンジニアをなめているのでやめたほうがいいですマジで。
ITエンジニア になりたいなら、英語力は必須
エンジニアは英語への抵抗力があるときつい仕事です。
日本は技術後進国なので、米国や中国などの先進技術レポートを読みながらモダンな開発方針を学んでいくことが多いと思います。その時に英語の資料に抵抗があり、日本の文献ばかり選んで読んでいると、当然技術レベルも遅れていきます。
そして、コーディングをするときでもきちんと英文法になるように構築できないと、チーム間の意思疎通に困ります。
英語に極端な抵抗がある人はエンジニアを続けることが苦行になってしまう場合があるので、できる限り英語慣れしておきましょう。
英語の抵抗がなくなれば、エンジニアリングの世界はとても広くなり、自由になります。
そうなると仕事が仕事ではなくなる瞬間が訪れて、エンジニアの楽しさから抜けられなくなると思いますよ。
初心者ITエンジニア におすすめの本
最後に初心者エンジニアにおすすめの本を紹介します。
リーダブルコード
若手エンジニアの教科書です。(必修)
「美しいコードを見ると感動する。優れたコードは見た瞬間に何をしているかが伝わってくる。そういうコードは使うのが楽しいし、
自分のコードもそうあるべきだと思わせてくれる。本書の目的は、君のコードを良くすることだ」(本書「はじめに」より)。コードは理解しやすくなければならない。本書はこの原則を日々のコーディングの様々な場面に当てはめる方法を紹介します。
リーダブルコード紹介文
名前の付け方、コメントの書き方など表面上の改善について。コードを動かすための制御フロー、論理式、変数などループとロジックについて。
またコードを再構成するための方法。さらにテストの書き方などについて、楽しいイラストと共に説明しています。
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=baboblog04-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4873115655&linkId=1eca70c156cd15f18c0b6b197ae02916"></iframe>
達人プログラマー(第2版): 熟達に向けたあなたの旅
良いエンジニアになるための道が書いてあります。何度も読み返してはわからなくなるけど、違う気づきがある本です。
より良いプログラマになるための実践的アプローチ
本書は、Andrew Hunt and David Thomas、 The Pragmatic Programmer 20th Anniversary Edition (Addison Wesley、 2019)の日本語版です。
本書は、より効率的、そしてより生産的なプログラマーになりたいと願うソフトウェア開発者に向けて、アジャイルソフトウェア開発手法の先駆者として知られる二人により執筆されました。経験を積み、生産性を高め、ソフトウェア開発の全体をより良く理解するための、実践的なアプローチが解説されています。
先見性と普遍性に富んだ本書は、入門者には手引きとなり、ベテランでも読み直すたびに得るものがある、座右の一冊です。
達人プログラマー紹介文
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=baboblog04-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4274226298&linkId=a36112b351a7d5d91a34ae381c531b20"></iframe>
コメント