Stroustrup氏の回答 2:半人前だからコードを書けないわけではないし、すべてを理解したうえでコードを書き始める必要もない
What would be the ideal reader? Obviously, intelligence, patience, willingness to work hard, and a broad base of knowledge would help. Those are the attributes of a good student in any field. In most aspects programming is "just another high level skill," but importantly it belongs to the skills that require both understanding of fundamentals and practical application. Programming is not just theory and it is not just a bunch of simple techniques. I think of learning programming as similar to learning to play an instrument and to acquiring a new foreign language. In all cases, it is easy to learn the task badly and get stuck at a low level of competence. On the other hand, a judicious combination of principles and practice can set a person off on a long, pleasurable, and profitable path of ever-increasing mastery. A willingness to try new things and not to be dismayed when they don't all work out is also most important. Like other complex skills, you have to work along with incomplete skills for a long time. You cannot wait until you "know all" and then start to write code.
私の新しい書籍の理想的な読者像、これはもう明らかです。知性と忍耐力を備えた勤勉な人たちです。幅広い知識を持っていればそれに超したことはないでしょう。優れた学生は、専攻分野を問わず、このような性質を持っています。プログラミングというのは、さらに上位に位置するスキルにすぎません。
しかし、プログラミングは、基本を理解する能力と、それを実際に応用する能力を要求します。プログラミングは単なる理論ではありませんし、単純なテクニックの組み合わせ行為でもありません。私は、プログラミング学習と楽器や外国語の学習過程は似ていると考えています。学習方法を誤れば、開始早々初級レベルで挫折してしまいます。ですが、原理教育とその実践教育をうまく組み合わせれば、学習者は自分が成長する喜びを実感でき、彼らの学習姿勢はさらに意欲的になります。
新しいことに意欲的に挑戦する姿勢と、うまくいかないときも後ろ向きにならない姿勢は、とても大切なことです。他の複雑なスキルを習得する場合も同じですが、誰しも半人前といわれる段階を経なければなりません。半人前だからコードを書けないということではありませんし、すべてを理解したうえでコードを書き始める必要もありません。