「プログラミングをはじめたいけど、どのように進めれば良いのか分からない」
「勉強しはじめたはいいものの、次に何をしようかな」
プログラミングを学習し始めるときは、不安が多いものですよね。
私も、未経験からプログラミングを学んでWEBエンジニアとして転職をしましたが、「何から始めれば良いのか分からない」状態で右往左往していたのを覚えています。
私の体験上、未経験からのプログラミング学習は「学習の順序」と「学習内容の難易度」が特に重要だと感じています。
本記事では、「学習の順序」と「学習内容の難易度」に重点を置き、プログラミング未経験者(初心者)の方に向けて学習方法を解説します。
プログラミング言語はRubyがおすすめ
プログラミング言語はRuby、フレームワークは Ruby on Railsを選んでおけば間違いないです。
理由は下記の3点です。
学習しやすい
Ruby/Ruby on Railsは学習教材は学習サービスが豊富で学習しやすいです。
アプリケーションの開発からテストまで幅広い教材が整っています。
しかもRubyは日本発祥のため日本語の教材が多いです。
JavaScriptおよびVue.jsやReact.jsもトレンドになってきてはいますが、最先端の技術のため学習教材が英語の場合が多く辛いです。
就職しやすい
Rubyを学習すると、Rubyを利用している会社だけでなくPHPやPythonを利用している会社にも就職しやすいです。
RubyはPHPやPythonとも言語の仕様が似ているからです。
よく、「Rubyを利用している会社は少ない。PHPを利用している会社の方が多い」というのは事実ですが、Rubyを学んだ上でPHPやPythonの会社も受けていいわけです。
実際に、私はRubyを学び転職活動をして、PHPかつLaravelというフレームワークを利用してる会社様に内定をいただくこともできましたよ。
PHPやPythonを学習してRubyの会社に就職できるか、というと難しいと思います。Rubyは習熟するのに慣れが必要であるからです。
ハイレベルな職場が多い
Rubyを利用している会社はトレンドの技術を取り入れていることが多く、スキルアップしやすい職場です。
具体的には、下記のような技術を用いていることが多いです。
・インフラ:AWS・GCPなどのクラウドインフラ
・仮想環境:Dockerを利用し効率的な環境構築
・テスト:バグが起きないような緻密なテスト
WEBエンジニアとして成長するためには、プログラミング言語だけでなく、上記のような知見も必須になりますので、スキルアップしやすい職場に転職できた方が良いわけです。
WEBエンジニア転職のためのプログラミング学習内容(オリジナルサービス開発)
WEBエンジニア転職のためには、オリジナルサービスを開発してみなさまの技術力を企業の採用担当者に認めてもらう必要があります。
オリジナルサービス開発には、下記の内容を学習することです。
徐々にステップアップするためには、学習する「順番」が重要なので、上記の項目を学習する順番に並び替えると下記の9ステップに分けることができます。
この9ステップについて、詳しく解説していきます。
・1.HTML/CSS/WEB:初級
・2.Ruby:初級
・3.Rails:初級1
・4.Git:初級
・5.Rails:初級2+ターミナル:初級+開発環境:初級+Heroku:初級
・6.HTML/CSS/WEB:中級1
・7.HTML/CSS/WEB:中級1
・8.Rails:中級1+開発環境:中級
・9.Rails:中級2
・10.Rails:中級3
・11.オリジナルサービス開発
プログラミングスクールに通っている場合も、不足部分は教材を購入して適宜補うことをおすすめします。私が実際に利用していた教材は「☆」を付しています。
ステップ1.HTML/CSS/WEB:初級
まず、ブラウザ表示するWEBページを作成する技術を得るために、HTMLとCSSと学習しましょう。
HTMLとCSSを知ると、自分の簡単なホームページ作成ができるようになりますよ!
おすすめの教材はProgateです。
Progateはソフトウェアのインストールが不要で手軽にプログラミングを始められるので、初心者の方にはかなりオススメのサービスです。プログラミング未経験からWEBエンジニアに転職を成功させた人の多くがProgateからプログラミングをはじめていますよ。
【教材】
☆WEB(Progate):HTML & CSSコース
ステップ2.Ruby:初級
次に、プログラミングの基礎知識を習得しましょう。目標は、Rubyのメソッドである[puts]や[each]の動きを知ることです。
初めはRubyを学んでも、「何のためにHello World!と画面に表示させるのが何の役に立つか分からない」という感想を持たれるかもしれません。つまらない学習のように感じると思います。
Rubyは今後のRuby on Rails学習の際に、必ず役立ちますので、少々が必要です。
【教材】
☆WEB(Progate ):Rubyコース
書籍:スラスラ読める Rubyふりがなプログラミング
ステップ3.Rails:初級1
Ruby on Railsの基礎知識の習得しましょう。目標は、アプリケーションの基本機能であるCRUD機能(作成、表示、更新、削除)の概要を掴むことです。
「途中から何をしているのか分からない」状態になるかと思いますが、答えをコピー&ペーストするなどして、とにかく最後まで終えましょう。Progateをやり切ることで「一人でTwitter風のアプリケーションを開発できた」というのは素晴らしい経験を得られますよ。
ProgateのRuby on Railsコースは難易度が高いため、わからないことが山積みなはずですが、そういうものです。この後のステップの学習を進めることで、Progateでわからなかったこと、もやもやしていたことが解決しますので、安心してくださいね。
【教材】
☆WEB(Progate ):Ruby on Rails5コース
ステップ4.Git:初級
ここで一旦、Git/GitHubの使い方を覚えましょう。
Git(ギット)とGitHub(ギットハブ)はソースコード管理のツールで、「自分が書いたソースコードを前の状態に戻す」や「他の人が公開しているソースコードを自分でも使えるようする」などができるようになり、今後の学習がかなり捗ります。
【教材】
☆動画(Udemy):もう怖くないGit!チーム開発で必要なGitを完全マスター
書籍:わかばちゃんと学ぶGit使い方入門
ステップ5.Rails:初級2+ターミナル:初級+開発環境:初級+Heroku:初級
5つ目のステップでは、「アプリケーションを開発し公開」します。
目標は、Ruby on Railsの初級レベルの知識の習得・復習に加え、ターミナルやCloud9(開発環境)、 Heroku(インフラ)について新しい知識を習得することです。
他にも、ステップ1~4で学んできたHTML&CSSやRuby、Gitも使うため、今までの総復習のような位置付けです。
アプリケーションのデプロイ(公開)までできればベストですが、できない場合も諦めず、講師に質問するなどしてやり切りましょう。
【教材】
☆動画(Udemy):はじめての Ruby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう
ステップ6.HTML/CSS/WEB:中級1
このステップでは、ステップ6で登場したBootstrapについて深く学びましょう。
BootstrapはHTMLのクラスに指定した
目標は、レスポンシブ(PCでもスマートフォンにも対応したデザイン)なWEBページを開発することです。
1からコードを書かなくとも、既存のHTMLとCSSのコードと役割を理解して、うまく繋ぎ合わせられるようになれば大丈夫ですよ。
【教材】
☆書籍:Bootstrap 4 フロントエンド開発の教科書[第9章 Bootstrapでモックアップを作る]
ステップ7.HTML/CSS/WEB:中級1
次に、WEBアプリケーションを支える、WEBの技術についての知識を習得しましょう。
HTTPやURI(URL)、RESTといった用語を理解できるようになりアプリケーション開発をスムーズに進めら得るようになりますよ。
【教材】
☆書籍:Webを支える技術 -HTTP、URI、HTML、そしてREST
☆書籍:イラスト図解式 この一冊で全部わかるWeb技術の基本
ステップ8.Rails:中級1+開発環境:中級
このステップからはRailsの知識の幅を広げていきましょう。
CRUDに加えて、ページネーション機能や検索機能を追加して、ダイナミックなアプリケーションを開発できるようになります。
また、今までCloud9で開発をしていましたが、ローカル環境(自身のPC)で開発できるよう、環境を整えましょう。
『現場 Rails』のChapter2でRubyやRails、データベースのインストールなど、開発環境構築の詳細な記述がありますよ。
【教材】
☆書籍:現場で使える Ruby on Rails 5速習実践ガイド(通称 『現場 Rails』)
ステップ9.Rails:中級2
Railsチュートリアルを利用して、Railsの知識をさらに広げていきます。
ログイン機能やアカウント有効化機能、フォロー機能など、Railsの中でも難易度の高い機能を追加できるようになります。
ここのレベルまでくると、一通りのアプリケーション開発ができるようになっていますよ。
Railsチュートリアルでは、開発環境にCloud9を利用していますが、前のステップで学んだ通りローカル環境で開発しても良いでしょう。
【教材】
☆WEB:Ruby on Rails チュートリアル(通称 Railsチュートリアル)
ステップ10.Rails:中級3
Railsの中でも、RSpecというテスト技術に特化して学習しましょう。
オリジナルサービスにはテスト機能は必ず実装したほうが良く、技術力のアピールにつなげられます。
学んでみるとそこまで難易度が高くないので、おすすめですよ!
【教材】
☆書籍:Everyday Rails – RSpecによるRailsテスト入門
ステップ11.オリジナルサービス開発
このステップでは、今まで学習してきた知識をフル動員してオリジナルサービス開発をしましょう。
有名な機能は全て実装できるように、アプリケーションの設計も工夫できると良いです。
「実装したい仕様や機能があるけどどうやるのだろう」というときは、『Railsガイド』というリファレンスを参考にしましょう。
【教材】
今までの教材全て
☆WEB:Ruby on Rails ガイド
WEBエンジニア転職のためのプログラミング学習内容(コーディングテスト)
オリジナルサービスが完成したら、コーディングテスト対策をしましょう。
コーディングテストとは、多くのWEB企業で実施されているプログラミングのテストのことで、求職者のプログラミングスキルを計測するための課題です。
プログラミング言語(Ruby)の基礎・基本を学ぶ → 模擬コーディング課題を解く
という2つのステップで学習しましょう。
詳しくは、下記の記事で解説しています。
ステップ12.プログラミング言語(Ruby)の基礎・基本を学ぶ
まず、プログラミング言語(Ruby)の基礎・基本を学びましょう。
配列や文字列の操作について習熟しておく必要があります。
【教材】
書籍:プロを目指す人のためのRuby入門
ステップ13.模擬コーディング課題を解く
次に、実際のコーディングテストの模擬課題を解きましょう。
AtCoderは「他の方の回答を見られる」ため一番使いやすく、理想的な回答法を追求しましょう。
まずは、「AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~」から初めてみるのがおすすめです。
【教材】
Qiita:AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~
WEB(AtCoder):AtCoder Beginners Selection
WEBエンジニア転職のためのプログラミング学習内容(発展学習)
オリジナルアプリケーション開発とコーディングテスト対策が完成した方に向けて、発展的な学習項目を紹介します。
学習内容をオリジナルサービスに実装できればベストですが、そうでなくても学習した書籍や教材名を職務経歴書に書くだけで、他の求職者より技術力をアピールできます。
Linux
LinuxはOSの一種ですが、コマンド操作(cdやlsなど)を学ぶことでアプリケーション開発を効率的に学ぶことができます。
「プログラミングで使うPCはmacやWindowsが多いのに、なぜLinuxを勉強する必要があるの?」と思う方もいるかもしれませんが、リリースした(本番環境の)アプリケーションを動かすのはLinux上であることが大半だからです。
Linuxを学べばmacOSやWindowsの知見も広がりますから、より深めたくなったときにmacOSなどを学んでみても良いでしょう。
【教材】
☆WEB:Linux標準教科書
☆書籍[基礎知識+リファレンス]macOSコマンド入門 ――ターミナルとコマンドライン、基本の力
仮想環境(Docker)
Docokerは、インストールすればどこでもプログラミングの環境を整えられる便利な技術です。かなり便利な技術であり、WEB業界のトレンドです。
【教材】
☆動画(Udemy):フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座[開発環境の構築レクチャー]
☆書籍:プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化
クラウドインフラ(AWS)
クラウドインフラでできる技術は様々ですが、アプリケーションの運用に使われることが多いです。
本記事では、アプリケーションの運用をHerokuで解説しましたが、実務では AWSやGCPが利用されることの方が多いです。
まずはメジャーなAWSを学習して、オリジナルサービスをHerokuからAWSに移行してみても良いかもしれません。
【教材】
☆書籍:Amazon Web Services 基礎からのネットワーク&サーバー構築
JavaScript/Vue.js
JavaScriptはWEBページをキレイに装飾できるプログラミング言語です。Vue.jsはJavaScriptをより使いやすくしたライブラリ、というものです。
オリジナルサービスの各ページをJavaScriptを利用してキレイに装飾してみても良いかもしれません。
【教材】
☆WEB(Progate):JavaScriptコース
☆動画(Udemy):はじめてのJavaScriptプログラミング入門講座」
☆動画(Udemy):Vue JS 入門決定版!jQuery を使わない Web 開発 – 導入からアプリケーション開発まで体系的に動画で学ぶ
☆書籍:基礎から学ぶ Vue.js
プログラミングスクールはカリキュラムが重要
プログラミングスクールに通う際は、カリキュラムの内容を確認しましょう。
プログラミングスクールのカリキュラムが、ステップ1〜13のどの程度の範囲をカバーできているかをチェックするのです。
特に、ステップ11.オリジナルサービス開発は必須で、スクールのメンターにサポートしてもらわないと、エラーの解決に膨大な時間がかかったり、場合によってはサービス開発自体が頓挫してしまうことにもなりかねません。
私は、安価ながらオリジナルサービス開発に特化できると考えて、TechAcademyを利用しましたが、十分なサポートを受けながらオリジナルサービス開発を完遂させました。
未経験からWEBエンジニア転職のためのプログラミング学習方法 まとめ
WEBエンジニア転職のためのプログラミング学習方法について、オリジナルサービス開発とコーディングテスト対策に分けて合計13のステップを解説しました。
みなさまのプログラミング学習に参考になれば幸いです!
【必須:アプリケーションデプロイ】
・HTML/CSS/WEB
・Ruby
・Rails
・Git/GitHub
・クラウドインフラ(Heroku)
・開発環境
・ターミナル