どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。
「プログラミングを勉強しようと思っている(している)が、どのぐらいのレベルに達すればIT企業に入れるのか?」
IT業界で10年以上働いているとこのような質問を受けることがあります。
また、当ブログもIT業界に興味のある方向けの情報を発信していますので、同様の質問をいただきます。
この問いに対する答えなんですが、ぶっちゃけどう答えていいのかわかりません(笑
目指す企業によっても求められるレベルは違いますし、どういった状況でプロジェクトに参画するかによっても異なってきます。
似たような質問で「プログラム覚えたらIT業界で働けるのか?」というのもあります。
これも程度によるのですが
「学校で英語勉強したら海外で仕事できるようになると思います?」
と答えたりしていますね。
ちょっと意地悪な返答ですが、両者は似たようなもんだと私は思っています。
もっとはっきり言うと、プログラムを覚えたからといって、即IT業界では即戦力にはなりません。
そして、私はこれらの質問をしてきた人にアドバイスしていることがあります。
それは
「プログラミングスクールや独学で勉強した知識はITの現場ではほとんど役に立たない」
これです。
これからプログラミングを勉強しようと思っている人や、すでにしている人にはちょっと酷な話かもしれませんが、現実は現実として知っておいたほうがいいので、記事にしたためました。
基礎は重要だが詳細は捨て置け
はじめに断っておきますが、何事も基礎は重要です。
まったく何も知らない人とプログラミングの基礎を知っている人では、採用において後者の方が有利なのは言うまでもありません。
ただ、この基礎を学ぶのに高い学費を払ってスクールに通ったり、長い年月(半年以上〜数年)をかけてプログラミングの勉強が必要かは疑問です。
私が基礎と思っているのはざっと以下のようなものです。
・プログラミングをする開発環境の構築
・基礎を学べる参考書程度の知識を習得
・できればシンプルなアプリを作成
これらをクリアすれば、企業側のあなたに対する評価は変わってくるかと思います。
時間にしてどのぐらいかかるかは人によって変わってくるでしょうけど、早い人であれば数ヶ月もあればできるのではないでしょうか。
一点注意点があるのですが、すべてにおいて「細かいところ、深いところは全部後回し」にすべきです。
やりはじめたら様々な点で「?」が出てくるかと思います。
意味がわからないところもあるでしょう。
しかし、重要なのは「ITの仕事へのイメージを作り上げる」ことです。
90点、100点を目指してはいけません。
70点、場合によっては60点や50点でもいいぐらいです。
企業は現段階でのあなたのスキルをまったくあてにしていない
「ポテンシャル採用」なんて言葉がありますが、IT企業が未経験者を採用する場合、求めているものはほぼポテンシャルのみです。
あなたの採用時点でのITスキルはまったく気にしません。
採用する側はあなたがこれまでに得たITスキルが仕事の現場ではほとんど役に立たないことを知っているからです。
じゃあ「事前にプログラミングの勉強をしたって無駄じゃないか」と思われるかもしれませんが、上に書いた基礎は少しは役に立ちます。
それに重要なのは
・あなたの本気度
・行動力
なので、採用面接などで勉強の成果を相手に伝えることができたらそれは大きな武器となります。
採用側が未経験者に求めるもの
採用側が未経験者に求めているものはポテンシャル。
上でそのように書きましたが、もう少し具体的に書きます。
私は以前、ある企業の採用を手伝っていたり、現在はスタートアップ企業の開発部門の責任者をしています。
なのでこれは私が求めているものになるのですが、他の企業もそう大差ないと思います。
・IT業界に向いているか
IT業界には向き不向きがあります。
向いてない人も業界には結構入ってきていて、「あんたなんでまたIT業界に・・・」って言う人も少なくないです(笑
で、そういう人は大抵数年でやめていきます。
採用する側としては当然、向いてない人は避けたい。
どんな人が向いていて、どんな人が向いてないか。
・向いている人
→モノづくりが好き
→理屈っぽい(笑
→新しいモノ好き
→変化を楽しめる
・向いていない人
→理屈で考えるのが苦手
→変化が苦手
といった感じでしょうか。
もちろん私の独断と偏見ですが、当たらずとも遠からずだと思います。
応用力があるか
応用力はIT現場において非常に重要なスキルです。
ITの世界においてずっと同じような仕事をすることは極めて稀。
しかし、似たような仕事は少なくないです。
例えば、コンビニとスーパー、ドラッグストア、これらのシステムは共通点も多いでしょう。
フリマや恋人、仕事といったマッチングサービスもシステムの中身はほとんど同じ。
特徴はそれぞれあるにしても、基本は同じです。
なので、経験や知識を基にどれだけ応用力を発揮できるかが、エンジニアの生産性の高い低いを左右します。
ぶっちゃけ、ちょっと話しただけで応用力の有無を見極めるのは難しいです。
どちらかというと、応用力があるかどうかよりも、ない人かどうかのほうが判断しやすいかと。
ヒューマンスキル
ヒューマンスキル、使い古された言葉なのでちょっと嫌なのですが、これ以外に的確な言葉が思い浮かびません。
個人的には最も重要なものだと思っています。
・他人の話を正確に理解できているか(分からないことを把握できているか)
・相手に自分の考えを正確に伝えられるか
・バランス感覚があるか
・自分を含め、物事を客観的に捉えているか
・自分に対して相手は何を期待しているのかを正確に理解する
ほかにもいろいろあるかとは思いますが、一例をあげてみました。
まとめ:プログラミングは少々でポテンシャルを磨け
重要なことなので最後にもう一度書いておきます。
いくらスクールや独学でプログラミングを勉強しても現場ではほとんど役に立ちません。
基礎は重要ですが、はじめは周りのエンジニアがある程度何を言っているかわかれば充分です。
それよりも上に書いたポテンシャルを磨くことのほうが重要。
もちろん、簡単なことではなく、むしろプログラミングのほうが成果がわかりやすくてとっつきやすいです。
それでも人間としての基礎のほうが重要なのは間違いないですね。