IT業界に行きたい! プログラミングがしたい!
でも、未経験だし働いているし、今から学校に行くのはちょっと厳しいな……。
なんとか独学で転職まで行く方法はないものか。
そんな疑問に答えます。
IT業界経験は10年以上あります。名が轟くようなすごいエンジニアではありませんが、未経験の方に業界について語るつもりで書いていきます。
未経験独学で転職、いい響きですよね。プログラミングも『言語』なので、英語を覚えるに近しい満足感が得られるかと思います。
でも、働きながらプログラミングを学ぶのは結構、いやかなり大変です。
既に挑戦して、挫けてしまった方も多いのではないでしょうか。
ということで、なんとか独学でもIT業界に就職する所まで行く方法はあるのかという所で、最適だと思う学習方法についてお話していきたいと思います。
プログラミングの独学、難しいです。
正直私もお金を払って習得した身ではあるのですが、代わりに未経験からIT業界に就職する所まで人を育てた経験は何度かあります。
その経験を頼りに役立つ記事を目指して書いていきますので、よろしくお願いいたします。
Contents
スポンサーリンク
【プログラミング系】IT業界に未経験独学で転職する方法
まず、未経験独学でIT業界に転職するためのゴールは、『自分で作ったアプリやサービスを手に転職活動する』事だと思います。
もしアプリを作る難易度が自分にとって高いようであれば、資格を取得し一度未経験ではなくなった上で、再度転職するという選択もアリかなと。
実際IT業界経験者でも、面接だけで相手のスキルを測るのは難しいです。
なにしろ、どの技術もある程度歴史があるので、深堀りすれば深堀りするほど技術力が上がるのがシステムエンジニアです。
まずは、そのあたりのスキル事情についてお話していきます。
『あなたに何ができるか』が説明できる人、できない人
たとえば、ソフトウェア開発系の業界に行くことを考えてみます。
転職面接で自分のスキルをアピールするに当たり、障害になりがちなのは以下の2点です。
- 先方のニーズとこちらが抱えているスキルの不一致
- 提示されているスキルのレベルがどの程度か分からない
このあたりをどう先方に説明するかが大きなポイントです。
先方のニーズとこちらが抱えているスキルの不一致
『先方のニーズとこちらが抱えているスキルの不一致』というのは、面接で自分のスキルをアピールしても、それが先方にとって有利になると判断されなければ価値を生まない、というジレンマの話です。
しかし、これが意外と難しい。
『プログラミング言語』と聞けば、IT業界に行きたいという人は勉強したことがある方も多いかもしれませんが、「プログラミング言語と言えばコレ!」という固定の言語は、あんまりないんです。
会社によってはCやJavaを使っている所もありますし、Web系ではLaravelやReact、Vueなどが主流の企業も多いでしょう。
そして、それらは会社のスタイルによって異なります。
たとえばWeb系のシステム開発事業に行きたいなと想定したとして、HTML+CSS+PHP(Laravel)+React、なんていう環境を想定したとします。
でも、もしかしたらReactではなくVueかもしれません。
まあ片方ができれば基本的には応用が効くので、ここまでできれば面接でのアピールにはなるでしょう。
でも、バックエンドエンジニアとして働く職場で面接した場合は、あまりアピールの効果がないかもしれません。
……といったように、IT業界には様々なスキルがあるので、自分がどの方向に進みたいのか、予め調べて考えておく必要があります。
今未経験で、これから独学でIT業界を目指したいという場合には、まず自分が何を作りたいのか。スマホアプリなのかWebサービスなのか、ある程度は決めておくようにしましょう。
提示されているスキルのレベルがどの程度か分からない
そして、多くの場合、職務経歴書に記述するようなレベルの情報だけでは、その人がどのような能力を持っているのかを判断できない事がほとんどです。
たとえばWeb系のプログラミング言語で根強い人気を誇っているPHPですが、こと「PHPの経験があります」と言っても、どの程度までできるのかというのは人によって違います。
生PHPをいじって簡単なコードが書けますという場合も、『PHP経験者』。
フレームワークなどの実践的な知識を持っていて、実際にサービスを公開し、パフォーマンス・チューニングの知識がある場合も『PHP経験者』と書くことができます。
このように、スキルレベルというのは同じ言語ひとつ取っても大きく違う可能性があり、それを判断するために面接官は様々な質問を投げかけます。
未経験独学で転職する場合には当たり前ですが現場経験がないので、プログラミング言語を勉強して就職する場合にも、自分がどこまでできるのかを説明し、アピールする必要があるんです。
しかし、これは結構難しい。
現場経験があれば、『前職で○○という分野のサービスに関わり~』といったような切り出しから、自分がどの程度それを手掛けていたのかを話す事ができます。
しかし未経験の場合には、どの程度自分が作れるのか、何らかの方法でアピールしなければならないんです。
スキルアピールを効果的に行い、転職する
ということで、どうして転職で自分のスキルをアピールするためのゴールが『アプリやサービスを自分の手で作ってみること』なのかは、お分かり頂けたかと思います。
上記2点の問題を一発で解決してくれるのが、『自分の作品』というわけなんです。
未経験で転職する場合には、IT業界経験者が転職する事と同じ土俵で戦わなければいけませんから、気合いも必要です。
といっても、まだ20代でこれから覚えていけるという方は、簡単なものを作っただけでも信頼を勝ち取る事はできると思います。
一番難しいのは思ったものを形にすることですから、最終的にはここができるように努力していきたいですね。
もしくは、資格を取る事を第一のゴールにして、とにかくIT業界に乗り込んで経験を積むことです。
これは目標が『資格』と明確なので、狙いたくなる方も多いかと思います。
ただ、インパクトで言うと『アプリやサービスを自分の手で作る』には及びません。
これは、『とりあえずIT業界に入る』という戦略です。
IT業界というのは下請け、孫請けが存在する業界構造で、足りない人手を他社から引き寄せて補うという事が日常茶飯事です。
そういった会社は収益構造的に人を沢山引き入れなければならないので、わりと入りやすいです。
20代なら、資格を取れるくらいの勉強ができる未経験者を採用する会社はわりとあります。
給料は少し寂しくなるかもしれません。残業も多いかもしれません。
ですが、この方法でまず『未経験者』から『経験者』に昇格するという手段があります。
いきなり目標の会社に採用される事は難しいかもしれませんが、手堅い方法です。
未経験独学でプログラミングの知識を手に入れる勉強手順
転職に必要なゴールラインがなんとなく分かったところで、そろそろ実際の勉強手順に進みましょう。
一言で『プログラミング言語』といっても、この十数年で相当状況は変わっています。一昔前はC言語が主流だった時期があるのですが、様々な言語が登場して、時代が変わりました。
そこで、最初に考えなければならないことは、自分がどこを目指すかという話です。
- 業務システム、基幹システムの根底部分……C、Javaなど
- Webサービス、Webアプリ……PHP、Rubyなど
- iOSアプリ……Swift
- Androidアプリ……Java、Kotlinなど
最初にどこを目指したいかある程度想定した上で、この先を読んでみてください。
『プログラミング言語』にも難易度がある
未経験でこれから勉強しよう! と思う方にお話しておきたいのが、『プログラミング言語には難易度がある』ということです。
これは、2つの意味があります。
- それぞれの言語としての習得難易度
- 開発したいシステムに対しての開発難易度
最初にこれを覚えておかないと、「プログラミング言語の勉強始めたけど、全然わかんないショック」という事態が訪れます。
世の中に無料でプログラミング言語の勉強ができるサイトは沢山ありますが、まずこれをおさえてから取り組んで頂けたら嬉しいです。
1.それぞれの言語としての習得難易度
どうして言語によって習得難易度が変わるかといえば、それは『プログラミング言語にも歴史があるから』です。
元々、プログラミング言語というのはすごく電気信号寄りのものでした。
それを英単語を駆使して開発できるように変え、より誰でも簡単に扱えるようにと変え……時代を経て、様々な新しい言語が登場しました。
基本的には、後にできた言語ほど万人にとっつきやすく、簡単だと思われるような工夫が施されています。
だから、言語によって習得難易度が変わるんです。
『下に行くほどとっつきやすいプログラミング言語(個人的な解釈)』
- マシン語:CPU(演算装置)が処理する数値の羅列。
- アセンブラ:生のマシン語に近い言語。
- C言語:今日のプログラミング言語の先駆け。メモリ計算が大変。
- C++:C言語でオブジェクト指向をやるための言語。
- Java:オブジェクト指向型言語。どのハードでも動くのが魅力。
- Perl:やたら何でもできて色々な書き方ができる。でも迷う。
- PHP:Webで主流の言語。上記からするとかなりやさしい。
こんな感じで、『こまけえ事を気にしなくても動くのかどうか』という部分がかなり変わってきます。
一応独善的にならないように『個人的な解釈』と付けましたが、同意してくださる方は多いのではないでしょうか。
まあ人によってひっくり返る所もあるかもしれませんが、だいたいは『後に出てくるほど簡単な事が多い』と覚えておくと、勉強材料を選びやすいと思います。
2.開発したいシステムに対しての開発難易度
次に、開発難易度のお話をします。
お伝えしたいのは、プログラミング言語の勉強を始めたからといって、いきなり世の中にある様々なサービスと似たようなものを作り始められる訳ではないということです。
プログラミング言語の勉強には、ざっくりと分けてもこんな段階があります。
- 環境を作り、『Hello World』が表示できる
- if、while、forなど、プログラムの一般的な挙動が理解できる
- 処理をブロックごとに分けて考え、共通部分を抜き出すことができる
- 『メモリアドレス』の仕組みが理解できるようになる
- 『オブジェクト指向』の考え方が理解できるようになる
- 他人が作った関数やライブラリを応用できるようになる
- 複数の仕組みを組み合わせて、目的のものが作れるようになる
このそれぞれに、絶大な高い壁があります。行き詰まるポイントです。
それぞれ、2次元が3次元になるような解放感を覚え、できることがグッと増えていきます。
ここがすごく大事なのですが、独学の場合は自分の作りたいシステム・サービスが少なからずありますよね。
まだ1の段階すら経験していないのに、いきなり7から始めようとしてしまうと、ほぼ100%挫折します。
プログラミング言語というのは、『誰が見ても明らかに簡単で分かるよ』という部分から始めて実際にコードを書いてみて、それをひとつずつ組み合わせて新しいものに挑戦していかないと、覚えられないんですよ。
『Hello World』なんて別に書かなくても分かるから良いじゃん、という方を何人か見てきましたが、ただ文字を出力するだけでも書いた方が良いんです。そうしないと覚えられないから。
経験していない所からほころびが生まれ、プログラムが作れなくなっていきます。
とりあえず挑戦してほしい無料サービス
さて、プログラミング言語を習得するためのステップについては伝えられているでしょうか。
その上で、とりあえず挑戦してみて頂きたいのは『Progate』です。
こちらは無料で基礎コースを学べる上、環境構築が不要でWeb完結で学習ができます。
私も少しやってみたのですが、かなり分かりやすいなと思いました。
基礎コースを終えると有料になるのですが、まあ有料と言っても月980円くらいなので、安すぎるくらいかなと。
プログラミングスクールって2桁万円が普通ですからね……。
progateを終えたら、『paiza』を利用するのもおすすめです。
転職支援サービスもやっているみたいですね。講義系は、『paizaラーニング』から受けられます。動画がメインなのも嬉しいですね。
paizaは私が受けてみたい内容もけっこうありました。これを機会に挑戦してみようと思います。
こっちも月額600円くらいですね。
ある程度こういった無料学習サービスを利用してから、本で学習して環境構築から始めるようにすると、見えてくるものがあると思います。
IT業界に未経験独学で転職できるのか
これは、真面目に学習すればいけると考えています。
どうしても年齢はありますから、今40代で未経験です! ……という場合は少し厳しいかもしれないのですが、20代ならば全然問題ないです。
ただ、プログラミング言語は習得まで1,000時間かかる、なんて言われていますから、途中で挫けてしまうという要素が大きいと思います。
そんな時は開発難易度のメモを見て、「あー自分は今、ここで詰まっているんだなー」と把握してもらえれば、先に進む方法も思い付くかなと期待しています。
私は個人的にプログラミングを人に教えていた事があるのですが、やっぱり無料で教えても付いて来ませんね。
いつでも離脱できて覚悟がいらないと、フェードアウトしていきます。
そういう意味では、私はプログラミングスクールに資金を投じてしまうのも確実かなあ、とは思います。
システム開発系のIT業界を目指す皆さんの、知識の足しになれば幸いです。