はじめまして。株式会社PRUMでエンジニアをしている、すもも🍑です
日々、プログラミング学習や実務の中で、つまずきやすいポイントや
考え方を整理して発信しています。
PRUMについて気になった方は、コーポレートサイトもぜひご覧ください。
▶コーポレートサイト
数学苦手な文系でも大丈夫、ITの論理的思考・条件分岐を克服せよ
文系出身で、今エンジニア転職を目指して学習している方の中には、条件分岐やループのあたりでつまずいた経験がある方も多いのではないでしょうか。
私自身、最初にこのあたりを学んだとき、「これは数学的なセンスがないと理解できないやつだ」と思い込んで、周りの学習仲間と自分の理解の速さを比べては、落ち込んでいた時期がありました。
実務で必要なのは、複雑な数式じゃなかった
エンジニアと聞くと、難しい数式を使いこなしているイメージを持たれがちですが、実務の多くの場面では、中学生レベルの四則演算と、「AならばB」という程度の基礎的な論理が理解できれば十分だと言われています。
複雑な計算そのものは、人間よりもコンピュータやAIの方が圧倒的に速く正確にこなしてくれるからです。
人間側に求められているのは、自分で計算をすることではなく、「どんな条件のときに、どんな手順で処理させるか」を組み立てることの方なんですよね。
条件分岐もループも、実は日常でやっていることだった
条件分岐やループという言葉自体が、なんとなく数学的で身構えてしまう原因の一つかもしれません。
ただ、中身をよく見ると、私たちが日常で無意識にやっている判断とほとんど同じです。
「雨が降っていたら傘を持つ、降っていなければ持たない」
これも立派な条件分岐です。
「毎朝同じ時間に起きて、同じ支度をする」
これもループの考え方そのものです。
実際のプログラミングでも、これとほぼ同じ場面が出てきます。
たとえば「ログイン中のユーザーには専用画面を表示し、していない場合はログイン画面を表示する」というのも条件分岐そのものですし、「一覧に並んだ商品一件ずつに割引価格を計算する」という処理はループの考え方そのものです。
もう少し中身を覗いてみると、「ログイン中かどうか」は、システムの中では「ログインしている/していない」を表すひとつの値として保存されていて、条件分岐はその値を確認しているだけです。
日常生活で「雨が降っているかどうか」を目で見て判断しているのと、実はやっていることは同じで、プログラムの場合は"変数"と呼ばれる箱に入った値を見て判断している、という違いがあるだけなんですよね。
こうして見ると、プログラミングの論理的思考というのは、日常で無意識にやっている条件判断や繰り返しの感覚を、より細かく分解して、正確でシンプルな仕組みとして整理し直したものにすぎないのかもしれません。
論理的思考でつまずいたときにできること
とはいえ、頭では分かっても、実際にコードを読んだり書いたりする場面になると、また混乱してしまうこともあると思います。
そんなときは、次のようなことを試してみるとよさそうです。
- 記号や数式としてではなく、一度日本語の日常表現に置き換えて考えてみる
- 「なぜ動かないのか」より先に、「何をさせたいのか」を日本語で書き出してみる
- 分からないまま先に進まず、一番小さい例で一度動かして確かめてみる
- 周りの学習速度と比較せず、自分がつまずいた場所だけを記録して、あとで見返す
特に最後の一つは、私自身も意識するようになってから、必要以上に焦ることが減った気がしています。
まとめ
条件分岐やループでつまずいたとしても、それは数学的な才能がないからではなく、まだ慣れていない書き方に戸惑っているだけのことがほとんどです。
数学力があるかどうかより、「どんな条件で、どう動かすか」という指示の組み立て方を意識できるかどうかの方が、ずっと重要だと思います。
もし、条件や流れを一つずつ丁寧に追っていく感覚をもう少し鍛えたい方には、基本情報技術者試験の科目Bで出題される擬似言語のアルゴリズム問題を解いてみるのもおすすめです。
最初は記法に慣れず戸惑うと思いますが、繰り返し取り組むうちに、処理の流れを自然に読み解けるようになってきます。
PRUMのエンジニアの多くは未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
▶ PRUM採用ページ
エンジニアの方に役立つ記事をまとめたサイトも運営しています。もしご興味あれば覗いてみてくださいね。
▶ エンジニアに役立つ記事サイト

