未経験からエンジニアへの転職を目指すことを決めたら、次に取り組むべきことは、「何を学ぶか」です。
別の記事で、エンジニアに転職する上でまず考えるべきことを書いておりますので、迷われている方はそちらを読んで頂くことをお勧めします。
上記の記事でも記載しておりますが、なぜエンジニアになりたいのか、エンジニアに転職して何をしたいのかを明確にする必要があります。
それを明確にしなければ、「何を学ぶか」を決めることが出来ません。
まだある程度明確になっていない場合は、上記の記事を参考に、まずそこから考えてみてください。
明確になった方は、次に「何を学ぶか」のフェーズに入ります。
プログラミング言語の選び方と考え方について
世の中にあるWebサービスやスマートフォン向けのアプリなどは、プログラミング言語を使ってプログラムを組み、動作していますので、どの言語を学ぶかを決める必要があります。
Web開発、モバイルアプリ開発、ゲーム開発、データサイエンス、機械学習など、それぞれの分野には異なる言語や技術が求められますし、難易度も異なります。
どの言語で何を実現できるのか、どの程度難しいのかについては、まとめられた記事や経験者の記事が多くありますので検索してみてください。
今回は、現実的な部分で、ご自身の状況を踏まえた上での学ぶべき内容についてお話します。
大きく分けて、以下の2パターンを例に、お話します。
①時間や金銭的に余裕があり、学習に多くのリソースを割ける
②とにかく早く転職を実現させたいし、現場経験を積みたい(現職が辛い、会社が傾いている、年齢的に早く経験を積みたい)
①時間や金銭的に余裕があり、学習に多くのリソースを割ける
この場合は、ご自身の描くキャリアパスに直接結び付く言語を学ぶことをお勧めします。
例)
ゲームを作りたい:C#
スマートフォンアプリを作りたい:Java、Swift
AI(人工知能)・機械学習:Python/R/C++
Webサイトを作りたい:JavaScript、HTML/CSS、PHP、Ruby
上記の言語は一例ですが、このように実現したいことによって変わります。
また、ゲームやスマートフォン、AI等言語は、Web系のシステムを実現する言語と比較して学習難易度が高く、かなりの時間が掛かります。
また、未経験では、転職の難易度も高いです。
とはいえ、リソースが割ける余裕があるし、今すぐ転職しなければならないという状況でない場合は、ご自身の目標や理想とするキャリアパスを実現する為に直結する言語を学ぶことがモチベーションの面でも良いと考えています。
どうしても未経験では転職が出来る状況では無いという場合は、一旦現場経験を積むために求人数の多い言語を学び直すことも出来ますし、その場合学習難易度が下がる可能性が高く、早く技術を習得できるかと思います。
また、転職時に難易度の高い言語を学んでいたという実績も加えられ、転職時に有利に働くことが多いので、キャリアパスをステップに分けて構築することも出来るようになります。
②とにかく早く転職を実現させたいし、現場経験を積みたい(現職が辛い、会社が傾いている、年齢的に早く経験を積みたい)
この場合は、とりあえず下記を学習することをお勧めします。
・HTML/CSS
・JavaScript
・PHP
難易度やスピード、求人の案件数等を考慮した場合は、上記が一番早いと思います。
導入本や学習動画コンテンツが豊富にあり、プログラミングスクールでも必ず上記は対象になっているはずです。
上記の技術を使えば、WebシステムやHPを作ることが出来るようになります。
また、クオリティが低くても、自身で簡単なサイトを作って見せられるような状態になれば、選考に参加することが出来ます。
いつか実現したいことがある、入りたい企業ある、企業をしたい、等の目標はあるかと思いますが、内容によっては非常に時間が掛かってしまい挫折する可能性が高いです。
そんなことも言ってられないと思いますので、上記の組み合わせを学習し、SES等で募集されている未経験エンジニアの募集に応募し、現場に入るということが現実的なファーストステップになると思います。
転職が実現出来たら、次のステップに入ります。
現在の状況を脱して、とりあえず常にプログラミングに触れたり、サービスを運用する環境、企業での研修等で経験を積める状況になります。
まずは、その現場で通用するように技術を学びつつ、ある程度業務をこなせる状況になったら、ご自身で考えた実現したい目標に向けて学習を始めます。
一通り現場でプログラミングを組んだ経験があるので、別の言語を学ぶ時は学習スピードが上がっていると思います。
・入りたい企業があれば、その企業が募集している言語を学ぶ
・アプリやゲームを作りたければ、それに該当する言語を学ぶ
・いつかフリーランスになりたいから、個人で何かサービスを作ったり案件を請けてみる(副業規定は要確認)
もちろん最初に入った会社でやりがいがあったり、キャリアアップをしたいと思えたのであれば、その会社のキャリアアップのために必要なことを学ぶことも可能です。
逆に入った会社が相当辛く、厳しい現場だったとしても、エンジニアとしての現場経験は積まれていく状況なので、再度転職をする上でも経験者枠も視野に入れて転職活動が可能になります。
業務時間外での学習なので、内容によりこのステップは多くの時間を必要としますが、現場経験でしか学べないことが多くあり、その経験の方が重要になりますので、目標実現に向けて実現の可能性がぐっと引きあがります。
<まとめ>
以上がプログラミング言語の選び方と考え方になります。
そもそもにはなりますが、プログラミング言語の難易度が低いからと言って、未経験からエンジニアに転職すること自体の難易度は低い訳ではありません。
何度も書いていますが、まずは転職する上での目標や実現したい事、目的を明確にして、見失わないようにすることが重要です。
それがモチベーションとなり、挫折を防ぐ力になります。
もし、挫折しかけている、具体的に何を学ぶべきかわからない、学習ステップに躓いている等があれば、ご自身で抱えるのではなく、第三者に相談してください。
私であればメッセージは無料で対応していますし、通話サービスもご用意しております。
私以外でもココナラやSNS上で相談を受けている方や転職のエージェントでも良いかもしれません。
とにかくお一人で抱え込まないように、頼れるリソースはフル活用して実現に向けて一歩ずつ進んで頂きたいと思っております。
少しでもエンジニア転職の参考になれば幸いです。