さあ、これからプログラミングを勉強しよう!
と思ったのはいいものの、いったい何からはじめればいいんだろう……。
まったくのゼロからプログラミング学習を始めようとしても、何を覚えなくてはならなくて、そのためには何を準備する必要があるのかわかりません。
ここではこれからプログラミングを始める初心者向けに、何から始めたらいいのか、そして学習が必要なものをまとめていきます。
これから学習を進めるにあたっての目次にしてみてください。
目次
ひとつのアプリケーションを作るためには複数のスキルが必要
プログラミングを始めるときは、例えばウェブアプリケーションを作るなら Ruby on Rails や PHP、スマホアプリを作るなら Java や Swift、ゲームソフトを作るなら……といったようにそれぞれ用途によって必要な言語を覚えていく必要があります。
ただ、「ウェブアプリケーションを作るには Ruby on Rails だ!」と言われて いきなりそこから始めても、難しすぎて途中で挫折してしまうと思います。
プログラミングで何かを作ろうと思ったときに、覚えることは実はそれだけではなくて、それに付随する複数のスキルが必要になってきます。
例えば車の運転に例えてみれば、いきなり路上に出て運転しても何もできません。
アクセルやブレーキがどれなのか、道路標識の意味は何なのかを最初に勉強しておく必要があります。
プログラミングではそのアクセルやブレーキ、道路標識といった基礎的なところがたくさんあって、それを勉強してから アプリケーションを作成するための Ruby on Rails などの技術を学ぶとスムーズです。
というわけで、ここからウェブアプリケーションが作れるようになるまでに必要なスキルと、それをどこで使う必要があるのかをまとめていきます。
今回はウェブアプリケーションを作成する場合の例ですが、パソコン向けのソフトやスマホアプリを作る際にも似たような構造なので、ここでイメージを掴んでみてください。
ウェブアプリケーションを作るのに必要なスキル
その1 Linux コマンド
まずは Linux コマンドを覚えて、サーバー上でのコマンド操作に慣れておく必要があります。
これが何に使われるのかというと、コンピュータをコマンドで操作できるようになることです。
例えばファイルを削除するときは、以下のようなコマンド。
rm file.txt
「あれ、自分たちのパソコン上でファイルの作成や削除を行う場合、メニューからファイルの作成を選んで新しいファイルを作成したり、ゴミ箱へドラッグしてファイルを削除できるけど……?」
って思いますよね。
これも実をいうと、裏側の見えないところで同じようにコマンドが実行されているんです。
一般の人がコンピュータを扱う場合、コマンド操作では難しくて馴染みずらいです。
そのため、直感的にわかるようにマウスカーソルを動かしてクリックしたり、メニューから選択してパソコンの操作ができるようになっているわけです。
でもコマンド操作を覚えておくと何がいいかというと、通常では触ることのないシステムファイルを編集したり 実行権限を変えたりと、コンピュータのあらゆる操作ができるようになって、より柔軟なかゆいところに手が届く作業ができるようになります。
また、アプリケーション開発をするうえでは、直感的に操作できるソフトが用意されておらず、コマンドでしか使えない技術もたくさん出てきます。
なのでアプリケーション開発をしていくうえでは、この Linux コマンドを覚えることが必須となります。
その2 データベース(MySQL、PostgreSQL など)
次に必要になるのはデータベース。
これはデータを保存したり取得したりするための、電話帳のようなデータの集まりのことを指します。
例えば服の販売サイトを作るときに、そのサイトでユーザーが会員登録した場合には、ユーザー名や住所などの情報をどこかに保存しておかなければなりません。
また、服が購入されたときには、どの商品の品番、購入日、決済情報などを保存しておく必要があると思います。
このようなデータを効率よく大量に保存したり取得したりするために、データベースを用います。
データベースを取り扱うための技術で代表的なものには MySQL や PostgreSQL があり、このサイトでは MySQL について学んでいきます。
その3 プログラムのバージョン管理(Git など)
プログラムを書き始める前に、バージョン管理について覚えておくと作業を進めやすくなります。
これはプログラムの変更履歴を管理する技術のこと。
プログラミングをしていると、開発中に作業を進めておかしくなったときに2日前の状態に戻したくなったり、急にエラーが出て原因がわからないときに、作業履歴を見返したくなることがあります。
これを実現するのがバージョン管理という技術。
このサイトでは、このバージョン管理するために必要な技術で代表的な Git について学んでいきます。
その4 プログラミング言語(Ruby、PHP、Python、Java など)
いよいよここでプログラミングらしいものが出てきました。
アプリケーションを作るときの核となる、プログラムの文法やお作法について学びます。
例えば代表的なものに Ruby、PHP、Python、Java などがあります。
言語によってそれぞれ得意分野があるので、自分の作りたいものと似たものが、どんな言語で作られているかを調べてそれから覚えると良いと思います。
これを学ぶことで、コンピュータ上で複雑な計算を行ったり、大量のファイルを作成したり、結果を表示したりと、人の手でやるのが面倒な操作をコンピュータが代わりに仕事してくれるようになります。
まだこれだけでソフトやアプリのような形が出来上がるわけではないのですが、実際にアプリケーションを作るとなったときに書くプログラムの書き方を覚えられます。
このサイトでは Ruby について学びます。
その5 フレームワーク(Ruby on Rails、Laravel、CakePHP など)
さきほどのプログラミング言語を使ってアプリケーションを構築することができるのが、フレームワーク。
ウェブアプリケーションでよく使われているのは、Ruby on Rails、Laravel、CakePHP などなど。
これまでに出てきたデータベースやプログラミング言語がアクセルやブレーキ、エンジンなどの部品だとしたら、フレームワークはこれらを組み合わせて ひとつの車を完成させるためのテンプレートのようなもの。
アプリケーションを完成させるためには いろんな技術を組み合わせる必要があるのですが、これを自力でやるのは大変です。
フレームワークを用いることで、どのパーツをどこに組み合わせればいいのかがあらかじめ用意されていて、そのテンプレートに沿って組み上げることで、比較的かんたんにアプリケーションを形にすることができます。
このサイトでは、ウェブアプリケーション開発でよく使われている Ruby on Rails について学んでいきます。
その6 サーバー(AWS や Heroku など)
アプリケーションが完成しただけでは自分以外の人に見られることはありません。
これを世界中の人に見えるようにするためには、サーバーを使って公開する必要があります。
サーバーは、自分たちが使っているパソコンのイメージと同じです。
ただ、自分たちのパソコン上に保存されているデータは、そのパソコンの持ち主しか見ることができません。
一方、サーバーは世界中の人がアクセスできるように公開されています。
サーバーに作ったアプリケーションを置いておくことで、世界中からアクセスできるようになるというわけ。
代表的なものに AWS や Heroku というサービスがありますが、このサイトでは中でも比較的かんたんに使える Heroku について学んでいきます。
ここまでのまとめ
ここで紹介したスキルを図にまとめるとこんな感じ。
どれも使ったことがないとイメージしずらいところもあるかもしれません。
これからプログラミングを学んでいく際にまた見返して、今どこをやっているのかなんとなく覚えておくと理解が早くなると思います。
プログラミングは学ぶ順番を間違えると挫折しやすい
以上、アプリケーションを作るまでに学ぶ必要のある技術を紹介したんですが、意外とたくさんありますね……!
最初の敷居が高そうに見えるんですが、ひとつひとつは一度 慣れてしまえば それほど難しいものではありません。
「スマホアプリを作るなら Java とか Swift だよ〜」
「ウェブサービスを作るなら Rails や Laravel がいいよ〜」
と言われて学んでみても、結局わけがわからず挫折してしまう初心者の方がとても多いです。
これが プログラミングは難しいと言われる大きな要因のひとつだと思います。
一度挫折しても、プログラミング言語を学んでからフレームワークを覚えるとスムーズにいったパターンを見てきたので、学ぶ順番には注意してみてください。
プログラミングは複数の技術が積み重なってできています。
下の基礎的なほうから順番に覚えていきましょう。
このサイトでは、これからプログラミングを始める初心者向けに、ここで紹介したスキルを順番に解説していきます。
これらのことを注意しながら、プログラミングの世界にぜひ足を進めてみてください。
次の記事 「AWS Cloud9」の始め方
前の記事 プログラミングとは?