ユーニックス総合研究所

  • home
  • archives
  • programming-dokugaku-tensai

プログラミングの独学は天才でなくても可能です

プログラミングの独学は天才にしかできない?

プログラミングの独学をしようと思っても、頭によぎる不安があります。
それはプログラミングの独学は天才にしかできないのではないか?
という不安です。

筆者はプログラミング歴16年以上のベテラン開発者ですが、結論を言います。
プログラミングの独学は天才でなくても可能です。
なぜなら凡人には凡人なりの勉強方法があるからです。

🦝 < 凡人は凡人の道を行け

この記事ではプログラミングの独学方法と天才と凡人について具体的に解説します。

関連記事

魔法の壺、プログラミングのライブラリ(Library)とは
頭悪い人にプログラミングは可能か?可能です
開発を3倍速にするプログラミングの考え方4つ
英語できないけどプログラミングはしたい。そんな人はこの方法がおすすめです
意味のないプログラミングの特徴3つ

天才でなくてもプログラミングの独学はできる

プログラミングの独学なんて凡人には無理。
できる人は天才しかいない。
なんてことを考えてしまいます。

それはプログラミングの独学が大変だからです。
大変だから何か言い訳としてそのようなことを考えてしまうのです。

  • プログラミングの独学は大変……
  • なにか言い訳……そうだ、天才にしかできないんだ!

しかし、プログラミングの独学は天才だけのものじゃありません。
プログラミングの独学は凡人にも可能です。

その証拠に筆者は過去2回、プログラミングに挫折。
しかし今では毎日のようにプログラミングをしています。

あなたも挫折するかもしれません。
しかしその挫折を乗り越えると、新しい世界が待っているわけです。

天才と凡人の違いは?

天才と凡人の違いは把握しておかないといけません。
世の中には腹が立つぐらいの天才というものがいます。
いえ、天才過ぎて腹も立たないかもしれません。

凡人からすると天才は手の届かない存在です。
天才と凡人の違いというのはなにがあるのでしょうか?

  • 天才と凡人の違いは?

自分が天才でないなら、どのように勉強したらいいのか?
世の中の天才はどういう感じなのか?

というところです。
具体的に見ていきましょう。

天才は驚くほど吸収が速い

まず天才ですが、天才と言うのは吸収力が違います。
天才は本当に乾いたスポンジのように知識を吸収していきます。

これは凡人にはできない芸当です。
あなたの通っていた学校のクラスにもいませんでしたか?

  • 思い出そう、学校にいた天才を
  • 社会にはそんなのがゴロゴロいる

うそみたいに問題をスラスラ解いてしまう人。
学年でも上位を争うほど優秀な人。

そういうのが天才です。
その逆は凡人ですが、凡人が世の中の9割です。
この記事を読んでるあなたも凡人かもしれません。

凡人の吸収力は平均かそれ以下

天才の吸収力と比べて、凡人の吸収力というのは平均です。
いえ、平均以下です。

それが凡人なんです。
天才が1日でできることも凡人は1週間1カ月かかります。
ひょっとしたら3カ月経ってもできないこともあるかもしれません。

  • 天才は1日
  • 凡人は3カ月

凡人の吸収力は低い。
仕方ありません。
これは持って生まれた才能の違い。
身体と精神のスペックの違いです。

凡人はどのようにプログラミングを独学すればいいのか?

では凡人はどのようにプログラミングを独学すればいいのでしょうか?
天才なら簡単です。
乾いたスポンジの脳みそに湯水のように知識を与えればいいだけです。

しかし凡人はそんなことはできません。
凡人は並みか並み以下です。

  • 凡人は平均、並み以下

あなたがアイドルだとして、東京の国民的アイドルが天才。
地方のアイドル志望の学生が凡人です。

とうぜん環境も違いますし、勉強方法も違います。
凡人は凡人の道を行くしかないのです。

凡人は泥臭い方法で勉強するしかない

結論を言ってしまいます。
筆者の16年以上のプログラミング経験から言ってこれは間違いありません。

凡人は泥臭い方法で勉強するしかないです。
これは真理です。

天才を見てると彼らは新しい知識を当たり前のように吸収して応用もすぐできたりします。
しかし凡人はそんな華麗なことはできません。

  • 凡人には華麗なことはできない
  • それは天才だけの特権

凡人は泥の中の地面の上を這いながら木々の間の木漏れ日をたよりに進むしかありません。
泥にまみれて勉強するしかないのです。

間違っても華麗な方法で勉強しようなんて思ってはいけません。
凡人は泥臭く、地道に、辛抱強くです。

つまり地道な反復学習がカギ

もっと具体的に言いましょう。
つまり凡人には「地道な反復学習」が唯一のカギです。
凡人にはこれ以外ありません。

教材を端から読んで端から記憶してすらすらコードを書く。
こんなことは無理です、凡人には。

凡人は地道に、それこそ芋虫が枝を這うように地道に。
そして反復して学習することを繰り返すしかありません。

  • 芋虫が這うように勉強しよう
  • 受験を思い出せ

この「地道な反復学習」こそ唯一の方法です。
これを忘れないようにしてください。

辛くても定期的に反復すること

凡人は天才と比べて辛いことが多いです。
これは仕方ありません。

しかしたとえプログラミングの勉強が辛くても、忘れてはいけないことがあります。
それは「反復すること」です。

  • 反復を決して忘れるな

反復」こそ凡人の武器です。
凡人はこの武器を使って成り上がるしかありません。
プログラミングを勉強するしかありません。

たとえ辛くても定期的な反復学習は忘れないようにしてください。
反復を繰り返せば徐々に辛さにも慣れていくでしょう。

時間を置きすぎると勉強した内容を忘れてしまう

反復学習も時間を置きすぎると、勉強した内容を忘れてしまいます。
そうなってはまた同じことをやる必要があります。

言い方を変えればたとえそうなっても反復学習をやり直せばいい。
と言えます。

しかし効率的に独学をしたいなら反復に時間を置きすぎてはいけません。
定期的に反復して知識を筋トレのように身に付けてください。
泥臭く、そして地道に。

凡人は文法の暗記やエラーやバグに100%苦しむ

そして凡人は天才と違い、その身に100%起こることがあります。
それはプログラミングのエラーやバグに苦しむということです。

これは避けては通れない道です。
かならず通らないといけません。

凡人はまず間違いなくエラー、バグに苦しみます。
私も苦しんだ記憶があります。

プログラミング言語の文法を暗記するには?

天才と違い凡人はプログラミング言語の文法の暗記にも苦労するのが普通です。

どうやって書いたっけ?
あれ? この前書いたのにな……

など、よくあることです。
プログラミング言語の文法は複雑です。

これは凡人はすぐに覚えることはできません。
地道に覚えるしかないです。
本を見ながら何度も繰り返し書いて、間違いながら学ぶことです。

文法は頭ではなく体に覚え込ませろ

プログラミング言語の文法は覚え方にコツがあります。
それは頭で覚えようとしないことです。

複雑な文法は頭で覚えるのではなくて身体に覚えさせます。
つまり繰り返し何度も書いて反復させて、あなたのDNAに文法を刻み込むのです。

たとえば、その刻み込んだ遺伝子があなたの将来の子供に継承されるぐらい。
それぐらい身体に文法を覚え込ませる。
それがコツです。

頭で暗記? いえいえ。
身体のクセにする。
これです。

エラーやバグをやっつけるには?

天才と違って凡人はエラーやバグに悩むのはまず間違いないことです。
ではエラーやバグをやっつけるにはどうしたらいいのでしょうか?

ここではエラーやバグをやっつける方法をあなたに伝授いたします。
この方法は私が16年以上のプログラミングで培った普遍の真理です。

本もスクールも教えてくれないここだけの知識をあなたに教えます。

エラーはエラーメッセージを100回読む

まずエラーが発生したときのエラーメッセージです。
英語でよくわからない文章が出力されますよね。
あれがエラーメッセージです。

このエラーメッセージは100回は言いすぎですがせめて10回は読みましょう。
英語で読めない場合は機械翻訳ツールを使ってください。
ツールは有名なものはGoogle翻訳やDeepLなどがあります。

エラーメッセージを翻訳してたとえその意味がわからなくてもいいです。
しかし意味が分からなくてもエラーメッセージは読む癖を付けておいてください。
そうすれば将来的にわかるようになる瞬間が来ます。

エラーメッセージを検索エンジンで調べる

元の英語のエラーメッセージ。
これは検索エンジンで調べるようにしてください。
検索エンジンはGoogleがおすすめです。

検索エンジンでエラーメッセージを調べると、そのエラーを解決しようとしている記事が何本もヒットします。
その記事を読んでエラーを解決してください。
たとえエラーが解決できなくてもめげずに次の記事を読んで方法を試してください。

それを続けるのがエラー解決のコツです。

エラーが解決できないなら最後は他人に聞く

どうしてもエラーが解決できない時は最後の手段として他人に聞きましょう。
プログラミングは質問サイトがあります。

その質問サイトでエラーメッセージについて質問するのです。
質問サイトは例えば最近は「スタック・オーバーフロー」が有名です。

この質問サイトでエラーについて質問をして回答が来るのを待ちましょう。
質問は丁寧に、エラーメッセージや必要なコードはのせるようにしてください。
あなたが初心者だとわかれば多くの人はやさしくしてくれるでしょう。
もっとも意地悪な人もいるかもしれません。

バグは最初は解けないものと思え

厄介なのがバグです。

バグとはプログラムに埋め込まれた意図しない動作をするコードのことを言います。
たとえば「1」と出力するプログラムが「2」と出力したらそれはバグがあることになります。

このバグですが、バグは解くのに経験がいります。
そしてひらめきも必要です。

あなたが初心者なら、バグを解決するのは最初はかなり難しいものだと思ってください。
初心者は経験値が不足しています。
その状態でプログラムのバグを解くことは非常に難しいことなのです。

しかしバグを解くのを諦めてはいけない

しかしです。
バグを解くのは諦めてはいけません。

最初からバグを解くことを放置してすぐに他人に聞くようなことはしないでください。
そんなことをするとあなたは「他人に聞くのはうまいけど、自分では解決できない」と言う人になってしまいます。

大事なのはバグと向き合った時間、経験です。
頭を悩ませながらうんうんと考えて「あーでもない」と言いながらバグとにらめっこするのが大事なんです。

  • うんうんとバグとにらめっこしよう

この時間が多い人ほどその人は問題解決能力が育ちます。
じっさい、ベテランの開発者の多くはそういった時間を過ごしてきた人たちがほとんどです。

バグはあなたを成長させる機会です。
そのことを忘れないようにしてください。

凡人の長い道のり、心の友は?

天才と違って凡人にとってプログラミングの独学は長い道のりです。
なにか心の友はないのでしょうか?

私のおすすめ、それはです。

なにか1冊、心の友と言える教材を見つけてください。
そしてそれをお守りのように大事にしてください。

これは精神的にその本に心を支えさせる方法です。
ストレスが溜まり困ったことになったらその本を読むようにすれば気持ちが和らぐでしょう。

おわりに

今回はプログラミングの独学は天才でなくとも可能なことを解説しました。
世の中の大半は天才ではなく凡人です。
凡人は泥臭く地道に学びましょう。

🦝 < 凡人の道をゆけ

🐭 < さらば扉は開かれん