CLI と IDE

Java入門ブックガイド(入門編) よりよき入門書と出会うために (1/5):CodeZine(コードジン)
2010-08-31
上記二つを読んで。


僕はきしだタンのファンなので、ほぼ全面的にきしだタンに賛成。


んでブックガイドのほうなんだけど、全体的に、プログラミング未経験者を対象にしている記事とは思えないんだよね。

  • 「言葉の定義の正確さが〜」というようなことを書いている割には、「エラー」が何なのか説明してなくね?
  • プログラミング未経験の人がいきなり項目比較表なるものを見せられても意味分からないんじゃね?
  • 知っておいたほうが良いとは思うけど、短絡評価ってこの項目比較表に載ってるようなレベルで知っておくべきことか?
  • 短絡評価と同様、インクリメント(デクリメント)演算子の後置と前置の違いって知っておくべきことか?(この違いが影響してくるようなコードはそもそも書くべきではないのではないか?)
  • IDE よりコマンドラインで勉強すべき」的なことを書いているけど、コンパイルエラーの情報ってどっちもほとんど同じじゃね?
  • 一番最後の Java 2 年生と Java 4 年生のプログラムの品質の差って単に経験値の差なんじゃない?

など。


大学で C と Javaチュートリアルを半期( 13 から 15 回くらい)ずつ受けたことがあるけど、どっちも結局最終回まで

  • typo が見つけられない
  • エラーメッセージの読み方が分からない
  • (英語だからという理由で)エラーメッセージで思考停止に陥る
  • コンパイルのコマンドを typo する
  • コマンドラインの使い方が分からない(覚えられない)

等々な人々が結構いたんだよね。
んで、そういう人のコードを見ると、習った文法・機能について、その段階で必要な程度には理解をしてるんだよね(多分)。
端から内職をしつつ観察していた感じでは、躓いている人たちのほとんどが言語の以外の部分で躓いてた気がする。
また、独学でプログラミングの勉強を始めようとしたけど、開発環境の導入の時点で挫折した、って話も割と良く聞く話。


今、プログラミングを始めようとしてる人たちって、(極小数の例外はあるだろうけど)ほとんどが GUI で育った人たちじゃない?
ただでさえ未知の分野への挑戦という心理的抵抗が大きい状況なのに、更に未知の世界の未知の道具を与えて心理的抵抗を強化する必要ってあるんだろうか。
プログラミング初心者の頃って、コンピュータが出来ることを全然知らないよね。出来ることを知ってても名前を知らなかったりとか。 IDE なら一応目に見える形で機能と名前を提供してくれるから手掛かりになったりするんじゃないだろうか。


パンチカード時代の名残りで「コンパイルする前に紙上で検証する」、 C++ は C を勉強してから取り組むべき、 C が理解できなければアセンブリの勉強をしろ*1、などなどのような議論と同じ匂いを感じるよ。


相変わらずまとまりのないまま終わり。

*1:まぁこれは間違ってるわけじゃないけどね。僕は「 C はアセンブリのマクロ・高級アセンブリ」論の支持者だから。