Scribble at 2022-06-24 22:00:06 Last modified: 2022-06-24 23:27:57

This was a mistake. Supposing you want to study for a job before you start the job, language study is almost always the wrong place to put your hours:

A common trap for people entering programming jobs

このところプログラミング・ツール(言語)の学習なり習得について書いているから、このような記事が Hacker News で紹介されると、取り上げておくべきなのだろう。僕が書いていることに反論している内容であれば、なおさらだ。でも、上に紹介している記事は僕が数日前から言っていることと、反対の意見を述べているわけでもないと思った。仕事と関係なく趣味的に、あるいは仕事になると思って言語を習得するのは、相当な無駄が多い。これは確かにそうだ。凡庸な人間が学ぼうとするなら、なおさらである。

記事のとおり、第一に就職しようとする会社が指定している言語でもない限り、あらゆる企業のあらゆる案件に対応するような、いわばフルスケールのドメインに対応して設計やコーディングができるようになっておくなんてことは、特定のプログラミング・ツールの初心者が数年でやれるようなことではない。また、プログラミングの実務経験があったとしても、そう簡単に応用できるとも限らない。

第二と第三に、就職しようとする会社が指定する言語を習得しておくにしても、入社する前に習得できることなんて、実務に必要な情報や技能としては限られている。たいていの企業は自前のライブラリやコーディング規則を持っているので、そういう入社した後でしかわからない情報を前もって学ぶことは原理的に不可能である。

そして第四に、大学の授業やテキストやオンラインのチュートリアルで解説されているコーディングとか技巧の類は会社で通用しないことが多い。それは、どちらかが正しくてどちらかが間違っているという問題ではなく、習慣の問題にすぎないのだが、得てして大学で学んだ人は自分が学んだ理想的で理論的な技巧に執着し、現実のコーディングを軽視したり無視して顰蹙を買ったりする。

あなたが自力で Linux カーネルを一人で設計し直せる程度の天才的なプログラマであるか、数年後に上場できる程度の革新的な数学モデルを懐に温めているなら、そういう傲慢さも許されるかもしれない。しかし、はっきり言えばスタンフォードやイリノイの博士号を持ってるくらいで、いまどきそんなことは許されない。

では、上記について Hacker News で加えられた批評と、その反論についてはどうだろうか。

"But of course studying a language is good!"・・・これはどう考えても的外れな反論だ。記事の著者は丁寧に応じているが、内心では「おまえ馬鹿なのか?」と思っているだろうから、代わりに俺がそう書いておく。

"Everyone should know [language X]."・・・仮に、"C" とか "Java" が入ると思っているなら、それは相当に深刻な思い込みと言うべきだろう。C や Java という特定のツールの、ではなく、何かプログラマやコーダにとって普遍的な価値をもつようなツールがあり得るというだけではなく、現に C や Java というツールとして現実に使われているという、途方もない妄想の信者と言ってもいいくらいだ。誰もが C を学んだ方がいいかもしれないとは言えるだろう。でも、記事の著者が書いているように、だからといって特定のツールを学ぶべきだとか、学ばなくてはプログラマとは言えないなどとは言えまい。

他にも幾つか反論があるようだが、Hacker News のコメントですら、かなり下らない反論が多いのには驚いた。たとえば、"But in Python, there is only one good way to do things." なんていう教科書的なフレーズをまじめに信じて反論するなんて、はっきり言って論理学の初歩的な勉強でもやり直した方がいいんじゃなかろうか。なぜなら、仮にそういう「唯一の正しいコーディング」があるとしても、それを人間の知恵で見つけられる保証なんてどこにあるというのか。Python のコーディングは、パターンとして単純に言えば無数にありうる。もし唯一の正解があると認めても、それがどれであるかを、あなたはどういう判定規則で見つけるのか。そんな判定規則があって、唯一のコーディングを決定できるとすれば、皮肉な話だが Python をコーディングする人間なんて全て AI に置き換えられるだろうから、寧ろ一人も必要ではなくなるだろう。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook