Webのプログラミングを初心者に教える時のアンチパターン

追記:2015/03/17
アンチパターンではなくてグッドパーツです.文章はそのまま残しておきます.

色々な人に聞かれたのでアンチパターンをまとめておく.

  • Windows は使わない
    • Windows は環境構築がつらいだけではなくネットブックのような驚くほどスペックの低いものを使っている人がいたり,HDD の空き容量が極めて少ない人もいる
      • 自習で学習出来る人はまずいないと思う
    • Mac なら VM とか使わなければ Web プログラミング周りで困るスペックのものはあまりない…はず
    • 開発環境があまりにも異常なので勘の良い人はおかしいと気付く
    • 開発環境は特殊なものだと思われることはお互いにとってよくない
  • VMSSH は使わない
    • そもそも VM がまともに動くスペックのものを使っている人はほとんどいない
    • VM 自体を理解させることは不可能に近いしインストールさせることも困難
    • SSH は魔法のコマンドにしか見えないし普段 Windows を使っている初心者が基本的な UNIX コマンドを知っているわけがないので扱えない
      • そもそも SSHWindows で使うこと自体が初心者にはかなり難しい
      • MSYS2 を使えば意外とまともに動くが Linux などを使った経験がない初心者は面食らう
      • ネットワーク周りの知識もないと VM 内で起動したサーバーにホストマシンからアクセスさせることができない
  • Eclipse は使わない
    • Eclipse を動かすにはつらいスペックのものが世の中には多い
    • Eclipse で作成した HTML などはデフォルトの文字コードShift_JIS になりここでハマる人が非常に多い上に設定変更も困難
    • そもそも EclipseJava 以外の言語を書く時に使うメリットはない
  • MySQL は使わない
    • MySQL は client-server model なので Server が起動していないとデータベースとして使用できない
    • この仕様は初心者が学ぶ上では非常に厄介
    • CREATE TABLE 文にストレージエンジンを指定することがほとんどだが初心者は SQL を学べれば十分なので無駄
  • Apache/PHP は使わない
    • Apache はデフォルトで 80 番ポートを使うので Skype などが同時に使えないなどトラブルが発生しやすい
    • プログラムが実行されている実感が無いので何で動いているのか初心者に全く理解ができない
    • PHP もビルトインサーバーを使えばその辺りの問題は解決するがとりあえず Apache モジュールのものはプログラミングの理解を助けない
  • HTML の中に CSS/JS は直に書かない
    • エディタのシンタックスハイライトが通常効かない
    • 初心者でも興味のある人は通常ファイルに分けることを知っているので実践的な内容ではないことが分かってしまい,やる気がなくなる
    • ただしファイルやフォルダを作るのは負担が大きいので予め作ってあげるべき
  • JS だけで実際のアプリケーションではやらないようなことをやらない
    • document.write するだけなど
    • 実際の Web アプリケーションとの乖離が気になりやる気が無くなる
  • 実際のアプリケーションでの使いどころをしっかり教える
    • if や for などの文法を教えても実際のアプリケーションでの使いどころにピンとこない人が多くそこを知りたい人が多い
    • 乖離が大きいとやる気が無くなる

ならどうするのがいいの??という方におすすめの本です.

pixivエンジニアが教えるプログラミング入門 (星海社新書)

pixivエンジニアが教えるプログラミング入門 (星海社新書)

本の内容について参考になる URL です.

よろしくお願いします.

pixivエンジニアが教えるプログラミング入門 (星海社新書)

pixivエンジニアが教えるプログラミング入門 (星海社新書)