本当に迷惑なんだ。
センスがない奴の何が問題かというと、技術がないとか、ベストプラクティスを知らないということではなく、根本的に「頭がおかしい」ことなんだ。
センスのない奴は、普通の人間が到底思い付かないことを平然と行う。所詮、本に書いてあるようなアンチパターンは、「経験のない人は典型的にこういうことをしがち」という例であるが、センスのない奴はそういう典型的なアンチパターンにすら当てはまらないほど意味不明なことをする。だから、「センスのない奴は典型的にこういうことをする」という具体例を挙げることが非常に難しいし、「ここがダメだから直せ」という指摘もできない。
最近見た例を書いてみる。2次元のテーブルを扱うJSONだ。
普通の人なら、何も考えず以下のような実装をするだろう。
[ {fieldName: "id", title: "id", type: "number"}, {fieldName: "name", title: "商品名", type: "text"}, {fieldName: "price", title: "値段", type: "number"} ]
[ {id: 1, name: "商品A", price: 100}, {id: 2, name: "商品B", price: 200}, {id: 3, name: "商品C", price: 300} ]
ところが、センスのない奴はたとえば以下みたいな意味不明な実装をナチュラルに行う。
[ {id: "0-0", val: "商品名", type: "text"},{id: "0-1", val: "値段", type: "text"}, {id: "1-0", val: "商品A", type: "text"},{id: "1-1", val: "100", type: "number"}, {id: "2-0", val: "商品B", type: "text"},{id: "2-1", val: "200", type: "number"}, {id: "3-0", val: "商品C", type: "text"},{id: "3-1", val: "300", type: "number"} ]
一応言っておくと、これは実例の一部を分かりやすいように切り取っただけであり、本物はもっとひどい。
センスのない奴っていうのは、スキル云々の問題ではなく、そもそも認識している世界が常人と異なるから、矯正は無理だし、チームにいると非常に迷惑なんだ。だから、プログラマにはならないでくれ。
残念なことにいつまで経っても初級者レベルにすら到達できないエンジニアは存在する。
やる気やモチベーションの問題もあるだろうが、同じ環境でスキルに差が付くという事はやはり適性が無かったのだろうと結論せざるを得ない事も多い。
そのような人々を飼い殺しにしてもお互いにとって損であると思う。
気が重い話ではあるが、チームから去ってもらうように説得するしかないだろう。