プログラミングを学習する上で特に気になるのが「独学で挫折する」「モチベーションがキープできない」ということですよね。
今回は、プログラミング独学を続ける上でモチベーションを保つ方法についてまとめました。
プロでも悩む「インポスターシンドローム」:自分は人より劣っているのではないかという不安
英語圏でプログラミングを学習している人たちの界隈では「インポスターシンドローム(Impostor Syndrome)」という言葉が飛び交っていて、どのレベルにある人も「自分は劣っているのではないか」という考えにつきまとわれて挫折しやすい傾向にあるそうです。
先日までUdemyで講座を受講していた講師のBrad Traversyも、YouTube動画でその話をしていました。プロのエンジニアになって10年以上になる人でも、「まだ知らないことが沢山ある」という不安におそわれるそうです。
というのも、プログラミングには言語が沢山あり、全ての言語を学ぶわけにはいかないですし、流行の移り変わりや、コードの書き方の変化も早いですよね。
私は今年JavascriptやReactを中心に学んでいますが、世の中ではPythonやGo、AIの技術が流行していて、他に目を向けるときりがないな、とも思いました。
そして、初心者の時に一番きついと思ったのが、バグを起こした時の解決方法(how to debug)がなかなかわからなかった、ということです。
プログラミングを独学する時は「他人と比べない」「マイペースを保つ」ことが大切:必要以外の情報は入手せずに集中する
2019年に入ってプログラミング学習に本格的に打ち込むようになって何度も挫折しそうになったのですが、挫折しそうになるのは「他人と比べて焦っていた」からだと気づきました。
それに気づいてからは、必要以外の情報は入手しないようにしました。SNSで記録・更新していた #100daysofcode は一旦やめて、自分のスケジュール帳やノート、ブログに学習したことを記録していくようにしました。
そうすることで、「他人と比べてできなかったこと」よりも「自分なりにできたこと&理解できたこと」にフォーカスできるようになり、マイペースで学習が続けられるようになりました。
それに、何事も続けていれば後退することはないわけで、やればやるほど何かしら進んでいることがわかって、気持ちがグッと楽になりました。
(私はスポーツ観戦が好きなので、テレビなどでスポーツを見てやる気をもらうことも多いです。)
SNSでプログラミング学習の情報交換をすることのメリットとデメリット
先程も少し書いたのですが、年初はSNSでプログラミング学習の進捗状況を報告したり、情報収集をしたりしていました。
特に英語圏での流行が知りたかったため、英語で発信・情報収集していたのですが、実際にSNSでプログラミング学習の情報交換をしてみてメリットとデメリットがわかりました。
メリットは、業界の最新情報がいつでも手に入ることです。
Udemyの講師やエンジニア、GoogleやAmazonで働いている人をフォローしておけばすぐに最新情報が手に入りますし、#100daysofcode などのハッシュタグを使えば、同じように学習している人と情報交換をすることができます。
一方のデメリットが「焦りやすい」「集中できない」ということです。
私が使用していたSNSはTwitterとInstagramだったのですが、現在はDM(ダイレクトメッセージ)機能があり、どんどん個人的なメッセージが入ってきます。
特に外国の人の場合、遠慮がないので2~3回やり取りするとすぐにDMを送ってくる人も多いです。
DMを送ってくる人の中には「来週あなたが住んでいる街に行く用事があるので是非会いたい。日本のマーケティング状況が知りたい」「日本のアニメの動画を英語に翻訳してほしい」「もっと良い学習方法を知っているからSNS以外のところで個人的に話したい」という人もいて、学習に集中できない状況になってしまいました。
また、色々な学習方法が次々と眼の前に現れるので「今の方法で正しいのかな」と気持ちが揺れる瞬間もあり、それもデメリットだと感じました。
結局今年はSNSは使わないことにしたのですが、上手く利用している人のプロフィールを見ると"Sorry! I'm not able to answer all DMs. (ごめんなさい。DM全てに返信できるわけではありません)と書いてありました。これなら不要なDMに悩まされることもなさそうです。
また、メールアドレス等を載せている人で”Business inquiries only (仕事の連絡のみでお願いします)"と注意書きしているケースもありました。この場合も、不要な連絡には返信しなくて良いので気が楽かもしれません。
規則正しい生活をしてなるべく良い体調をキープ。学習する時間を決めておく
2019年は元旦からプログラミング学習をスタートさせてやる気まんまんだったのですが、1月のうちにインフルエンザにかかってしまいました。また、突発的な仕事が沢山ありインフルエンザ後に用事をこなすので精一杯な状況になってしまいました。
そういった体調の変化や仕事・用事などで学習が中断すると、なかなか立て直しに時間がかかり、結局学習再開できたのが1月下旬でした。
インフルエンザは予防注射も打っていたので、これ以上予防はできなかったのですが、「突発的な体調や仕事で中断することもある」と心の準備をしておくのも大事だなと思いました。
また、学習時間をキープするだけではなく体力・気力・集中力をキープするためにも、なるべく規則正しく生活して、学習する時間と内容を1週間単位で予定に組んでおくと楽に続けられると感じました。
私の場合は、仕事やどうしても外せない用事の時間を先にスケジュール帳に記入しておき、それ以外でプログラミング学習にあてられそうな時間(日時)を1週間単位で把握しておくことにしています。
また、「疲れすぎる少し前にやめておく」ことも大事だと思います。ある日MAXまでノリにのって学習すると、次の日はどうしてもやる気がでませんでした。決めた時間内「淡々と学習を続ける」のがポイントだと思いました。