プログラミングを始めようと書籍などを購入したは良いけれど、読んでもさっぱりわからないなんてお悩みをお持ちの方も多いのではないでしょうか。
本記事では、これからプログラミングを始めようという人・以前触れたことはあるけれど挫折してしまった人に向けて、プログラミング入門時に押さえておきたい情報をご紹介していきます。
- プログラミング言語はメジャーなものを選ぼう
- 未経験スタートの現役プログラマーはたくさんいる
- プログラミングをちょっと試したいだけならWeb上のサービスを活用しよう
- 基礎となる文法を学習したらフレームワークを使ったWebサイト構築に挑戦しよう
- 最初はプログラミング教室などを活用するのがおすすめ
プログラミングとは?入門前にわく疑問
プログラミングをやったことがない人にとって「中の世界」ってどんなものか分からないですよね。そんな人のために、普通に解説するよりもQA方式で進めます。
プログラミング入門前その1「プログラミングとは?」
プログラムを作ることをプログラミング(Programのing形)という
そもそもコンピュータは指示がないと動きません。パソコンを立ち上げたところで、デスクトップが表示されてそのままの状態が続きます。まさしくこの状態が「指示がない状態」です。パソコンは、Excelを立ち上げたり、Webブラウザを立ち上げないとパソコン単独では何もしません。その指示を作ることを「プログラミング」というのです。
【関連記事】
▶プログラミングとは何か?初心者にもわかりやすく説明しました!
プログラミング入門前その2「言語ってなに?」
その名のとおり、言葉です。プログラムはさまざまな種類があります
ほかの人に何かをお願いするとき、お願いを表現する言語は何とおりもあります。日本語、英語、中国語などなどがありますよね。実は、人間がコンピュータにお願いする(つまりプログラムを作る)ときに、いくつもの言語があるのです。言語の一例が「Ruby」「Java」「PHP」などです。
もうすでに説明に出てきましたが、プログラムはほかの人にお願いするときの言葉になぞらえてプログラミング言語(単に言語)といいます。
プログラミング入門前その3「どんな言語がいいの?」
目的によりますが、基本的にメジャーなものでOKです
これはとてもむずかしい問題です。特定の言語への思い入れが強すぎるプログラマーたちが、愛する言語を推して激しいバトルをすることさえあります。
ちなみに開発現場では言語愛ではなく、使うシーンと言語特性から選択することが多いからです。例えばWebシステムの開発で、かつササッと開発したいのでRuby、機械への組込用プログラムを作るのでC言語、という感じです。
ではプログラミング入門時はどの言語を選べばよいのでしょうか。
書籍やネットで情報をゲットしやすい言語であれば、どれを選んでも大きな問題はないでしょう。強いて言えば、プログラミング入門時にみんなが選ぶメジャーどころのJavaやRuby、PHPを選択すれば大丈夫です。
就職や転職を目指したいという人は求人数の多いJava、自分で何かビジネスを立ち上げるのでサイトが欲しいという人は手軽に開発できるRubyかPHP、という考え方もあります。
プログラミング入門前その4「むずかしい?」
残念ながら「はい、そうです」と言わざるを得ません。
コンピュータに対して、1から10まで足した合計を計算させたいとします。そんなときはプログラマは「1から10まで足してください」と文章で書くわけではなく「for(int=0;i<=10;i++) …」などと書きます。つまり1から10を足したいという仕様を、コンピュータが分かるように変換してプログラムを書かなくてはなくてはなりません。ここがむずかしいのです。
さらに、プログラムAがプログラムBを呼び、さらにBが・・・というのがプログラムです。こういった複雑な構造を誰が見ても分かるように、さらに再利用性も考えてプログラミングするという論理的な能力も必要になります。
でも大丈夫!未経験スタートの現役プログラマは多数います
暗い話ばかり書いてきましたが、プログラミングは一子相伝の秘伝の技というわけではありません。未経験からプログラミング入門し、見事にプログラマデビューした人はたくさんいます。
プログラマになりたい!その熱い思いがあれば大丈夫です。
実践!プログラミング入門(環境不要)
では今度は「ちょっとだけプログラミング」を試したいという方のために、その方法をお教えしましょう。
環境構築はプロでもむずかしい
通常、PCはプログラミングができる状態になっていません。新たにプログラムを動かすための「道具」をPCに入れなくてはなりません。それが環境構築です。この環境構築がプログラミング入門者の最大の難関といえるでしょう。
最近はだいぶマシになってきたとはいえ、環境構築は現役プログラマでもむずかしいものです。
ちょっと試すだけならブラウザだけで可能
とにかくちょっとだけプログラムを動かしたい!そういう方にはこちらをお勧めします。
このサイトは、なんとプログラムをそのままコピペするだけで実行できます。PCの環境構築は一切不要です。ためしに、左上の言語選択ドロップダウンで「Java」を選択し、以下のプログラムを貼り付けて実行してください。
public class Main { public static void main(String[] args) { System.out.println("Hello, Potepan!"); } }
これで Hello, Potepan! と表示されればOKです。Javaが実行できました。
複雑なものはPaizaでは対応できませんが、簡単なものならこのサイトで十分です。ぜひお試しください!
物足りなくなったら自分のPCに環境構築
Paiza.ioでは物足りない!となったら、いよいよ自分のPCに環境を構築します。
「環境」とは何でしょうか?
プログラムの動作をとりまく環境を意味します。
一般的に環境とは日当たり良好とか駅チカといったことを指しますが、プログラミングではそうではありません。以下を一括して環境といいます。
1. OS(WinまたはMac)
2. OSのバージョン
3. すでにインストールされているソフトウェア
4. プログラムを動作させるためのソフトウェア
プログラミング環境構築とは4を意味します。言語やフレームワークによってまったく異なります。各個人ごとにPCの環境は千差万別で、ある人でうまくいったとしても別の人はうまくいかないということが多々あります。これがプログラミング入門における最大の難関といわれるゆえんです。
「自分のPCに環境構築する方法をもっと知りたい」といった方は、「ポテパンキャンプ」の無料カウンセリングも試してみてください。
プログラミング入門の「その後」
環境構築がうまくいき、書籍を1冊学習し終えたとします。そのあとはどうすればよいのでしょうか?
言語だけ学んでも実はできることは限定的
通常のWebサイトを作ることを考えてみましょう。
Webサイトの技術的な構成要素すべての中で、プログラミング言語というのは実はそのうちの1つでしかありません。言語のほかにHTMLやJavaScript、DBやサーバ技術というものが必要になってきます。ということは、残念ながら言語だけを学んでも、できることは限定的と言わざるを得ません。
まずはWebから!プログラミング入門の「その後」
まずはWebサイトの構築からはじめてはいかがでしょうか?
習得した言語で構築すべてをまかなうことはできません。ユーザからのリクエストを受け付けて、適切な処理を実行し、そしてHTMLという目に見える形でユーザへ返す、この一連の流れをすべてイチから開発するということは普通しません。
なぜかというと「フレームワーク」を使うからです。
RubyならRuby on Rails、PHPならLaravel、JavaならSpringというように、どの言語にも最初からパーツを寄せ集めたフレームワークというものが存在しています。通常、開発現場では何らかのフレームワークが使われます。
よって、プログラミング入門の次の一歩は、フレームワークを使ったWebサイト構築にチャレンジしましょう。
オススメ!プログラミング教室で学習する方法
プログラミング入門後は教室で仲間と一緒にに
プログラミング入門直後は、孤独な学習になりがちです。これって、意外とツラいものです。学習の目標や、学ぶ楽しみや苦しみを共有できる仲間がいるというのはとても心強いものです。
そこでオススメしたいのは「プログラミング教室での学習」です。
プログラミング教室に集うのは同じ目的をもつ仲間です。お互いに励ましながら、分からないことを教えあいながら学習するのはとても楽しいものです。
【関連記事】
▶プログラミング教室で学ぶ!自分にピッタリ合う教室の選び方
最初は専門家にたよる方がいい
プログラミング教室をオススメする理由はもう一つあります。
プログラミング学習で、つまづくのはだいたい「最初」です。環境構築もそうですし、全角スペースが1つ入っているだけでプログラムは動きません。ですが、プログラミング入門直後はそれらをなかなか乗り越えられません。
よって、最初は専門家にたすけてもらいながらスタートを切ることをおすすめします。
「どこのプログラミングスクールが良いんだろう」とお悩みの方は、「ポテパンキャンプ」の無料カウンセリングも試してみてください。
まとめ
本記事では、プログラミング入門について解説しました。
みなさんも本記事を参考に、ぜひプログラミングへの扉をたたいてみてください。
現役プログラマたちは「私はRuby以外の言語を知りません」といった具合に言語という言葉を使います。