プログラミングいちねんせい

プログラミング歴ゼロの初心者がもがくサイトです

「プログラミング初学者にとって難しいと感じるところ」の対処法です

前回のあらすじ

前回「プログラミング初学者にとって難しいと感じるところ」という記事を書きました。あるあるとまでは言えないものの、初学者にとっては経験したことのある内容だったと思います。そこで今回は私なりの対処法を書きます。私自身もまだまだ初学者ですが、勉強していくなかで気づいた点や上級者からのアドバイスの記事を読んで知ったことがいくつかあるので共有できればと思います。前回の記事を読んでいない方はざっと目を通していただけるとわかりやすいです。

javacurry.hatenablog.jp

書籍を読破したものの何も作れない

まず1つ言えるのは書籍を読破しても、すぐに何か作れる人にはなれないです。ピンポイントで「じゃんけんゲームを作れるようになる本」というような内容であれば、じゃんけんゲームを作れるかもしれませんが世の中にあるプログラミング系の書籍は、そこまで狭い技術はターゲットになっていません。「1週間で覚える~」というようなタイトルも同じです。読了後はその内容をひたすら改造し、実装したいものが出てきた場合に次に必要となる技術の書籍を買うとか、調べるということが必要になってきます。ただ、読了後に何か作れる人になれるというのは初学者の夢ですよね。わかります。

周りにプログラミングに詳しい人がいない

teratail を利用しましょう。これに尽きます。「この程度の質問をしていいのだろうか?」という考えは捨てていいと思ってます。なにせ、その程度の質問しかできないレベルなのが初学者なので。ただ、質問する前に1つだけ準備しておいたほうがよいことがあります。それは質問の仕方です。

  • 何がわからないのか
  • 何を試して、どうなったのか
  • 何を知りたいのか

この3点だけは整理しておいたほうがいいです。まだ私自身も上手くできているとは言えませんが、これはプログラミングにかかわらずコミュニケーションの問題なので相手が回答しやすい質問を用意するという努力は必要だと思っています。もし満足のいく回答が得られなかった場合、それは質問の仕方がうまくない可能性も疑ったほうがいいです。どんどん試して、どんどん質問しましょう。

teratail.com

何を覚えればいいのかわからない

これは何を作りたいのかの1点にかかっています。仕様の隅々まで把握しておく必要はなく、作りたいものに必要な技術を知ればいいだけです。自在にWebサイトを作れるようになりたいという人が Python に手を出す必要はないです。作りたいものがなければ無理に学ぶ必要すらないと思っています。ちなみに、私は作りたいものがあるのと同時に「あれはなんだ!?楽しそう!」と関係ない技術にまで手を出してしまう気質なので勉強の効率が非常に悪いです。

何がわかっていないのかわからない

これは上記の何を作りたいのかが明確になれば自ずと必要な技術が見えてくるので、そこで足りていない知識や技術がわかるはずです。

プログラムをどこに書けばいいのかわからない

これは私自身、未だにわかっていないことがあります。対処法と見栄を切ったものの勉強中です。ただ、1つわかってきたのはプログラムは必要なタイミングで実行してくれればいいので学習動画サイトや書籍と全く同じである必要はないと思っています。動かなければ、そこで「ああ、順番のせいかもしれない」と考えられますし、問題の切り分けにもなります。

文字列かどうかの使い分け

これは目下、格闘中です。PHP のシングルクォーテーションと$をつけなければいけないところで、つけていない。またはその逆。このパターンで毎日エラーを叩き出していますが、もはや慣れるしかないと思っています。エラーが出ても死ぬわけではないので、一緒にエラーを出しまくりましょう!

調べ方がわからない

初学者にとっては公式リファレンスは呪文にしか見えませんよね。最近、私はわからなくてもリファレンスを読みにいきます。とりあえず慣れるしかないです。あわせてWebの記事も読みリファレンスを読み解こうと必死になっています。最初に比べると少しずつ読めるようになってきましたが、まだまだ頼れる存在というには程遠いです。早く友達になりたいなー。

英語がわからない

エラーは英語で表示されます。逃げられません。私は英語学習にも興味があるので思い切って身の回りをできる限り英語にする作戦を始めました。

  • Windows を英語モードにする
  • 普段利用するサイトの Amazon 等, 普段遊ぶゲームや IDE を英語モードにする
  • 英語の学習も並行する
  • エラーを英語で検索する

いろいろ工夫してます。今となっては英語アレルギーは消えました。普段から英語で検索する癖がついたのでエラーが長文で表示されてもきちんと読みます。英語の理解力とは別の問題ですが、とりあえず慣れましょう。圧倒的にオススメの書籍はDUO 3.0です。5周くらいしたところで確実に語彙数が上がったのを感じました。音声付きだと1時間で1周できます。

モチベーションの維持

私は Notion に1週間のタスクと1ヶ月のカレンダー表示を Weekly Agenda という名前で管理しています。はい。英語の勉強の時間を作れてないことがバレましたね。

f:id:javacurry:20210605012114j:plain
Weekly Agenda

カレンダー部分はクリックするとページが開き勉強した内容が表示されます。

f:id:javacurry:20210605012451j:plain
Weekly Agenda 2

勉強した内容を振り返られるだけではなく、1ヶ月でどれだけ勉強したのかという点も確認できます。あと Twitterブログを利用してアウトプットするのも手ですね。なんとなく勉強していると、なんとなくやっていない期間も出てくるので自分で管理すると戒めになります。これでモチベーションを維持できています。あと、有名なはなしですが勉強するのが億劫な方はとりあえず3分だけやるという方法も良いです。3分でやれれば10分やれますし、気がついたら1時間経っていたなんてこともザラにあります。有名な勉強法の1つですね。

まとめ

もし同じ初学者の方が読んでいたら、ぜひ Twitter をフォローしてください。ほぼ毎日、エラーに悩まされながら叫んでます。ぜひ一緒に頑張りましょう。そして、初学者より上の方が読んでいたら、ぜひフォローしてください。そしてアドバイスください。慰めてください。