PHP、Laravel初心者が一端を目指すロードマップ
完全未経験からWeb系の開発ができるようになりたい。
と、いう決意から独学で教材をかき集め勉強中です。
技術的な面で、こういうときはこうすれば~ みたいな技術ブログは
いずれやってみたいなと思わないでも無いんですが、
まずは一端の開発技術を身につけるまでに何をするか。というところを残して行きたいと思います。
何を学習するか
表題の通り、PHPを使ってのWebサービス開発ができるようになりたいというのが当面の目標です。
・PHP メイン言語、サーバーサイド
・HTML5 フロントエンド
・CSS3 フロントエンド
・Vue.js Javascriptフレームワーク
・MySQL データベース
多いですねぇ…やってみて、わかってはいたことですが
やはり覚えないといけない情報が多く、やればやるほどわからないことが増える段階です。
しばらく続けていると、なんであのときコレが分かんなかったんだろう…となるので、わからないうちにコレがわからなかった。と書いておくのも一つの手かな。と思っています。
今の所の認識でいうと
Webサイトの見た目を担当しているのが
・HTML5 ・CSS3 ・Javascript
Webサイトに入力したデータの操作や保存などを担当しているのが
という感じでしょうか。
こういうふうに書くとこうなる。 という文章のまとまりをたくさん集めたモノという感じです。
A:表面が赤い、いいにおいする
B:やや黄色がかってて水分が多め、甘い
C:黒っぽい茶色、栄養を与えると発芽する
みたいなパーツがあって、全部組み合わせるとりんごになる。みたいなイメージですかね。
これでAを表面が緑色 みたいに置き換えると青りんごに変えられる。みたいな
フレームワークを使えば誰でもスピーディーに○○が実装できます!
みたいな謳い文句ですが、フレームワークに書いてあることがだいたいどんな効果があるのかや、フレームワークそのものはどこにどう書けばいいのか。みたいなところは勉強する必要があります。
学習環境を整える。
Web開発ではローカル開発という、いわゆるパソコンの中でやってみる系の開発環境が必要です。
そこで私は以下のように条件を整えました。
・XAMPP (統合開発環境)
・ATOMエディタ
とりあえずPHPの勉強のために用意する基本的なところはこんなものでしょうか。
XAMPPそのもののインストールは以下から。
www.apachefriends.orgApacheというWebサーバーを立てる という動作のためのプログラム
MariaDBというデータベースのプログラム
PHPというサーバーサイド用言語
これらがまとめてインストールされる楽ちんプログラムです。
インストール先については基本的にデフォルトがいいらしいです。
ATOMのインストールは以下から
atom.ioATOMはいわゆるテキストエディターで、自分がうった文字列が意味のあるものになった瞬間色をつけてくれたり
改行したときのインデント(幅とり)を自動でやってくれたり
かっこ()の開きと閉じがどう連動してるか教えてくれたりする便利なやつです。
特にATOMでやらないといけない。というわけではないので、「PHP エディタ」なんかで検索して出てきたのを試してみるのもよいかと思います。
後述するドットインストールというサイトでプログラミングの初期設定を行う時に、ATOMがおすすめされていた、というだけの理由で僕はコレを使っています。
特にどのエディタでないといけないということはないかと思いますが、Windows標準搭載のメモ帳を使うくらいなら、それ用に用意されたテキストエディタをDLしてきたほうがいいでしょう。
いわゆる導入の学習
独学で学習を始めるにあたってまず悩んだのが、何を使って勉強するか。でした
本屋を練り歩き、PHPだLaravelだの入門書をさっと立ち読み内容確認してはみたものの
その本を読了することで何ができるようになるのか。 がわからないものが多く、あまり自分向きではないと感じました。
これさえ抑えておいたら、あとは君のアイデア次第さ! とは聞こえがいいですが、アイデアと技術を結びつける手段がなければ、何を抑えたところで何も作れないのは明白です。
そういった本が悪いとは思わないですが、実際に作ってみないと何もわからないよ。という先駆者の多さや、自分の気の短さを考えると
何ができるようになるための○○ というタイプの学習方法でなければ続かないような気がしていました。
とはいえ、基本の基も知らないうちからものづくりはできませんので
ほんとの初学者でも導いてくれるものを探そう。と思い、手を付けたのがこれら
ドットインストール
初心者のプログラミングといえばまずコレ。というレベルでよく名前を聞くサイトです。
落ち着いた声の男性が淡々と操作をしている画面を見ながら、その真似をすることで環境の整備だったり、基本的なプログラミングの記述について教えてくれます。
何度でも繰り返し再生できるので、わからなければ繰り返し聞いてやることで、ああそういうことか。と理解に繋がります。
HTMLやCSSなどのコースは無料で全部見れるものもあるので、とにかく基本だ!という場合はこのサイトでいいかと思います。
ただ、流石に無料なのと、こういう物を作りたいんだけど。という明確な目標がある場合はそれにそぐわない部分も増えてきます。
次に手を出したのがコレです。
prog-8.comWebサイト上に配置された入力フォームに指示された文章を正しく打ち込むことで、正誤判定をすぐにしてくれるサービスです。
スライド形式で次はこういうことについて覚えよう!→じゃあやってみよう!の細かいサイクルのおかげで、書籍のような 「じゃあこれやっといて、よろしく」感もなく進めることができます。
間違っている部分があっても、どこどこが間違っています。と出るし
エラー文章として大量の英語分がどばっと出る。ということもないので
恐れることなく挑戦できます。
逆に言えば、本番としてものづくりを行う上で、エラーと対面しないことはありえないので、エラー耐性をつけるには向いていません。
あれってどうやるんだっけ といったことがスライドのみを見返す機能があるのでちょこちょこ覗いています。
これは全コースを開放するには月額980円ほどを支払う必要がありますが、
自分としては何ができるようになるか、読み解けるか不明な書籍に3000円払うよりは、こちらを3ヶ月やったほうが身につきそうだったので、有料コースに加入しました。
課題を細切れにして、一つづつならわかって進めているのに、じゃあ最初から手放しで走ってみようか。とされた途端に走り方を忘れて転ぶのはなかなかくるものがあります。
ここまででPHPやHTMLの基礎の基礎をなんとか学んだので、
いよいよフレームワークについても触っていきます。
Laravelが2018年現在では一番ホットなフレームワークだと言うことなので、
Laravelについて学ぶことにしました。
いわゆる公式ドキュメントがほぼ日本語化されているようなので、
英語とぶち当たりまくらないといけない、というような心配はありませんでした。
今の所まだ公式ドキュメントを読んで開発の助けにできるところまでは来ていませんが、先を考えてもとくに頭が痛くはなっていません。
「Laravel チュートリアル」で検索をした時に出てくるものから
いくつか○○をつくる。 といったようなやり方の手順を残してくれている先人がいたので、やってみることにしたのですが
いかんせんそういうあとに残す。という行動を起こしている人はすでにそういったものは軽々とできるようなレベルに到達していることが多く
○○って何? え、~~を記述しますって、どこに?
といったような疑問が出てくることが多かったです。
その単語について検索して出てくるならいいんですが、出てきた技術ブログも詳しい感じで「~を~すればOKだった」 みたいな書き方で終わっていると
自分とはレベルがちげぇぜ… と生唾を飲んでページバック必至でした。
よくわからなくなっては辞め、他を探し、とやっていた末にたどり着いた
とてもわかり易く書かれたチュートリアルがこちらです。
qiita.com早速 ※更新停止します。 とは書いてありますが
すでに書かれているものは2018年11月現在で問題なく動かすことができる作成物を作ることができます。
CRUDとは Create Read Update Deleteの頭文字で
要は 書き込み、読み込み、更新、削除 の機能をもったもの。という感じです。
ブログやらTwitterやらのSNSと呼ばれるものに必要な基本セットという感じですね。
このチュートリアル(と勝手に呼んでいる)では、どこに配置されたどのファイルの、どのあたりに何を書く。といったことが基本的にきっちり書いてあるので、作るにあたって何をしていいかわからなくなることがほとんどありませんでした。
稀にどこに書いたらいいのかわからない瞬間もあったのですが、検索して解決しないものは今の所ありません。
順番にやっていくと、CRUD機能の他に、サイトからメールを配信する機能や、テストを行う手順などについても教えてくれるので、開発の基礎的な部分を理解するには非常に有用な記事だと思います。
今はここまで進んだ形ですが、
ここまで全部やってもまだ作品は未制作。という位置づけで
クリエイター、エンジニアとしてはまだ一歩を踏み出せていない状態です。
続いて、Bootstrapを使ったCSSデザインと、それを反映したHTMLファイルを作成し、それとLaravelを紐付ける。といったことをやって、パーツとパーツをつなぎ合わせた自分用のツギハギを一つ作ることができればと思います。
それが出来上がったら、Web開発会社に転職、という感じでやってみたいです。
どのくらいのものができたら、実務未経験でも雇ってもらえるのかな。