未経験者・初心者向けのウェブ系プログラミングの入門ガイドです。ウェブサービスを開発するにはどんなスキルが必要か、何から始めたらいいか、どう学習したらいいかなどを書いています。ウェブサイトやウェブサービス(Webアプリ)のプログラミング開発を初めて学習しようとする方にとって、このページが始めの一歩となればと思います。
※ 本ページはプロモーションが含まれています。
ウェブサービス(Webサービス)は、インターネット上で提供されているサービスの事で、ブラウザで見たり利用する事ができます。
ブラウザで見れる物にはウェブサイトがあります。ウェブサイトとウェブサービスの違いですが、境目は微妙で共通している箇所もあると思いますが、ウェブサイトは一般的にはただ情報を提供しているサイトの事を言います。そして、ウェブサイトに様々なサービス(機能)をつけたものがウェブサービスです。
例えば、Youtubeは動画を見るだけでなく、動画をアップロードして保存したり公開できたりしますし、チャンネル登録などのSNS要素も含まれていますからウェブサービスと言えます。Gmailなどのメールサービスも、メールを送信したり受信して保存する機能がついているので、こちらもウェブサービスと言えます。
ウェブサイトはただ情報を提供しているサイトだと言いましたが、コメント機能や検索機能がついているぐらいならウェブサイトと言うかもしれません。サイトを見る人に何か便利なサービス(機能)を提供し、見るだけでなく利用しているとなればウェブサービスと言えると思います。
ブログなんかはウェブサイトですが、ブログサービスを提供しているプラットフォームはウェブサービスと言えるでしょう。
ただ、ホテルや旅館の宿泊予約サイトなんかはサービスを提供しているのでウェブサービスですが、一般的にはウェブサイトと言うでしょうから、やはり少し境目が曖昧ですね。
目線によって違ってくるのかもしれません。利用者目線で言えばウェブサイト、サービス提供者からすればウェブサービスという感じで。
あと、ウェブサービスはウェブアプリ(Webアプリ)という言い方もします。恐らくですが、スマホアプリとの対比でそう言われてるのだと思います。
上でも書きましたが、ウェブサービスはネット上でサービスを提供する事ができます。ウェブサービスの例をいくつか挙げてみます。
googleはメジャーなウェブサービスを多く提供しています。Youtube、gmail、マップ、カレンダーなどがあります。
他には有名どころでは、TwitterなどのSNS、Dropboxなどのオンラインストレージサービス、ECショッピングサービス、美容院やホテルや食べログなどの予約サービス、メルカリやPairsようなマッチングサービスなどがあります。
仕事で使うウェブサービスには、勤怠管理、営業支援、会計、スケジュール管理や会議室の予約などがあります。
また、企業のサービスだけでなく、個人が作っている独自的なウェブサービスも多々あります。
ウェブサービスを作るために必要な物は何か?そして、ウェブサービスを開発するために必要なスキルや知識は何でしょうか?
ウェブサービスはウェブサイトの延長線上のサービスと言えますので、まずはHTML・CSS・Javascriptのスキルが必要になります。 そして、ウェブ周りの知識やサーバサイドの開発のためのプログラミングスキルも必要です。
また、開発したウェブサービスをネット上で提供するためのサーバが必要です。サーバにはレンタルサーバやAWSなどのクラウドサービスがあります。ですので、サーバやネットワークの基本的な知識やスキルも必要になってきます。
そして当然ですが、プログラミングを学習したり開発するためのパソコンとネット環境が必要になります。
ウェブプログラミング(Webプログラミング)とは、その名前の通りウェブサービスを開発するのに必要なプログラミングスキルの事です。
まずウェブサービスを開発するためのプログラミングは、フロントエンドとサーバサイドの2つに分ける事ができます。
フロントエンドはブラウザ上の表示部分の事です。一方、サーバサイドはサーバ上のサービス機能の事で、フロントエンド(ユーザ)からのリクエストに対応してレスポンスを返します。
例えば、旅館の予約サイトでユーザが予約するボタンを押した場合、そのリクエストがサーバサイドへ行き、サーバサイドでは予約処理を行い、予約できたかどうかの結果をフロントエンドに返します。この一連の処理を行うのがサーバサイドです。
ですので、サーバサイドを開発するには、サーバサイトのプログラミングスキルはもちろん必須ですが、サーバやネットワークの知識、データを扱うならDB(データベース)も必要になってきます。
サーバサイドの開発で使われるプログラミング言語についてです。サーバサイドのプログラミング言語の選択肢は多くありますが、プログラミング未経験者やほとんど経験のない方は、やはり入門者用の本やネットの情報が多いメジャーな言語を選択する事をお勧めします。
未経験者・入門者によく使われるサーバサイドのプログラミング言語は、PHP、Java、Rubyあたりです。このあたりであれば、入門者・初学者向けの情報も多いです。
他には、Python、Go、Scala、Javascriptなどがあり、これらは実際の仕事の開発現場では選択肢に入ってくると思います。Pythonは最近注目されて人気も上がってきています。
ちなみに、「ハッカーになろう」という優秀なプログラマ・ソフトウェアエンジニアを目指す人のための道標のような有名なページがあるのですが、ここではプログラミング言語を何も知らない場合、Pythonをおすすめしています。ドキュメントが充実していて、初心者にもそこそことっつきやすく、入門言語として最適だという事です。
別ページでPython初心者・入門者向けの本・kindle(電子書籍)を何冊かピックアップして紹介していますので、よければそちらも参考にしてみてください。
Python入門書の紹介・レビュー
自分で習得したいプログラミング言語を決めているのならそれを学習したら良いと思いますが、プログラミング経験はないけどプログラミングを学習するために何かウェブサービスを自分で作ってみたい、ただ言語は特に決めていないという状況ならば、PHP、Java、Ruby、Pythonの中から選択してみてはいかがでしょうか。
Javaについては別ページでも書いていますので、Javaプログラミングを勉強してみようと考えている方は参考にしてみてください。
Javaプログラミングガイド
Javaでウェブ開発を始めるには
Spring Boot2で日記投稿ウェブアプリ開発入門トップページ
続いて、フロントエンドのプログラミングについてです。フロントエンドはブラウザ上の表示操作になりますので、HTML、CSS、Javascriptのスキルが必要です。
サーバサイドで使用するプログラミング言語の選択肢はいくつかありますが、フロントエンドはHTML、CSS、Javascriptが必須です。
また、フロントエンドがブラウザではなくスマホアプリなら、androidアプリはJava・Kotlin・C#(ゲームならUnityで)、iPhoneアプリはSwift・Objective-C・C#(ゲームならUnityで)あたりのプログラミング言語が主な選択肢になると思います。
これまでにウェブサービスを開発するためのに必要なスキルを書きました。フロントエンドとサーバサイドそれぞれのプログラミングや、HTML、CSS、サーバの知識やスキルも必要になります。
IT入門者・未経験者が、ウェブプログラマになるために必要なスキルについては別ページでも説明していますので、そちらも参考にしてみてください。
未経験からウェブサイト、ウェブサービスを作るための入門ガイド
では、プログラミングの未経験者・入門者が、自分でウェブサービスやウェブサイトを作るために、具体的に何から始めたらいいのでしょうか?
作りたいウェブサービスがすでに決まっているいないに関わらず、まったくの未経験ならやはりHTML・CSSのウェブ系の基本的な知識やプログラミングのスキルを身につけるために学習する必要があります。
学習方法は、個人的にはやはり入門者向けの本が良いと思います。入門書の良い所は、サンプルアプリなどの作る題材が決まっている事です。
例えば、ブログのようなウェブサービスを作ってみるとか、カレンダーを作ってみるのように題材が決まっている入門書であれば、何を作るかで迷う必要はなく、本に書かれている事を真似て自分の手でプログラミングをしながら学習できます。
サーバサイドでどのプログラミング言語を学習するかを決めているなら、PHPで作るウェブサービス(ウェブシステム)、Javaで開発するウェブサービスみたいなサンプルアプリを作っていく入門書が最初は良いと思います。
そして、サンプルアプリの題材が決まっていれば、サーバサイトのプログラミングやサーバの簡単な設定方法、フロントエンドのHTML・CSS・Javascriptなどの情報が網羅されていますから、ウェブサービスを作る上で様々な必要スキルの最低限を学ぶ事ができます。
ただ、題材が決まっている入門書の場合、プログラミングの基本や文法、HTMLやサーバの基本や知識がおろそかになっている事があるので、文法や基本について書いてあるプログラミングの入門書をあわせて読むのがお勧めです。
プログラミング初学者は、最初はとにかく人のプログラムコードを読んで真似して作る。そして自分で少しプログラミングコードを変更して試す。これを繰り返しながら学習するのがいいと思います。「ハッカーになろう」でも、プログラミングスキルを上達するコツは、コードを読むこと、そしてコードを書くことと言っています。そして、ウェブサービスやプログラミングの基本がわかってきたら、自分が作りたウェブサービスやウェブサイトを開発すればいいわけです。
また、本以外のネット上の情報を調べる事にも慣れた方が良いと思います。ネット上で調べて学習しながらプログラミングをしていく事は、未経験・入門者だけでなく、経験のあるプログラマでも同じです。
あと、入門書などを読みながらの独学に限界を感じる、一人で勉強を継続する自信がない、もしくは人の力を借りて少しでも速く学習したいのなら、プログラミングスクールの受講を検討するのも良いと思います。
プログラミングスクールを受講するメリットは、単純に自分一人では解らない箇所を解る人に聞けるので挫折せずに学習を継続できる事や、時間を節約できる事だと思います。なんでもそうですが、解らない事は、解る人・経験のある人に聞いて教えてもらうのが、一番早いのです。
特に、現在仕事をしていながら平日夜間や土日にプログラミングの勉強をして、異業種からプログラマに転職する事を目指している人の場合、仕事で疲れた後に独学で勉強するとなると挫折する可能性が高いし、時間もかかります。
そういう方は、解る人のサポートを受けながらプログラミングの勉強ができるプログラミングスクールを受講するメリットは大きいはずです。
(*もちろん、現在フリーターや無職で時間に余裕のある人も、プログラミングスクールを受講するメリットは同じだと思います。)
スッキリわかるサーブレット&JSP入門 第2版 スッキリわかるシリーズ
JSPとサーブレットは、Javaのウェブ開発で基本となる技術です。
この本のレビューについては別ページでしていますので、そちらを参考にしてみてください。
JavaのサーブレットとJSPの入門書の紹介
誰もがあきらめずにすむPHP超入門
PHPのウェブアプリケーション開発の入門書です。
PHPとは何かから始まり、PHPを使った簡単なウェブアプリケーションの開発もサンプルで挙げています。PHPだけじゃなくプログラミング自体が初めて、そしてウェブアプリケーションも全くわからないという方にとって、とりあえずどんな感じか雰囲気がわかる一冊だと思います。
Spring Boot2で日記投稿ウェブアプリ開発入門トップページ
自サイトですが、Spring BootというJavaで人気のフレームワークを使って、シンプルな日記投稿ウェブアプリの開発しながら、入門者・初心者にもわかりやすいように説明しています。DBを使用して、新規投稿、編集、削除、一覧表示という基本的なCRUD機能を備えたウェブアプリです。