2019年5月26日日曜日

こっそりQiita に出張して記事を書いてみた話

みなさん、こんにちは。

最近私が勤めている会社でエンジニア採用を強化しようということになり、その一環で Qiita Organization を作るということでその一環でアカウントを作りました。アカウントを作っても投稿がないとさみしいので、
という記事をテストで投稿していました。技術的な話であればこのblogでも良いのですが、お洋服のお話とかも取り扱うようになったので、純粋に技術的なお話は Qiita というのもアリかなと考えていました( というか、 公式の個別記事単位のブログパーツって準備されていないようですね。これはちょっとイケてない... )。

そんなこんなしているある日、Twitter経由で「文科省のPythonはPythonじゃねぇ」という記事を見つけ、「なるほどこれはヒドいや」と共感していたのですが、この記事についてのコメントや反応がなかなかシュールな状態になっている(はてなブックマーク)のに気がつきました(現代の日本では義務教育という形で全員がなにかしらの教育を受けるので、教育ねたは荒れる傾向があるのですが...)。

記事で指摘されていることは共感できるのに、不当な評価されているうえに、元の資料はコード以外のところもツッコミどころ満載なので、炎上案件に便乗するのはちょっとアレだけど同じ Qiita で補足説明が必要だということでこんな記事を書きました。


炎上火力をコントロールしないといけないので、比較的説明はていねいに、そして公開も週末前のタイミングで SNS にも告知しない形でやってみました。期せず元記事にリンクを張ってくださった方がいたり、こちらの記事にもコメントをされる方がいたりしましたが、ひととおり一周して落ち着いたかなというのが今の状況です。

いろいろ楽しい反応があるのですが、よくある質問とその回答をつくってみました。ネタっぽいところもありますが、お楽しみください。結論は「『リーダブルコード』読め」ということになるのですが。

プロ向けの指摘なら分かるが初学者にとっては過剰だ


この資料は生徒にプログラミングを教える教師という立場のプロに向けた資料です。お手本のコードを書かなければならない人が学ぶ内容としてはまだまだ不足している要素があります。


それって Python を教えるのではなくプログラミングを教えるのでしょ? 言語のディテールは余計では?


残念ながらプログラミング言語に依存しないところも首をかしげるところが散見されました。基礎がしっかり教えられていなければ、個別のプログラミング言語でもろくな説明ができないのは必然です。

文法なんかどうでもいい、はじめは動くものを作るのが先では?


可読性のないコードを書くと他人(往々にして将来の自分)が苦労することを知るべきだし教えるべき
です。学びはじめたときこそ基本的なところをしっかり習得する必要があります。すくなくとも教師は可読性の高いコードを書けるようになっておくべきです。

インデントなんてどうでもいいでしょ?


あなたが想像しているのとは違い、 Python はインデントで処理ブロックを表現する言語です。さては Python でコード書いたことないんですね?

この資料を作るのにどれだけの大人が時間を掛けたか想像すべき


さんざん時間をかけて出来た成果がこのクオリティですか...

最初から厳密に正しい作法のコードを書くのが目的ではないと思う


有害なクセがつくと後で矯正するのが大変です。あなたが正しい作法を身に着けていないからといって、生徒にそのようなそそのかしをするのは適切ではありません。