2023年6月 Archives

以前にプログラミングの学習はchatGPTがベストプラクティスだの記事を更新したのですが、あれから3カ月が経過した現在、プログラミング言語のスキルが大幅に向上したと感じています。

今までは、フロントエンドのHTML、CSSぐらいは習得していましたが、これらはプログラミング言語というよりも、マークアップ言語のため、それほど難易度が高いわけではありません。

それが、この3ヶ月でHTML、CSSに加え、バックエンドのJavaScript、PHP、SQL、Pythonと、過去5年分ぐらいのスキルアップが実現したと感じています。その過程で、MySQLなどのデータベースに加え、Gitなども少しはかじっています。

もちろん、深く習得したわけではなく、読めて簡単なものでしたら書けるぐらいです。

HTMLやCSSについては、スラスラ読めて書けるぐらいには慣れ親しんでいますが、JavaScriptやPHP、SQLについては、まだぎこちない感覚があり、すんなり頭に入ってくるわけではありません。ただ、入門書レベルの書籍でしたら、内容がスラスラ入ってくる状態です。

この分ですと、年内にはよく分からないJava、Perl、C言語などもある程度は習得できそうな気もしており、ウェブ開発におけるLAMP(Linux、Apache、MySQL、PHP)あたりは、ものに出来そうな予感がしています。

フロントエンドに加え、バックエンドのプログラミング言語をかじったことにより、ウェブ開発の全貌がおぼろげながらも理解できてきたように感じます。

このChatGPTによる習得スピードが速い理由については、疑問点をその場で何度も質問しながら、ステップバイステップで習得できるからだろうと感じています。

インタラクティブなやり取りにより、疑問点を潰しながら進めますし、初歩的な質問についても、AIなら気兼ねなく、分かるまで24時間何度でも質問できます。

それに加えて、回答速度も一瞬で、口頭での説明ではなく、文章での説明のため、情報の吸収量が極めて効率的です。また、かなり正確な情報を提供してくれます。

さらに、よく間違えるという点も、プラスに働いているものと感じています。

ChatGPTから提供されたコードについては、大まかには合っていますが、ところどころ間違っており、実際には動かないケースが多いです。

そのため、1行づつ確認しながら、動かない箇所を調べていくわけですが、この確認をする過程にて、ああでもないこうでもないと繰り返しているうちに、この行は何度も確認したし、問題はここではないという状態になります。

この間違い探しをする上で、コードの意味やシンタックスを正確に確認しないといけませんし、結果的に、この確認作業がプログラミング習得にとって、極めて効率的に作用するものと感じます。

もし、そのままうごくコードばかりをChatGPTに提供されるとしたら、コピペして終わりのため、何らスキルアップには役立たないことでしょう。

これからプログラミングを習得しようとしている方は、実際にコードを書いてもらいつつ、そのコードの間違いを探すようなスタンスで取り組むと、習得スピードが飛躍的に向上するものと思います。

以前、AMP(Accelerated Mobile Pages)に対応し、モバイル環境での表示を高速化したのですが、メリットとデメリットを秤にかけた結果、AMPへの対応は終了することにしました。

AMPの最大のメリットは、モバイル環境での高速化にありますが、そもそも静的なWebサイトを運営している場合、WordPressのような動的なウェブサイトよりも高速で表示される傾向があります。

それでも、AMPページの方が高速で表示されるのは事実ですが、コンマ数秒程度の違いのため、そのメリットとデメリットを秤にかけた場合、自サイトの場合は終了した方がよいと判断しました。

AMPのデメリットでいえば、やはりJavaScriptが大幅に制限される点があると思います。ツールサイトのような、JavaScript主体で運営しているサイトの場合は対応が難しいでしょうし、広告についてもJavaScriptを使用している場合には制限されることになります。

さらに、正規ページとAMPページにて、2ページ分の対応が必要になるため、時間などの管理コストが増大する傾向にあります。

この点が非常に手間がかかると感じており、1ページ更新するのにも、1.3倍程度の手間がかかると感じました。

それでも、SEO対策上、AMP対応の有無がランキング要素になるのでしたら、また別ですが、直接的な影響はなく、高速化することによる間接的な影響しかないものと感じています。

また、カルーセルの表示など、AMPによる特典のようなものは存在するものの、単純に管理コストを下げ、更新頻度を高めた方が全体としてのパフォーマンスは向上する気もしています。

そのような理由にて、迷った末にAMPへの対応は終了することにしたのですが、出来るだけシンプルな形で運営していく予定でいます。

メジャーなプログラミング言語には、JavaScriptやPython、PHPなどがありますが、これらは明確にプログラミング言語として分類されています。

一方で、HTMLやCSSは有名ではあるものの、単にプログラミング言語とはいえない部分があり、マークアップ言語やCSSとも呼ばれています。やはり、条件分離や定義をしての操作などがない場合、プログラミング言語とはいえないのかもしれません。

そのような、プログラミング言語とはいえないものの、習得するためのコストが低く、サイト運営に役立つコスパ高い言語の一覧をご紹介します。(※HTMLとCSSは除く。)

言語的なものの一覧

1、SQL
2、Apacheの設定構文
3、Curlコマンド
4、Jquery
5、WordPress独自タグ
6、xml
7、JSON
8、CGI
9、Winコマンドブロンプト
10、logファイル
11、CSVファイル
12、正規表現

1.SQLについて

SQLはデータベースを操作する言語ですが、SELECT、UPDATEなどの構文でデータベースを操作します。ただし、Webサイト上から操作するには、PHPなどのプログラミング言語との連携が必要になります。PHPファイルに記載することが多いと思います。

WordPressを使用している場合にも、サイトの移転などで使用することがあるかもしれません。

2.Apache

単にApacheといった場合、通常ですとApache HTTPサーバーのことを指すことが多いです。サイトの.htaccessなどを設定する際、RewriteEngine Onなどと記載することが多いですが、このサーバーを設定する際、Apacheの構文や指令のディレクティブを使用することになります。

ただし、これらはプログラミング言語ではなく、設定するための指示言語です。常時SSLや301リダイレクト設定をする際には、こちらを使用するとよいでしょう。

3.Curlコマンド

当サイト運営者の場合、こちらはWindowsのコマンドブロンプトから使用することが多いですが、HTTPリスポンスを確認する際によく利用します。

4.Jquery

Jqueryについては、JavaScriptのライブラリーのため、実際のところはJavaScriptといえます。一方で、ライブラリを使わず、生のJavaScriptについては、バニラJSと呼ぶことがあります。当サイト運営者の場合、細かい点まで管理したいため、バニラJSで使用することが多いです。

同様に、JavaScript関連ではReactがあり、React.jsと呼ばれていますが、こちらについてはFacebookが開発したものになります。

5~11

そのほか、独特な言語的なものがありますが、サイトマップを作成でxmlを使用することが多いですし、エラーログを出力した際には、ログファイルを確認するとエラーメッセージなどの独特な書き方がされています。

コマンドブロンプトについては、直接的にはサイト運営で使用することはありませんが、当サイト運営者はwois情報の確認やWebフォントのサブセットで使用することが多いです。

12.正規表現

正規表現自体はプログラミング言語ではありませんが、JavaScript、Python、Java、Perl、Rubyなど、多くのプログラミング言語で正規表現をサポートしています。

JavaScriptにて使用することが多いかもしれません。

そのほか、サイト作成でCMSを使用する際には、WordPressやMovable Typeなどで独自の構文を使用することがあります。

上記については、プログラミング言語とはいえませんが、比較的、習得するには簡単たなめ、短時間で効率よく習得できると思います。コスパ高い言語になるので、覚えておくとよいでしょう。

HTMLタグを手打ちしている場合、テキストエディタのみではフォルダ内のファイルを一括で置換するようなことは難しく、また文字コードを一括で変更するなども困難です。

その点、ホームページ作成ソフトのDreamweaverなどを使用すれば、パソコン上で直感的に作業できるため、効率的ではありますが、条件を指定した上での分岐処理など、より複雑なプログラミング的な操作はDreamweaverでも困難な傾向があります。

このような場合、人気プログラミング言語のPythonを使用すれば、パソコン上のホームページファイルに対して様々な操作ができて便利です。

特に、PythonのライブラリにBeautifulSoupやosがありますが、パソコン上のHTMLファイルを読み取り、解析し、修正し、再度保存するといった一連の操作を自動化することが可能となります。

Pythonといえば、ウェブスクレイピング的な操作をするプログラミング言語と思われていますが、そのスクレイピングは、Web上だけではなく、パソコン上のファイルでも可能なのです。

このPythonには、以下のようなライブラリやモジュールがあり、ホームページの作成と親和性が高いです。

re

正規表現を扱うためのモジュールです。正規表現で特定のパターンに一致する文字列を検索したり、置換したりできます

os

ファイルやディレクトリの操作、パスの操作、プロセス管理など、osの名前どおり、オペレーティングシステムレベルのタスクを実行するためのモジュールです。

shutil

ファイルやディレクトリのコピー、あるいは移動や削除などのファイル操作ができます。

glob

ディレクトリのワイルドカード検索を行うためのモジュールです。

codecs

文字コードを変換する際に使用すると便利です。このモジュールを使うことで特定のエンコーディングでファイルを読み書きしたり、文字コードを変換したりできます。

BeautifulSoup

HTMLやXMLのパースや操作、スクレイピングを行うためのライブラリです。HTMLファイルの中身を操作する際に使用すると便利です。

これらのライブラリを使いこなすことができれば、HTMLタグを手打ちしてホームページを作成しているユーザーにとって、強力なツールとなり得ます。

JavaScriptと比較しても、Pythonは初心者の方でも比較的、わかりやすいプログラミング言語となっているため、HTMLやCSSの次は、Pythonの習得に取り組んでみてはいかがかと思います。