プログラミングの勉強時間ってどれくらい?【最短でエンジニアになり、成果を出す方法】

プログラミングにかかる時間 プログラミング
programming-time

こんにちは。

この記事を読んでいる方はこのような悩みを持っているのではないでしょうか。

・未経験からプログラミングの勉強をしようとしており、習得までどのくらいの時間がかかりすぎるか知りたい
・プログラミングの勉強がかなり時間がかかると聞いているが、本当にそんなにかかるかを知りたい
・早くプログラマーとして転職したり案件を獲得したいと考えているが、それがどのくらい先になるか、目処を知りたい

上記の悩みのいずれもよくわかります。ゴールの見えない状態で頑張り続けるのは大変ですよね。

この記事では、こういった悩みに対して、回答をしていこうと思います。

記事を読む価値

この記事を読んでいただければ一般的にプログラミング言語の習得にどのくらいの時間がかかるかを知ることができます。

さらにそれを踏まえた上で、いかにあなたの目標の

エンジニアとしてどこかの企業に就職したり、フリーランスとして案件を獲得する

を最短で達成するか?というロードマップもご説明します。

なぜそう言えるか

僕自身も、過去にエンジニアをやっていました。

その時は非常に苦労しながらもなんとかC++を覚えたり、最近では Angular を使って個人で Web サービスを開発したりしています。

その他にもPythonや HTML CSS などを扱うことができるのでひとつの言語を「ある程度」「実務で困らないようになるレベルで」覚えるまでにどのくらいの時間がかかるかという肌感覚を持っています。

この記事ではそういった経験を踏まえ、少しでもあなたの参考になるような内容をお伝えできればと考えています。

早速、結論

今回お伝えしたい内容はこちらです。

・プログラミングを勉強しすぎるな
・自分のすでに持っている強みを活かせ

です。

「プログラミングを勉強しすぎるな」と読んで

えっ・・・?エンジニアになりたいのにプログラミングの勉強が要らないってどういうこと?

と思った方、安心してください。

これ以降で、そのロジックをきちんと説明していきます。

そもそも: 未経験からのエンジニア転職に必要なプログラミングの勉強時間

一般的には一つのプログラミング言語を業務レベルになるまで、1000時間の勉強が必要だと言われています。

つまり、一日3時間勉強してもほぼ1年かかるわけです。 休日なら可能そうですが、平日、仕事が終わった後の3時間の勉強時間は正直なかなか辛いですね。

さらに一人前になるには実務経験を3年ぐらい積む必要があります。
そして上位10%に入るなら、もっともっと長い年月がかかることになります。

しかもエンジニアはその他、

・設計をする能力
・チームで開発をする能力 (Gitを使ったり)
・その他ツールを使いこなす能力
・他の人と実務レベルのコミュニケーションをする能力 

など、非常に多くの能力を求められます。

ですのでエンジニアになる前や、仮にエンジニアになったとしても、挫折していく人が多いのも仕方ないことです。

ただ、待ってください。

あなたがそもそもプログラミングを勉強している目標って何でしょうか?

・プログラミングが楽しいからでしょうか?
・いろいろなプログラミング言語を習得したいからでしょうか?

そうではないと思います。

あなたがプログラミングを勉強しているのは、

・エンジニアになりたいから

ではないでしょうか?

なぜエンジニアになりたいのか?

これは僕の推測ですが、

・今の職業が嫌だ
・エンジニアに憧れがある
・おしゃれなオフィスでカタカタしたい
・市場価値を上げたい
・年収を上げたい

とかではないでしょうか。ですのであなたのプログラミングの習得はあくまで目的のはずです。

「おしゃれなオフィスでカタカタしたい」とかは個人の趣味嗜好の話なので何とも言えませんが、

・市場価値を上げたい
・年収を上げたい

これがメインの目的であれば、プログラミングを1000時間も勉強してからの転職は辛いですよね?

もしそうであれば、もう少し、楽な道を選びませんか?(変な勧誘ではないです)

ここからは、脳死をして1000時間の勉強をするのではなく、いかに最短経路でエンジニアになるか?という手法をご説明したいと思います。

スキルの掛け合わせで、最速でエンジニアになりましょう

僕の他の記事でも紹介していますが、スキルを掛け合わせることで、自分の市場価値を上げることができます。

例えばあなたが面接官だったら、どっちのエンジニアは作用したいでしょうか?

・1: 未経験でプログラミングを勉強した人
・2: 未経験でプログラミングを9ヶ月勉強、現職はマーケティングチームでエースとして活躍中。

どちらかと言われると2の方ではないでしょうか。
2の人であれば、プログラマー以外にも、マーケターとしても活躍してくれそうですよね?

特に小さい提供や新規事業を基本的に人が不足しているので、プログラマーとして採用されたとしても、いろいろな仕事をやることになります。

 「私はエンジニアとして入ったので、プログラミングしかやりません」

という態度だと、企業としては使いづらいのです。
なので、この人のように、

(仮に特定スキルが満足なものでなくても)広く業務をカバーできる人 

を重宝します。
この例であれば、マーケティングなどまで任せることになると思います。

また、あなたがすでに持っているスキルのレベルが高ければ、プログラマーとしてのレベルが低くても、年収を底上げすることができます。

例えば例として説明した人の場合は、マーケティングチームのエースだったということで、その時の年収に近いレベルの年収がもらえることが予想されます。

エンジニアになるからと言って、あなたがこれまで積み上げててきたスキルを全て捨てる必要はありません。

具体的なスキルの掛け合わせの方法は?

具体的なスキルのかけあわせ方法を知りたい方は、下記の記事を読んでみてください!
例としてどこかの企業に就職することをベースに書いていますが、フリーランスで案件を獲得する場合は、この記事の「企業」を「案件」に読み替えていただければ大丈夫です。

ちなみに、「これまで積み上げてきた実績がない!」という人は

むしろ「マーケティングチームのエース」とか、そういう分かりやすい実績がない人の方が大多数だと思います。

そういう目立った実績がない方(僕も同じ)に向けては、この記事の後半で、そのための対策も記載してますので、もう少しお付き合いください。

これを踏まえた上での「プログラミングの習得」とは?

ここまで、プログラミングとその他のあなたのスキルを掛け合わせることで、エンジニアとて就職したり、市場価値や年収を上げていくべきという話をしました。

それでは最初の話題に戻り、あなたが既に持っているスキルとの掛け合わせを前提とした、「プログラミングの習得」の定義を考えてみましょう。

この人のように既に自分の強みとなるスキルを持っている場合は、プログラミングのスキルにそれほど頼る必要はありません。ですので、プログラミングには、

・会社のエースになるレベル
・ひとつの言語を習得して業務レベルに使いこなせるレベル 

ここまでのレベルを求める必要はありません。

エンジニア未経験のあなたが満たすべきプログラミングのスキルは、

・とにかく未経験のエンジニアとして他の会社が雇ってくれるレベル

です。

プログラミングの勉強や(受験勉強などでもそうですが)、目の前の作業に熱中しすぎると、本当のゴールを見失ってしまいます。
エンジニアになりたいあなたは、その格好がどんなに悪くてもゴールまでたどり着ければ、ゴールはゴールです。

あなたが具体的にやること

ですのであなたはまず、プログラマーとして第一歩を踏み出せるようなプログラミングのレベルを満たせれば十分なのです。
それだけであなたは他の未経験エンジニアとしては大きく異なる強みを持ったエンジニアとして転職することができます。

これはぶっちゃけ・・・ですが、仮にあなたがプログラマーとして1000時間勉強したとしても、すでに同じ会社で働いているエンジニアの方が実務経験がを積んでいるので、数段上のスキルを持っています。

そういう意味で、プログラミングの勉強を長く続けすぎるのではなく、早く就職するのをおすすめします。

他のスキルと掛け合わせること前提の最低限のプログラミングスキルとは?

それではこの、「プログラマーとして第一歩を踏み出せるようなプログラミングのレベル」を 定義してみましょう。

先ほどはふれませんでしたが、 プログラミングの基本的な部分を理解し簡単なアプリが作れるレベルになるのはだいたい200〜300時間の勉強を経過したあたりと言われています。
つまりプログラマーとして実務レベルで求められる1000時間の2〜3割程度の勉強時間で良いことになります。

1日3時間勉強する場合、3ヶ月勉強をするだけでこのレベルに到達することになります。この数字になるとだいぶ手の届きやすい数字になったのではないでしょうか。

また、 この3ヶ月間では、いろんな言語をつまみ食いする時間はありません。

あなたがまずすべきは、どこか第一志望の企業を決め、その企業が使っている言語を集中的に3ヶ月間勉強する事です。

また、その言語はHTML/CSSなどの「マークアップ言語」ではなく、そのほかのプログラミング言語をおすすめします。そっちの方が今後、他の言語を学習するときに応用が効くからです。

この3ヶ月の勉強が終わった後、実際に面接にチャレンジしてみましょう。
面接や転職活動自体は大変ですが、リスクはゼロです。なので、どんどんチャレンジすべきです。

もちろん転職をすることはリスクが伴いますが、転職「活動」自体はリスクゼロです。いろいろな情報を収集するためにも、できる限り活動をすることをおすすめします。

志望動機の書き方や面接でのアピール方法などは以下の記事に載っていますので、そちらをご覧ください。

改めて「これまで積み上げてきた実績がない」人へ

最後になってしまいましたが、今回の例で紹介したような「マーケティングチームのエース」のような分かりやすい実績がない人がどうしたらいいか?をご紹介したいと思います。

そういった人がとれる対策をお伝えします。対策は大きくわけて2つです。

1. かけあわせの数を増やす

分かりやすい実績があれば、

「マーケティング」 x 「プログラミング」

という2つの掛け算でよいと思います。ただ、それほど強い実績がない場合は、3つくらい、掛け合わせてみましょう。
ちなみに僕も3つ掛け合わせて強みとしています。

僕の場合は、

・プログラミング経験
・UIデザイン
・商品企画

この3つをかけ合わせて、

「モノづくりであれば、他の人よりも広くカバーできているため、いろいろな人の考えや気持ちがわかります。なので、それらを束ねるプロジェクトマネージャーができます」

という言い方で転職しました。うまくかけ合わせれば、それほど強い軸でなくても十分アピールになります。

ただ、この軸の数を増やしすぎると、

この人は結局何が強いんだろう・・・

と思われる可能性があるので、数は多くても3つ、4つくらいにしておくのがおすすめです。

2. プログラミング勉強の時間を増やす

そして3つも軸がない!という方は、プログラミングの勉強にかける時間を200〜300時間とお伝えしたものを、500時間とかに伸ばしましょう。

こうすることで、少しでもプログラミングの力を実務レベルに近づけることが目的です。

その上で、200時間〜300時間の勉強の人よりも強いプログラミングに関するアピール x もう1つの軸をかけあわせるのがよいと思います。

この記事のまとめ

もしあなたが一刻も早くエンジニアとして転職したい場合は、プログラミングの学習は手段であって目的ではありません。

目的は一刻も早くエンジニアとして転職することということを明確に意識しましょう。
その上で、最低限度のプログラミング勉強時間である、200〜300時間の勉強を行い、自分の強みを棚卸しましょう。

この記事は以上です。ここまで読んでくださり、ありがとうございました!

コメント

タイトルとURLをコピーしました