頭が悪いからプログラミングなんてできない、と悩んでいる方が多いようです。
プログラミングしているあなたも、以下のように考えたことはありませんか?
- 学生時代、テストも成績も悪かったからプログラミングは向いていないのかな…
- 記憶力がないから覚えられない・・・
- そもそも自分は頭が悪いから・・・
しかし、プログラミングの習得に、頭の良い悪いは関係ありません。
Facebook設立者のマーク・ザッカーバーグさんのように大成功している頭の良い方もいますが、頭が悪くてもプログラミングの習得自体は可能なのです。
プログラミングができない理由は、義務教育での勉強方法が根付いてしまっていて、プログラミングの取り組み方が間違っているからです。
この記事では、頭が悪いからプログラミングできない、と考えてしまう理由を解説します。そのあと、プログラミングの取り組み方についても紹介いたします。
学生時代に、あまり良い成績を残せなかったことを気にかけている方は、心配点を減らせると思いますので、ぜひ最後までご覧ください。
あわせて読みたい
目次
プログラミングできないのは頭が悪いから?
自分は人と比較して頭が悪いから、プログラミングができない、と思っていませんか?
頭が悪いからプログラミングができない、と決めつけてしまうのはやめましょう。
どんなに頭が良い人でも、いきなりプログラミングができたわけではありません。
あなたはプログラミングを学習中の段階ですから、まだプログラミングに慣れていない状態です。
プログラミングできなくて当然なんです。
足りないのは、勉強のやり方に関する知識
プログラミングを習得して成功している方たちや、書籍の著者プロフィールをみると、高学歴な方が多いです。
自分には学歴も無いし、頭の出来が悪いからプログラミングなんて理解できない、と思ってしまうかもしれません。
それでも、プログラミングができないと決めつけないようにしましょう。
高学歴な人たちは、学生時代に必死に勉強してきているので、勉強のコツをつかんでいたり、苦労の中で自分に合った勉強法を確立できているんです。
その経験があるからこそ、新しいことを学習する場合でも、要点を押さえた学習が出来ていて、プログラミングについても理解することができます。
勉強してきて知識が豊富なだけでなく、勉強のやり方に関する知識も豊富なんです。
プログラミング学習は受験勉強とは違う
あなたも受験勉強した経験があると思います。
受験勉強では、過去問や予想問題を解いて、結果の点数をもとに苦手分野を勉強し、弱点を克服していきます。
結果から逆算して不足を補うなど、作戦をたてて勉強していたのではないでしょうか。
プログラミング学習では、このような勉強のやり方や、勉強の方向性を示すための手段が欠けているんです。
学び方はさまざまありますし、受動的な学習ではなく、自分から積極的に働きかける能動的な学習が求められます。
プログラミング学習の道のりを教えてくれる人がいないので、自分で必要な情報をかき集めて、パズルのように組み合わせて、道のりを作る必要があります。
プログラミングには正解が無い
受験勉強であれば、問題集の解答を見れば正解がわかります。
解答が1つとは限りませんが、問題の解き方は解答を見れば理解できるはずです。
プログラミングでは、正解が無いため解答が示されていません。
足し算や引き算など、小さな物であれば正解はありますが、アプリやシステムを作るとなると、正解はありません。
効率、コストを考慮してプログラミングすることまで考えると、上には上があり、キリがありません。
問題の解決方法はここに全て載っている、というものがないため、問題にぶつかった時の解決方法が分からないんです。
初心者にも容赦無く問題が襲ってくる
前提知識が無い状態で、これから英語の勉強を始める場合、初心者レベルから勉強を始めるはずです。
初心者向けの英語学習で、いきなりネイティブの会話が出てきたり、複雑な文法が出てくることは無いと思います。
教材選びを間違えなければ、自分のレベルに沿って学習が進められます。
プログラミングでは、たとえ初心者であっても、上級者でないと解決できない問題にぶつかることがあります。
学習している「本人」には、初心者と上級者の間に分厚い壁があるのですが、「問題」にいたっては、分厚い壁を簡単に乗り越えて、初心者に襲いかかってくるのです。
自分のレベルに沿った学習がしづらい傾向にあります。
プログラミングができないのは、取り組み方が悪いから
頭が悪いからプログラミングができないわけではありません。
大成功をおさめている人や、ビジネスの最前線で活躍している人になれるか、と言われると話は変わってきますが、頭が悪くてもプログラミングの習得自体は可能です。
これから、プログラミングに対する取り組み方を5つ紹介します。
プログラミングに対する考え方、学習の姿勢を変えることで、前向きにプログラミングに取り組めるようになります。
プログラミングができないのは、頭が悪いからではなく、取り組み方に問題があった、ということに気付けるでしょう。
難しい問題を分解して考える
すぐに解決できない問題にぶつかった場合、問題を分解してみましょう。
以下のように考えると分解しやすいのではないでしょうか。
・現状と理想(プログラミングで作ろうとしているもの)のギャップを明確にする
・自分が手作業として実行可能なレベルにまで落とし込んで分解する
分解することで、問題の数は増えてしまうのですが、1つ1つの問題の難易度は下がっているはずです。
分解した問題を1つずつ解決していくことで、目的を達成できる状況を作り出せれば、目的に向かって着実に進むことができて、プログラミングができないと立ち止まってしまうことが少なくなります。
分解して考える作業が定着してくると、問題にぶつかった時に解決して乗り越えられるようになり、問題解決能力も向上します。
論理的に考える
プログラミングする時には、日常の考え方とは異なり、論理的な考え方が必要です。
機械はプログラミングで指示されたことしかやらないため、普段私たちが無意識に行っていることも言語化してあげる必要があります。
人間と違って、気が利かないのです。
部屋のドアを開けることをプログラミングで指示する場合、以下のようになります。
①腕を伸ばしてドアノブを持つ
②ドアノブを時計回りに回す
③ドアノブを引く
④ドアが開かない場合、さらにドアノブを時計回りに回す
⑤再度、ドアノブを引く
論理的思考がプログラミングする時に必要な考え方なんです。
あなたの頭の中に思い描いている完成品を、実際にどうやってプログラミングすればよいか、具体的なソースコードレベルまで落とし込んでイメージできるようになります。
どうやってプログラミングすればよいかイメージできていることで、まっさらな状態からプログラミングを始める時に、何も思いつかなくて手が動かない、といった状態を回避することができます。
論理的思考やロジカルシンキングの書籍はたくさん販売されていますので、ぜひ論理的思考のトレーニングをしてみてください。
前項の「難しい問題を分解して考える」の作業も、論理的な考え方そのものですので、論理的思考を向上させる効果があります。
完璧主義をやめる
学生時代にテストで満点をとることを目標に勉強したり、授業で発表できるよう予習した経験があると思います。
間違ってはいけない、という考え方が自然と身についてしまい、知らぬ間に完璧主義になってしまいがちです。
プログラミングでは、全てを完璧になるまで覚えようとする必要はありません。
分からないことは、調べれば一瞬で答えが見つかるからです。
全てを覚えようとすると、覚えなければいけないことが膨大ですし、多大な労力・時間を必要とします。
プログラミングは目的を果たすための手段でしかなく、手段を暗記することよりも、目的を達成できることが重要です。
全てを完璧になるまで覚えようとするのは受験勉強までととらえ、プログラミングでは覚えようとしないことが正解である、と考えるようにしましょう。
目的を達成してみたり、失敗してみると、いかに完璧主義が無意味なものか、実感できると思います。
勉強を習慣化する
本音は、勉強するという行為が苦しいため、勉強をサボったことでプログラミングできないのですが、頭が悪いからプログラミングできないことを言い訳にしてしまっていませんか?
勉強する行為が苦しいのは事実ですが、習慣化することで苦しい物ではなくなります。
子供の頃、歯磨きやお風呂に入ることが、めんどくさくてやりたくなかった記憶はありませんか?
めんどくさくても続けてきたことで、現在は当たり前のように出来ていると思います。
プログラミング学習はすぐに成果が出るものではありません。
1つのプログラミング言語を習得する場合、2〜3ヶ月はかかると思いますので、継続して学習するためにも、習慣化できる仕組み作りが必要となります。
そのためにも、「難しい問題を分解して考える」で説明した手順で、難しい問題を分解して、1つ1つの問題の難易度を下げて、学習に取り組みやすい状態を作ることが重要です。
勉強する仲間をつくる
自分の力ではどうしても解決できない問題にぶつかることもあると思います。
その場合、一緒に勉強できる仲間を作ることをオススメします。
問題の解決に一人で悩んでいる時間が多すぎると、プログラミングへのモチベーションも低下してしまいます。
周りにプログラミングを勉強している仲間がいれば、分からないことを質問・相談できるため、仲間の力を借りて問題を解決できます。
教え合える仲間、モチベーションを高め合える仲間を作ることで、プログラミングのスピードが確実に上がります。
ギブ&テイクの精神を持つことで、他の人のためになりたい、と思えるようになったり、競争意識が働くことで、今までよりもがんばろうと思えるからです。
仲間を作れる環境にない方は、プログラミングスクールに通ってみたり、プログラミングの勉強会に参加することで、仲間を作れます。
費用はかかってしまいますが、元を取ろうと頑張れるはずです。
決して無駄な体験にはなりませんので、一人でプログラミングすることに限界を感じているのであれば、プログラミングスクールや勉強会の参加を考えてみてはいかがでしょうか。
まとめ プログラミングできないのは、取り組み方が間違っているから【頭のせいにしない!】
プログラミングができないのは、頭が悪いからではなく、プログラミングの取り組み方が間違っていることが原因です。
本記事では、プログラミングの取り組み方として、以下のことを解説しました。
- 難しい問題を分解して考え、1つ1つの問題の難易度を下げる
- 論理的思考のトレーニングをして、プログラミング的な考え方をできるようにする
- プログラミングは覚えようとしないことが正解なので、完璧主義をやめる
- 勉強を習慣化して、プログラミングの習得を長い目でみる
- 教え合える仲間、モチベーションを高め合える仲間を作る
プログラミングでは、学習して得た知識を組み合わせて、実際に動くものを作ることが目的になります。
頭の中でなんとなく思い描いているものを、実際に作るという行動に移す。
ここに高いハードルが存在するため、プログラミングを挫折してしまう方が多いです。
難しい問題を、難しい問題のまま解決しようとせず、分解して難易度を下げることでハードルを下げることが可能です。
プログラミングはどなたでも習得可能なものですので、取り組み方を見直してみて、意欲を持ってプログラミングに取り組んで欲しいです。
あわせて読みたい