プログラミングは難しい?簡単?それぞれの思考回路を解説

プログラミング

「プログラミング始めてみたけどよくわからないし難しい」「プログラミングって難しいと思ってたけどやってみると案外簡単だな」どちらもよくある意見です。では、プログラミングが難しいと言っている人は頭があまり良くなくて、プログラミングが簡単だと言っている人は頭が良いのでしょうか?

実際そうではないケースが多いです。そこでこのページでは、なぜプログラミングが難しいと感じる人もいれば、逆に簡単だと感じる人もいるのかについて解説します。

スポンサーリンク

頭の良し悪し、勉強の得意不得意は関係ない

まずプログラミングを難しいと感じるか、逆に簡単だと感じるかに、頭の良し悪しは関係ありません。どちらかというと性格や思考回路によるところが大きいでしょう。たとえば、「人間関係は難しいですか?」という質問をされた際に、「難しい」と答える人もいれば、「簡単だ」と答える人もいるはずです。

または、「難しい面もあれば簡単な面もある」といった回答をする人もいるでしょう。プログラミングはある意味これに似ているところがあります。なぜなら、プログラミングの世界は膨大で、すべてを知ることは不可能です。

初心者がプログラミングを始めた場合特に、プログラミングの氷山の一角を見ているに過ぎません。プログラミングは単純なコードとシステムの動きだけを見れば簡単です。しかし、なぜこのようなコードでシステムが動くのか、他のパターンではどうか、どのように二進数に変換されているのか、バグの解決を調べて直ったけどなぜこれで直ったのかわからない、等々考え出すときりがないわけです。

勉強嫌いの高校生と、高学歴文系大学生の話

プログラミング初心者の状態からプログラミングの勉強を始めた人を私は多数知っていますが、その中に学校の偏差値的には真逆と言っても過言ではない人がいました。まず一人は勉強嫌いの高校生で、高校の偏差値は40代前半くらいだったと思います。

一方で、京都大学に通いながらプログラミングの勉強を始めた人もいました。文系ですが数学がもっとも得意と言っていました。なので、いわゆる数学的な思考やロジカルシンキングといったものは得意だと思います。この二人がプログラミングの勉強を始めた際、まず高校生は「プログラミングは簡単だ。自分は勉強は嫌いだけどプログラミングならできそうだ。」と言いました。

一方で、京大生の方は「プログラミングは難しい。これなら受験勉強の方がよほど簡単だ。」と言いました。よくネット上でもロジカルシンキングのできる人にとってはプログラミングは簡単だ、英語や数学に苦手意識があるとプログラミングが難しく感じる、といったことが書かれています。

しかし、実際に二人の発言を見るとまったく逆の結果になっています。要するに高校生はプログラミングの表面的な部分をシンプルに考え、京大生は深読みして難しく考えたのです。

結局二人はどうなった?

Free Stock Photo of On the same wavelenght - Two brains having an idea Created by Jack Moreh

結果的に、二人ともプログラミングのスキルは上達しました。学校を卒業してから二人がどうなったかまではわかりませんが、少なくとも高校生の方は自作でアプリを作っていて、京大生の方はプログラミングの仕事を受託していました。

そもそも二人がなぜプログラミングの勉強を始めたのか詳しく聞かなかったのですが、会話の内容的に高校生は「なんかプログラミングってかっこよくね?」くらいの軽いノリだったと思います。

京大生の方は「プログラミングができた方が仕事にもなるし今後役立つ。」といったようなことを言っていました。将来的なメリットを感じたのでしょう。

結果的に二人とも上達したので、これだけを見ると「プログラミングを難しく考えても簡単に考えてもどちらでも良くて、勉強する動機もなんでもいい」と言えそうです。この二人に関しては上達しましたが、私の知っている事例ではなんとなく勉強を始めてみたもののすぐに挫折した、逆に難しく考えすぎて挫折してしまった、といったケースが多々あります。

じゃあ結局どのように考えれば良いのか

いろいろな人を見ていくと、軽いノリでプログラミングを適当に考えている人もスキルアップに失敗したり成功したりしますし、逆に将来のためにと真剣に難しく考えている人もスキルアップに失敗したり成功したりしています。

どのように考えるのが正解なのかはわかりませんが、個人的な意見としては「最初は難しく考えない方が良い」と思います。最初はなんでこのコードを書いたらシステムが動くのか、他にどんなコードがあるのか、といったことがよくわからないと思います。

しかし深く考えすぎるとわからないことがストレスになるので、「まあなんかこれで動くんだ」くらいがちょうど良いと思います。もちろんプログラミングを仕事にするレベルになって、「よくわからんけど動いてる」はバグの原因になるのでNGなのですが、最初の練習段階ではその方がむしろストレスや挫折の原因にならなくて良いでしょう。

コードのバリエーションを増やしたり、たとえばハードウェアなどの低レイヤーからアプリケーションなどの高レイヤーまでの動きがどうなっているのか、といったことは徐々に知っていけば良い話です。

例に挙げた京大生は最初から難しい話まで理解しようとしていたようですが、あまり真似しない方が良いでしょう。どちらかというと、高校生のように深く考えずにコードを書いて動かしてみるスタイルの方が挫折する確率は低くなるとは思います。

とはいえ難しく考えてしまう人はどうするべきか

Free Stock Photo of Learning and Education - Brain Functions Development Concept Created by Jack Moreh

簡単に考えろと言われても、きっちり理解しないと気持ち悪い、という感覚があるかもしれません。私自身もどちらかというとそのタイプで、単にコードを書いて動いたと言われても、裏側の動きを理解しないと腑に落ちないのです。

実装を行う際にも、「他にもっとより良い選択肢はないか」「本当にこれで正解なのか」といったことを考えがちです。あれこれ考えることもスキルアップには良いのかもしれませんが、特に最初のうちは挫折の原因になります。

結局はバランスが大事

Free Stock Photo of Money and financial assets growth concept Created by Jack Moreh

プログラミングだけでなく他のことにも共通するかもしれませんが、難しく考えすぎず、かといってあまりに考えなしなのもNG、バランス良く、といったことが重要だと思います。また、特に最初のうちはなるべく簡単に考えて、徐々に難しいことも考えていくのが良いでしょう。

最初のうちはとりあえず指定通りにコードを書いて動けばそれでOK、難しいことは徐々に調べて理解していく、といったスタンスが良いかと思います。

タイトルとURLをコピーしました