プログラミング初心者は何が分からなくて詰まるのか

プログラマーは誰しも、右も左も分からないような初心者の時代を過ごして来ている。そんな頃、課題を解決している途中で詰まってしまった経験が一度はあるだろう。それは何が分からなくて詰まってしまったのだろうか。
思い返してみると、何時も入力と出力は分かっていて、分からないのは「課題を解決する具体的な手段」だった。ここで言う手段とは、アルゴリズムや、APIを指す。
それと、もう一つ考えられるのは、「具体的な手段は分かるけど、どういうコードとして書けばいいか分からない」だろう。
この中間だとか、前者よりの中間という物もあるかも知れないけど、まあどちらかと同じようなものだ。
前者は、その課題に関係する先人達の記録を訪ねてみれば、使うべき物が見えてくるだろう。最悪、Numerical Recipeと言った、手段のレシピ本を漁って、ローラー作戦的に探すという選択もある。
後者は単なる技量不足だ。技量を持てば、手段に対応するコードが目の前に浮かんでくるようになる。
どちらにせよ、言えることは一つ、「経験の差」だ。とにかく大量にコードを生産しろ、と言うことに尽きる。
(このネタを取ってきたときは、何か面白いモノが綴れそうだと思ったけど、結局、一般的な初心者と変わらない話になってしまった。物書きは全くの初心者なので、話を上手くふくらませる手段を知らないのだろう。プログラマーより、物書きからの見方で綴った方が、現在進行形で体験しているという意味で、もう少しましな物が出来たかも知れないな……)