スポンサーリンク

コードが書ける!数式が書ける!AAが書ける!スタンプが貼れる!

無料の匿名掲示板型SNS「このはちゃんねる

新規会員募集中!

プログラミングの独学は地道な山崩し

273, 2019-12-28

目次

プログラミングの独学に挑戦する

この記事を書いている人間は、20歳を過ぎてから独学でプログラミングを学び、企業と契約して働いたり、個人でソフトウェア開発を請け負ったりしている個人開発者である。
プログラミングを独学したいと思っている人は多く、そういった個人開発者の視点から、プログラミングの独学について考える記事は、ある程度の需要が見込めるだろう。

つまり、この記事はPV目当ての記事である。しかし、PV目当てと言ってもでたらめを書くわけには行かない。なぜならそれは信用問題になるからだ。よって、ある程度は考えた上の結論を書かなくてはならないのであり、そういった意味で読者諸君にはこの記事は価値のあるものとなるだろう。

結論は↓の通り。

  • プログラミングの独学は可能だが、それは反復を取り入れないといけない
  • 反復できる人間は独学が出来る

プログラミングの独学に挑戦しようとしている、あるいは挑戦している読者諸君に最初に言いたいのは、プログラミングの独学の道はけっこう長く険しいということだ。
プロとしてソフトウェアを納品している私からして、まだ勉強の途上である。よく言われるのは、このプログラマーと言う職種は生涯を通して勉強をしなければならない職種だということだ。

つまり、ゴールが無いのである。

この果ての無い道を歩もうと考えている物好きな人間の中には、おそらくネットで検索をしながら、何となくその事実に気付いている人もいるかもしれない。それはその通りで、エターナルフォースブリザード、プログラミングの独学は永遠の勉強を必要とするのだ。

プロとしてのレベル

かと言って、勉強するかしないかは個人の自由だ。途中で勉強をやめてもいい。
これは一見、矛盾する言い回しだが、どういうことかと言うと、ある程度勉強を続けたら、勉強をやめて現状維持をするということだ。
たとえばプログラミングのスキルがレベル10になると、プロとして通用すると仮定する。そこでプロになるためにレベル10までは頑張って勉強する。そして、レベル10以降に達したら、勉強をやめてしまう。しかし、勉強をやめてもレベル10に達していることは事実だから、プロとして仕事はできるということだ。
レベル10以降、勉強を続けてレベル20になったとする。その場合、プロとしてのレベルは上がるが、一般の人からすればレベル10もレベル20も見分けがつかないただのプロだということだ。

辛いとき、楽しいとき

読者諸君がどのような将来像を描いているかはわからないが、つらいのは最初のレベル1~3あたりだ。そしてレベル10を過ぎてまたレベル11~13で辛くなる。こんなことを言うと私のレベルが露見するのでこれ以上は書かないが、プログラミングの独学では辛いときと楽しいときがある。そしてそれは交互にやってくる。
最初の辛いときと言うのは、初心者がプログラミングの環境構築をしたり、言語の基本的な文法を覚えるあたりだ。ここら辺でかなりの人数が脱落すると思う。言語によっては環境構築がむずかしいものもあるため、言語選びの運も必要だろう。

ちなみに私は最初はC言語からはじめた。いま思うと、初心者にC言語はかなりヘビーだ。朝に焼肉を食べるぐらいヘビーだが、C++よりはマシだろう。しかし、学んでよかったと思っている。
最近のスクリプト系の言語は開発環境が整っているものも多く、インストールをチャッとやってパッと済ませればそれだけでプログラミングが可能になることが多いので、もしかしたらこの環境構築は辛くないかもしれない。

楽しいときと言うのは、ある程度の基本的な文法を覚えて、自分で小さなプログラムを作れるようになってくるとやってくる。不格好で、不出来で、使いどころのないプログラムだが、自分で作ったという達成感が得られる。そしてその達成感は、つぎのプログラムを作ろうというモチベーションになる。

辛いときをどう乗り越えるか

プログラミングの独学に限らず、辛いときをどう乗り越えるかが最大のテーマであり、関心であると言える。
プログラミングにおける辛いときというのは、プロになっても頻繁にある。つまり、プログラミングをやる以上、それは避けては通れないイベントであると言える。

私はこの辛いときをどう乗り越えているかと言うと、時間反復で乗り越えることが多い。
たいていは、辛いできごと、例えば困難なバグに遭遇したり、むずかしい実装を必要としたりする局面に出会ったとき、この時間反復で乗り越えることが出来た。

時間と反復

どういうことかと言うと、まず時間というのは「反復の間隔をどれぐらい置くか」ということだ。
そして反復というのは、文字通り辛いものごとに何度もアタックするということになる。

辛いものごとに一回アタックしたら、時間を置く。そして時間を置いたら、再びアタックし、これを反復する。
こうすることで徐々にではあるが、辛いものごとをじわじわと削り取り、最終的に倒すことが出来るようになる。

たとえば、環境構築に失敗したら、しばらく時間を置いて、またやってみるというこれだけのことである。
大切なのは短時間で反復するのではなく、きっちりインターバル(休憩)を取って反復するということだ。

プログラミングの独学ではこの時間と反復を繰り返し行うと良いと思う。これはプログラミングに限らず、ほかの分野でも普遍的なアプローチだと思う。

反復できなかったら

ちなみに、反復に失敗すると世にいう「挫折」ということになる。
私も何度も挫折をしている。最初のC言語の基本的な文法を覚えるのに3回ほど挫折した記憶がある。数カ月のインターバルを取って再度トライすると(これも大きな目で見た場合反復と言えるが)なんとか小さなプログラムを作れるようになった。

挫折し、失意の中に暮れるのも、大きな目で見た場合、反復のインターバル中と言えるだろう。傷をいやすのに数週間、数か月、あるいは数年かかるかもしれないが、大切なのはやはり反復することだ。挫折はインターバル。時間を置いてまた挑戦しよう。

脳は不思議なものでよくできていて、最初の挫折の経験があると、その次のトライには思いのほか優秀に働くことが多い。これは最初の挫折が経験になっていて、その次のトライに優位に働くためだろう。そういった意味で、挫折しっぱなしでいるのはもったいないと言える。

プログラミングの独学は可能か?

私はプログラミングを独学してきた人間だから(と言っても人に聞いたりとかも沢山してきた)、結論としてはプログラミングの独学は可能と言うことになる。
ただし、これは条件付きで、独学できる人間と言うのはつまり反復できる人間だということだ。失敗し、インターバルを置いてまた失敗し、インターバルを置いて、さらに失敗し、インターバルを置いて、やっとちょっと進む。そういうことが出来る人間でないと独学は難しいだろう。
非常に地道な方法だが、これが一番の近道のように思える。

独学にエスカレーターは存在するのか?
あれば私も利用したいが、おそらくないだろう。
地道な山崩しのようなジワジワ感を持って独学するしかない。かなしい。

おわりに

プログラミングの独学は可能だが、それは反復を取り入れないといけない。
反復できる人間は独学が出来るだろう。
反復し、山崩しのように課題をジワジワと削り取っていく辛抱強さ、これが必要だと思う。

けっきょく根性論かよ!

否、これは根性論ではない。方法論である。
反復こそ最善の方法であり、唯一の方法なのだ。そしてこれを教えるということは、ほとんどすべてを教えているようなものなのである。
最善の方法はすでに君の手の中にある。あとはこれを実践するだけだ。

さぁ、帆を掲げ羅針盤を独学の方角へ。独学の道は長く険しい。殉教者はこうべを垂れオールを漕ぐ。そしてその先にあるのは苦難と困難のジャングルだ。
突き進め! 突き進め! いざゆかん、栄光のハッカー道へ!

おしまい

投稿者名です。64字以内で入力してください。

必要な場合はEメールアドレスを入力してください(全体に公開されます)。

投稿する内容です。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク