勉強方法

Python経験者がWEB言語(HTML, JS, PHP)を学習してみた

「プログラミングを始めるならPython1択」

といっている私ですが、今回、HTML/CSSに加え、JavaScriptとPHPを学習しました。
これらの言語を学習した上で、

「これは非常によいツールができそうだ。」

と思い作成したのがこちらのページです。

⇒ 整形外科スコアリングのページ

ざっくり言うと、整形外科を受診した患者さんの症状から
重症度を判定できるスコア計算システムです。

ここではHTML/CSS、JavaScript, PHPを学習した方法と学習した経緯について説明したいと思います。

Python経験者のWeb言語学習 〜私の場合〜

勉強方法:主にUdemyの講座
学習方法:1日1時間(早朝)を3ヶ月

  • HTML/CSSとJavaScriptを学習する
  • PHPを学習する
  • サーバーへのアクセスを学習(.htaccess, 正規表現など)

1.HTML/CSSを学習するきっかけ

学習するきっかけは、

「Pythonを使用してWebアプリを制作したい」

とおもったのがきっかけでした。

Pythonは統計処理、機械学習、画像解析など使用用途がとても広いのが特徴ですが

「使用環境がないと動かない」

のが最大のネックです。

そのため、研究している後輩からの質問に答えるときも

この計算はPythonでできるよ!
Pythonってどうやって使うんですか?
まずはPythonダウンロードして、Anacondaインストールして、Numpyひらいて・・・
私には無理そうです・・・

画面を開いてターミナルでコードを打ったりしているうちに敬遠されてしまいます。

そこで、

これってWeb上でPythonの機能を使うようにできないかな?

とふと思ったのがきっかけでした。
調べているうちに、Pythonには

「Flask」「Django」

というフレームワークがあることがわかりした。

「フレームワークってなに?」

と思いましたが、学習するうちに
これらの機能をつかうと

「Pythonによる計算機能を提供するようなホームページが作れる」

という事がわかりました。

2. Flaskを用いた計算Webの作成

次に、Flaskを勉強し、オイラー角という、回転角度を求めるページを作成しました。

こんなページです
⇒ オイラー角計算のサイト

「これで角度が計算できます」
よかったね!

ちなみにFlaskの導入についてはこちらの講座で学習しました。

オンラインコース

Python and Flask Bootcamp: Create Websites using Flask!

初心者がFlaskに必要なPython, html, cssを学びながら基本的なFlaskのサイト構築の流れを学習できるコース。英語だがわかりやすい。 エディタとしてAtom(無料)を使用。

 

当時あった日本語の講座は、単一の簡単なアプリを作成するものでしたが、この講座は基礎からしっかり教えてくれます。

後輩にも喜ばれましたが、Flaskで表示されるページはHTML, CSSで記載されます。

計算機能をもつページを提供すると
どうしても

「データをページ上で受け取る」

「データを処理する」(ここはPythonのみなのでなれている)

「データをホームページに表示する」

という流れが必要です。

この
「データの送受信とページへの表示」
のところを扱ったことがなく、
Google Chromeなどでページ検証機能を使用する時にとても困りました。

そのため

ついでにWeb言語も学習してしまおう。

と決意しました。

3. HTML,CSS, JavaScriptの学習

私の場合、「Udemyの講座」で学習しました。

理由は以下のとおりです

Udemyの長所
  • 講座を購入すればずっと勉強できる
  • いわゆるサブスク(定期購入)タイプではなく、一度購入したら、以後お金を払わなくてもその講義はずっと受けられます。買いだめしておいてあとでいくら受講してもよいわけです。

  • 比較的安い(バーゲンセール中)
  • Udemyはよくバーゲンセールを行なっており、その間は講座の価格が10分の1から20分の1まで安くなります。
    具体的には2万円くらいの講座が2千円くらいで購入できます。

  • 環境構築から説明してくれる
  • 実際にどのように自分のパソコンで環境を構築し、どのようにホームページをアップするか、開発用のソフトなども丁寧に説明してくれる講義が多いです。 Progateなどはホームページ上ですぐにコードを動かせる反面、実際に環境を自分で構築するとなるとテキストを読まなければなりません。

1日1時間ずつ学習するようにしました。

PythonやFlaskと比較し、HTML/CSSは学習者が多いためか教材がとても多いのが印象的でした。

私の受講した「ともすた」さんの講座は非常にわかりやすく、HTML/CSSからJavaScript, Ajaxなど動的なページの作り方までとてもスムーズに勉強することができました。

オンラインコース

[HTML/CSS/JavaScript] フロントエンドエンジニア
になりたい人の Webプログラミング入門

UdemyのHTML/CSS人気講座。初心者向けのHTML/CSS/JavaScriptの授業。ていねいでとてもわかりやすい。シンプルなページから動きのあるホームページの作成、Ajax通信の基礎も学べる。 エディタはVisual Studio Code使用。

 

4. PHPの学習

HTML/CSSに加え、JavaScriptも勉強しましたが、

入力ページのレイアウトはわかったけど、データをうけとって計算する部分がわからない・・・

という段階になりました。
データを受け取って処理しているのは「PHP」という言語のため、この言語も学習することにしました。
キャンペーンのときに購入しておいた、ともすたさんのPHPの授業を受講しました。

オンラインコース

PHP+MySQL(MariaDB) Webサーバーサイドプ
ログラミング入門

PHPの文法から、フォームで受け取って表示するまでのページの背景でのデータの流れをていねいに学習することができる。

 
HTML/CSSの時と同様、とても丁寧な授業でスムーズに進めることができました。
プログラムを書くエディタも「VSCode」だったので、導入も楽でした。

5. サーバー側の処理の学習と+α

ここで、入力するホームページを作成する知識はできましたが、ここで新たな疑問が出てきました。

「ホームページってどうやってサーバーにアップするんだろう・・・」
「目的のホームページにどうやってアクセスできるようにするんだろう」

Pythonしか知らなかった自分は当然この時点で途方にくれます。
どうも調べてみるとサーバー側での処理の知識が必要のようです。

これらの知識を学習するために「CodeMafia」さんのPHPの授業をUdemyで受講しました。

オンラインコース

【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編)

PHPだけではなく、WEBの基本的な仕組みや、サーバー側へのアクセスをどのようにコントロールするかについても学習できる。Bootstrapの使い方もとてもわかり易い。題名からは裏腹に繊細な講義で、スピードはすこし早め。ともすたさん同様エディタはVisual Studio Code、PHPはMAMP使用。

 
名前と題名から、

「けっこういかつい授業なんだろうな〜」

と構えていましたが、1単元ずつが非常に充実していて勉強になりました。

特徴として、ともすたさんの授業が懇切丁寧であるのに対し、Codemafiaさんはサバサバした感じでどんどん進む印象がありました。
どちらも「VSCode」をエディタで使用し、「MAMP」というソフトを中心にPHPを構築していくので、導入部分がとっつきやすかったのが幸いしました。

この講座ではPHPに加え、

  • 簡単なAPACHEの説明
  • サーバー側での動きがどんな感じかざっくり説明してくれます。

  • .htaccessの書き方(正規表現含む)
  • どのようにページにアクセスさせるか。リダイレクトはどうするかなど自分である程度コントロールできるようになります。

  • Bootstrapの使い方
  • Bootstrapはページをデザインするときに便利なツールですが、既存のものを用いるだけでなく、どのようにカスタマイズするかわかりやすく教えてくれます。SCSSでデフォルトを変更するというのが目からうろこでした。

など、プラスαにあたるページ制作に必要な知識をゼロからでも学習することができました。

PHP自体も最初に学習したともすたさんの講座とちょうどよい具合で重複していない部分が多く、より知識の幅を広げることができました。
(具体的にはページ作成のときの関数の有効な使い方など。)

こうして無事に患者さんのスコアリングシートをつくることができたわけです。

⇒ 整形外科スコアリングのページ

補足 データベースに関して

 今回紹介したどちらの講座にもデータベースに関する授業も含まれていましたが、いまのところデータベースに関しての知識はあまり使用しなそうなので、データベース関連の授業は飛ばしたり早送りしたりして学習しました。
それでも十分内容は把握できます。
 

6. 教科書

オンライン学習は大変効率がよいですが、字引きがわりに使用するときには一目で見れないのが不便です。
実際ホームページを書く時教科書としては字引き代わりにManaさんの本をKindle版で購入し2画面にして読みながらコードを書いたりしました。

教科書

1冊ですべて身につくHTML & CSSとWebデザイン入門講座

  HTML/CSS学習書のベストセラー。基本からホームページの作成まで。パソコンでも読めるKindle版がおすすめ。

 

7. まとめ:Python経験者がWeb言語を学んだ感想

Python経験者として新しくWEB言語(HTML/CSS JS PHP)を学んだ感想をまとめます。

① 文法が似ているので頭に入りやすい

繰り返しや条件分岐など、プログラムの構造はPythonで学んでいるため、

「ここはPythonでいうと、この記述か」

という感じでスムーズにすすめることができます。
方言を聞いてなんとなくわかるのと同じ感じでしょうか。

第2外国語を習うほどのストレスはなく進んでいけます。

② 動くので楽しい

特にHTML/CSSは多少何かしらエラーがあっても表示されます。
Pythonは1個カッコが抜けたりするとまったく動かなかったりしますが、HTMLは多少文法が違っていてもページの表示までは持っていけます。
ストレスはこちらのほうが断然すくないですね。

しかし、逆にエラーがあってもホームページは表示されるため、

「エラーに気づかずにアップロードしてしまう」

ということを何度もやってしまいました。

アップロード後のページを検証してみるとエラーだらけということもあるので注意が必要ですね。

③ 連携が面白い

入力のここはJavaScriptで変化させて、計算はPHPでやって、、
という具合に、部品を組み合わせて完成品のページを作成していくのが非常に面白かったです。
JavaScriptやAjaxには、動作に対応してページの表示を変える面白い機能がいくつもあり、最高に効率がいいページとはいかなくても、こちらの欲しい機能が備わったページを作ることができます。

さらにPython Flaskと連携させればいろんな機能をもたせることができそうです。

④ 教材の質が高い

ホームページ制作に関わるWEB言語は学びたい人も多く、オンライン教材、教科書の質が感動するほど高かったです。

「誰でもWebエンジニアを目指せる」

という表現はけっして大げさではないようです。

Udemyすごすぎる・・・

Udemyは購入するならセール中が狙い目です。
普通に2万円くらいのものが2千円になっていたりします。

買いすぎて受講しきれない・・・
バーゲンセールあるあるだな・・・