やはりと言うか、なんというか。
新しくプログラミング言語を覚えたいときに行うべき10の練習問題
なんらかの文字列を無限で表示する(例:俺って天才!)。← 良く考えると危険だから「なんらかのカウントアップメッセージを1から100まで出すけど、3のときだけアホになる!(例:1万円!2万円!しゃ~ん万円!とか)」に変更。- ...。
問題1
キーボードの「e」を使わずに「Hello, world!」と表示するプログラムを作れ。
※作れない言語もある。その場合、「なぜ作れないのか」を説明してみよ。
こういうのを見ると、言語といいながらプログラミングを何故か数学的にとらえてる人が多いのかと感じる。
例えば日本語を覚えるときにいきなり作文からスタートするだろうか?面白そうだからって俳句や短歌に挑戦することが日本語を覚える近道だろうか?
私は違うと思う。言語の場合、最初に独学で間違った覚え方をするとそれに足を引っ張られることが多々ある。言語を覚える時の練習問題であるならソースを読めって問題であるべきだと思う。
オブジェクト指向がこれだけ言われてるけど、何かプログラムやる人の考えがオブジェクト志向になってないように思えるのが最近気になる。
これは基本的に誤解されてるな。
そもそも「言語を覚える人」は何らかのプログラミング言語はすでに知っているわけで「ソースを読んで言語を覚えればいいこと」くらいは知ってるわけです。プログラミングの初学者は最初から相手にしていません。だから意味のある課題を与えて、分からなければ当然調べて(その中には人のソースを読むという手段も含まれる)解けと言っているのです。
「問題を解かせる」のには他にも理由があります。どうでもいいソースを読むより目的主導でソースを読む方が効率が良いから、また問題を解くのに要する時間を短縮するための労力を促しやすいので本質的にプログラミング技術の習熟に適しているから、です。