webエンジニアを目指すなどしてPHPを始めようとした場合に、どのような道のりをたどれば自分でwebサイトを作れるようになるかの紹介をさせていただきます。
クライアントサーバーシステムの理解
まずここを把握しておかないと後々いくら勉強しても基本がわからないので理解が進まない部分が出てきます。その為、実際に言語の勉強を始める前にここだけはしっかり理解しておいたほうがいいです。
クライアント
難しいことはありません、これはパソコンのブラウザやスマホのブラウザなどwebサイトを実際に閲覧する側のことです。
クライアントからの要求(リクエスト)に従いサーバーが応答(レスポンス)を返すという仕組みになっていることを理解しましょう。
サーバー
皆さんが普段閲覧しているwebサイトの画像はファイルなどはどこに置かれているか?それが置かれているのがサーバーです。
サーバーは誰にでも閲覧可能な状態に公開された状態のパソコンと考えてもひとまずはOKです。公開されたパソコンに置かれた画像やwebサイトのファイルを閲覧しに行っているという認識です。
HTML・CSS・JavaScriptの理解
クライアントサーバーシステムのことが理解出来たら次はwebサイトを構成する言語について知っておくと良いです。
HTML
webサイトはHTMLというマークアップ言語で構成されます。これは主に何をどこに配置するかの指定です。
特に難しいことはなく、タグと呼ばれる要素で区切って配置していくだけの作業になります。
CSS
文字や画像をHTMLで配置したら、色を変えたり並び変えたりするのがCSSの役目で、主に装飾部分を担当する言語という認識です。
ここもそこまで難易度は高くないと思います。余白を指定したり、文字サイズを指定したりといった具合です。うまく組み合わせるとCSSだけでもある程度の動きのあるサイトは作れます。
JavaScript
HTMLで要素を配置し、CSSで装飾するといったことはどちらかといえば動きない単純なサイトを作るまでで、動きのあるサイトを作ろうとするJavaScriptが必要になってくることが多いです。
例えばある親メニューのをクリックすると子メニューのリストが表示されるなどの動きもJavaScriptを利用して実装されています。
勉強方法
これらは比較的無料でオンライン学習できたりする部類です。無料で試した結果は以下の記事を参考にしてください。
あとは一冊入門書を購入して、一つサイトを作ってみるというのも勉強方法としてはおすすめです。
PHP基本の理解
これまでの基本を押さえたらようやくPHPの学習が始められます。
たまにいきなりPHPの入門書から開始する方もいらっしゃいますが、クライアントサーバーシステムやwebサイトがHTML等で構成されていることを知らずにPHPを始めるのはおそらく理解がしづらいです。
切り分けて順にやれば難しくない部類なのに、いきなりPHPの入門書で環境構築なんかを始めると意味が分からず挫折する可能性が高くなります。
クライアントサーバーシステムについてわかっていれば、自分のパソコンをサーバーと見立てているんだな、その場合クライアントもこのパソコンってことになるんだなという理解ができると思います。
PHPの勉強方法
PHPで理解するにはユーザーがフォームで入力してきた値の処理と、それらのデータを格納するデータベースまわりの扱い方かと思います。
他にももちろん色々ありますが、インプットとアウトプットをうまく処理できれば基本的なサイトは作れるようになると思います。
無料の範囲で学習できるオンラインのサイトを利用してもいいですし、入門書を利用してもいいと思います。
私個人としては体系立てて学習するにはやはり本がおすすめかなと思っています。
簡単なサイトの作成
簡単なのは掲示板を作ってみることですね。ユーザー登録もなにもない誰でも書き込める掲示板サイトを作ってみるとインプットとアウトプットの基本は学べると思います。
データベース周りがわかってきたらユーザー登録も追加して、そのユーザーに付随する処理を追加してみるのもいいでしょう。
例えばログインしたユーザーが投稿するとそのユーザーの投稿一覧が見れるなどですね。
各webサービスが公開しているAPIを利用してそれっぽいサイトを作ってみるなどの勉強方法も良いと思います。
実際に作りたいサイトの作成
最後にオリジナルのサイトを作ってみましょう。これは就職試験などの時にアピールとして使えるものが良いと思います。
既存のwebサービスにインスパイアを受けるのは良いことですが、プラスでオリジナルのアイデアは欲しいところですね。
私はまだ各ショッピングサイトが商品APIを公開していない頃に、ある商品を各ショッピングサイトで横断的に価格比較できるようなサイトを作ってみたことがあります。
これは現状では類似コンテンツサイトとしてgoogleに嫌われるのであくまで参考までに。
公開にあたり
就職試験時のアピールとして利用するのであれば独自ドメインを取得して実際にアクセスできるサイトとして公開するのがいいかなと思います。
独自ドメインの取得・レンタルサーバーの契約とお金はかかるのですが、逆にそこまでしてると応募者の中でも目立つことができるのではないかなと。
今はgitがあるのでそちらでの公開、もしくはソースの公開だけでもいいかもしれませんね。それだと無料の範囲でも利用可能です。
実務でのPHP
実務でPHPを利用する場合は、実は実務でPHPを利用する場合、PHPだけを使うっってことは少ないかもしれません。
例えば画像を処理するライブラリやエクセル作成するライブラリ、PDFを出力するライブラリなどそういったものをPHPから利用するといった形です。
なのでPHPは基本利用だけできればOKで、あとは以下に他のライブラリを利用して色々なことを実現できるかという実験・検証を行うサイトを作ってみるのが良いかと思います。
こんなことができるならうちの会社のあのサイトの開発にも使えそうだなと思ってもらえれば採用確立はアップしますよね。
フレームワークを使おう
実務では素のPHPは使わずフレームワークとよばれるものを利用しての開発がほとんどです。
中身はPHPなんですが、よく使う処理などがライブラリ化されており、複数人で開発しても開発方針がバラバラになりにくいなどのメリットがあります。
現状であればPHPならLaravel、RubyはRailsなのでわかりやすいですね。これらでの開発練習もしておくと良いです。
まとめ
PHPでwebサイトが作れるようになるまでの道のりと、その先の就職に向けてのお話を書かせていただきました。
プログラミングの勉強全般に言えることなのですが、やってみないとわからないです。
もし今やるかやらないかで悩んでいるのであればやってみて合う合わないを判断したら良いと思います。
動かしてみると意外と楽しいですよ。