blog

信仰はいかにプログラマーを破滅させるか

私は自分自身について新たな発見をしました。神は私に、常に正しい技術的選択をする驚くべき能力を与えてくださったのです。...

Dec 30, 2013 · 5 min. read
シェア

私は自分自身について新たな発見をしました。神は私に、常に正しい技術的選択をする驚くべき能力を与えてくださったのです。

[]

少し大げさですが、本当に素晴らしい。

繰り返しになりますが、私が選んだフレームワークとオペレーティングシステムは最高です。

もしかしたら、この記事を読んでいるうちに、あなたにもこの不思議な能力があることに気づいたかもしれません。

ほとんどの開発者は技術的な信念を持っています。

本当です。

恥ずかしがらないで。私も、ほとんどの人も、あなたと一緒です。

[]

この自己洗脳から正気に戻った人々もいます。また、自分が苦境に立たされていることに気づいていない人もいます。しかし、彼らのほとんどは、少なくともひとつの技術的な信念を信じています。

これは自然なことです。なぜなら、ほとんどのプログラマーは、ソフトウェア開発の分野に情熱を持っているからです。好きなものは何でも、それについて非常に客観的でない見方をするようになりやすいものです。

私自身はスポーツファンではありませんが、さまざまなスポーツのファンが、自分が応援しているチームが最高だと確信していることは知っています。

自分の選択や考えを守ろうとするのは人間の本性です。新しい段階は簡単に取り入れますが、すでに存在する段階は、それを裏付ける根拠があまりなくても宗教的に守ります。問題は、物事に対する意見をアイデンティティ、あるいは人間としての価値と結びつけてしまう傾向です。

魂を込めて探す必要はありますが、自分自身を見つめ直せば、最適なオペレーティングシステム、プログラミング言語、フレームワークなどをリストアップできる可能性が高いでしょう。

無知は至福ではありません。

この勝手な思い込みから生じる問題は、真実が見えなくなってしまうことです。

Macを実際に使ったことがある私は、Macがなぜゴミなのかについて数え切れないほどの時間を費やしたものです。皮肉なことに、私は今マックの上でこの記事を書いていますが、リモートデスクトップ経由でWindows Live Writerを使っています。

想像するのもばかばかしい。でも今でも、私はそう思っています。

自分を見つめ直し、その理由を自問自答してみると、モチベーションの大半は、自分が学び、習得したことに対する誇りと、知らないことに対する恐れの組み合わせから生まれていることに気づきます。

時間をかけて技術を学び、他の人がなぜその技術をそれほど好むのかを理解すれば、自分が知らない技術を「ゴミ」や「ガラクタ」として捨ててしまうことは少なくなるとわかりました。他の人も言っているように、ある人のゴミは別の人の宝です。

心ない信仰について

私が言わなくても、心ない狂信主義がこの世界の破壊的な力であることはご存じでしょう。好きな国のニュースサイトを見たり、少し歴史を読んだりするだけで、何が起こっているのかわかるはずです。

[]

PHP対C#のような問題で騒ぐプログラマーはそれほど多くありませんが、また、私がかつてこのような挑発的で、今では非常に不愉快な議論に椅子を投げないと非難されたにもかかわらず、多くの開発者はいまだに自分の意見について大声で議論したり、他の人の仕事を積極的に覆したりするのが好きです。開発者の多くは、自分の意見を声高に主張したり、他人の仕事を積極的に覆したりするのが好きなのです。ネットサーフィンをよくしていれば、このようなことはたくさん見てきたはずです。私は、JavaScriptについて否定的なことをあえて投稿したとき、自分自身の苦い錠剤を飲み込みました。

だから、無知は誰も傷つけていないと感じるかもしれませんし、明らかに彼らが悪いので、彼らはそれに値すると感じるかもしれませんが、しかし、真実は無知がかなりの損害を引き起こすということです。

私は、Perlプログラマーを無に帰し、彼らの労働の成果を完全に否定し、私の神聖な静的クラスCを、彼らを浄化できる唯一の救世主として、無知にも宣伝してしまったことを、大変恥ずかしく思っています。

でも一番重要なのは、私が傷つけていたのは、実は私自身だったということに気づいたことです。

自分の顔を殴るのはやめろ、バカ!

私のキャリアで最も大きく成長したのは、C#開発者として就職活動をしていたときに、JAVAプロジェクトでアーキテクトとして働くという素晴らしい機会を与えてもらったことです。

JAVAにはC#のようなプロパティがなく、手書きのゲッターとセッターが必要です。JAVAにはC#のようなプロパティがなく、手書きのゲッターとセッターが必要なのですから、JAVAのコードを書く人はみんなバカに決まっています。

しかし、何年かJAVAコードを開発し、良いユニットテストを書いてきた結果、JAVAは実はそれほどクソではないだけでなく、この言語とJAVAフレームワークの強みのいくつかは賞賛に値するものであることがわかりました。

もっと重要なのは、過去のコード・パラノイアが多くのドアを閉ざす原因になっていたことに気づき始めたことです。私が過去に選んだテクノロジーは、必ずしもベストではなかったのかもしれないと思い始めました。最もポピュラーなテクノロジーの多くは、実は互いにそれほど違いがないのではないかと思い始めたのです。

たまたま選んだ技術を頭ごなしに崇拝するのではなく、さまざまな技術やプログラミング言語を幅広く理解することが、自分の価値を高めることにつながると気づき始めたのです。

ベストなんてないんです。

この記事の結論として、世界最高の技術やプログラミング言語など存在しないという私の言葉を信じていただければ幸いです。

私は、プログラミング言語はそれぞれ独自の方法で優れており、それぞれが異なる状況を処理すると言って、知性を侮辱しているわけではありません。真実はもっと深いのですから。

非常に幅広い技術とプログラミング言語に関する40以上のコースをプロデュースしてきた結果、私はいくつかの真実を発見しました。

真実は、異なるツールやテクニックを使って、まったく同じことをする素晴らしい方法がたくさんあるということです。

実は、どんなプログラミング言語やテクノロジーにも、大きな間違いや弱点があります。

実は、さまざまな技術を学べば学ぶほど、その技術の核心にあるもののほとんどは非常に似ていることに気づきます。つまり、ソフトウェアを書く上での核となる概念は、技術やプログラミング言語の構文とは関係ないということです。

私のように、他のテクニックを喜んで受け入れ、自分の無知を認めて彼らから学ぼうとすれば、どこへ行っても親切でフレンドリーな人たちがたくさんいて、自分の知っていることを喜んで教えてくれることに気づくでしょう。

この記事はbrotherbに掲載されたものです。

Read next