ゴルフにはゴルフクラブ、釣りには釣り竿が必要なように、プログラミングにもパソコンやプログラミング言語といった道具が必要です。
道具選びはそれだけでワクワクするものですが、プログラミング学習を始める際には、道具から入るのはあまり得策ではないかもしれません。
プログラミングでできることは膨大で、何をするかによって使う道具も違ってきます。
まず、「プログラミングで何をしたいか」といいうことをはっきり決めれば、道具の選択肢を絞ることができ、迷いが少なくなります。また、学習途中で挫折することを防ぐ効果も期待できます。
プログラミングを学習する前に目標を設定しよう
プログラミング学習の準備としてまず行うべきことは、目標設定です。
ただ「流行ってるから」とか「就職に有利そうだから」というようなぼんやりとした理由ではじめても、中途半端に終わってしまう可能性が高くなります。
しっかりと「何がしたい」「こういうレベルに到達したい」という目標を定めるとことで、筋道を立てた学習計画を組むことができるようになります。どういうツールを用意すればいいのかということも、それによって決まります。
目標を設定して挫折を防ぐ
目標設定のコツは、「できるだけ具体的に定める」ことです。「これがやりたい」という明確な目標があることで、学習の難所に差し掛かっても「目標達成のためにはここを突破しなければならない」という意欲がわきやすくなります。
「実現可能である」ということも、目標設定の大事な要素です。「まったく新しいOSを作って、AndroidとiOSのシェアを奪うんだ!!」というような大風呂敷を広げるのも、若いころにはいいかもしれません。しかしあまりに遠すぎる目標は、筋道が見えずに結局はついえがちです。そういったことは夢として胸に秘めながら、もっと身近な目標からスタートするのが初学のうちは賢明です。
それでは具体的に、どのような目標を設定すればよいのでしょうか。いくつか例を挙げますと、
- スマホアプリ開発
- PC用パッケージソフト開発
- Webサイト構築
- 業務系システム開発
- AI開発
などがあります。開発案件というくくりで見れば、このほかにもたくさんあります。
プログラミングは非常に実用的な技術です。応用範囲は多岐にわたります。ほとんどすべての業種に必要とされているといっても過言ではありません。スマートフォンが広く普及した今となっては、人間のありとあらゆる営みに何らかの形でプログラミングが貢献できると考えても間違いではないでしょう。
選択肢は膨大で、選ぶのは大変です。まずはプログラミングで何ができるのか、よく下調べしてみてください。
目標によって学習する言語が変わる
目標が定まったならば、次にそのために必要なプログラミング言語を選定します。
プログラミング言語にはそれぞれ得意なジャンル不得意なジャンルがあって、何をするかによってよく使われる言語が変わってきます。例えば次のようなものです。
- スマホアプリ開発:Java、Kotlin(Android) Swift(iOS)
- PC用パッケージソフト開発:C、C++、C♯、VB、Jave
- Webサイト構築:HTML&CSS、JavaScript、PHP、Ruby
- 業務系システム開発:C、C++、Java、JavaScript、PHP
- AI開発:Python、R、C
まだまだたくさんありますが、主なものはこんなところです。
言語には難易度の差があります。上に挙げたものの中では、CやC++は難しく、HTML&CSSやJavaScriptは比較的簡単です。
もしどうしても目標が定まらないというのであれば、言語のほうからアプローチする手もあります。初心者には、HTML&CSSやJavaScriptといった簡単な言語から始めるのがおすすめです。
プログラミングを続けていくうちに、複数の言語を習得していくことになるでしょう。言語は互いに似ているので、ひとつ覚えたら次を覚えるのは比較的簡単です。新たな目標を掲げるたびに新たな言語を学んでいけば、やれることはどんどん広がります。
プログラミング学習に必要なもの
目標が定まり、言語を選んだならば、次に道具をそろえていきましょう。やることや言語によっても必要なものは違ってきますが、すべてに共通するのは次の3つです。
- パソコン
- ネット環境
- テキストエディタまたはIDE
それぞれについて説明します。
必要最低限のスペックのパソコン
何はなくともまずはパソコンが必要です。
プログラミングに興味がおありの方ならパソコンをお持ちの方も多いと思いますが、最近は何でもスマホで用が足りてしまうため、パソコンを使わない人も増えているようです。
スマホでもプログラミングを学べるサービスはありますが、本格的にやるならやはりパソコンは手に入れたいところです。スマホはプログラミングには不向きです。
とはいえそれほどハイスペックなパソコンは必要ありません。プログラムのコードを書くこと自体はほとんど負荷のかからないことなので低速でも大丈夫です。また、保存するのはほとんどテキストファイルなので大容量のストレージでなくても構いません。
もし予算に余裕がるのならば、ちょっとハイスペックなマシンを手に入れるのも悪くありません。プログラミングでは、書いては実行する、ということを数限りなく繰り返すので、実行速度が速ければそれだけストレスは減ります。
学習段階ではノートパソコンでも十分なのですが、置き場所が確保できるならデスクトップ型も検討してみてください。見やすい大き目のモニターや手になじむキーボードと組み合わせて快適な環境を築くことができます。
すでにパソコンをお持ちの場合は、おそらく新たに購入する必要はないでしょう。ただし、OSのバージョンがあまりに古い場合は、後述の環境構築の段階で苦労する可能性があります。そこは、目的や使用言語によっても違ってきます。
ネットワーク環境
もはや言うまでもないことですが、ネットにつながずにパソコンを使うことはほとんど有り得ません。プログラミング学習においても、ツールをダウンロードしたりわからないことを調べたりと、ネット環境はなくてはならないものです。
これからパソコンを買おうという人の中には、家庭にネットワーク環境がない人もいるでしょう。そういう場合はぜひともネット回線に契約しましょう。可能なら速い光回線がよいでしょう。ルーターでWi-Fi環境を築けば、スマホの通信量を抑えられるというメリットもあります。
テキストエディタまたは統合開発環境(IDE)
パソコン、ネット環境とハード面がそろったら、次はソフトです。
プログラミングをする上で一番長く付き合う道具、それがテキストエディタまたは統合開発環境(IDE)です。それぞれどういうものか説明します。
テキストエディタは、文字を編集するソフトです。Windowsに最初から入っているメモ帳がその一例です。文章を書いたり、プログラムのコードを書いたりするのに使います。プログラミング専用というわけではなく、あらゆるテキストファイルを扱えます。ひとつインストールすれば、様々な言語の開発に使えます。
統合開発環境(IDE)は、ソフトウエア開発のための様々なツールが一体化したものです。
コードを書くところから、実行、デバッグまで、ひとつでできます。基本的にひとつのIDEはひとつの言語に対応するものなので、別の言語で開発するときはまた別のIDEをインストールすることになります。
どちらも一長一短あります。テキストエディタは軽くて使い方も簡単でよいのですが、実行環境を別途用意する必要があり、ソフト間を行ったり来たりするのがやや面倒です。IDEはひとつで何でもできて非常に便利なのですが、機能が膨大で初心者は圧倒されてしまうかもしれません。
テキストエディタもIDEもたくさんの種類があります。無料のものも有料のものもあります。ネットで手に入りますので、いくつかダウンロードして使ってみるとよいでしょう。
代表例を挙げますと、テキストエディタでは秀丸エディタやAtomなどがポピュラーです。IDEならIntelliJ IDEAやEclipse、Visual Studioなどがメジャーどころです。
IDEに関しては、ものによって使える言語と使えない言語がありますので、目標設定によってはどれを使えばいいかおのずと決まることもあります。
プログラミングではソースコードをはじめとして大量のテキストファイルを扱いますから、ひとつは良いエディタを持っておくことをお勧めします。プログラムの構文を読み取って強調表示してくれたり、正規表現というものを使って柔軟な検索が出来たりと、使えば使うほど手放せなくなります。
こういうことが全部まどろっこしい、はやくプログラミングをしたい、とうずうずしている方は、メモ帳で最初のプログラムを書いてしまうのもアリです。なんというか、「原初の喜び」のようなものが味わえるでしょう。ただし、メモ帳はあまりに機能が少ないので、長く使うものではありません。
プログラミング言語によって異なる環境構築が必要
ここまでは、言語によらず共通の道具立てについて述べてきましたが、ここでは言語によって準備の仕方が異なる部分についてお話しします。実はここからが、なかなかの難所なのです。
環境構築とは
プログラミングにおける環境構築とは、簡単に言えばある言語で書かれたプログラムが動くようにすることです。
プログラムは、書けば動くというものではありません。いろいろお膳立てをしてはじめて、動くようになるのです。そのやり方は、言語によって様々です。ひとつの言語に複数の方法がある場合もあります。事情は複雑です。
ワンクリックであらかたできてしまうこともあれば、かなりの知識と時間を要することもあります。
ここでは、2つの環境構築を例として取り上げます。ちょっと難しい例と、とても簡単な例です。
PHPの環境構築
まず、PHPの環境構築について紹介します。長くなるので詳しいやり方は他の記事に譲ることにして、ここでは概要を記します。
PHPは、主にWebアプリケーション開発に使われている言語です。PHPでWeb開発するためには、最低限、次の2つのソフトウエアが必要です。
- PHP
- Webサーバー(Apache)
PHPというのは、PHP言語で書かれたプログラムを動かすのに必要な「処理系」と呼ばれるソフトです。
Webサーバーというのは、ブラウザに文字や画像などを表示するためのソフトで、中でもApacheというソフトが一番よく使われています。
端的に言えば、PHPとApacheをインストールし、各種設定をすれば、環境構築が完了します。それには大きく分けて2つのやり方があります。
- PHPとApacheを個別にインストールする
- 一括でインストールしてくれるパッケージを使う
PHPとApacheを個別にインストールするのは大変です。それぞれを別々にダウンロード、インストール、設定を行った後に、両者が連携して動くように更なる設定が必要だったりと、手間がかかります。
学習者には、パッケージを使って一括インストールすることをお勧めします。パッケージには、XAMPPやMAMPというものがあります。どちらもWindows ・Mac両対応です。
パッケージを公式サイトからダウンロードし、インストーラーの指示に従ってインストールした後に初期設定を行えば完了です。PHPやApacheだけでなく、データベースなども同時にインストールすることができ、これだけで実用的なWebサイトを構築できる環境が整います。
HTML&CSS・JavaScriptは環境構築が容易なためおすすめ
次に、HTML&CSSとJavaScriptの環境構築について説明します。いずれもWeb開発に欠かせない言語です。
これらで必要なのは二つだけです。
- Webブラウザ
- テキストエディタ
これだけです。すでに完了している、という人も多いでしょう。
ブラウザについては、普段お使いのもので大丈夫です。パソコンに初めから入っているもの(Edgeなど)でもよいですし、FirefoxやChromeを新たにインストールしてもよいです。
さて、これでHTML&CSSとJavaScriptによるWeb開発を学習する準備が整いました。びっくりするほど簡単でしょう?初心者の方にも安心しておすすめできます。
早速ですが、「最初のプログラム」を書いてみましょう。大丈夫、5分もかかりません。(以下では、Windows環境を想定しています)
まず、テキストエディタ(メモ帳でも構いません)を立ち上げます。そして次のように打ち込みます。
<html>
<h1>プログラミングを学ぼう!!</h1>
</html>
注意点としては、<html></html><h1></h1>をすべて半角で打ち込んでください。
打ち込み終わったら、「index.html」と名前を付けて適当な場所に保存してください(エディタはまだ閉じないでください)。そうしたら、その保存した「index.html」ファイルをダブルクリックして開いてみてください(もしどのプログラムで開くか聞いてきたら、お好きなブラウザを選んでください)。
すると、ブラウザが立ち上がって、下のように表示されるはずです。
おめでとうございます!これであなたも、プログラミングの世界に一歩足を踏み入れました。
ひとしきり感動を味わったら、ブラウザを立ち上げたままにして、一旦テキストエディタに戻ってください。そうして、先程打ち込んだ文字のうちの「プログラミングを学ぼう!!」のところを好きな言葉に書き換えてみてください。書き換えたら、上書き保存します。
そうしておいて、またブラウザに戻ります。そしてブラウザの更新ボタンをクリックするか、キーボードのF5ボタンを押すと・・・ブラウザに表示される文字が、今あなたの書いた言葉に変わりました!!すごい!!
いま書いたのが、HTML言語というものです。すべてのWebページの骨格を作るものです。CSSはそれに装飾を施します。そしてJavaScriptを使えばページに複雑な機能を持たせることができます。
ごく簡素な例でしたが、これで十分Web開発を学ぶ準備はできました。
初心者におすすめのプログラミング学習教材
学習環境が整ったならば、あとはもうどう学ぼうが自由です。本を読んでもいいし、ネットで情報を漁るのもいいし、スクールを利用するのもいいでしょう。自分に合ったものを見つけてください。
最近は、オンラインで手軽に学べる優れたプログラミング学習教材が次々に登場しています。ここでは、その中から初心者に特におすすめの2つを紹介します。
Progate
1つ目は、Progateです。
Progateの特徴は、「手軽でありながら実践的」ということです。
イラスト中心のスライドを見て学習しながら、ブラウザ上に実際にコードを打ち込んでいくスタイルです。つまり、インプットだけでなくアウトプットを伴った学習法なのです。
プログラミング学習では、実際に手を動かしてコードを書くことが非常に重要です。Progateは、学習教材と同じブラウザ画面上にコードを書かせることによって、手軽さを損なわずそれを実現しています。しかも同じ画面で、正しく書けたかどうか結果の確認までできるのです。
とにかくコードを書きたい、という人にはとてもお勧めできます。
ドットインストール
2つ目は、ドットインストールです。
ドットインストールは、「どんな隙間時間も逃さず学習できる」というのが特徴です。
レッスン動画を見るのが学習の中心になるのですが、その動画がすべて1本3分以内ととても短いのです。「電車で一駅だけ勉強しよう」ということも可能です。もちろんスマホでも見ることができます。
面白いのは、有料会員になると動画の文字起こしが見られるようになることです。音が聞けない状況にあっても勉強できる、というわけです。隙間時間の活用に徹底的にこだわっています。
たくさんのレッスンがあって、多くのプログラミング言語に対応しています。環境構築のところから丁寧に教えてくれます。
忙しいけれどとにかく始めてみたい、という方にお勧めします。
まとめ
良い準備をすることが、スムーズな、挫折のない学びにつながります。特に目標設定は大事です。具体的で現実的な目標を掲げて、一直線に技術習得を目指しましょう。