プログラミングって何の役に立つの? プログラミングの勉強法

2020年からの、プログラミングの義務教育化に伴い、ここ最近子ども向けのプログラミング教材やそのノウハウがあふれています。

さらにそれに飛び火して、大人でもプログラミングを学ぼうといった風潮が目立ちます。そんな中、「プログラミングが必要なのは分かるけれど、何の役に立つの?」なんていう疑問を持つ方も少なくないでしょう。

そこで、ここではプログラミングが何の役に立つのかと、その勉強法を紹介しましょう。

プログラミングってなに?

まずそもそも「プログラミング」とはなんでしょう? これは、「Progoramming」という英語で、「プログラム(Program)を作ること」と訳すことができます。

では、プログラムとはなんでしょう。これは、「Pro-gram」と分解できて「Pro」は「あらかじめ」といった意味(プレなどに近い言葉)、「gram」は「書く」といった意味からできています。

つまり、「あらかじめ(手順などを)書いたもの」がプログラムです。この言葉は一般的な言葉で、「運動会のプログラム」などといえば、運動会で各種目の順番を「あらかじめ書いたもの」のことを指します。

コンピューターの世界では、コンピューターに対する「作業の手順」をあらかじめ書いたものがプログラムとなります。

そのプログラムは、「プログラミング言語」という特殊な言語で記述します。それは、コンピューターが日本語などは理解できないため。現在使われているプログラミング言語には、「Java」や「C#」、「Swift」や「Kotlin」などがあります。

また、コンピューターが直接理解するのではなく、ウェブブラウザーやウェブサーバーなどが解釈して、コンピューターに指示を伝える「JavaScript」や「PHP」などもありますが、これらは正確には「スクリプト言語」などと呼ばれることもあります。

この、プログラミング言語を操って、あらかじめコンピューターへの指示を記述するというのが「プログラミング」であり、それを行う人が「プログラマー(Programmer)」と呼ばれます。

なお、「エンジニア(Engineer)」も同じような意味で使われますが、もう少し範囲としては広く、ハードウェアのことやネットワークのことまで理解しながら、プログラミングも行えるような人のことを指すことが多いです。

プログラミングは何の役に立つのか

それでは本題の、何の役に立つのかを見ていきましょう。

プログラマーとして仕事ができる

プログラマーは特にここ数年、人材が圧倒的に不足している業界です。プログラムはあらゆる分野で活用されていて、PCやスマートフォンの開発やそれらで利用できるサービス・ゲームの開発はもちろん、車の制御や医療分野での活用など、分野を問いませんし、特に近年人工知能(AI)を活用した技術やサービスの台頭で、ますます人材が不足しています。

そんなプログラマーとして就職をすることができるようになります。

起業の時の武器になる

もし、自らで起業をしたいと思ったときも、プログラミングを自分でできる場合は非常に有利になります。Facebookの創業者 マーク・ザッカーバーグ氏や、Microsoftの創業者ビル・ゲイツ氏も天才的なプログラマーです。

プログラマーの場合、自分がやりたいサービス、作りたい製品のしくみを理解することができ、その元を自分自身で開発できてしまうため、サービスを作り上げるスピードが圧倒的に違います。

もしその後、自分の手を離れてプログラマーを雇い入れて開発する場合でも、自分が手を動かせるかどうかで指示のしかたもまったく変わってきます。

DIYができる

DIYとは「日曜大工」のことで、家具を作ったり、家の内装を改良するのを自分で行うことを指します。費用が安く済むのはもちろん、自分の思い通りの形の家具を作れるなどのメリットがあります。

プログラムも同じで、自分でDIY的にプログラムが作れれば、常に自分に合ったソフトを探し回ったり、Excel等を使って苦労してデータ集計をする代わりに、プログラムで一気に行うことができます。

「あらかじめ」力が、他の分野でも役に立つ

プログラミングができると、このように直接的に役に立つことがあるのはもちろんですが、実はこの「あらかじめ」という部分が大きな強みになります。

例えば登山を考えてみましょう。登山をする場合、「あらかじめ」登る山の情報を調べたり、天候を調べて装備を調えてから出発します。そうでなければ、登っている途中で道具を調達したり、引き返すというのは困難だからです。

そのため、登山をする人はそれまでの経験や勘を元に、あらゆる可能性を想定して準備をしていくでしょう。

この「可能性を検討して、あらかじめ準備をする」というのは、プログラミング以外の仕事などでも非常に重要になります。

2020年から、プログラミングが義務教育に取り入れられるのは、実はこの「あらかじめ」力を身につけるための授業と言われています。

プログラミングはどうやって勉強したらよい?

では、そんな魅力的なプログラミングはどうやって勉強したら良いでしょう?

大抵は「入門書をたくさん読む」とか「とにかく作ってみる」などのノウハウが語られますが、ここではあえて別のアプローチから、プログラミング力を伸ばす方法を紹介しましょう。

基礎体力を身につけよう

例えば先の登山の場合、いくら山について詳しくなっても、そもそも足腰が弱ければ登り切ることはできません。
サッカーのルールに詳しいからといって、走り続ける体力がなければゲームに参加できません。

プログラミングも同じで「基礎体力」を身につけることが必要です。それは、コンピューターのしくみやデータ・ネットワークの基礎などを学習すること。

例えば、ウェブの言語を学習中に、図のような「Not found」という画面が表示されたとき、「なぜ表示されたのか」が理解できない方がいます。そして、入門書をもう一度読み直したり、スクールなら講師に質問をしてしまう。

これは実は非常に厳しい状態です。といっても「ググレカス(調べろ)」ということではなく、基礎体力、つまりネットワークに関する知識がまったくない状態で、プログラミングをしようとしています。

「Not found」が表示される状況というのは、ウェブサーバーにファイルが正常にアップロードできていないか、ファイル名が間違えている、ドキュメントルートにファイルがないなどが原因となります。

それは、ウェブサーバーのしくみ、ウェブページのしくみを理解していれば、可能性を考えられる知識です。

また逆に、ここで「ウェブサーバーが起動していないのではないか」と疑うのも知識不足です。なぜなら、「Not found」という反応はウェブサーバーが起動していて、到達できていないと返ってこない反応だからです。

このようなことを知っておかないと、プログラミングをしているときにトラブルに遭っても「なにをどうしたら良いのか分からない」という状況に陥りがちで、学習がまったく前に進みません。

それは、登山で「この先に頂上があるのは分かっているが、足腰がもう立たない」という状態です。先に筋肉トレーニングをしてから、その山に挑むべきでした。

資格の勉強をしよう

では、そんな基礎体力を身につけるにはどうしたらよいでしょう。筆者がおすすめするのは「資格の勉強」です。具体的には「基本情報処理」の試験が良いでしょう。

ここで、誤解しないでいただきたいのが「資格の取得」ではなく、あくまで「学習」です。取得はもちろんしても良いですが、そこを目的に試験対策をしたいわけではなく、あくまできちんと理解しながら学習をすることです。

Twitter等を見ていると、とかく IT系の資格について「役に立たない」などと馬鹿にする風潮があります。実際、IT系の資格は弁護士や医師などと違って、取得しなくても職業に就けますし、持っていたからと就職に有利になるなどもあまりありません。

そのため、筆者も「取得」はそれほど重要とは思いません。あくまで学習が目的です。
ただ、筆者の場合も、高校生の時にこの前身である「情報処理技術者試験第2種」を取得しています。それによって、プログラミングの理解がグッと深まりました。

資格の勉強というと、堅苦しく感じますし、そんなことよりいろいろなプログラムを作ってみたいと思うかも知れませんが、プログラミングの学習と同時並行で、このような基本となる知識を身につけていってみてください。

きっと非常に大きな武器になることでしょう。