最近、Web開発の勉強を再開しました。
以前も何度か挑戦したのですが、覚えることの多さに圧倒され、途中で断念してしまっていました。
Webの開発にはHTML、CSS、JavaScriptといったクライアントサイドの言語、JavaやPHPなどのサーバーサイドの言語、各種フレームワーク、OSやネットワーク、開発環境など、非常に多くの技術と知識が必要です。
一方、CやCOBOLなどのバッチプログラムであれば、その言語の知識だけでもある程度の処理は開発できます。
Excelならソフトの基礎知識とVBAが分かれば業務用ツールが作れますし、OfficeのインストールされたPCなら開発環境の用意も不要です。
そんなバッチとExcel VBAメインだった私が、ブログをきっかけに「今度こそWeb開発を習得できるかも!」と思ったので、その理由をまとめてみました。
ブログは最も手軽なWebサイト構築
Webサイトの構築・運営は大変
Webサイトの構築をゼロから行うのはかなり大変です。
ドメインの取得、サーバーのレンタル(または自宅サーバーの構築)、Webサーバーの設定やコンテンツの作成、セキュリティ対策からメンテナンスに至るまで、やるべきことがたくさんあります。
以前、私は自宅にWebサーバー(CentOS + WordPress)を構築し、ブログを公開したことがありました。
しかし、そこまでの道のりが大変だったため、サイトの構築完了がゴールとなってしまいました。 中途半端な達成感が生まれ、その後の更新は続きませんでした。
また、仮に続けていてもOSやソフトウェアの更新、アクセス数が増加した場合のスペック増強などメンテナンスが必要になり、このブログのようには更新できなかったでしょう。
ブログなら簡単に始められる
ブログならユーザー登録だけで、すぐに自分のWebサイトを公開できます。
面倒な開発環境の用意は必要ありませんし、メンテナンスはサービス提供者側で行ってくれます。
自宅サーバーやレンタルサーバーに比べればできることには制限がありますが、カスタマイズ可能な部分も多く、Webに関する多くの技術を学ぶことができます。
HTMLで記事を書き(私はより手軽なMarkdownを使っていますが...)、CSSでデザインを装飾し、JavaScriptで様々な処理もできます。
とても簡単に始められるブログですが、Webを見るだけの立場から、発信もする立場になるという意味では、大きな一歩と言えます。
HTMLだけ完璧に覚えて情報を発信していない人よりも、ブログを作って記事を一つでも投稿した人の方が結果を出していると私は思います。
今見ていただいている「はてなブログ」には技術力の高いユーザーさんが多く、何かやりたいことや問題点があっても情報が公開されていることが多いのでおすすめです。
また、無料アカウントでも最大3つまでブログを作れるので、テスト用のブログを作っていろいろ試すこともできます。
ブログで気づいたWebの目的・技術習得の難しさ
Webの目的は、情報を伝えることです。
情報を分かりやすく、効率良く伝えるために様々な技術が存在するわけですが、ブログを始める前の自分にはそれが見えていませんでした。
「とりあえずHTMLを覚える!」「Javaを勉強してみる!」という入り方でWeb開発に挑戦し、何も結果を残せずに挫折していました。
実はこのアプローチでも、先に述べたようなバッチプログラム(C、COBOLなど)やExcelツールの開発技術であれば十分に習得可能です。
ところがWeb開発では、HTMLもJavaも構成要素のごく一部でしかありません。 一つの言語だけを極めても、それだけでは何もできません。
そんな私が、ブログを始めたことをきっかけに「情報を伝える」というWeb本来の目的に気づくことができました。
ブログであればその目的を、一番最初に達成することができます。
そして読みやすいようにCSSでデザインを装飾し、JavaScriptで外部の情報を取得したりと、ステップアップする形でWeb開発に必要な技術を学んでいけます。
サーバーサイドの技術は別途学習する必要がありますが、ブログ運営の経験があればイメージを掴みやすくなるはずです。
また、JavaScriptでWebサーバーを構築可能な「Node.js」を使用する場合は、サーバー側の言語を一から覚える必要もなくなります。
通常のWeb開発では必要な知識や技術が多く、「情報を伝える」という目的までの道のりが長すぎるのが、途中で挫折してしまう原因だと私は考えます。
通常のWeb開発習得イメージ
開発環境の構築 → HTMLを学習 → CSSを学習 → JavaScriptを学習 → サーバーサイドの言語(JavaやPHPなど)・技術を学習 → 他にもいろいろ学習... → Web開発ができる...かもしれない
ブログでの技術習得イメージ
アカウント登録・ブログ作成 → Webで情報発信ができる! → HTMLを習得! → CSSも習得! → JavaScriptも習得! → Node.jsならサーバーサイドも作れそう! → サーバーサイドの他の言語も勉強してみよう!
※学習の順序は人それぞれですが、情報発信(アウトプット)が非常に早い段階でできるのがポイントです。
ブログを習慣化することで、Web開発が身近なものに
ブログの記事はHTML
ブログに投稿した記事は、最終的にHTMLとして出力されます。
はてなブログではGUI(見たままモード)やMarkdownを利用して簡単に書くこともできますが、HTMLを直接記述することも可能です。 (今回初めてHTML編集モードを触ってみたのですが、閉じタグが自動で入力されたり、すぐにプレビューできたりと便利)
記事の投稿を日常的に行うことで、HTMLが身近な存在となります。
「見出しを作りたい」や「表はどうやって作るんだっけ?」など、自分が何かをしたいと思った時にその方法を調べるのが、一番効果的な学習方法です。
カスタマイズでCSSやJavaScriptを覚える!
記事を投稿するだけであれば必須ではありませんが、ブログを運営しているとデザインをカスタマイズしてみたくなることもあると思います。
その際に使用するのがCSSやJavaScriptですが、はてなブログはカスタマイズの情報がたくさん公開されているため、コピペだけでも目標は達成できてしまいます。
ここで、単なるコピペではなく、1行1行しっかり意味を調べ、理解しながらコピペすることで、CSSやJavaScriptの知識を確実に深めることができます。
自分なりに考えてアレンジを加えたりできれば、それはもうあなたの技術と言えるでしょう。
優れたWebサイトを見る機会が増える
はてなブログに記事を投稿したり、設定を変更する際はWebサイト上の管理画面で行います。
追加でインストールが必要なソフトはなく、一般的なWebの技術で作られているわけですが、操作方法がとてもわかりやすく、使っていてストレスがありません。
記事の編集中に誤ってブラウザを閉じてしまった場合でも簡単にバックアップから復元できたりと、ユーザーへの配慮や優れた技術に驚くこともありました。
他にもアクセス解析のために使用するGoogle Analytics、広告配信のためのGoogle AdSenseなど、ブログ運営を通して使用するWebサイトの中には「このサイト凄いな!」と思うものがたくさんあります。
また、他の方が運営しているブログでも「このデザインすごく見やすい!」と感じたり、「このカスタマイズはどうやるんだろう?」と不思議に思うことが多々あります。
上記のような優れたWebサイトから良い刺激を受け、Web技術学習のきっかけにできることもまた、ブログ運営によるメリットです。
SEOの学習には特に有効
外部に公開するWebサイトで重要なSEO(検索エンジン最適化)については、ブログ運営を通しての学習が非常に効果的です。
ブログで記事を公開する際、ほとんどの人はできるだけ多くの人に読んでもらいたいと思うはずです。(広告などで収入に直結する場合は特に)
自身のブログのアクセス数を増やしたいという欲望想いを原動力に、SEOに対する知識を積極的に深めていくことができます。
読者の方へのご連絡
そんな訳で、最近はWeb開発の勉強が面白くて仕方ありません。
しばらくの間、ブログの更新頻度が落ちると思います。
ある程度自分の知識がまとまったところで、より良いコンテンツを発信していければと思いますので、今後ともよろしくお願いいたします。
まとめ
「システム開発の経験はあるけど、Webの開発はできない...」という悩みをお持ちの方は、ぜひブログを始めてみてください。
内容はバッチ系プログラムのTipsでも、日常のことでも、好きなゲームの攻略法でも何でも構いません。
ブログを通してWebの技術に触れることで、今よりもきっとWeb開発が身近な存在になるはずです。