こんにちは。
この記事を読んでいるあなたは、

・エンジニアにどうやったらなれるか分からない
・エンジニアになるまでに何をしたらいいか分からない
・エンジニアになったときに求められるスキルはプログラミングだけでいいのか?
というように悩んでいるのではないでしょうか?
確かに、プログラミングを勉強するための教材やプログラミングスクールは沢山ありますが、それを勉強するだけでエンジニアになるのか?って分かりづらいですよね。
この記事を読んで分かること
そこでこの記事では、僕自身がエンジニアとして働いたり、プロジェクトマネージャーや採用担当として他のエンジニアを見てきたりした経験から、他の記事には載っていないような真実を5つ、お伝えします。
この記事を読むことによって、エンジニアになりたい!と思ったときに、気にしておくべきポイントが分かります。
早速、結論です
まずは結論をお伝えします。

1: どのプログラミング言語を勉強するかは、大して問題ではない
2: プログラミングは勉強しすぎるな
3: プログラミングの能力だけが全てではない
4: 今現場が求めているのは「多様性」。だからこそのチャンスがあると心得る。
5: 採用のときは、エンジニアの能力以外の部分もかなり重要視される
注意していただきたいのが、この5つは、「未経験からエンジニアを目指すにときに知っておくべきこと」です。エンジニアの経験者としての転職や案件獲得は、また内容が異なってきます。
この中のいくつかは、読んでいるあなたにとって、

えっ、そうなの・・・?
と思われる内容も入っているかもしれません。
その内容に関して、これ以降で説明していきたいと思います。
未経験からエンジニアになりたいあなたが、知っておくべき5つ真実

1: どのプログラミング言語を勉強するかは、大して問題ではない
未経験の方のTwitterのつぶやきなどを見ていると、「どの言語を勉強するべきか迷う」というコメントをよく見かけます。
ただ、あなたのゴールが「エンジニアになること」であれば、最初に選ぶ言語はどれでもよいです。悩む時間があれば、一刻も早く勉強しましょう。

プログラミングの基本は割とどの言語も共通しています(例: 変数や関数があることなど)
1つの言語をある程度使いこなせるようになれば、(文法は若干異なりますが)2つ目以降の言語を覚えるのはそれほど難しくありません。
なので、迷っている時間がもったいないです。とにかく自分の好きなプログラミング言語を1つ選び、勉強を始めましょう。
もしあなたに、どこか具体的に行きたい企業が決まっていて、

この企業以外は行きません!
というこだわりがあれば、その企業が開発で使っているプログラミング言語を選びましょう。
その場合は、あえて遠回りして違う言語を覚える必要がないためです。
ちなみに、選ぶプログラミング言語は、HTML/CSS以外のもの、特にJavaScriptをおすすめします。

HTML/CSSは通常「マークアップ言語」と呼ばれて、他のプログラミング言語とは異なるからです。
ただ、もしJavaScriptの敷居が高すぎる・・・という場合は、一度HTML/CSSを挟むのは悪くない選択肢です。
2: プログラミングは勉強しすぎるな
この部分は、「えっ?」と思ったかもしれません。
もう少しわかりやすく言い換えると、
ある程度スキルがついたら、早く現場に飛び込んでリアルな環境で成長できるように、転職活動をしたり案件獲得を目指そう」
ということになります。
もちろんエンジニアになるためにプログラミングの勉強は必要です。
ただ、その勉強を何年も続けるか?というと、僕は違うと考えています。
ある程度スキルがついたら、(もちろん辛いことも多いですが)リアルな開発現場に飛び込むべきです。
ちなみに、プログラミング学習を何年も続けることに関する現実はこんな感じです。

・Progateやドットインストールを何十週も周回していても、エンジニアとして現場で活躍できる力はつきません。
・プログラミングスクールに行って何十時間教えてもらっても、エンジニアとして現場で活躍できる力はつきません。
・一人で何か自分の作りたいものを何十個作っていても、エンジニアとして現場で活躍できる力はつきません。
独学と実際のプロジェクトを例えるならこんな感じでしょう。
○エンジニアが働いているプロジェクト: 「いろいろな雑菌がウヨウヨしている場」。
気を抜いたり何か間違ったりすると、プロジェクトの進行を止めたりなど、事故を起こしたりする可能性がある。
ただ、ヒリヒリするような緊張感のある、実際のプロジェクトだからこそ、エンジニアとしての本当の力がついてきます。
なので、ある程度プログラミングができるようになったと思ったら、一刻も早く、エンジニアとして転職活動をしたり案件を獲得するべきです。
3: プログラミングの能力だけが全てではない

これはすでに気づいているかもしれませんが、エンジニアとしてやっていくには、プログラミングスキルだけではダメです。
プログラミングスキル以外には、エンジニアには以下のものが必要になります。

1: 開発系: デバッグや設計スキル
2: その他: コミュニケーション能力や協調性、ストレス体制
1つ目の開発系のスキルは、未経験からエンジニアとして就職したり案件を獲得する際にはなくても大丈夫です (エンジニアになったあと、しっかり叩き込まれることになります)
一方で、2つ目のコミュニケーション能力や協調性、ストレス耐性がない場合は、エンジニアとしてはアウトです。
何故なら、余程小さい案件でない限りは、ソフトウェアの開発はチームプレイであり、一人だけで開発することはないからです。
仮に一人で開発する場合であっても上司やクライアントとのやりとりは発生するので、何かしらのコミュニケーションは発生します。
そういう関係者と、認識齟齬なく進められるようなコミュニケーション能力が必要となります。
例えばここに、
エンジニアB: プログラミング能力50点、コミュニケーション能力50点
このようなエンジニアが2人、いたとしましょう。
エンジニアAは、エンジニアとしてのプログラミング能力は非常に優秀で、何かを作るときのスピードや品質は一級品です。ただ、コミュニケーション能力がゼロです。
一方でエンジニアBは、プログラミング能力もコミュニケーション能力も平均的です。
この状態であれば、多くの場合、エンジニアBの方が採用されます。
何故なら、プログラミングはチームプレイであり、プロジェクトを進行させられることが非常に重要だからです。
エンジニアAはどんなにプログラミングができたとしても、結果的にとんでもない方向に開発を続けるリスクがあります。そのような人を採用することはできません。
それよりは、エンジニアとしてのスキルが「そこそこ」であったとしても、プロジェクトを着実に進行させられるエンジニアBの方が安心して採用しやすいといえます。

また、未経験だとプログラミングの能力をそれほど上げきれていない状態なので、プログラミングの能力だけで勝負してはいけません。
このエンジニアBの場合は「コミュニケーション能力」でしたが、その他、自分がすでに持っている能力と掛け合わせることで、より自分の強みが際立つことになります。
この「能力の掛け合わせ」という考え方は、特にエンジニアとしての能力が低い未経験の場合は、絶対に知っておくべき考え方です。
4: 今現場が求めているのは「多様性」。だからこそのチャンスがあると心得る
ビジネスの状況が加速しておりこの先が見えなくなっている現在、特定のリーダーが行った決断が正しいとは限りません。
もしその決断が間違っていた場合、会社はダメージを受けます。
このような状態で求められるのは、
です。
あなたは今はエンジニアになるためにプログラミングの勉強をしているかもしれませんが、そのプログラミングの能力に加え、これまでに培った経験や能力もあると思います。
その能力は、これから転職する企業や案件を発注する企業にとって、大きな魅力です。

お客様に、柔らかく物事を伝えることができるではないでしょうか?
エンジニアは往々にして、ボクシングでいう「右ストレート」なコミュニケーションしかできない人が多いです (全体の80%くらいはそんな感じです・・・)
なので、割と棘のある言い方をする人が多いです。
そんな中、関係者を丸く収めることができる能力は、確実にプロジェクト進行に重宝されます。

お客様に、商品の良さをアピールする言い方を心得ているのではないでしょうか?
エンジニアはよく「仕様上、できません。やれません」という、「今作っているものの仕様がどうであるか?」という、プロダクト中心の言い方をします。
ただ、その商品をアピールする場合は、仕様がどうであるか?というよりは、もっと魅力的な言い方をしたりする必要があります。
そういう考え方ができる人がエンジニアチームに1人いるだけで、商品企画担当やビジネス担当の業務は一気に楽になります。
なので、エンジニアになるときは、あなた自身のことを「普通のエンジニア」だと思ってはいけません。
それだと他の人と差別化できない上、あなたのこれまでの経験が生きません。
あなたは、「これまで他の人とは違う経験をして、違う視点を持ったエンジニア」であるべきです。
このことを覚えておくだけで、エンジニアとしての活躍の幅がぐっと広がります。
5: 採用のときは、エンジニアの能力以外の部分もかなり重要視される

つまりこれは、面接のときに応募者を見る観点が、
・その他の能力 (過去の経験など)や「人格」、「募集しているポジションとのマッチ度」: 50%
ということです。
ですので、あなたがどんなにエンジニアとしての能力を磨いたとしても、普通に落ちることはあります。
逆にいうと、仮にあなたのエンジニアとしての能力が低かったとしても、その他がバッチリ合えば転職できたり、案件を獲得できたりします。
「エンジニアになる」というと、「システムを相手にする仕事」ということもあり、どうしても能力の方ばかりに目が行きがちですが、結局はエンジニアも、それを採用する人も生身の人間です。
なので、ぶっちゃけ以下のような、自分ではどうしようもない部分で評価されることもあります。

・面接官の好き嫌い
・今募集しているポジションにはまりそうかどうか?
・今いるチームメンバーとうまくいきそうか?
これは、応募者側としては仕方のないことですし、このような内容は面接で落ちたとしても企業側からはなかなかオープンにしてくれません。
なので、もし面接に落ちたとしてもそこでショックを受けず、次にいきましょう。
まとめ
では、ここまでの内容をまとめたいと思います。
この記事では、未経験からエンジニアになりたいあなたが、知っておくべき、以下の5つの真実を説明しました。

・1: どのプログラミング言語を勉強するかは、大して問題ではない
・2: プログラミングは勉強しすぎるな
・3: プログラミングの能力だけが全てではない
・4: 今現場が求めているのは「多様性」。だからこそのチャンスがあると心得る。
・5: 採用のときは、エンジニアの能力以外の部分もかなり重要視される
どれも、現場でリアルに求めているものをベースにしている情報です。
これらをベースに、「プログラミングの勉強ばかりに目を向けすぎず」「最速でエンジニアになるためにはどうしたらいいか?」を考えてみていただければと思います。
この記事を読んだあなたが、これらの情報を参考にしてエンジニアに転職したり、案件を獲得できることを心より願っております。
この記事は以上です。ここまで読んでくださり、ありがとうございました!
コメント