【現役エンジニアの失敗談】プログラミングの「=」は等しいじゃない?数学が苦手な人ほど情報Iに向いている理由
こんにちは!オンライン家庭教師のこばやしです。 普段はフリーランスのITエンジニアとしてシステム開発を行いながら、中高生向けに「情報I」や「理系数学」を指導しています。
高校の「情報I」のプログラミングで、変数の次に必ず登場するのが「代入(だいにゅう)」という考え方です。
実はここ、私自身が大学生のときに初めてプログラミング(Rubyという言語でした)に触れて、最もパニックになったポイントなのです。
今日は、現役エンジニアのちょっと恥ずかしい失敗談も交えつつ、「数学が苦手な人ほど、実はプログラミングの素質があるかもしれない」という秘密をお話しします。
■ 理系脳をショートさせた「x = x + 1」の衝撃
私が大学生のころ、初めてのプログラミングの授業でこんなコード(命令)が出てきました。
x = x + 1
これを見た瞬間、理系としてずっと数学をやってきた私の脳は完全にショートしました。
「いやいや、左辺と右辺が等しくないじゃないか! 移項したら 0 = 1 になって矛盾するぞ!?」と大混乱してしまったのです。
数学の世界では、「=(イコール)」は絶対に「左と右が等しい」という状態を表す記号です。 その強力な先入観があったため、プログラミング特有の「=」の意味がなかなか受け入れられず、本当に苦労しました。
■ プログラミングの「=」の本当の意味は「←」
実は、プログラミングの世界では「=」は「等しい」という意味ではありません。(等しいかどうかを判定するときは、別の記号を使います)
プログラミングにおける「=」の本当の意味は、「右側のものを、左側の箱(変数)に入れる」という「代入」の命令なのです。
矢印でイメージすると、とても分かりやすくなります。
x ← x + 1
「今の x の箱に入っている数字に 1 を足して、もう一度 x の箱にしまい直してね」という意味ですね。 「=」という記号を使っているせいで数学っぽく見えますが、実態は単なる「箱への出し入れ作業」に過ぎません。
■ 「数学への先入観がない」ことは立派な武器になる
私が家庭教師として様々な生徒さんを見ていると、とても面白いことに気がつきます。
数学が得意な理系の生徒ほど、かつての私のように「=」の先入観に引っ張られて、一度手が止まることが多いのです。
逆に、「数学が苦手で、数式を見るのも嫌だ」という生徒さんの方が、「あ、これは箱に数字を入れるって意味ね」と、あっさり素直に吸収してしまいます。
情報Iのプログラミングにおいて、数学のガチガチの先入観がないことは、決して弱点ではなく「立派な武器」になります。 もしあなたが「数学が苦手だから、情報Iのプログラミングもダメかも……」と不安に思っているなら、安心してください。全く新しい頭の使い方をするので、ここから一気に得意科目にできるチャンスです!
■ つまずいた経験があるからこそ、教えられること
私は元から天才的なプログラマーだったわけではありません。皆さんがこれから「情報I」でつまずくであろうポイントで、見事に同じように転んできた経験があります。
だからこそ、「なぜ分からないのか」「どういう先入観が邪魔をしているのか」を誰よりも深く理解し、エンジニアとしての実務経験を交えながら、暗記に逃げない論理的な解説ができます。
「プログラミングの授業が呪文にしか見えない」
「数学の苦手意識を、情報Iに持ち込みたくない」
そんな方は、ぜひ一度体験授業にいらしてください。 「=」の呪縛を解いて、プログラミングが楽しくなるお手伝いをします!
【プロフィール】 こばやし|納得感を大切にするフリーランスエンジニア
北海道大理系卒。現役のITエンジニアとして活動しながら、オンライン家庭教師として中高生に「情報I」「数学」「英語」を指導中。企業の新人ITエンジニア研修のメイン講師も務めるプロが、「仕組みから理解する」論理的な指導を行います。
▼ 開講中のコースはこちら
旧帝大卒エンジニアが教える。共通テスト「情報I」完全攻略
https://manalink.jp/teacher/18245/courses/21790
【旧帝大卒】感覚に頼らない。「論理」で読み解く中学英語
https://manalink.jp/teacher/18245/courses/23771
現役エンジニアによる丸暗記しない『論理的思考』で解く中学数学
https://manalink.jp/teacher/18245/courses/23769
【旧帝大卒】暗記に逃げない。「論理」で完全攻略する理系数学
https://manalink.jp/teacher/18245/courses/23770