ポジティブ心理学研究所

幸福度(EQ)アップの研究所です。ポジティブ心理学に出会う前の古い記事はネガティブなので注意。

これからプログラミングを始める人へ、私がプログラミングを始める時にしたこと

dcii_10
dcii_10 / oskay

これからプログラミングを始めようと思ってるけど、なにから始めたらいいからわからんという人へ向けて書きます。

私がプログラミングを学び始めたきっかけ

まず、私はプログラミングというものは自分とは無縁のものだと思っていました。
なにやら難しそうだし、数学も苦手で赤点ばっかだったのできっと自分には理解のできない縁のない存在だろうと思い込んでいました。

そんな私がプログラミングを学び始めたきっかけとなったのは、3DCGを勉強し始めたからです。

一見関連がなさそうに思えますが、前々から3DCGをやりたいなあと思っていたけど、マシンのスペックが非力*1で到底触れることすらできていませんでした。

思わぬ臨時収入で

それが、拙作の同人ゲームである「ヨメサンクエスト」がDLsiteおよびDMMでヒットしたことによりある程度まとまったお金ができたので思い切って3DCG用のハイスペックマシンを調達しました。

はじめての言語はPythonでした

こうして、満を持してやっとこ3DCGに触れられる環境ができたのですが、3DCGを学んでいくうちにそのソフトウェアに対して高度な操作ができるスクリプト言語「Python」の存在を知ります。

なぜかここで私は、たぶんPythonを扱えないと、アドバンスドなことはできないだろう、これを習得しなきゃ駄目だと思い込みます。
ここから3DCGの勉強からは一度遠ざかってプログラミング言語の勉強が始まることになりました。

入門におすすめな言語

これは、プログラムでなにをしたいかという目的によって変わってくると思いますが、一番入門の障壁が低いという意味でいえば、やはりPythonです。

とてもシンプルで学びやすい言語 Python

Pythonのなにがいいかというと、構文が他の言語よりも柔軟ではなく、誰が描いても見やすく読みやすいように出来上がります。インデント(字下げ)によって成るブロックで構文が強制されるので、柔軟性が下がる分可読性の高い、学びやすい言語となっています。

そんなシンプルな構文を持つPythonですが、決して初心者専用とかそういったことではなく、充実のライブラリがあり、やりたいと思ったことには大抵優秀なライブラリがあるので様々な分野で使われています。

Webだって科学的な分野だってPythonで行けます。ですが、実行速度が遅いのでゲーム等のリアルタイムな処理には不向きといえます。ゲームを作成したい人からの選択肢からは外してもいいかもしれません。

ゲームでもツールでももってこいなFlash用の言語 ActionScript 3

これは一般的には、初心者にオススメできないということになっているらしいのですが、私は十分オススメできると思います。

ActionScriptはFlashにて、オブジェクトに対してインタラクティブな操作を加えるために採用されている言語です。 3になってからは型と呼ばれる、開発をする上でエラーを減らすための仕組みもしっかりして、オブジェクト指向と呼ばれる仕組みを学ぶためにも最適ではないかと思います。

ActionScriptは前述のPythonよりも実行速度が早いため、リアルタイムな処理を行うゲームも作れますし、AIRというデスクトップ向けアプリを作るためのお助けライブラリもしっかりしていて、ゲームを作るにも使えるし、なにかしらの作業の効率化を図るアプリケーションを作る上でも使えます。

なんといっても強みはマルチプラットフォームということです。

一度作ったゲームやアプリはMacでもWindowsでも使えるので、特定のOSじゃないと動かないという対象ユーザーを狭めるようなことがありません。

Web開発には欠かせない JavaScript

JavaScriptはブラウザでwebページを見たことがある人なら誰でも見たことがる、もはや一番身近な言語と言っていいでしょう。

JavaScript(以下JS)は構文が柔軟すぎて、難解な書き方も多く、はっきり言って初心者向けとはいえないのですが、JSはどのブラウザでも標準でサポートされていて一番開発環境を整えるが楽で、ブラウザさえあればすぐに実行して試すことができます。

いまやインターネット全盛の時代で、この技術に触れないことはないのですから、JSを覚えたら色々なWebサイトを作る上で必ず役に立ちます。

構文は柔軟すぎて難解ですが、既にHTMLやCSSを十分に習得していて、リッチなWebサイト作りたいんだよ!という方には一番実用性があり、役立つ場面も広いおすすめの言語です。
反面、JSを十分に使いこなすためにはJSの前にまずHTMLやCSSのことについて知っておかなくては行けないのでそちらを知らない方には敷居が高いかもしれません。

どうやって勉強すればいいか

さて、いろいろな言語の特性や得意分野を知り、自分にとって必要な言語を見極めて、勉強する対象の言語を決めたら次は実際に学んでいきます。

書籍

学ぶための最有力候補としては、やはり入門用の本がいいでしょう。 私の場合はPythonだったので、次の本で覚えましたが、たぶん定番としては『 みんなのPython 第3版』のほうがオススメだと思います。

Pythonスタートブック

Pythonスタートブック

JavaScriptは以下の本で覚えました。こちらはプログラミング言語を触れたことがない人にも非常にわかりやすく説明されていていい本でした。

Webサイト制作者のための JavaScript入門講座

Webサイト制作者のための JavaScript入門講座

ActionScriptは以下の本で覚えました。かなり実戦的に学ぶことができましたが、しかし誤植が結構多かったのが瑕です。

標準ActionScript 3.0入門

標準ActionScript 3.0入門

それぞれの本の詳細については、ブクログにて詳細なレビューを書いているので参考にしてください。

インターネット

まとまった情報を得るには書籍が一番ですが、学ぶお金が惜しいという方には、インターネットでも十分覚えられそうな気がします。

Google

Google Developer Day 2007
Google Developer Day 2007 / meneame comunicacions, sl

やはりGoogle先生に勝る資料はありません。Googleで言語の名前と入門というキーワードをつけて検索するだけでもかなりの情報が出てきます。それぞれの言語のオススメサイトを紹介します。

ActionScriptについて学ぶなら「ActionScript入門Wiki - トップページ」がオススメです。
とても詳細で丁寧な説明と、実際のコードが書かれていて学習に最適です。私は先ほど挙げた本とこちらで基本を覚えました。

Pythonについて学ぶなら「Python入門」がオススメです。それとやはり、公式のドキュメントがかなり親切で詳らかなので、そちらも参照しましょう。

JavaScriptについて学ぶなら「初心者のためのJavaScript入門 - @IT」がオススメです。
JSってなに?という始めの一歩から丁寧に解説してくれています。

ドットインストール

ドットインストールは、ビデオでプログラミング言語のことや開発ツールについて学べるビデオ学習サイトです。
私はかなりこのサイトにはお世話になっています。詳細なことは割愛されていることが多いですが、まずその言語やツールについての大まかな概念をつかむための第一歩として非常に有力です。

ドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト

オススメした3つのうち2つの言語についての学習ビデオもあるのでリンクを貼っておきます。

ActionScriptについてはありませんでした。

まとめ

私は数学は赤点でしたし、理系でしたが理系科目はからっきし駄目でした。

アクションゲームや3DCG等の分野でもない場合は数学を使う場面もほとんどありませんし、大抵はライブラリでどうにかなります。

理系でなくてもプログラミングは(それなりに)できるのです。
今まで無縁と思っていたあなたも始めようと思えば案外できるものです。この機会にどうでしょうか。

プログラミングができると色々な物事の効率化が図れてきっと楽しいでげすよ。

おまけ

私の制作物です。

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

*1:CPUがpen4でグラボなし