【Q&A】全くの異業種からエンジニアに転職するのは難しいのでしょうか?|未経験エンジニアのギモン
GEEK JOB編集部
最近プログラミングに興味を持った方へ。1000人以上のプログラミング学習を支援してきたGEEKJOBがオススメのプログラミング学習法を解説しています。絶対に挫折したくないなら必見です。
小学生の必修科目にも追加されたプログラミング。
AI、ロボット、IoT、VRなどのめざましい発展を受けてプログラミングに興味が湧いたという人も多いのではないでしょうか?
近年は、プログラミングを学習する教材も豊富になり、Web上でも初心者向けの学習サービスがたくさん公開されるようになったので「少し勉強してみようかな」とお考えの方も多いですよね。
プログラミングを覚えればエンジニアになれるだけでなく、日々の業務を効率的に回したり、副業でお小遣いを稼いだりといったことも可能になります。
エンジニアを目指すわけでなくても、習得できるならしておきたいですね。
しかし、「プログラミングは難しい」、「初心者は挫折しやすい」という意見を聞くのも事実。
初心者から本当にプログラミングができるようになるのか不安な方も多いでしょう。
せっかくプログラミングを勉強するなら挫折せずに習得したいもの。
今回は、プログラミングをまったく知らない初心者でも挫折せずにプログラミングを身につけるための具体的な勉強法や心構えを紹介していきます。
目次
プログラミングの勉強を始めた頃は、知らない単語ばかりで戸惑うかもしれません。
しかし、不思議なことにやっていけば自然と慣れてくるもの。
1日1時間でも10分でもプログラミングに触り続ければ、だんだんとできることは増えていきます。
そもそも、初心者がプログラミングを習得する際、かかる時間のほとんどが躓いている時間だそう。
学習がなかなか進まないのは当たり前のことなのです。
時間がかかっても、1つ壁を乗り越えるたびに確実にあなたのスキルは上がっています。
躓いていても、ある日急に解決方法が思い浮かぶこともあるでしょう。
プログラミングは、目標ではなく手段です。
何かを達成するためにプログラミングという手段があるので、その「達成したい何か」がないとモチベーションを保つのは難しいかもしれません。
「こんなアプリが作りたい!」、「会社に縛られずリモートで働きたい!」なんでもいいので、自分はプログラミングを使って何がしたいのか考えてみましょう。
初心者のうちは言語選択、環境構築、エラー、などつまづきやすいポイントがたくさん待ち構えています。
「最初さえ頑張れば」と分かってはいても、諦めたくなる時があるでしょう。
そんな時、「自分には向いてない」と諦めないでください。
「プロのエンジニアでも稼働時間の8割はエラーと闘っている」と言われてるくらい、エラーが起きるのは当たり前のこと。
エラーが起きるのはあなたに才能がないせいではありません。
ゆっくりでも、少しずつ進んでいれば大丈夫。
疲れたら少し休んで、3日後にまた頑張りましょう。
プログラミングの勉強は、効率良く進めても最低200時間はかかると言われています。
1日1時間プログラミングに割けるとすると、大体半年〜1年ほど。
プログラミングスクールでぎゅっと凝縮して学ぶか、独学で自分のペースで学ぶかの違いはあれど、最低200時間という数字は変わりません。
「なかなか覚えられない…」、「なかなか進まない…」と思うこともあるかもしれませんが、悲観しなくて大丈夫です。
地道に経験値を積み上げていきましょう。
何百種類も存在するプログラミング言語ですが、実は言語それぞれが少しずつ似た要素を持っています。
日本語と韓国語、モンゴル語は文法が似ていると言われますが、それと同じようなことがプログラミングの世界でも起きています。
「言葉」という概念を初めて学ぶよりも、1つの言葉を覚えた上で別の言葉を学習するほうが簡単ですよね。
これはつまり、「継続するほど学習効率が伸びていく」ということ。
ひとつ目の言語を覚えれば、次はひとつ目よりも早く。
その次はもっと早く覚えられます。
最初を乗り越えれば、あなたの成長スピードはぐっと上がります。
ぜひ「継続」を第一の目標にしてみてください。
プログラミングを勉強するとなったら、まずは何の言語を勉強するかを決めなくてはいけません。
最初の言語選びは非常に大切です。
自分がやりたいことを達成するにはどの言語を覚えるべきなのか、よく調べて言語を選びましょう。
日本の開発現場でもっとも多く使われている言語が、「Java(ジャバ、ジャヴァ)」です。
コーヒーモチーフのロゴが特徴的。
「ジャワコーヒー」から言語名がとられているそうです。
Javaは習得難易度は高めですが、プログラミング言語の基礎が詰まっているので、一度Javaを覚えてしまえば他の言語を勉強する時にとても楽になります。
また、「どんな環境でも同じように動く」のが特徴で、デバイス、OS、ハードなどの環境に左右されません。
よって、多くの開発現場でJavaが採用されており、市場での需要も非常に高いです。
Javaを覚えると、以下のようなことができます。
習得何度が少し高めなので、学習する際はスクールなど、Javaに詳しい人の近くで勉強することをおすすめします!
「PHP(ピーエイチピー)」は、Webページ作りに特化した言語です。
アプリやシステムの開発には向きませんが、WordPressのカスタマイズをしたり、Webページに動的なプログラムを組み込んだりすることができます。
習得難易度は低めで、初心者でも習得しやすい言語です。
クラウドソーシングを見ているとPHP系の案件が多いため、フリーランスで稼いでいきたい人にオススメの言語でもあります。
PHPを覚えると、以下のようなことができます。
「Ruby(ルビー)」は、個人や小規模の開発で採用されやすい言語です。
日本人が開発した言語なので、日本語の資料が充実していたり、英語の記述量が少なくて済むように作られていたりと、初心者でもとっつきやすい言語となっています。
Rubyは作れるものの範囲が広いため、Rubyを採用するベンチャー企業やスタートアップも多いです。
Rubyエンジニアの需要に対して供給が追いついていないため、仕事につなげやすい言語だともいえるでしょう。
「Ruby on Rails」というフレームワーク(言語の記述を便利にするもの)を使用すると、高速でWebアプリケーションを作成できます。
現在のRuby環境はRailsの使用がほぼ前提なので、Railsも合わせて勉強するのがいいでしょう。
Rubyを覚えると、以下のようなことができます。
プログラミング言語はJava、PHP、Ruby以外にも多くあります。
その言語を学ぶと何ができるのか?自分のやりたいこと、作りたいことに適した言語か?を考えて選びましょう。
「HTML&CSS(エイチティーエムエル、シーエスエス)」は、Webサイトを作成するためのプログラミング言語(正確には少し違います)です。
Web上すべてのページはHTMLとCSSでできているため、エンジニアになるなら基本的なHTMLとCSSの知識はほぼ必須になります。
書いた結果がすぐに見た目に反映されて分かりやすいので、飽きづらく、比較的楽しく学べるでしょう。
「JavaScript(ジャバスクリプト)」は、Webサイトにアニメーションを追加したりする言語です。
名前にJavaと入っていますが、先に紹介したJava言語とはまったく関係ありません。
こちらは「JS」と略されることが多いです。
HTML、CSSと合わせて、ほぼエンジニアの必須スキルとなっています。
その気になればJavaScriptだけでゲームを作ることもできますよ。
「Python(パイソン)」は、ヘビのロゴが特徴的なプログラミング言語です。
最近流行りの機械学習・AIの分野で活躍しており、今後さらなる活躍が期待できる言語のひとつです。
AIと聞くと難しそうですが、Python自体の習得難易度は低め。
Rubyと同じくらいの難易度、と言われることが多いです。
ただし機械学習に手を出したい場合は要注意。
プログラミングではなく、機械学習の理論を理解するのがとっても大変です。
「Swift(スウィフト)」は、Appleが2014年に開発した言語です。
iOSアプリやApple Watch、Apple TVなどのアプリケーションを作成することができます。
まだ発表されて間もない言語なので、Swiftを使えるエンジニア、Swiftを採用している現場、ともに少ないです。
Swiftだけで就職できる会社は少ないですが、今後需要が伸びていくことが予想されるため、将来高単価のエンジニアを目指す人にオススメです。
Swiftでの開発はMacでしか行えないので、間違ったパソコンを購入しないように注意しましょう。
「Kotolin(コトリン)」は、Androidアプリを作成するのによく利用される言語です。
iOSアプリを作るSwiftに対するようなイメージでしょうか。
Swiftと同じく、Kotolinを上手く使える人がまだ少ないため、今後もKotolinエンジニアの需要は高まると予想されます。
Googleが発表した言語が「Go(ゴー)」です。
Goだけだと分かりづらいので、「Go lang」、「Go言語」と呼ばれることがほとんどです。
比較的大規模な開発に向き、Webアプリケーションなどを作ることができます。
Go言語のエンジニアは、年収が高くなりやすい傾向にあるようです。
今後も需要は高まり続けるでしょう。
基礎的な言語を身に着けた後に、ぜひ習得しておきたい言語の1つです。
「プログラミング学習で大切なことは何ですか?」と現役エンジニアに聞くと、ほぼ全員が「アウトプット」と答えるでしょう。
プログラミングの勉強には、アウトプット、つまり「手を動かすこと」が必要不可欠なのです。
Twitterに、「#コード書け」というハッシュタグがあります。
プログラミングは「知識職」というよりむしろ「手に職」に近いので、とにかく手を動かして実践で学ぶことが大切です。
「#コード書け」のハッシュタグからも、エンジニアにとって実践がいかに大切であるかが読み取れますね。
もちろん、本を読んだりネットで調べたりするのも大事ですが、それよりも自分でコードを書いた方が何倍も早く身につきます。
自分で書いて、分からないところが出てきたらその都度調べる。
頭で覚えるのではなく、体に覚えさせるくらいの気持ちでいきましょう。
「コードの書き方はわかったけど、これってどこに書けばいいの?」
初心者がつまづきやすいのが「環境構築」です。
環境構築とは、あなたのパソコンをプログラミングできる状態にセッティングすること。
これをしないと、そもそもプログラミングすることができません。
なかなか難易度が高いですが、動画を見ながらならまだやりやすいかと思います。
動画学習サイトのドットインストールには、環境構築のレクチャー動画があるのでオススメです。
また、当社が運営するGEEK JOBの無料体験でも、環境構築からレクチャーを行っています!
環境構築が終わったら、どんな小さな、ちょっとしたコードでもいいので、とにかく書いてみましょう。
プログラミングの世界では、「この入力が正しく出力されているか?」を確かめるために「Hello World!!」と書くのが一般的です。
プログラミング言語によって出力の記述方法が異なるので調べてみましょう。
Hello World!!が書けたら、いよいよプログラミングの勉強が始まった感じがして楽しくなってくるはずです。
初心者の人は、まずは無料で使える学習サイトを使ってみることから初めましょう。
オススメの学習サイトは3つあります。
ゲーム感覚で楽しくプログラミングを学べるのが「Progate(プロゲート)」です。
Webブラウザ上で学習が完了するので、環境構築やコンソールといった面倒な作業が必要ありません。
HTML&CSS、JavaScript、Ruby、PHP、Swiftなど、多くの言語を無料で勉強できます。
中級編や上級編の学習には月1,000円かかりますが、これは破格です。
Progateで色々な言語を触ってみて、自分に合いそうな言語を選択するのもいいでしょう。
スマホアプリ版もリリースされているので、通勤中にも学習できますよ。
「ドットインストール」は、3分の短い動画を見るかたちでプログラミングを学習できるサイトです。
初心者から現役エンジニアまで、多くの人が参考にしています。
面倒な作業を極力排除したProgateに比べ、ドットインストールでは環境構築などの深い部分まで学べます。
Progateより多少とっつきにくいと思うので、先にProgateをやってからドットインストールに進むのがオススメです。
「Schoo(スクー)」は、プロの講義を無料で受けられる学習サイトです。
プログラミング以外にデザインなどの講義も配信されているため、Webデザイナーなどを目指す人には特にいいかもしれません。
無料では生放送しか視聴できませんが、月1,000円の課金で過去動画含めすべての動画を見れるようになります。
プログラミング学習においては相談相手の存在が非常に大切です。
相談相手が一人いるかいないかだけで、学習効率が何倍も違ってくるでしょう。
プログラミングにエラーはつきもの。
独学の場合、一日中調べてもエラーが解決しないなんてことはザラにあります。
プログラミングの学習が失敗に終わる場合、ここで挫折してフェードアウトしてしまう人がほとんどです。
人は、黙々と悩んで進まなくなってしまった時に辞めたくなりますが、解決の糸口がつかめればやる気が出るもの。
そんな時相談相手がいれば諦めず前に進めるでしょう。
初心者がプログラミングの勉強にかける時間のうちのほとんどは、エラーなどでつまづいている時間だと言われています。
相談相手がいないとそこで諦めてしまう可能性が高いですが、相談相手がいればそのエラーはすぐに解決します。
もちろん自分で考えてエラーを解決することも大切ですが、無駄に時間をかけても仕方ありません。
効率よく勉強していくために、相談相手の存在は必須と言えるでしょう。
もちろん、教えてもらった内容は自分の中でしっかり噛み砕く必要があります。
ちなみに、「分かる人に聞く」というのはプロのエンジニアになってからも非常に大切なスキルです。
チーム開発の場合、一人のエラーが解決しないためにプロジェクト全体が停滞してしまうこともありえます。
周りのエンジニアからしてみても、相談してさっさと解決してくれたほうがありがたいのです。
とはいえ、今までプログラミングに関わって来なかった人の場合、周りにプログラミングができる人がいない場合も多いですよね。
そんな時に相談相手を得るのにもっともおすすめなのが、プログラミングスクールに通う方法です。
まとまった時間が必要になりますが、時間さえとれるなら選択肢としてスクールに通ってみることも検討してみてはいかがでしょうか?
同じ目的の仲間が集まるため、モチベーションが保ちやすく、互いに教え合うことで定着率も高まります。
またプロの講師に相談しながら進めることで、独学とは比べ物にならないスピードでプログラミングが身についていきます。
GEEK JOBでは、エンジニアを目指す方に向けて無料でプログラミングの学習と就職支援を行っています。
毎週100名ほどの方が入学されているので、仲間づくりも捗りますよ!
学習サイトやプログラミングスクールで基礎的な知識を学んだら、何でもいいので自分で作ってみましょう。
どんなに簡単なものでも大丈夫です。
プログラミングの勉強を始める前から「こんなものを作ろうかな」という想像ができていると、役立ちそうな情報を勉強中にもストックしていけるので効率的ですね。
自分で1からつくり上げるのは想像以上に大変です。
学習サイトではすんなりできていたことも、いざ自分でやろうと思うと途端に難しく感じるでしょう。
しかし、その壁を乗り越えた経験は大きな力になります。
また、「自分で作ったものが形になった」というのは大きなモチベーションにもなるでしょう。
タイマーでも小さなWebページでもなんでも良いので、頑張って自分の作品を作り上げてみてください。
自分の作品を作っていると、つまづくポイントが必ず出てきます。
「こんな機能を実装するにはどうしたらいいかな?」、「ここのデザインがうまく反映されないな…」など。
ここも、相談相手がいればスムーズに解決可能です。
スクールに通っているならその先生に。
その他、teratailやQiita、MENTAといったサービスを活用して相談相手や解決策を見つけましょう。
作品が出来上がったら、実際にネット上に公開し、SNSなどでリリースを知らせてみましょう。
利用者からフィードバックをもらえるのでさらなる成長が見込めます。
また、自分の作った作品はポートフォリオとしてまとめておくのが一般的です。
就職するのにも、個人として仕事を受注するのにもポートフォリオが必要になります。
自分のブログにまとめるのもいいですし、GitHubにコードを載せておくのもいいでしょう。
採用において、GitHubでの活動記録を重視するという企業もあります。
どんなに小さな作品でも、どんなに利用者が少ないサービスでもいいので公開するべきです。
さあ、ここまでくれば、あなたはもう立派に「プログラミングができる人」です。
プログラミングを身につけるための勉強方法について解説してきました。
プログラミングを身につけたあなたは、作りたいものをなんでも作れるエンジニアです。
ゆっくりでもいいので、着実に学習を進めていきましょう!