仕事

プログラミングの独学がきつい理由と対策【問題を明確にしよう】

ジョージ

勢い余ってプログラミングを始めたは良いけれど、よくわからない事ばっかりできついなあ……。
本当にみんな、この道筋を辿っているのかな?
こんなに大変なものなの……?
もう、いつになったらモノづくりができるようになるのか、まるでイメージできない。




プログラミングの独学を始めてみると、思ったよりも分からない事が多くて、ちっとも先に進まない事がよくあります。

こんな状態で、いつになったら仕事ができるレベルになるのか?

……そう思ってしまうと、重い腰がなおさら上がらなくなってしまい、勉強も手につかなくなってしまいますよね。


私は社会人として働き始めてからこれまでずっと、企業向けのシステムに携わっています。

環境構築から開発・構築・試験・導入・アフターサポートまで、一通りの経験があります。


この記事ではそんな経験を活かして、プログラミングの独学がなぜきついのか、それを克服するためにはどうしたら良いのかについて解説します。

今、プログラミング学習に難しさを感じている方の助けになればと思いますので、もし良ければ最後までお付き合いいただければ嬉しいです。

それでは、さっそく本編に進みましょう。



スポンサーリンク


プログラミングの独学がきつい理由と対策【問題を明確にしよう】

まず、一番最初に結論からお話すると、「きついなあ……」と感じるのは、どのように学習を進めていけば良いのか、そのイメージが頭の中に思い浮かんでいないからです。

階段がある東京タワーと、階段がない東京タワー。どちらなら登れそうでしょうか。


この例からも分かるように、階段を一段ずつ登っていけば到達できる高さでも、足場がない事によって到達できなくなります。

プログラミングの独学でつまずいているあなたは今まさに、昔の私と同じような終わらぬ問いに頭を悩ませている事かと思います。

終わらぬ問いとは、『独学のパラドックス』とも呼ぶべき内容がそこにあるからです。

プログラミング学習における、独学のパラドックス

『独学のパラドックス』というのは私が勝手につけた名前なので、他では通用しません。予めご了承ください。

なぜこんな言葉を私が使おうと思ったかというと、独学には以下の矛盾する問題が必ずついて回るからですね。

覚えていないことはやれないが、やっていないことは覚えられない。


プログラミングを例に出して考えてみます。

難しいプログラムを解析して自分のものにするためには、まずそのプログラムがどういった手順で作られているのか、それを把握しなければいけないですよね。

しかし、手順は実際にプログラムを書いてみなければ、自分のものにはなりません。

プログラムを書かなければ覚えられないのに、書くためには覚えなければいけないんです。


そして結局「どっちが先か?」を考えた時に、覚えなければ書けないのは明白なので、ひとまず本を買ってノートをつけて勉強してみる、というわけです。

そして、いざプログラムを書いてみたらエラーの連発で、こんなに簡単な記述なのに、いつになったら解決するのか見当もつかない……。

これ、実際私がそうで、この問題のために一度は挫折しました。


人から教わっている時は誰かの手順に従ってやろうとするので、こういった問題は起こりません。

だから私のように、教えてくれる人に依存して『教育慣れ』している方ほど、独学に高いハードルを感じる事が多いのかなと。

独学のパラドックスを克服するには、挑戦のハードルを下げる

さて、これに対して実際に私が模索して有効だった解決策があるので、それを共有します。


覚えなければ書けないのに、書かなければ覚えられない。

このパラドックスを克服する方法は、『挑戦のハードルを下げること』です。


つまり、『こんなにたくさん覚えられない』というレベルまで詰め込もうとする、記憶しようとすると、プログラミング学習のハードルはどんどん上がっていきます。

だからまずは、『覚えれば書けるレベル』にまで、学習のハードルを下げること。

一度ですべてを分かろうとしなくていいから、とにかく今の知識だけでも書けるプログラムを書いてみることです。

ここが達成できていない人が独学に高いハードルを感じ、『きつい……』と思う傾向にある、ということです。


たとえば、最初から世の中に出ているあんなプログラム、こんなプログラムを作ることを意識してしまうと、挫折の可能性大になってしまいます。

わからない事が多いがために、解決不可能な問題に直面してしまうんですよ。


人って、わからない事が多いと解決までのステップが作れなくなります。

たとえば、自分が絵を描くのが苦手だとします。

絵を描くのが苦手な人がいきなり人物画にチャレンジしても、多くの場合は歪になってしまい、上手に見えません。

そこで「どうしたら良いかなあ」と思い、色々試行錯誤するのですが、結局行き詰まってやめてしまう。

思わず、「絵を描くのってきついな、難しいな」と思いますよね。


ところが、『マルを綺麗に描く方法』から始めたとしたら、どうでしょう。

キレイなマルは、試してみるとかなり描くのが難しいです。

まずキレイなマルが描けるようになって、そこから球体に行き、立方体や三角錐が描けるようになる。

木の幹や石など、少し複雑な形を持つ絵が描けるようになる。

距離ごとの大きさなど、紙の上に空間を作った場合の感覚が把握できるようになる。


そうすると、人という身体がどういったパーツで構成されているのか、それはシンプルに球や立方体などの組み合わせで言うとどんな形になるのかが分かるようになります。

コントラストはどうか? どの方向から光を当てると、どの部分の色が真っ先に飛んで見えなくなるか?

まあ私はそんなに絵が上手い訳ではないのでざっくりとですが、こういった変化を見せるようになります。

プログラミングでも同じで、まずは階段を作ることから始めるのが有効です。

より実践的なプログラミング独学のきつさを解消するテクニック

さて、「プログラミングの独学、きついな……」という想いを解消する方法が、少しでも納得が行くものになっていれば嬉しいです。


ただ、前述の解決策にはまだ、大きな課題がありますよね。


独学は始めから高い所を目指そうとするのではなく、階段を作るのが有効。

でもここには、2つのハードルがあります。


  1. そもそも階段が作れない
  2. 簡単な所から行くのは楽しくない


これら2つの問題を解決すれば、実践可能な形できつさを克服できるはずです。

それでは、さっそく見ていきましょう。

1.そもそも階段が作れない

これは、自分がプログラミングをある程度できるようになるために、どういったステップが必要なのかが分からないという問題です。

実際、独学でやろうとすると、多くの場合がこの問題に陥り、頭を抱える事になってしまいます。

頭の中にゴールまでの地図が思い描けないという問題です。


これに対しての解決策は、私が知っている限りで言うと1つあります。


まず、図書館に行ってみてください。

自分がやりたいプログラミング言語についての本を、目次だけ読んでみてください。

段落ごとに、どんな項目を覚えるのが有効かが分かると思います。

いくつもの目次を読んでみると、その中で『同じことが書いてある』という項目が出てきます。

それが、そのプログラミング言語に関しての必須科目です。

そして、共通の項目がより網羅されていて、言葉を読んでも分かりやすい本を一冊、手元に置くために購入します。


インターネットで検索をかけるのも有効です。

『プログラミング言語名 入門』というキーワードで検索すると、大体は変数に始まり、基本となる演算子、関数と自作関数、アドレス、クラスなどの分野に分かれると思います。

これを1つずつ地道に書いて解決し、自分が書けるプログラムのストックを増やしていくのが、上達への近道です。

2.簡単な所から行くのは楽しくない

さて、そうは言っても『やることがあまりに地味すぎて楽しくない、やりたくない』という意見があります。


なんでプログラミングで作品が作りたいのに、筋トレみたいな事をしなければいけないんだ!

自分が作りたいのはあの、便利なソフトなんだ!



こう思うと、なんだか勉強している内容が意味のないことのように思え、退屈さを感じてしまう事があります。

これは私がプログラミングができるようになるまで実際に感じていたことで、共感していただける方も多いはず。


でも、ここは耐えて、実際に試してみるべきです。

そうすると、意外と早い段階で「あれ? プログラミングって思ってたより楽しいかも」と思うタイミングが訪れます。


実は、プログラミングの楽しさって指数関数的な曲線を描きます。

プログラミング技術自体が、指数関数的な成長を描くからですね。

だから、最初の方はとくに楽しくないんです。ルールがわからないうちからバスケに挑戦しても、「よくわかんないなあ」という感想を持つのと同じで。


ルールが分かるようになってくると、「あれ? そういうことか」という気付きが増えていきます。

『目的のものを作る』だけでなく、『新しい事を覚える』という事そのものに楽しみを覚えるようになるんですよ。

だから、そこまで続けられれば乗り越えられるのではないかと。

プログラミングの独学は、きつい

ここまで、プログラミング独学のきつさを乗り越える方法について書いてきました。


正直に言ってしまうと、私はプログラミングがあまり好きではない方だと感じています。

元々の性格がせっかちなので、細かい事や長期戦があまり得意ではないんです。

プログラミングも会社で販売するためのソフトを作る程度までは熟練度を上げましたが、一度方法が分かってしまうと、何年も同じ知識だけでコードを書くことには楽しさを感じられないんですよね。

私みたいな人も、世の中には多数いるのではないでしょうか。


私のようにコツコツと積み上げるのが苦手な人は、『10kmのマラソン』だと捉えるのではなく、『100m走を100回』だと捉えた方がやり切れる事があります。

なので、元々「独学はきついものなんだ」と思って、自分なりの回答が発見できると、克服も見えてくるのかなと。


ともに頑張りましょう。

それでは!

スポンサーリンク

-仕事

© 2021 日々勉強。