- そもそも、プログラミングって何なんだろう?
- 便利そうとは聞くけど、仕組みや意味が分からない…
- なんか難しそうだし、自分にはあまり関係ない気がする
こういった疑問にお答えします。
僕は現役のフリーランスエンジニアで、業界歴は5年です。元々は製造業で10年以上働いてから転職したので、それまでプログラミングは未経験でした。
こういった背景から、「そもそも、プログラミングって何なのか?」を初心者にも分かりやすく専門用語を使わずに解説します。この記事を読むことで、「なんか難しそう…」というプログラミングに対するハードルも一気に下がるはず。
僕自身、こうした基本的な考え方を知ってからプログラミング学習を始めたことで、内容を頭の中でイメージしやすくなり、学習がだいぶ楽になりました。これからプログラミングを学ぼうとする方にとっても、理解を深める助けになると思います。
そもそもプログラミングって何?
「プログラミング言語」と呼ばれるだけあって、日本語や英語と同じく「言葉」の一種です。つまり、プログラミングとは機械(コンピューター)と会話するための言語というわけです。
プログラミング言語にも「JavaScript、PHP、Ruby」などたくさんの種類がありますが、それぞれ作るものによって言語を使い分けます。例えば、Webサイトを作るならJavaScriptやPHP、スマホアプリを作るならSwiftやKotlinなど。
たくさんあって大変そうに感じるかもしれませんが、実は1つの言語を覚えると他の言語も覚えやすくなります。なぜなら、プログラミング言語はどれも基本的な考え方が似ているからです。
プログラミング言語を1つ覚えれば他も覚えやすい理由
例えば、あなたが、言葉を知らない国のレストランに行ったとき、何を話せばいいでしょうか?
おそらく最低限、次の5つのフレーズを現地の言葉で話せたら、注文や会計などの基本的なコミュニケーションは取れますよね。
- こんにちは
- すみません
- これをください
- お会計してください
- ありがとう
ではなぜそれが分かるのか? それは、あなたが日本語を理解しているから、「日本語でいうところの、このフレーズがあれば、レストランでの基本的なやり取りは問題ない」と予想できるわけです。
同じように、Rubyというプログラミング言語が初めての人でも、JavaScriptというプログラミング言語を知っている人なら、やりたいことに対してどういったことを書けばいいか予想がつきます。
つまり、プログラミング言語を知らない人は、機械の世界では「日本語(母国語)が話せない、赤ちゃんのような状態」なので、難しく感じるのは当然です。
プログラミングの特徴やメリット
プログラミングを難しく感じるのは、「人間の感覚」と「機械の感覚」の違いが理解できていないからです。機械の特徴やメリットは、人間と比較すると分かりやすいです。
| 項目 | 人間 | 機械 |
|---|---|---|
| 特徴 | 融通がきく | 融通がきかない |
| ミスの発生率 | ミスをすることがある | ミスしない |
| 疲労度 | 疲れる | 疲れない |
| 記憶力 | 忘れることがある | 一度覚えたら忘れない |
| スピード | 遅い | 早い |
機械は、唯一「融通がきかない」という点で負けています。
例えば、人間であれば、「コップの水を飲む」なんて意識せずにできますが、これをプログラミングで機械にさせるには、次のような細かい指示をしておかないといけません。
- コップを持つ
- コップを口元に運ぶ
- 口を開ける
- コップを傾けて水を飲む
- 口を閉じる
- コップを元の位置に戻す
- コップを置く
もっと言うと、「コップのどの部分を持つのか」「強すぎず弱すぎない力加減」なども指定しないといけません。機械は、人間が普段「なんとなく」でやっていることでも、具体的な指示が無いとできないのです。
ただ、一見めんどくさい特徴の機械は、他の多くの面で人間より優れているので、製造業や金融業、医療業界など、あらゆる分野で活用されています。
プログラミングは行動を分解するのがコツ
これからプログラミング学習を始める人は、こういった「行動を分解する」という考え方を意識すると、理解しやすくなります。
例えば、「ボタンを押したら文字を表示させる」という動作をプログラムで実現したい場合、次のように分解します。
- ボタンが押されたことを検知する
- 表示する文字を用意する
- 表示する場所を決める
- 画面に文字を表示する
なお、順番は必ずこの通りでなくても良く、例えば、「2.表示する文字を用意する」を最初にやっても問題なし。ここが、プログラミングの面白いところですね。
大事なのは、「やりたいことを細かく分解して、プログラムで実現する」という考え方です。
プログラムは、パソコンとサーバーの中で動いている
プログラムは、主に「パソコン・スマホ」と、「サーバー」の中にあります。
まず、僕たちが普段使っているパソコンやスマホの中にある、ブラウザ(Chrome や Safari)、LINE、カメラアプリなども、すべてプログラムで動いています。
一方で、パソコンやスマホから送られてきたデータを受け取り、処理して返す「サーバー」にもプログラムがあります。
サーバーと聞くと、「なんかよく分からない特別な機械」のようなイメージを持つ人も多いですが、簡単に言うと、サーバとは、「24時間電源を切らず、ずっとインターネットに繋がっているパソコン」です。

普段使っているパソコンは、使わないときは電源を切るか、スリープ状態にしますよね。しかしサーバーは、いつアクセスされるか分からないため、24時間ずっと起動しています。
つまり、「サーバー = 難しい存在」ではなく、「役割が違うだけのパソコン」のことです。
これを知っておくだけで、プログラミング学習時はもちろん、何気ない日常生活で「サーバー」という言葉を聞いたとき、頭の中でイメージしやすくなって理解がスムーズになりますよ。
プログラミングを学ぶメリットは、ITの周辺知識が増えること
プログラミングは本気でエンジニアになりたい人だけでなく、ITの周辺知識が身につくので、普段の生活や仕事にも役立つことが多いです。
パソコンに慣れて、ITへの抵抗が一気になくなる
プログラミングを学ぶと、自然とパソコンを使う時間が増えるので、タイピングが速くなったり、ファイル操作や設定画面を触ることに抵抗がなくなります。
他にも、プログラミングのエラーは英語なので、翻訳ツールを使って調べる癖がつくので、英語に対する抵抗もかなり減ります。やることは、「英語を翻訳するだけ」なんですが、英語に苦手意識のある人にとっては、それが意外としんどいですので。
インターネット自体はスマホでも使えますが、単純に画面が小さくて、できることもパソコンと比べて限られています。パソコンは画面を分けて一度に多くの情報を比較したり、細かい操作ができるので、より早く、正確な情報収集がしやすいです。
こんな感じでパソコンに慣れることで、自然とITリテラシー(ITに関する知識やスキル)が底上げされます。
仕事や作業を効率化する「便利ツール」を使いこなせるようになる
ITの知識が増えると、日常の作業をラクにする便利ツールや機能を自然と意識するようになります。
例えば、次のようなものです。
- Excelの関数を使って、手作業を減らす
- ショートカットキーを覚えて、操作スピードを上げる
- 文字を書くときに、自分に合ったエディタ(テキスト入力ツール)を選ぶ
プログラミングを学ぶと、「どうすれば楽できるか」「無駄な作業を減らせないか」と考えるクセがつきます。その結果、エンジニア以外の仕事でも、効率良く作業を進めることができるようになります。
フィッシング詐欺などを「言われた通り」でなく、理解して対策できる
プログラミングの考え方が少し分かるだけで、ITトラブルや詐欺に対する見え方も変わります。
例えば、フィッシング詐欺を例にします。
- どうやって偽メールや偽サイトが作られるのか
- どこで、どのタイミングで情報を盗まれるのか
- 何を確認しておけば危険を避けられるのか
といった仕組みを、論理的に理解できるようになります。
なお、フィッシング対策としては、「怪しいメールのURLはクリックしない」「個人情報を入力しない」などが有名で、その通りです。しかし、なぜそれが危険なのか?を理解しているのと、ただ言われるまま行動するのとでは、全然違いますし、新たな詐欺手法が出てきたとしても対応しやすいです。
このようなIT系の詐欺に対して、自分で考えて判断し、対策できるようになるのは大きなメリットですね。
「プログラミングは難しい」と思い込んでいるだけの人は少なくない
プログラミングと聞くと、「難しそう」「自分には向いていなさそう」と感じる人は少なくありません。実際、これから学ぼうか迷っている人の多くが、やる前からハードルを高く感じてしまっていると思います。
正直、僕自身もまったく同じでした。プログラミングを初めて触ったのは、大学の授業でしたが、当時は全然授業に追いつけなくて「自分にはプログラミングは向いていないな」と実感しました。なので、卒業から約14年間、まったくプログラミングに関わらない生活を送っていました。
ただ、ふとしたきっかけでWeb系のプログラミング言語を知る機会があり、「ちょっと勉強してみるか」と、ドットインストールの動画を見始めると意外と理解できるし楽しいし、仕事の昼休憩中にもずっと見ているくらいでした。それから本格的に学習を始めて、今に至ります。
僕がプログラミングを難しいと思い込んだ理由
今振り返ると、学生時代は、BASICと呼ばれる古い言語を学んでおり、黒い画面に文字や数字が表示されるだけでつまらなかったんですね。それがWeb系の言語だと、文字だけでなく画像も表示できるし、色が変わったり文字の配置を変えてみたり、視覚的に分かりやすいので、興味が持てたんだと思います。
同じように、「学生時代にプログラミングに挫折経験のある人」や、「今まで何となく難しいイメージがして触ったことがない人」には、ぜひWeb系の言語も試してみてほしいです。
初心者向けの無料学習サイトなら、Progate(プロゲート)だと、面倒な環境構築も不要で始めやすいと思います。※Web系の学習なら、まずは「Web開発コース(Node.js)」あたりから始めるのがおすすめです。
プログラミングは、洋服選びにも少し似ています。お店で見ているだけだと「微妙かも」と感じた服でも、いざ試着してみると「意外とアリだな」と感じる。こんなイメージです。プログラミングも同じで、外から見ているだけでは分からない相性があります。
だからこそ、「向いているかどうか」で悩み続けるよりも、まずは少し触ってみることが大切じゃないかと。これまで説明してきた通り、プログラミングは、思っているほど特別な世界ではありませんので。
具体的な学習方法については、以下の記事で詳しく解説していますので、よければ参考にしてください。
