【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編)
What you'll learn
- どのような技術が組み合わさってWEBシステムが動いているのか、その基礎を体系的に学びます。
- 開発に欠かせないWEBの基礎知識について学びます。
- PHPの基本的な文法について学びます。
- 開発で頻出する正規表現の使い方について学びます。
- PHPの名前空間、クラスを使った記法について学びます。
- データベースの実践的な設計手法について学びます。
- SQLを使ったデータベースの操作方法について学びます。
- Apacheの設定方法について学びます。
- サーバーとブラウザのやり取りを可視化し、その仕組みを学びます。
- Apacheの設定を通してパフォーマンス改善の基礎を学びます。
- 避けるべきセキュリティーホールの基礎について学びます。
- CSS、Sassの基礎について学びます。
- Sassと組み合わせたBootstrapの使い方を学びます。
- JavaScriptの基礎について学びます。
- JavaScriptを用いたフォームのバリデーションチェックについて学びます。
- MVCアーキテクチャの思想を取り入れて、一からWEBアプリを作成します。
- WEBアプリの作成を通してプログラミング力の底力を底上げします。
Requirements
- HTML、CSS、JSをなんとなく使えるレベルの方。
Description
「WEBシステムがどのようにして動いているのかきちんと理解していますか?」
今日ではAWS(Amazon Web Service)、AzureやGCPなどのホスティングサービスの登場により、基本的なサーバーの設定をWEB開発者が行う機会は少なくなりました。
また、LaravelやRuby on Railsなどの高機能なWEBフレームワークを使えば、WEBシステムの基本的な知識がなくても、高機能なサイトを作れるようになります。
もはや、データを格納するテーブルでさえも、フレームワークが自動で作成してくれます。
一方でこのような技術の進歩により、WEB開発者はWEBシステムの基礎について学ぶ機会を失ってしまいました。
WEBシステムの基礎を学ぶことは短期的なプログラミングの上達においてはそれほど重要ではありません。
短期的な成長を望むのであれば、「Laravel」や「Ruby on Rails」、「Spring Boot」、「Django」などのWEBフレームワークの具体的な使い方を学ぶ方が目に見えた成果を実感できるでしょう。
しかし、基礎を疎(おろそ)かにしていると、3年、4年と月日を重ねていったときにそれはボディーブローのように効いてきます。
私はこれまで数えきれないほどのWEB開発者を見てきました。
その中で優秀な開発者とそうでない人の決定的な違いとして基礎を理解しているかどうかということがあります。
優秀なWEB開発者はその根本的な仕組みについて驚くほど深く理解しています。
もちろん彼らも実際の開発を行う際にはLaravelやAWSなどの実用的な技術を使用します。
しかし、彼らは裏でどのようなことが起こっているのかを理解したうえでそれらの技術を使用します。
そのため、不具合やバグにあたっても自身で解決の糸口を見つけ、あっという間に解決してしまいます。
WEBの仕組みを知らずに構築したシステムというのはとても危ういのです。
何の変哲(へんてつ)もない一行のコードがWEBシステムのパフォーマンスに大きな影響を与えたり、システムに致命的なセキュリティーホールを生むこともあります。
私も初学者の頃はかっこいい画面や最新の技術に目が行きがちでしたが、WEB開発者として9年目を迎えた今思うのは基礎を理解しているという事は本当に大切だということです。
スポーツ選手でも、料理人でも演奏家でも、どんな職業の人でも基礎をおろそかにして大成している人を見たことがありません。
一見、高度なことをしているように見えることでも、それは基本的な事が組み合わさって複雑に見えているだけなのです。
少し視点を変えてみましょう。
今日のWEB開発ほど技術の移り変わりが激しい分野はありません。
日々新しい技術が生まれ、世界中の企業やコミュニティが次から次へと新しいフレームワークやライブラリ、サービスを作成します。
そんな中で特定のフレームワーク、サービスの使い方だけを暗記して学ぶことは大変非効率です。
なぜならその知識は数年後には必要がなくなっているかもしれないからです。
少し残酷に聞こえるかもしれませんが、これは事実です。
私自身何度もそのような状況に遭遇してきました。
実際、その当時は有名でそのフレームワークがないと開発できないと思われるようなものでも、5年後にはレガシーな技術(古い技術)として扱われることも少なくありません。
そのため、WEB開発においては表面的な知識の暗記よりも基本的なシステムやプログラミング言語への理解というのが特に重要になってきます。
DBの設計や構築、サーバーの設定方法、プログラムのデザインパターンやオブジェクト指向型プログラミングなどの普段の開発ではフレームワークが代替して行ってくれているような知識を学ぶことは、プログラミング技術やWEB開発技術の底上げをしてくれます。
そして、実はそれさえあれば、フレームワークが変わろうとプログラミング言語が変わろうとそれほど苦労なく習得できるようになります。
こちらのコースの後半では演習としてMVCアーキテクチャの考え方を用いたサイトをPHPとMYSQLを用いて一から作成します。それはフレームワークを用いる開発が主流の今日では意識して学ばないと体験することのないものです。
おそらく、フレームワークを用いれば初学者の方でも1日くらいでできてしまう簡単なシステムです。
しかし、フレームワークを使わないで開発を行うとなると話は変わってきます。これまでフレームワークが代わりに行ってくれていた、コードの再利用性や保守性の担保、認証の仕組みやセキュリティーホールを生まないための実装、またはパフォーマンスにかかわる処理までご自身の手で実装していく必要があります。そして、そのような経験は、後の実践的なWEB開発の学習に入っていく際に大変重要なものになります。
初学者の頃はフレームワークを用いた実用的な開発に目が行きがちなのはわかります。
実際、私もそうでした。しかし、いくら新しいフレームワークの使い方や新しい言語を覚えても根本的な事がわかっていなければプログラミングやWEB開発のスキルは早い段階で頭打ちとなってしまいます。しっかりとした土台がなければレンガを高く積み上げることはできないのです。
しかし、逆に言えば基礎をしっかり学んでおけば、その上に何を積み上げても容易に吸収できるようになります。
こちらのコースではWEBシステムの動きを理解し、根本的なWEB開発技術の底上げを目指します。
こちらのコースの最後に作成する練習アプリは初学者の方には少し難しく思えるかもしれません。しかし、落ち着いて一つづつ読み解いていくと、その実態はこちらのコースで紹介している基礎的な技術の組み合わせで構成されていることに気付くはずです。
是非、最後まで諦めずチャレンジしてみてください。
最後に、皆様のWEB開発者としてのキャリアの一助になれば大変うれしく思います。
では、本編でお会いできるのを楽しみにしております。
*** 補足 ***
このコースの以下のセクションはそれぞれ他のコースの教材を流用しています。あらかじめご了承ください。
セクション17「CSSの基礎」:【JavaScript&CSS】ガチで学びたい人のためのWEB開発徹底実践(フロントエンド編)
セクション21「JSの基礎」:【JS】ガチで学びたい人のためのJavaScriptメカニズム
Who this course is for:
- 本気でWEB開発の技術を伸ばしたい方。
- WEBの基本から勉強し直したい方。
- WEB開発の勉強を始めた初学者の方。
- WEB開発者として将来働きたいと思っている方。
- WEBシステムについて基礎から学び直したい経験者の方。
- なんとなく動くものを作れるけれど、仕組みについて理解していない方。
Instructor
皆さん、こんばんは。CodeMafiaです。
私はWEBプログラミングの初学者から中級者向けの学習コースに特化して提供しています。
私のコースの中では「なぜ?」「どうして?」の説明を必ずつけるように心掛けています。「なぜそうなるのか?」「どうしてその方法で実装するのか?」それは、私が駆け出しエンジニアだった時に一番知りたかったことでした。しかし、そこまで丁寧に答えてくれる人はなかなかいませんでした。そのため、私のコースの中ではなるべく生徒さん達にモヤモヤを持ってほしくないと思い、「なぜ?」「どうして?」をできる限り説明するようにしています。基礎が理解できれば、未知の状況でも自分で考えて応用することができます。私のコースが皆さんの基礎固めのお役に立てば幸いです。
- 授業を受けてくださった皆様へ
ご受講いただきまして誠にありがとうございます。
是非、皆様のコースに対する正直な意見をお知らせください。
フィードバックをいただけると大変モチベーションにつながりますし、コースの改善に大変役立ちます。
良い意見も悪い意見も大歓迎です。
是非忌憚のない意見をお知らせください。
- 近況報告
本を出版しました。JavaScriptの動作原理について詳しく書いた本になります。思い通りにコードが書けなくて悩んでいる方は是非一度ご覧いただけますと幸いです。(全国の書店でご覧いただけますので、書店にお立ち寄りの際は是非見てみてください。)
「独習JavaScript新版」翔泳社出版 2021/11/15発売
- 略歴
- 北海道大学 工学研究科 応用物理学専攻 修了
レーザーと超音波の研究やってました。超高解像の微弱な超音波を物体に派生させることによって物性を計測する研究に携わっていました。
- ソフトバンク SE兼、開発で新卒入社〜4年間勤務
大手IT企業がどんどん世界を変えていくのを目の当たりにして、ITに興味を持ちソフトバンクに入社しました。
数億円規模のプロジェクトの立ち上げに携わる一方、大規模WEBアプリケーションの長期保守とアジャイル開発に携わっていました。フロントエンドからバックエンドまで幅広い領域を担当していました。
- フィリピンで半年間語学留学
ソフトバンクをやめてからはフィリピンに半年間語学留学していました。英語はおおよそ思ったように喋れる様になりましたが、別のところで色々ありました。笑
- 起業~現在
世界の著名な起業家になりたいという中二病的発想で何も考えず会社をやめて独立しました。ただ、そんなに世の中うまくいくわけもなく、なかなか大変な時期もありました。笑
一歩ずつ前進していけるようにこれからも精進していきたいと思います!
- 強み
もともとソフトバンクで働いていましたが、今は独立してIT業界に携わっているため、大規模アプリケーションの開発の進め方から、小規模アプリのスピーディーな開発の進め方まで多様な開発手法について知っていると思います。そのような経験の中から有益な情報を皆様にお伝えできれば幸いです。
- 行動指針
失敗してもいいから「とりあえずやってみる」ことを心掛けています。
- その他
無料で公開しているコースについては初期に収録したコースになります。お見苦しいところもあるかと思いますが、少しでもお役に立てば幸いです。
では、皆様のより一層の飛躍を心よりお祈り申し上げます!