プログラミング独学の完全ロードマップ どうも、くすたんです。 今回はプログラミングを独学する上でのロードマップを記載していこうと思います。 値段はもちろん12万円!!! ではなく無料です!! (※ 別途、紹介する書籍やサービスの利用料はかかります。基本的には書籍がなくてもできるロードマップになっています) 理由は、普通のエンジニアなら誰でも知っている内容ですし、下手に有料にしてサポートに時間を取られるより、無料で公開をしてサポートはほどほどにし、本業でちゃんと売上を立てた方が効率がいいからです。 個々のエラー対処についてはサポートが困難なので、ここでは割愛します。公式ドキュメントやQiitaを活用するなどして対処いただきたいです。 また、こういったコミュニティもあるようなので、うまく活用すると良いかもしれません! (僕が運営しているわけではないので悪しからず) https://twitter.com/OgiharaRyo/status/1201067815697993728 ちなみにこの内容はエンジニアサークル「ヒラマサ」で実践している内容を一部改変したものになります。 鹿児島で未経験からエンジニアになれるサークル「ヒラマサ」設立

はじめに

対象

* プログラミングを勉強したいが何から始めたらいいかわからない人 * PHP(Laravel)を勉強したいがどうやったらいいかわからない人

注意事項

このロードマップではRuby(Ruby on Rails)ではなく、PHP(Laravel)を学習するにあたってのロードマップになっています。 PHPを学習する前提になっている理由は3つです。

* Ruby(Ruby on Rails)を勉強するロードマップはたくさん出回っている * RubyとPHPのどちらかを勉強するかで将来が大きく変わることはほとんどない(最初のうちは、どちらかを集中して勉強して必要に応じてもう片方を勉強すれば大丈夫です) * (地方での就職を視野に入れた場合)、PHPを使っているIT企業が多いので、地方で就職することを考えるとPHPの方が都合がいい

書いた人

改めまして、くすたんと申します。 地方大学卒業後に、地元のIT企業でSNSやソーシャルゲームの開発をリードエンジニアとして行いました。 令和より地方でフリーランスエンジニアをしながら、YouTuberとしてプログラミングネタの発信、チームヒラマサでのプログラミング教育にも取り組んでいます。 よくあるエンジニア系インフルエンサーみたく、高学歴だったり、借金を抱えていたり、底辺からプログラミングで逆転をしたりはしていません。 至って普通の人です。そのため、この記事を読んでいる人なら頑張れば実現できるであろう内容になっているかと思います。 Twitter

事前準備

プログラミングを勉強する前に色々と準備をしておきましょう。 そもそも論、Webサービスがどうやって動いているかを知らない人は最初にこの動画を見ましょう。プログラミングスクールの社長が分かりやすく説明してくれています。 https://youtu.be/zq50JwOU_ls こちらを解説したスライドも共有しておきます。 https://www.slideshare.net/tech-camp/ss-47269649 そして、Progateへの会員登録も済ませましょう。今後はProgateを中心に学習を進めていきます。Progateは最初は無料で使えますが、本格的にプログラミングを学習しようとすると月額料金が必要になります。 しかし、プログラミング書籍に比べれば圧倒的に安いのでここは出し惜しみせずに登録しましょう。 Progate

言語の基礎学習

HTML/CSSを学ぶ

Webサービスの見た目を作ってくれるマークアップ言語です。(プログラミング言語というとマサカリを投げられるので気をつけましょう笑) このレッスンの学習コースと道場コースを全てクリアしましょう。1周するだけで大丈夫です。 Progate

PHPを学ぶ

Webサービスの表層が作れるようになったら、実際にサーバサイドのプログラミング言語の勉強をしましょう。 PHPのレッスンの学習コースと道場コースを全てクリアします。これも、1周するだけで大丈夫です。 Progate

おまけ

この時点で、簡単なWebアプリが作れるようになりました。どうしても何か作ってみたくなった人は、以下のリンクで簡単なゲームを作ってみましょう。 ドットインストール

SQL(MySQL)を学ぶ

上記の過程が終わった時点で簡単なアプリが作れるようになりましたが、まだ不十分です。 データベース(ゲームのセーブデータやLINEのトーク履歴的なものを保存しているところ)を扱う言語であるSQL(MySQL)の学習に進みます。こちらのレッスンも全てのコースを1周しましょう。 Progate

コマンドライン/Gitを学ぶ

コマンドラインやGitはプログラミングとはちょっと違う括りになります。しかし、知っているとプログラミング学習がスムーズになるので、これらのレッスンをそれぞれ1周しておきましょう。 Gitに関してはWindowsとMacのそれぞれに応じた設定方法のコラムもあるので、それも読んで設定しておきましょう。 Progate Progate

JavaScript

JavaScriptは何でもできる言語ですが、とりあえず「Webサービスの表層を魔法のように操作できる言語」という認識で大丈夫です。 こちらは、後述のjQueryを使うために基本文法のみ勉強します。レッスンで学ぶのはコースⅠ~Ⅲまでで大丈夫です。 Progate

jQuery

jQueryはJavaScriptのライブラリで、JavaScriptを使いやすくしたものです。こちらのレッスンは全てのコースをそれぞれ1周しましょう。 Progate

おまけ

jQueryだけでも十分ですが、最近ではJavaScriptのフレームワークであるVue.jsやReactを使うケースも多いようです。 ここまでする必要はないですが、興味が出たら触ってみることをおすすめします。(Vue.jsはProgateのレッスンにありませんが、取っつきやすさでいえばVue.jsの方が取っつきやすいです) <iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=ntask19-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4297100916&linkId=e4793c8aa54eb00222b20f7b726c9413"></iframe>Progate

振り返り

ここまで学習を進めたら一旦振り返りを行います。理解度が不十分なところに関して、レッスンをもう1周します。もし、理解度が不十分なところがなければこの工程はスキップしても構いません。 また、PHPとMySQLについて物足りずに書籍で体系的に勉強したい人にはこちらの本がオススメです。<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=ntask19-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4800711304&linkId=a3beddf217642643afa802c3fb796702"></iframe>

PHPフレームワークLaravelの習得

Laravelチュートリアルの学習

Progateの学習がここまで終わったらフレームワークの学習に入りましょう。フレームワークはサービスを作るうえで必要な知見をまとめて、色々と便利にしてくれるものです。 RubyでいえばRuby on Rails(通称Rails)が有名ですが、PHPの場合はCake PHPやLaravelが有名です。ここでは、Laravelを学習することとします。 RailsならProgateやRailsチュートリアルといったメジャーな教材があるのですが、Laravelの場合はそれがありません。今回は以下のチュートリアル記事に沿ってTODOアプリを作成していくことにします。 Laravelチュートリアル また、どうしても書籍で勉強したい場合は、この本がわかりやすくてオススメです。 <iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=ntask19-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4798052582&linkId=f5372a523958c92b5f83242f1478f8b5"></iframe>環境構築に詰まった時にはこちらの記事がオススメです。 日本で一番易しいWindowsでLaravel環境の構築解説 MacでLaravel5.8の開発環境を構築しよう(下準備)

機能を追加していく

チュートリアルが最後まで終わったら、作ったTODOアプリに色々と機能を追加していきましょう。追加するものとしては以下のような機能を入れていくと力がつくと思います。

* DBをMySQLに変更する * ユーザー名の変更機能を追加する * タスク単体ページを追加する * タスクをログインしていない人にも閲覧できるようにする * タスクに画像とタスクの説明テキストを添付できるようにする * 明日締め切りのタスクで完了していないタスクを一覧で定時にメールで送るようにする * 検索フォームを設置し、タスク名とフォルダ名、説明テキストからand検索できるようにする

さらにLaravelの知見を本を使って深めたい時にはこの本がオススメです。<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=ntask19-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4802611846&linkId=c6a5e0c23c81accccc49b7321c609183"></iframe>

就職するには…

結論は分かりません。企業によって採用基準が異なるうえ、採用事業を行っていないからです。しかし、一般論として以下の方法を取れば採用の確率をあげることができます。

* indeedで検索する * エージェントを活用する * IT勉強会に参加してコネを作る

最後に

基本的にはここまでのロードマップは独学で進めることができるかと思います。 どうしても詰まったときには、コミュニティやMENTAなどでエンジニアに質問すると効率よく学習を進めることができるかと思います。 宣伝ですが、僕もMENTAでプログラミングサポートしてます!笑 地方でエンジニアとして戦うためのプログラミング・キャリアサポート またもしよかったらYouTubeも見てもらえると嬉しいです! https://youtu.be/-srjCh4x4SA 最後まで読んでいただきありがとうございました!