We may earn an affiliate commission when you visit our partners.
【CodeMafia】 WEBプログラミング学習

「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年と月日を重ねていったときにそれはボディーブローのように効いてきます。

Read more

「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メカニズム

Enroll now

What's inside

Learning objectives

  • どのような技術が組み合わさってwebシステムが動いているのか、その基礎を体系的に学びます。
  • 開発に欠かせないwebの基礎知識について学びます。
  • Phpの基本的な文法について学びます。
  • 開発で頻出する正規表現の使い方について学びます。
  • Phpの名前空間、クラスを使った記法について学びます。
  • データベースの実践的な設計手法について学びます。
  • Sqlを使ったデータベースの操作方法について学びます。
  • Apacheの設定方法について学びます。
  • サーバーとブラウザのやり取りを可視化し、その仕組みを学びます。
  • Apacheの設定を通してパフォーマンス改善の基礎を学びます。
  • 避けるべきセキュリティーホールの基礎について学びます。
  • Css、sassの基礎について学びます。
  • Sassと組み合わせたbootstrapの使い方を学びます。
  • Javascriptの基礎について学びます。
  • Javascriptを用いたフォームのバリデーションチェックについて学びます。
  • Mvcアーキテクチャの思想を取り入れて、一からwebアプリを作成します。
  • Webアプリの作成を通してプログラミング力の底力を底上げします。
  • Show more
  • Show less

Syllabus

Udemyでの学習の進め方
セマンティックHTMLについて学ぼう
ChatGPTで疑問を解決しよう!!
WEBの知識
Read more
WEBに関する知識から学ぼう!
IPアドレス
URLとドメイン
URLとドメイン(続き)
プロトコルとポート
Web3層アーキテクチャ
コース受講の準備
★重要★コースで使うコードをダウンロードしよう!
【Windows用】MAMPのインストールと設定
【Mac用】MAMPのインストールと設定
Visual Studio Codeのインストールと設定
プロジェクトの構成とお願い
HTMLの基礎
HTMLの基本を学ぼう
HTMLのショートカットを学ぼう
アンカータグについて学ぼう
VSCodeのショートカットについて学ぼう
PHPの基礎(Part. 1)
画面を表示してみよう
コメントの記法
変数の定義方法
文字列の操作
自己代入について理解しよう
データ型について学ぼう
条件分岐を作成してみよう Part.1
条件分岐を作成してみよう Part.2
issetとemptyの使い分け
【理解度チェック】条件分岐
【解答】条件分岐
【Windows】デバック設定を有効にしよう
【Mac】デバック設定を有効にしよう
PHPの基礎(Part. 2)
配列と繰り返し(Part. 1)
配列と繰り返し(Part. 2)
連想配列を使ってみよう
【理解度チェック】配列
【解答】配列
正規表現を使ってみよう(Part. 1)
正規表現を使ってみよう(Part. 2)
【理解度チェック】正規表現
【解答】正規表現
関数を作ってみよう(Part. 1)
関数を作ってみよう(Part. 2)
PHPDocを書いてみよう
スコープについて理解しよう
【理解度チェック】関数とスコープ
【解答】関数とスコープ
PHPの基礎(Part. 3)
プログラムの記述順には注意しよう
条件分岐を省略して記述してみよう
定数を使ってみよう
ファイル分割の方法を学ぼう
パスの書き方について学ぼう(Part. 1)
パスの書き方について学ぼう(Part. 2)
名前空間について学ぼう
名前空間について学ぼう(続き)
クラス
クラスとthis
クラスとStaticメソッド
クラス継承(Part1)
クラス継承(Part2)
データの型宣言とStrictモード
【理解度チェック】クラス
【解答】クラス
【理解度チェック】クラス継承
【解答】クラス継承
PHPとWEB
セクション紹介
HTTPでの通信について学ぼう
フォームの書き方について学ぼう
GETメソッドについて学ぼう
POSTメソッドについて学ぼう
GETとPOSTの使い分け
フォームで配列を送ろう
隠しフィールドについて学ぼう
リクエストの値を保持する方法
Cookieを使ってみよう
Cookieを使ってみよう(Part.2)
Sessionを使ってみよう
【理解度チェック】CookieとSession
【解答】CookieとSession
認証の仕組み
Todoアプリを作ってみよう
Todoアプリを作ってみよう(続き)
WEBサーバ(Apache)の基礎
Apacheとは?
httpd.confを見てみよう
【ALIAS】URLをマッピング
ディレクティブとコンテキスト
【Directory】セクション
【理解度チェック】Directory
【解答】Directory

Save this course

Save 【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編) to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編) with these activities:
HTMLの基礎を復習する
コースでHTMLの基礎を扱う前に、HTMLの基本概念を復習することで、よりスムーズに学習を進められます。
Browse courses on HTML
Show steps
  • HTMLの基本的なタグと属性をまとめる
  • 簡単なHTMLページを作成する
  • 作成したページをブラウザで表示する
PHPの基本構文を復習する
PHPの基本構文(変数、条件分岐、ループなど)を復習することで、コースでのPHPの学習をより効果的に進められます。
Browse courses on PHP
Show steps
  • PHPの変数、データ型、演算子を復習する
  • 条件分岐とループの構文を練習する
  • 簡単なPHPスクリプトを作成して実行する
『PHP逆引きレシピ』を読む
コースで学んだPHPの知識を、実践的なレシピを通して理解を深めることができます。
View Melania on Amazon
Show steps
  • 興味のあるレシピを選んでコードを試す
  • レシピのコードを自分のプロジェクトに応用する
Four other activities
Expand to see all activities and additional details
Show all seven activities
SQLの練習問題を解く
SQLの練習問題を解くことで、データベース操作のスキルを向上させ、コースで学ぶSQLの知識を定着させることができます。
Show steps
  • SQLの基本的なSELECT文、INSERT文、UPDATE文、DELETE文を練習する
  • 複数のテーブルを結合するクエリを作成する
  • 複雑な条件を持つクエリを作成する
簡単な掲示板を作成する
コースで学んだPHP、MySQL、Apacheの知識を総合的に活用して、簡単な掲示板を作成することで、実践的なWEB開発スキルを身につけることができます。
Show steps
  • データベースの設計を行う
  • 掲示板の投稿、表示、削除機能を実装する
  • セキュリティー対策を施す
『Apache徹底入門』を読む
Apacheの設定や運用について理解を深め、WEBサーバーのパフォーマンス改善やセキュリティー対策について学ぶことができます。
View Melania on Amazon
Show steps
  • Apacheの基本的な設定ファイル(httpd.conf)を理解する
  • バーチャルホストの設定を試す
  • セキュリティーに関する設定を学ぶ
PHP製のオープンソースプロジェクトに貢献する
PHP製のオープンソースプロジェクトに貢献することで、実践的なコーディングスキルを向上させ、他の開発者とのコラボレーションを経験することができます。
Show steps
  • GitHubで興味のあるPHPプロジェクトを探す
  • プロジェクトのIssueを調べて、貢献できるものを見つける
  • コードを書いてPull Requestを送る

Career center

Learners who complete 【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編) will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編).
この本は、PHPでよく使う処理をレシピ形式でまとめたものです。具体的なコード例が豊富なので、コースで学んだ知識を実践でどのように活用できるかを理解するのに役立ちます。特に、データベース操作やセッション管理など、バックエンド開発で重要な部分を補強するのに適しています。この本は、コースの参考書として役立ちます。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser