プログラミングを始める9ステップ
それでは早速プログラミングの始め方を紹介してゆこう。
1. Webサービスを作るかスマホアプリを作るかを選ぶ
プログラミングで作れるものは、PCにインストールして動作するExcelやWordのようなものから、Webサイト上で動作するもの、スマホで動くもの、ATMなどの業務用システムなど様々だ。
まとめると次のようなイメージになる。
Webアプリ・Webサービス | Webサーバーで動作するアプリで、Webに接続できる環境さえあれば利用することができる。
パソコンで使うときのFacebookやTwitter、Googleなどはすべてこれだ。 WebアプリもWebサービスも呼び方が違うだけで同じもの。 |
デスクトップアプリ | PCで動作するアプリで、Webアプリのように外部に公開せず、PCにログインしたユーザーが利用できる。
Excel・Wordなどがこれにあたる。 |
スマホアプリ | AndroidやiOSで動作するアプリで、スマホなどの携帯端末にインストールすることで利用することができる。
スマホで使っているアプリそのもの。 |
業務用アプリ | ATMや銀行・図書館のシステムなどそれ専用に作られたもの。(定義としては業務で使われるもの全般を指すが、わかりやすいようにこのように分類) |
他にもあるし、またどれを選んでも良さそうなものだが、初心者は必ず「Webアプリ・Webサービス」もしくは「スマホアプリ」を選ぼう。
理由は下記の4点だ。
- 普段使っていて親しみがある
- なんとなくどういう動作をするか想像できる
- 公開して使ってもらいやすい
- 作りやすい
Webアプリとスマホアプリは比較的作りやすくて、しかも他の人にも使ってもらいやすい。また、現在の開発の主流なので、仕事などにも直結しやすい。
まずはどちらを作ってみたいかを考えて、どちらかを選ぼう。
2. パソコンを選ぶ
もちろんだが、パソコンがないとプログラミングを始めることができないので準備する必要がある。
ここで注意しておきたいのが、作りたいアプリのタイプによっては使用するパソコンが限定されてしまうということだ。
例えばiPhone向けのスマホアプリを作りたいのであれば、パソコンはMacを選ばなければいけない。パソコンの選び方について、詳しくは下記の記事で紹介しているので、参考にしてほしい。
もし、あなたが持っているのがiPhoneでiPhoneアプリを作りたいと思っても、持っているパソコンがWindowsだったら諦めよう。
Androidのスマホを買ってもいいし、MacのPCを買ってもいいがそれも大変なので、Webアプリを作るのをオススメする。
3. プログラミング言語を選ぶ
次はプログラミング言語だ。こちらもパソコン選びと同様、アプリのタイプによって限定されるケースがあるので注意してもらいたい。簡単だが以下におすすめしたい言語をいくつか紹介しよう。
Java
世界でも不動の人気を誇るプログラミング言語。言語の難易度はやや高めだが、しっかりしたプログラミングスキルを身につけたいならおすすめだ。
PHP
Webアプリ向け言語で初心者でも理解しやすい。手軽にアプリを作れるというのも魅力のひとつである。
Ruby
日本製のプログラミング言語でユーザーも多い。PHP同様に理解しやすいプログラミングができるのも特徴だ。
Python
海外で人気のプログラミング言語で、ソースコードの書きやすさで定評のある言語だ。
Swift
iPhoneやiPad向けのアプリ開発に必要な言語。
また、それぞれの言語でどのタイプのアプリが作れるのかを以下にまとめておく。
言語 | Webアプリ | スマホ(Android) | スマホ(iOS) |
Java | ○ | ○ | |
PHP | ○ | ||
Ruby | ○ | ||
Python | ○ | ||
Swift | ○ |
プログラミング言語全体について知りたい方は下記の記事がおすすめだ。
4. 何を作りたいかを考える
プログラミングするということは何らかのシステムやアプリを作るということだ。何を作りたいか考えよう。
が、アイディア満載のかっこいいサービスを作ろうなどと思わなくていい。なぜなら初心者がはじめから凄いものなど作れるはずがないからだ。
何を作りたいかをなんとなく考えることが大事だ。完璧でなくていい。理由は次の項目で説明する。
ゼロからアイディアを出す必要はなくて、Webサービスやスマホアプリの中でなんとなくこれ作ってみたいな、というものを選んでおくくらいで十分だ。
例えば、Facebookでもいいし、Twitterでもいい。インスタでも構わないし、Gunocyでもいいだろう。
5. 本を買いに走る
言語と作りたいものがなんとなくイメージ出来たら、本を買いに走ろう。
Web上にもたくさん情報はあるが、本を買ったほうがいい。理由は2つある。
- 人間はお金を払った分しか学べないという不思議な性質がある
- 本は有料だ。必ず誰かが校閲しているし、著者も真剣に書いている
だからこそ本を買うべきだ。小さいお金を節約するよりも、払って自分にプレッシャーをかけたほうが、結果的に効率がいい。
プログラミング本の選び方
教えてくれる人がいるのであれば基礎からしっかりと学べるタイプの本を選ぶことだ。時間はかかるかもしれないが、結果的に力が付く。
教えてくれる人がいなければ、次の基準で選ぼう。
- とにかく簡単そうな本
- 上の項目で、自分が作りたいと思ったアプリに多少でも似ているものが作れる本
この条件で本を買っておこう。
Javaだったら、次の本たちがおすすめだ。
ここまでで準備は完了だ。
本に沿って、プログラミングの勉強に入っていこう。書籍に頼って、そのままプログラミングをとにかくサンプル通りに打っていく。
はじめは、わからなくても構わない。プログラミングコードを打ち切って、動いた瞬間、理解が必ず進んでいく。
プログラミングの始め方 +α 部分
ここからは蛇足的なものだ。ついでに知っておいて頂いた方がいいことをお伝えしておく。
6. エディタを選ぶ
プログラミングを打ち込むツールとなるエディタの準備だ。
フリーテキストエディタでもプログラミングすることは可能だが、初心者向けにはフリーの統合開発環境(IDE)と呼ばれるエディタがいいだろう。
多くのIDEはフリーテキストエディタの機能に加え、次に書くコードの候補を表示してくれるコード補完機能や、必要なファイルをまとめて管理できるプロジェクト管理機能などが備えられているので、プログラミングするにあたって便利なツールだ。
ただ、はじめ使い方覚えるのが大変なので、挫折しそうになったら早々に逃げてメモ帳などを使って構わない。
Eclipse | EclipseはJavaをはじめ多くの言語に対応した人気IDEだ。プラグインと呼ばれる拡張機能をインストールすることで、さまざまな機能を利用できる。 |
Visual Studio | Microsoft社が提供しているIDEで、主にWindows系アプリの開発で広く使用されている。有償であるが、無償のエディションも入手可能だ。 |
Xcode | XcodeはApple社が提供しているIDEで、主にiPhoneやMac向けアプリの開発等で使用されている。 |
Apanta Studio | Apanta StudioはRubyプログラミングで広く使われているIDEで、Eclipseをベースにして開発されている。 |
Android Studio | Androidアプリに特化したIDEで、これまでAndroidアプリは主にEclipseで開発されていたが、今後はAndroid Studioが主流となるだろう。 |
Visual Studio Code | Visual Studio Codeは厳密に言うとIDEではないが、コーディングに特化したIDEにも劣らないテキストエディタだ。言語によって提供される機能は異なるが、コード補完やハイライト表示なども対応している。 |
また、それぞれのIDEが標準対応している言語をまとめておいた。IDEによってはプラグインを追加することで対応できる言語もあるので、興味があれば調べてみよう。なお、Visual Studio Codeはテキストエディタなので全言語対応しているが、言語によってサポートしている機能が異なるので注意してほしい。
IDE | Java | PHP | Ruby | Python | C# | Swift |
Eclipse | ○ | ○ | ○ | |||
Visual Studio | ○ | ○ | ||||
Xcode | ○ | |||||
Aptana Studio | ○ | ○ | ○ | |||
Android Studio | ○ | |||||
Visual Studio Code | ○ | ○ | ○ | ○ | ○ | ○ |
テキストエディタに関しては上記以外でも初心者におすすめのものはたくさんある。下記を参考にして頂きたい。
7. データベースを選ぶ
どんなシステムでもほとんど必ずデータベース(DB)が使用されている。
データベースとはデータの保管庫だ。要はExcelだ。顧客の名簿や電話番号などをExcelで管理できるのは想像できるだろう。
Excelよりも難しいけれど、さらに色々とできるようになったものだと理解しておこう。
データベースはプログラミングをするときに必ず使う。書籍に載っているものを使えばいいが、種類は紹介しておこう。
MySQL | オープンソースDB代表格と言えばMySQLだ。システム規模の大小を問わず、世界で最も使われているDBだと言える。 |
PostgreSQL | PostgreSQLはMySQLと並んで評価されているオープンソースのDBだ。商用DBに匹敵する機能を持ち、近年シェアを広げている。 |
MariaDB | MySQLから派生したDBで、MySQLとは高い互換性を持ち、独自の特徴も兼ね備えた期待のDBである。 |
Oracle | 歴史の古いDBで、大規模システムで使用されるケースが多い。有償版だが、開発用に無償で使えるエディションもある。 |
SQLite | 軽量でコンパクトなDBで、スマホなど容量制限のある端末に適している。Android端末の標準DBとしても採用されている。 |
8. Webサーバー
Webアプリを作りたい場合は、Webサーバーというものの準備が必要だ。作るだけならパソコンだけで構わないのだが、世の中に公開してみたい!といった場合には、Webサーバーが必須になる。Webサーバーとは?については下記で説明している。
もう少し詳しく説明をすると、Webサーバーと呼ばれるものには主として3種類ある。一番上のApacheが使う時には無難だ。
Apache HTTP Server | 世界中で最も使用されているWebサーバーソフトウェアで、規模の大小を問わないWebサーバーの構築が可能。 |
IIS | Windows向けのWebサーバーソフトウェアで、Apache HTTP Serverと並んで使用されるWebサーバーのひとつ。 |
nginx | 「エンジンエックス」と読み、高速処理が可能で大規模Webサイトを中心に人気のあるWebサーバーだ。 |
ただ、あまり深く考える必要はない。
レンタルサーバーを借りてそのまま、そこで動いているものを使えばいい。そういうものがあるんだなとだけ知っておけば十分だ。
9.フレームワークを選ぶ
効率的にプログラミングをしたいのであれば、フレームワークを選ぶといいだろう。
フレームワークとは簡単に言えばアプリの動作に必要な機能をまとめて提供しているもので、プログラムからフレームワークの機能を呼び出しことでさまざまな機能が利用できるのだ。主にWebアプリ開発で使用するフレームワークが中心になるが、以下にSTEP4で紹介した言語の代表的なフレームワークを紹介しておく。
Java | |
Struts | 歴史あるフレームワークで広く利用されているが、最近では利用者が減少傾向にある。 |
Spring | オブジェクト間の依存度を低くした構成が可能で、Web以外のアプリ作成もできる。 |
Play Framework | JavaだけでなくScala言語でも使えるフレームワーク。自動コンパイルが便利。 |
JSF | JSFはJava EEの仕様にも採用されており、Strutsからの移行例も増加している。 |
PHP | |
CakePHP | PHPの代表的なフレームワークで、快適なプログラミングが可能。 |
CodeIgniter | 初心者にも覚えやすく、軽量でスピーディーな開発ができる。 |
Symfony | Ruby on Railsの影響を受けたフレームワーク。Yahoo!での採用例がある。 |
ZendFramework | クラスライブラリが豊富で拡張性が高く、柔軟なシステム設計ができる。 |
Ruby | |
Ruby on Rails | Rubyのフレームワークでは最も有名で、チュートリアルが豊富にそろっている。 |
Sinatra | 小規模Webアプリの特化したフレームワークで、簡潔なコーディングができる。 |
Padrino | Sinatraをベースとして作られたフレームワークで、中~大規模サイト向けだと言える。 |
Python | |
Bottle | 軽量でシンプルなフレームワークで、1ファイルだけで構成されている。 |
Django | 高速さが特徴の完成度の高いフレームワークで、負荷の高いWebアプリにも対応できる。 |
CherryPy | Bottleに負けないくらい軽量なフレームワークで、Webサーバーとしても動作する。 |
最初は簡単に準備できるものから
プログラミングの始め方についてステップバイステップ形式で紹介したが、いかがだっただろうか?
全てのステップを完璧に抑えておく必要はなく、5ステップ目までで、後は「書籍に従って進める」で構わない。
まずは、できる範囲から初めて、エンジニアの入り口までたどり着いてほしい。