日が経過しています。情報の鮮度にご注意ください
前書き
以下の愚痴は論理性などなく、思いついたことをそのまま書いている。
会社での学習
会社は新技術を学ぶ努力を歓迎するが、前提として自分の仕事をまずきちんとこなすこと。会社がお金を払うのは働いてもらうためであって、学んでもらうためではない。学びたいなら家で学べ。一部のインターンや新卒が「会社の給料が安い」と不満を漏らすが、それは会社や同僚があなたの未熟なコードのツケを払っているからだ。簡単な仕事を任せてもなかなか終わらないなら、私が上司ならとっくにクビにしている。家でしっかり学べ。うんざり。
質問魔、エンジニア思考の欠如
問題に遭遇したとき、まず人に聞くのが第一反応で、自分でGoogle/StackOverflow/GitHub/ドキュメントを調べようとしない。お願いだから、あなたはエンジニアなんだから、その名前に恥じない行動を取れ。エンジニアとは何か?現実の問題を解決するための存在だ。問題を回避したり他人に押し付けたりする存在ではない。スティーブ・ジョブズの言葉を借りれば、エンジニアの使命はfix it, that's your jobだ。うんざり。
冗長な報告
上司があなたに仕事を任せるのは、結果を出してもらい、それをもとに上司が判断するためだ。さまざまな問題を上司に報告した後、上司に分析させるためではない。例えば上司が明確に「この互換性/実装難易度を検証して、終業までに結果を報告しろ」と指示したとする。終業間際に検証結果を報告するとき、上司が聞きたいのは単純な言葉だ:可以做、あるいは给定时间坐不了, 难点是 xxx。しかしある人々の回答はこうだ:「あー、この問題は結構複雑で、ネットではできると言っている人もいますが、私が試したところうまくいきませんでした。ただ別の方法も考えていて、それはblabla…で試してみたら確かにできますが完璧ではなく、もう少し改良が必要です。グループで別の方法を教えてもらったのですが、それも試してみたいと思っています」そして延々とblablabla…。私が上司なら即クビだ。うんざり。
繰り返し作業
単純な繰り返し作業があるが、必要な知識が自分の範囲を超えている場合。例えば、新しいプロジェクトを開始するたびに、設定ファイルやリソースファイルを手動でコピーしなければならないとする。ある人々はこれを見て「まあ面倒じゃないし」と思い、ずっと手作業でコピーし続ける。Node CLIが書けない?CLIがわからなければ学べない?CLIが学べなくても既存のgulp/node/ruby/shellで簡単に実装できない?難しい?機械的な作業ばかり、それでプログラマーと言える?うんざり。
表面的な理解
ある人々は、様々なプラグインを学ぶことに熱心で、それを自慢する。今日はこのプラグインを覚えたからフォーラムで自慢:「このプラグインは最高!あなたたちまだxxx使ってるの?」明日は新しいAPIを覚えてグループで自慢:「このAPIは素晴らしい!xxxのAPI設計はこれに比べたらゴミ」しかし普段は「JavaScriptの関数引数は値渡し?参照渡し?」「ネストした関数でのreturn文は1段階だけ戻る?それとも最外層まで戻る?」「if文はbreak/returnで抜けられる?」といった基本的な概念を質問する。APIが使えて偉い?ドキュメントが読めれば誰でも使えるだろ?まず基礎を学べ。うんざり。
知的障害者
ある人々は、中途半端な作品を作るとすぐに全世界に知らせ、他人にスターを求める。注目すべきは"求"で、知らない人に「すごい」と思わせるためだ。うんざり。
無駄な車輪の再発明
炎上覚悟で言うが、elemeの話だ。ちゃんとしたwebpackがあるのに、わざわざcookingというビルドツールを作って他人に使わせる。自分が凄いと思われたいのか?学習コストが増えるのわかってる?うんざり
会社への妄言
「うちの会社ってちょっとxxxだよね、それにxxx。見てよxxx社、あそこはすごくxxxなのに」陰で愚痴るならまだしも、エレベーターで言うな。エレベーターが空いてる時ならともかく、混んでる時に言うな。目立ちたいか?会社の問題を見つけたら上司にメールして管理職をCCに入れろ。うんざり。
弱い者同士の争い
昔から、強者と戦うことでこそ上達が早いと言われています。しかし中には、問題に遭遇すると、別の人に相談し、その人もよく分からないと、延々と議論を始め、結局一見正しそうな結論に達する人がいます。そして次に問題が起きた時もまた同じ人に相談する。技術的な問題について誰かと議論する際、数言交わせばその人の技術レベルはほぼ判断できると思います。その人が技術的に未熟だと分かったら、その人に教えを請うのではなく、他の達人に相談すればいいのではないでしょうか?二人で議論を重ねても、果たして意味があるのでしょうか?達人の一言の結論的なまとめに勝るでしょうか?時間を浪費するだけで、まったく無意味です。問題に遭遇し、自分で解決できない場合は、直接達人に自分の解決策がうまくいかなかったことを説明し、指導を仰げばいいのです。効率的だし、権威ある結論的なまとめを得られ、印象にも強く残ります。学生時代の自学と教師から教わることの違いと同じで、自分でまとめた知識点は常に不確かで、他の問題を解いてその知識点を検証する必要があります。しかし、その知識点が教師から教わったものなら、わざわざ問題を探して検証する必要はなく、直接その知識点を使えばいいのです。そして実際に知識点を運用する過程で問題が発生した場合、自学でまとめた知識点なら、まず自分がまとめ方を間違えたのではないかと疑い、次に知識点の運用ミス、さらには問題自体が間違っている可能性まで考えます。一方、教師から教わった知識点なら、運用過程で問題が起きても、まずは自分の運用方法が間違っていると疑うもので、知識点自体が間違っているとは考えません。まさに「吾嘗て終日にして思うも、須臾の学ぶに如かず。吾嘗て跂ちて望むも、高きに登るの博く見るに如かず」というわけです。未熟者同士の議論は、ただ煩わしいだけです。
プロフェッショナルでないこと
仕事でプロフェッショナルでないということは、他の人があなたと仕事を完成させるために余計な労力を払わなければならず、あなたの非専門性の代償を支払うことになります。皆の時間を浪費し、不快な思いをさせることになります。もちろん、誰もが未知から既知へと成長する過程にあるのは分かっていますが、せめて「失敗は成功の元」でいてほしい、あるいは他の人の仕事のやり方を学び、同じような初歩的な問題を繰り返さないようにしてほしいものです。本当に煩わしい。
Ps: 以上はあくまで私が日常生活で遭遇した人や事柄についてであり、特定の個人を指すものではありません。該当すると思われても、勝手に自分を当てはめないでください。これによって生じる不快感については、メールを送ってくれれば、私の気分次第で適宜対応します。
PPs: もし上記のすべてに該当する人がいたら、エンジニア/プログラマー/コード農家になるのはやめて、早めに転職し、一日も早く人生の頂点を目指すことをお勧めします。
人生の重要な選択に直面したとき、最善の方法を誰かが教えてくれて、貴重な時間を無駄にせずに済めばと、私はよく願っています。だからこそ、自分の経験を踏まえて頻繁にブログを書き、広大なインターネットのこの小さな片隅に、私にとって一度きりの人生経験を記録し、助けを求める人々の力になれればと思っています。