L&M個別オンライン教室~論理と数学とプログラミングのオンライン授業~L&M個別オンライン教室~論理と数学とプログラミングのオンライン授業~L&M個別オンライン教室~論理と数学とプログラミングのオンライン授業~

WEBとプログラミングの入門諸々

Webサイトやプログラミングに興味のある方に入門的な一般情報を紹介したいと思います。
というのも私自身、勉強を始めた頃は右も左も分からず、多くの方向転換を繰り返したためです。
手探りで進むことも良いことですが、以下の内容が何らか参考になれば幸いです。

Webサイトはどうできているの?

どのページでも良いので、右クリックのメニューから「ページのソースを表示」を選択してみましょう。
文字ばかりのページが表示されると思います。これはHTMLといってWebページの基本データを構成しているコードです。
Webページの骨格・基礎はHTMLでできています。
メモ帳などでHTMLを書いて、拡張子を.htmlにしてブラウザで開けば、Webページが表示されます。
参考:HTML入門, HTMLクイックリファレンス

HTMLはプログラミング言語ではなく、データとデータの意味付けをする言語、マークアップ言語と呼ばれたりします。
HTMLだけでは、Webページは文字だけの白黒のページになってしまいます。
色やレイアウトを付けるためには、CSSという「スタイル」専用のコードを書く必要があります。
先ほど表示させたHTMLのソースの中に、

<link href="http://○○/○○.css" rel="stylesheet" type="text/css" />

というコードを見つけられたら、これをクリックするとCSSのコードを見ることができます。
CSSはHTMLの中に書くことも、別のファイルに.cssという拡張子を付けて作成し、それをHTMLファイルから上記のコードで参照させることもできます。
参考:CSS入門, CSSクイックリファレンス

HTMLとCSSだけを書いてもそこには文字と色やレイアウトしかありません。
画像や動画その他のファイルを表示させるには、それらのファイルを別に作成してHTMLから参照させる必要があります。
先ほど表示させたHTMLのソースの中に、

<img src="http://○○/○○.jpg" />

というコードを見つけられたら、これが画像を参照しているコードになります。

以上の三つの構成でよく見る普通のWebサイトは作られています。
職業としても上記の作業に熟練したHTMLコーダーという職種があります。
HTMLコードの作成にはドリームウィーバーやvi(無料かつ高度)を使うと良いと思います。
参考:香り屋,Windows版vim, viエディタの使い方
Webサイトの見た目はCSSや画像で大きく決まるので、Webサイトを作成するWebデザイナーという職種は、
HTML,CSSの知識に加えて、デザインや画像を作成する能力が求められます。
この分野は広告や出版と同じで、イラストレーターやフォトショップなどの画像作成ソフトに習熟する必要があります。

Webページ上のプログラム

Webページ上で動き、Webページを制御するプログラミング言語にJavaScriptというものがあります。
Webページは、サーバコンピュータがWebページの情報を配信し、それをお使いのパソコンのブラウザがWebページとして表示します。
JavaScriptはブラウザ上で実行されるプログラムということになります。
JavaScriptは、CSSと同様にHTMLの中に書くことも、別のファイルに.jsという拡張子を付けて作成し、それをHTMLファイルから下記のコードで参照させることもできます。

<script type='○○.js'></script>

参考:JavaScript入門, とほほのJavaScriptリファレンス
JavaScriptの作成は、HTMLの作成と同様にドリームウィーバーやvi(無料かつ高度)で十分にできます。
ブラウザさえあれば手軽に始められて、制約もありますが、現在では高度なアプリも作成することができます。

では、JavaScriptは手軽に始められるので簡単か、といえばそうとも言えません。習熟するためには色々なハードルがあります。
同じ時間をかけるのであれば、後で紹介するJavaを勉強した方が良いでしょう。
そのハードルとは、まずJavaScriptの実行環境であるブラウザは多種類あり、すべてのブラウザで実行可能にするための手間がかかります。
その手間を省くためのライブラリ(コードの集まり)もありますが、それも別途勉強する必要があります。
さらに、JavaScriptは特殊な文法の枠組みを持っていて、その理解を他のプログラムへ応用できない部分があります。
などなど、したがってJavaScriptはWebブラウザを制御する必要があるときに勉強するもので、また入門時にプログラミングに慣れる程度に触ってみるのは良いとしても、プログラミングの勉強のためにJavaScriptをみっちり勉強するというのはあまりお勧めではありません。

Webページの配信とプログラム

Webページは、サーバコンピュータがWebページの情報を配信し、それをお使いのパソコンのブラウザがWebページとして表示すると説明しました。
JavaScriptはブラウザ側で実行されるプログラミング言語ですが、一方、サーバ側でWebページやWebサイト全体を制御するプログラミング言語があります。こちらはJavaScriptのように選択肢が一つというのではなく、Perl, PHP, Ruby, Python, Javaなど色々な言語が使えます。

サーバはLinuxやWindowsの上でWebページを配信するソフトが常時稼動することで構成されています。
したがって、サーバを運用するにはLinuxやWindowsの知識が必要となり、Webページを配信するソフトの知識も必要となります。
また、パソコンとサーバはネットワークで繋がっているので、ネットワークについての知識もなければサーバを運用することはできません。
サーバを運用することはそれだけで専門の職業であり、その中でも様々な分野があります。
ちなみに、サーバを運用する際には多くの設定ファイルを編集するのですが、その時に用いられる編集ソフトが先ほど紹介したviです。

Java以外のPerl, PHP, Ruby, Pythonなどは基本的にWebページやWebサイトを制御するためにしか使われない言語ですが、現在のWebサービスに対する需要が高いからこそ様々な言語が利用されています。Webサービス/中規模以上のサイトの開発・運営にはこれらの言語が中心的に用いられており、多くの技術者が開発に取り組んでいます。
一方、Javaは様々な分野で活用されていて応用範囲が広く、それでいて文法が簡潔で標準的なものになっています。
プログラミング言語を勉強のために勉強するのであれば、Javaを勉強することをお勧めします。プログラマーとしての需要が最も多いのもJavaではないかと思います。
参考:自分が勉強してみたいと思った言語をGoogleで検索してみてください。
「入門」などと付ければ、勉強するための情報はたくさん出てきます。以下同じ。

ちなみにSEO

Webサイトは基本的に文章と画像で構成されています。
Webサイトを作成する場合に誰が文章を書いて、誰が画像を作成するのかなどど、作業分担が重要になります。
Webサイトのコンテンツについて最もよく知っているのは依頼者であり、Webについて知っているのは製作者なので、互いの意思疎通と分業が良いWebサイトを作成するには重要となります。
それに加えて、Webサイトを作成する目的であるWebサイトを閲覧してもらう、利用してもらうことを達成するには、ただ詳しいサイト、綺麗なサイトを作れば良いということではなくなってきます。
SEOとは検索エンジン最適化ということでありますが、その目的はWebサイトを閲覧してもらう、利用してもらうことであり、SEO自体はその一手段に過ぎません。SEO業者というよりはWebコンサルタントという業種の方が安定したものであるかと思います。
というのもSEO自体にもWebコンサルタントであればなおさら、腕を磨くには上述してきたようなWebの広範な技術知識とさらにはWeb特有のマーケテイング知識を持つ必要があるからです。
例えば、Webページを配信するソフトの知識がなければGoogleがマニュアル化している検索エンジン最適化はできませんし、検索エンジンで上位を目指すよりも広告を出した方が効率的なことが多くあります。

プログラムの種類

主にWebで利用されるプログラミング言語を紹介してきました。
現在使われているコンピュータ上で稼動しているソフトのほとんどはプログラミング言語で作成されています。
WindowsやLinuxなどのOSから銀行や一般企業のシステムまで広範なソフトウェアがあります。
プログラミング言語は数多くありますが、広範なソフトウェアの多くがC,C++,Javaなどで書かれています。
C,C++,Javaなどの開発は、WindowsでもLinuxでもどちらでもできますが、基本的にWindows上での開発はお金がかかります。
一方、Linux上での開発は基本的にお金がかかりません。プログラミング言語を勉強するのであれば始めのハードルは高くともLinuxを使い始めることをお勧めします。
Webに話を戻すと多くのWebサーバーがLinuxで運用されていることもあり、Webで何かしたいのであればLinuxを避けることはできないと思います。
Linux上でのC,C++などの開発は、emacsという編集ソフトを用います。Javaの開発にはeclipseという編集ソフトもお勧めです。

プログラミングの勉強

プログラミングの勉強には、プログラミング言語自体の勉強とは別に、二つの勉強が必要です。

一つはいわゆるアルゴリズムの勉強です。アルゴリズムとはつまり計算の手順のことです。
どのように計算処理をするかということがプログラミングの質や効率を大きく向上させます。
それだけではなく、新しい計算処理の仕方・理論を考えれば、それで新しいサービスが開始されます。
例えば、Googleのページ評価アルゴリズムなどです。
アルゴリズムの勉強は、プログラミングで良く使われる基礎的なアルゴリズムを習得するということもありますが、
それ以上を求めるのであれば、情報科学の勉強やその基礎となる数学の勉強が必要になったり、物事を理解するための哲学の勉強が必要になったりします。大学生の情報科学を学ばれている方で、高い目標を持っている方はこのような基礎的な勉強を行うことが将来の飛躍に繋がるものと思います。

もう一つは、コンピュータ自体の知識や上述してきたような多くのコンピュータ分野の知識です。つまり、プログラミングの対象となるものの知識です。プログラムがどのような基盤の上で動いているのか、どのような対象を処理しようとしているのかを知らなければ、プログラミング言語を使うこともその理解を深めることもできないと思います。