「プログラミングを始めたい、プログラミングスキルを身に付けたい人へ」というえらそうなタイトルですいません。でもまぁ、一般論・そして今までの自分の経験を振り返ってみてこの手の話題について自分なりの意見を書きたいと思います。

プログラミングに興味のある人・プログラミングを勉強し始めたばかりの初心者の方はよく「どうしたらプログラミング技術を磨けるのか?」「プログラミングスキルを身に付けられるのか?」という疑問を持つと思います。

この疑問はプログラミング経験がほとんどない人だけじゃなくて、一年くらいの経験がある人でも感じると思います。自分がそうでしたからw

で、よくある答えで申し訳ないですが、何か目的がある事がやはり一番だと思います。「こんなアプリが作りたい」「こんなウェブサイトが作りたい」

仕事で迫られて勉強するということもありますが、これでは必要最低限な狭いスキルしか身につきません。とっても興味のある物作り(設計・プログラミング・・・)ならいいけど、まぁそんな仕事を任される運のいい人などそうそういないでしょう。人に言われてやる仕事より、自分で作るものを考えて自分でやる仕事の方が前者より何百倍も楽しいでしょうし。

ということで、プログラミングスキルを身に付けたいからプログラミングを勉強するっていう考えはまぁダメでしょう、と僕は考えています。
(僕は空いた時間にある一定の期間(2日~1週間くらい)を決めて、この言語を勉強しよう、このアルゴリズムを勉強しようって感じでやっています。これはこれで新鮮で楽しいですけど・・・ずっとこういった勉強は続けられないです。こういった事が楽しいって人は大学院などで勉強する研究者に向いているんでしょうね・・・)

話を戻しますが、「こんなアプリ・ウェブサイトが作りたい!」という思いが一番と書きましたが、その理想が高すぎでもダメですね・・・やり始めたのは良いけど、わけわからん。つまんね。自分には無理という考えでイヤになります。理想と現実のギャップがありすぎると全く手が進まなくなりますから。

これら全てを纏めると、長期間モチベーションが保てるような開発が一番ってことになるのかな?

じゃあ一体何を作り始めたらいいのか?理想が高いのはダメって言うけど、そもそもどんな物が簡単でどんな物が難しいのか?なんて事すら解らないし・・・・って考える方へ。

個人的な意見ですが、特に目的の見つからないプログラミング初心者が簡単な勉強をして、モチベーションを保ちながらできる開発というのはウェブサービス(Web API)を使ったウェブサイト・HP作成のような気がします。

Web APIというのはウェブサイト開発者のために色々なサイトがネット経由で情報を提供してくれるサービスのことです。サイト開発者にとっては高機能なコンテンツや情報を簡単に自分のサイトに掲載できるようになります。
ウェブサービス wiki

ウェブサービスを提供してくれるサイトは画像・動画・旅行・食べ物・自動車、口コミサイト・・・などがあり、それらの様々な商品情報やネット情報(口コミ・画像・動画)が自分のサイトで使えるようになります。

また、これらのウェブサービスを使うには、HTML・CSS・javascript以外にも、簡単なプログラミング言語(スクリプト言語)のスキルが必要になります。これらのプログラミング言語にはphp,ruby,perl,pythonなどが該当します。

さらに、例えばヤフーオークションのウェブサービスを使ったとして、自分のサイト経由でオークションの商品が落札されたとしたら、落札料金の数%を報酬としてもらえるというアフィリエイト的なことも出来ます。自分のプログラミング技術を生かしてサイトを作成しておまけに副収入みたいにお金も稼げるなんて少しテンションがあがりますよ。

それに当たり前のことですが、自分のサイトが誰かの役に立つというのは単純にうれしいはずです。

以上の理由から、高いモチベーションは保てるだろうし、また、プログラミングスキルに関しても、ウェブサービスを使ったプログラミングは難しくなく初心者向けで、はっきり言って初めてプログラミングをする人にはちょうどいい勉強になると思います。

最後にプログラミングが初めての方はどのプログラミング言語を選択したらいいかについて一言。上でウェブサービスにはphp,ruby,perl,pythonなどのプログラミング言語を使うといいましたが、これらの言語はウェブサービスに関わらず、初めて選択するプログラミング言語としても最適だと思います。

これらの言語は無料で簡単に始められますので、ウェブサービス以外にも使い捨てのスクリプトなどちょっとした実用的な物が作れるのできっと役に立つはずです。

java,C#,C,C++なども悪いとは思いますが、自分はこういった言語は必要に迫られたときに勉強し始めればいいんじゃないのかなぁ・・・って気がします。例えば「仕事の新規案件でC#を使うことになったからC#を勉強しよう」「androidのアプリが作りたい。androidのアプリはjavaで作るみたいだからjavaを勉強しよう」「あるオープンソースのソフトウェアの中身をみてみたらC/C++で書かれてた。よし、じゃあC++でも勉強するか」・・・目的がしっかりしていれば、こういった考えからプログラミングを習得することも出来ると思います。

では、php,ruby,perl,pythonのうちどれがいいのか?最近の勢い、日本語の情報の多さから言うと、ウェブサービスのためのプログラミング言語ならphp,rubyが一歩抜け出ているような気がします、それに続いてperl,そしてちょっと離れてpythonかな・・・

レンタルサーバでもphp,perl,rubyなどはほとんど使えるはずです。

個人的にはpython好きなんですけどね。個人的に順位をつけるとしたらperl>=python>>ruby>>phpです。でも、ウェブサイトではphpもよく使いますよ。

参考サイト
初心者のためのヤフーオークションWeb API(ウェブサービス)の使い方入門
日本で公開されているWeb API一覧

IT開発者35歳限界説?35歳以上が7割越!

・php,ruby,perl入門・初心者のためのおすすめ本の紹介

やさしいPHP やさしいシリーズ/高橋 麻奈
¥2,730
Amazon.co.jp

たのしいRuby 第2版 Rubyではじめる気軽なプログラミング/高橋 征義
¥2,730
Amazon.co.jp

初めてのPerl/ランダル・L. シュワルツ
¥3,780
Amazon.co.jp