エンジニアに向いている人ってどんな人?どんな特徴があるのか確認しよう

今回はエンジニアに向いている人はどんな人なのかなあっていうのを書いていきたいと思う。やっぱり知らないことをこれから始める際には、自分にそれが向いているかなあできるかなあとかって不安ですからね。

そんな向いてるとか向いてないとかで判断したくねえよ!とか思ってしまうけど、まあせっかくこの記事開いたのでなんか言ってるなあぐらいでも見てみてください。

ちなみにWebエンジニアとして生きてきた経験から書いたりするので、SIerのエンジニアとかはあまり分かりません。ではやっていこう。

エンジニアに向いている人の特徴とは

プログラミングを楽しめる

プログラミングしているのが楽しい!っていう気持ち大事ですよね。エンジニアは日々プログラムと向き合うのだから、その作業が苦痛ならエンジニアとして働くのはそれもまた苦痛だと思います。

エンジニアって業務の時間だけじゃなくて休みの日にプログラム触ったりする人って普通にいるんですよ。休みの日にプログラム書くって好きじゃないとできないじゃないですか。TwitterでこういうWebサービス作りました!とか〇〇やってみたとかっていう記事良く見かけますよね。

ZennとQiitaで個人開発で検索してみるとかなりの数の記事が出てくる。

それだけエンジニアの人たちは個人で色々開発しているということだ。他の業種ではわからないけど、土日にコードを書くエンジニアはかなりいると思う。そういう言わば変態のような人たちと一緒に働いていくことになるんだ、さあ君にできるかな

ただ業務外にコードいじるって結構普通ですよね。最初の数ヶ月や数年はコード触らない日なんてほとんどないんじゃないかなあ・・・ぐらいな気がする。プライベートはコード見たくないわ・・っていう場合はちょっときついかも。

技術への興味

エンジニア界隈は新しい技術への移り変わりが激しいので、どんどん新しい技術が出てきます。Developer-Roadmapっていうものがあるんだけど、JavaScriptを見てみるとこんな感じ。

frontend-roadmap

いやもう広がりすぎててよくわからんわって感じですよね。ちょくちょく知っていたり使ったことのある技術もあるでしょう。特にJavaScriptはどんどんいろんなものが出てくるから学び続けなければならない。

新しい技術が出てきた時にそれをいじってみるっていうことができる人は強い。企業で働いていても新しい技術取り入れてサービス開発っていうことはよくありますからね。

仮説検証を繰り返せる

何か開発しているとエラーと毎日のように戦います。開発がひと段落ついてリリースした後もバグは必ずと言っていいほどあるからそのバグを潰す作業をする。

使う側だけだど「バグあるんだけど?は??」ってなると思うけど、もうそれはしょうがないんだ・・・バグは出る。コードを書いているのも人間だから・・・何かバグや障害が起きて企業が責められるっていうことはあるけど、開発したことのある身としてはなんとも言えん。。

まあそういったバグやエラーの原因がどこにあるか?このコードを消せば直るんじゃないか?みたいな仮説を立てて、何回もそれを繰り返すんだ。簡単に直るものもあるし、なかなか原因がわからないものもある。そういったものと地道に戦える人は強いと思う。

コミュニケーション力

エンジニアと聞くと黙々パソコンに向かってキーボードカタカタしているだけでしょ?っていうイメージもあると思うけど、コミュニケーションする機会は多いです。

  • 実装相談
  • レビュー
  • 要件・仕様についての話し合い
  • ・・・

コードを書くのも基本的にチームプレイで自分が書いたコードをレビューしてもらったり、他のメンバーが書いたコードをレビューするっていうことが当たり前に行われます。そう、レビュー時のコミュニケーションも問われてくる。

そしていつもSlackなどでやり取りできるようになっているから、そこでいろんな話し合いが行われます。コードを書いていてもいつもSlackと繋がっているから常にコミュニケーションの渦に入っているような感じだ。

ポジションや役割によっては他部署の人と話し合って要件を話し合ったりする機会もありますしね。パソコンと向き合ってコードを書くだけじゃダメなんだ。

エンジニアの三大美徳とHRTの気質の持ち主

もしかしたら以下で示す気質を持っている人はエンジニアに向いているかもしれんぞ。エンジニアの3大美徳は怠惰・短期・傲慢と聞きますよね。どれも印象の悪い言葉だけど、どういうことなのか。

  • 怠惰・・・全体の労力を減らすために手間を惜しまない気質。この気質の持ち主は、役立つプログラムを書いてみんなの苦労を減らしたり、同じ質問に何度も答えなくてもいいように文書を書いたりする。
  • 短期・・・コンピューターが怠慢な時に感じる怒り。この怒りの持ち主は、今ある問題に対応するプログラムにとどまらず、今後起こりうる問題を想定したプログラムを書く。少なくともそうしようとする。
  • 傲慢・・・神罰が下るほどの過剰な自尊心。または人様に対して恥ずかしくないプログラムを書き、また保守しようとする気質。

プログラマーの三大美徳その1「怠慢」

言葉のイメージから誤用されそうだけど、内容は良いことですよね。「Perl」の開発者でもあるラリー・ウォールが言った言葉で見かけることも多いです。

ただ企業でエンジニアとして働く際にはTeemGeekに書かれているHRTの方が重要だと感じる。謙虚 (Humility)・尊敬 (Respect)・信頼 (Trust)の頭文字をとったもの。

  • Humanity・・・世界の中心は君ではない。君は全知全能ではないし、絶対に正しいわけでもない。常に自分を改善していこう。
  • Respect・・・一緒に働く人のことを心から思いやろう。相手を1人の人間として扱い、その能力や功績を高く評価しよう。
  • Trust・・・自分以外の人は有能であり、正しいことをすると信じよう。そうすれば、仕事を任せることができる。

コードを書く時のことじゃないけど、こういう意識はチームとしての働きをきっと円滑にしてくれる。こういう精神性持っている人と一緒に働きたいと思うもん。こういった姿勢を持っている人はエンジニアとしてもうまく働けるかもしれない。

パソコンをずっと触っていられる

エンジニアってパソコンをずっと触っているっていうのが日常だから、パソコンをずっと触っていられないっていう人には難しい。結構パソコン一日中触っていられないわ・・・っていう人もいると思うんですよね。そういった方はちょっと仕事するのがキツくなってしまうんじゃないかな。

ただ人間って慣れますからね。どうせ仕事したらそういう作業体制にきっと慣れてしまう。ただずっと座っているのは体に悪いみたいだから、今座って作業している人はスタンディングデスクなどを使って作業するといいかもしれない。

英語を読める

英語が読めるエンジニアは強いです。エラー文は英語で出てくるし、言語やライブラリのドキュメントも英語ばかり。日本人は翻訳してそれらをなんとか理解するっていうパターンが多いけど、これが翻訳なしでできたら最強。

そもそも僕らが使うOSSのライブラリなんかはいろんな人が英語でやりとりして作られていますからね。

React

こういうOSSに貢献する日本のエンジニアの方もたくさんいると思います。

なかなかその境地には至れないけど、英語に抵抗がないと良いです。エンジニアとして開発していれば英語を見ない日はないと言ってもいいぐらい。(そもそもコード自体英語っぽいね)

何書いてあるかわからなくてもGoogleの検索と翻訳の力を使って理解していこう。英語ができると英語でそのまま勉強できるからいいよね。

論理的に考えられる

プログラミングの処理って「ここがこうなってこうなってこうなって、最終的にこうなる!」みたいな論理の塊だから論理的な思考をできるといいです。ただ正直プログラム書いていればそのうちこれも慣れていきます。

それと別に文系でそんなの分からないよおっていう場合も問題ないです、文系でもエンジニアになれます。

論理的思考とか聞くと難しそうとか思うし、なんか自分もそんなかっこいい言葉書きたくないけどまああった方が良いと思います。

エンジニアに向いていない人

逆に向いていない人はどんな人だろうか。

技術への興味がなくプログラミングが苦痛だと感じる人

当たり前だけどそういった場合は向いていないです。ポジションによったりするけど、毎日の仕事でコードを見たり書いたりするので、毎日苦痛を感じるはずです。「プログラミング苦しいわ、おええええっ」て思う場合には他の業種を選択することをおすすめします。

他に挙げる要素としては特にないかな。さっき向いている人であげたものをほとんど持っていなくても、一番大事なのは技術への興味やプログラミングが嫌いじゃないこと。

好きであればそのまま突き進んでいけるでしょう、勝手に勉強するし他の人とコードについての話し合いもするでしょう。英語も必要なら読むし、バグがあるならそれを直そうと仮説検証して解決するはずです

大事なのはやっぱり気持ちだ。

とりあえず実際にコードを書いてみればいい

色々書いてみたけど、ぶっちゃけやってみないと分からねえってありますよね。今はネットで簡単にプログラミングを試すことができるから、プログラミングに興味があるならProgateやその他のサービスを使ってみるといいですよ。

Progate

それと以下の記事でプログラミング学習に使えるサイトを紹介しているからよかったらどうぞ。

実際にちょっとやってみて「全くこれは自分には向いてないわ、つまらん・・・」とか思ったらその時やめればいいと思うし、ちょっと楽しいと思えばそのまま継続してみればいいと思いますよ。