このブログでプログラミング関係の記事を初めて書いたのが2月の初め、
【参考記事】Pycharmの設定からBeautifuSoupをインストールする
そしてブログのPV数を機械学習して未来のアクセス数を予測するプログラムを開発したのが3月の中旬、
【参考記事】AIでブログのPV数を予測するプログラムを開発した
ここまでを大体2ヶ月で到達することが出来て、
ひょっとしてボクの独学方法は他のプログラミング学習者の参考になるんじゃないか?
と思い始めたので、
プログラミングの勉強が進まない、AI開発したいけど道のりが長い気がしてモチベが続かないといった方に、ボクが実践したくじけないメンタルの作り方およびプログラミングを続けるための勉強方法を紹介します。
方法1:入門書は一冊に絞らない
入門書を一冊買って、徹底的に読み込んで次のステップに進む!
というに考えてしまいがちです。
確かにせっかく2000円くらい出して入門書を買ったら、そりゃ最後まで制覇したいですよね。
しかし、ボクは間違っていると思います。人には「合う・合わない」があるからです。
プログラミング初心者に向けた入門書は数百冊はあります。それなのにたった一冊買って、それが自分に最適である保証はできません。
しかも、その入門書で分からない部分があって抜け出せなかったら、
入門書の一冊すらまともに出来ないなんて、ボクには才能が無いんじゃないか…?
と、考えてしまう事もあり得ます。
じゃあ、どうすればいいのか?入門書を数冊買いましょう。
ボク自身、上で挙げた画像以外にコンピューター関係の入門書を、ざっと数えて6冊を2週間で買って読みました。
さっきも言いましたが、人も本も「合う・合わない」があります。もっと言うと現実は章やコラム単位で合う・合わないがあります。
こっちの本はfor文とwhile文の違いが曖昧だけど、if文の章が分かりやすいぜ。
というように、どの本にも得意、不得意な部分があり、ときにそれが読者の理解を助けたり、阻むこともあります。
よって「オレはこの本を終わらせるまで次には進まない!」「入門書なんて一冊で大丈夫だろう」とは考えず、プログラミング学習者は入門書を2〜3冊は買う前提でいた方が絶対に長く続くと思います。
方法2:あくまで趣味として割り切る
ボクはプログラミング学習を確実に続けるのに効果的な動機は「趣味として楽しんで続ける」だと思います。
いや、人間の欲求に動機に繋げた方がモチベは上がる。実際にオレはプログラミングを習得した後フリーになって金持ちになりたい。
確かに「この技術がどう社会に役立つのか」という風に考察できる人は最小の労力でプログラミングを習得してお金を稼ぐ人もいることでしょう。
しかし大半の人はそこまで要領が良いわけでありません。そしてプログラミングを勉強と認識すると苦痛が伴います。ただでさえ勉強はつまらないものです、さながら高校時代にやった数学や物理の時間を彷彿とさせます。
一方、趣味でコードを書く人は勉強でなく娯楽としてプログラミングをするという意識なので、結果的に長く続きます。
プライベートの関係でプログラミングに割ける時間は人それぞれでしょうが、趣味でやっている方は概して好奇心が旺盛なので「これをこう応用したらこの分野にも使えるんじゃないか?」みたいに自然と深く広い知識とテクニックを手に入れることが出来るでしょう。
楽しいことならば時間を忘れて没頭できます。いかにプログラミングを楽しくできるかを常に意識すれば、自然と続くと思います。
方法3:様々な分野に挑戦する
めでたくプログラミング言語の基本文法を習得したとしましょう。
しかし、そこから先は様々な道があります、というかそこから先のほうが難しいです。
【参考記事】独学でプログラミング学習できない人は教室に通っても挫折する
webスクレイピング、機械学習、ブロックチェーン等々…。
3〜40年前は全ての分野に秀でたプログラマが存在したらしいですが、今は一つ一つの分野が複雑になって全てを網羅するのは不可能と言われています。
とはいっても、その分野の基本くらいは一通り習得することは出来ます。
オレはこれ一本に命を懸ける!
という風に最初から決断を下さずに、最初の1〜2年は様々な分野を一通り学んでいく方が良いとボクは考えています。
もし、最初に選んだ分野が自分に合わずに挫折したら「今更ほかの分野に手を出すのもなぁ…」と消極的になってしまいかねません、なまじ月日を費やしたら尚更です。
そこで、様々な分野を少しでも触れておけば「あ、これはオレ向きかもしれない」という感覚に出会うこともあるかもしれませんし、逆に他の分野で学んだ概念を本命の領域に活かすことで革新的な進歩が見込めるかもしれません。
現にボクも、最初はwebスクレイピングのコードばかり書いていましたが、その時に身についたネットワークの知識が生きて、のちに始めたサイバーセキュリティ関係の知識がすんなり頭に入ってくる経験をしました。
方法5:エラーだけが辞める理由とは限らないと知っておく
プログラミングで一番苦労することはデバックである。
ってネットに書いていましたが、ボクは半分正解で半分間違っていると思います。
たしかに「コードを書く」ことで一番大変なのはエラーを潰すことですが、大局的に見たらデバッグの苦労は半分もないくらいで、もう半分の悩みのタネはインストールなどパソコンの環境構築です。
例えば、最新ニュースを取得するプログラムを24時間実行できるようするとしたら、レンタルサーバーを契約、そこに仮想環境の構築、自分のパソコンにPythonとIDEのインストール等々、コードを書く前にやらなければならないことがあるのです。
コード書く前にこんな事もせなアカンのん!?
と不意打ちを食らうこともザラです。実際ボクもどうしてもインストールできないフレームワークがあって頓挫しているプロジェクトがあります。
ともあれ、それをあらかじめ知っていれば「こういうものなんだな」と構えることが出来ます。
方法6:自分の生活に役立つプログラムを作る
自分の生活を少しでも快適にしてくれるプログラムを組む事が出来れば、立派なプログラマです。だって、プログラミングってそのためにあるんですから。
参考書に書いてあるコードを「あ、これアレに使える」って気づいて、それを実際に実行することが出来れば、たとえほとんど丸バクリでも、プログラミングする第一の理由を満たしたことになると思います。
方法7:ガンガン自画自賛する
先ほど、ほとんど丸パクリでも個人の生活を豊かに出来るなら立派なプログラマだと言いました。
そこで、既存のコードを改良して、さらに使いやすい形にすることが出来れば「自分の技量に酔いしれる」というボーナスステージに進むことが出来ます。
一見すると些細な改良でも、それで移植性が増したり、読みやすくなったら「こんなにきれいなコードが書けるオレTUEEEEE!」って自分に酔うことが出来ます。
趣味でやってるんですから、いくらでも自分に酔いましょう。
そして、そのコードをこれまた趣味のブログとかで公開して他の人に見てもらえれば、モチベーションはぐっとアップします。
たまにディスられることもありますが、趣味だからと無視すれば良いし「ならもっと良いコードを書いてやるぜ!」と奮起できれば、もうプログラミングはその人の人生に深く馴染んだと言って良いでしょう。
まとめ
以上、ボクの経験を踏まえて、プログラミング学習を長く続けるためのメンタルの作り方を紹介しました。
これを参考に、皆さんもぜひ充実したプログラミングライフを送ってください!