どの職業も、従事者にさまざまな習慣をもたらすようです。
プログラミングはプログラマーに多くの悪い習慣をもたらしてきましたが、プログラミングは毎日さらに多くの悪い習慣をプログラマーに追加し続けています。もちろん、プログラミングと関係ない習慣もあります。以下の習慣は、プログラマーも改めたいと思っても、根深く染み付いています。
ある物の大きさを16進コードのピクセルや色で説明する;天地万物の中に、ポリモーフィズム、継承、パターンを見出そうとする;
日常会話でコード関連の抽象的な用語を使う。
0. プログラマーは数を数えるとき0から数え始める。
例:プログラマーが喧嘩するとき、「三つ数えるぞ、それまでに黙らないと容赦しないからな!ゼロ!イチ!ニ!」と言う。あるいはリストを作るとき番号を0.から書き始める。
原因:array
コメント:この習慣が身につくのは困難な過程だった。何度も配列の範囲外エラーを起こし、何度もループ回数を間違えたおかげで、0から始めることを深く刻み込まれた。
1. プログラマーは選択肢のある質問に肯定・否定で答える。
例:「コーヒーにしますか、それとも紅茶にしますか?」と聞かれ、プログラマーは「うん。」と答える。
原因:条件式のOR(||)でどちらかの節が真なら、文全体が真になるから。
コメント:この習慣はやや大げさだが、コンピュータの処理ロジックで人間の問題を処理するのは、確かにプログラマーの思考様式によくある欠点だ。もちろん、そのような回答は明らかにプログラミングエラーを含んでいる。なぜなら、その質問に対して誤ってブール値を返したからだ。こんな回答の結果を気にする人がいるかどうかは大いに疑問だが、一応答えを出しておこう。本当にプログラムの世界なら、ウェイターはまずコーヒーを優先的に出し、コーヒーがなければ紅茶を出すだろう。
2. プログラマーは広くセミコロン終端症候群にかかっている、あるいはかかったことがある。
例:たとえば、この数行;
原因:ほとんどのプログラム、特に多くのプログラマーの入門言語であるC言語は、文の終わりにセミコロンを使うから。
コメント:改行の前にセミコロンで終える習慣は、プログラマー特有の悪い習慣だ。コンパイル時に出る様々な奇妙なエラーが、結局は小さな「;」が1つ足りないだけだったことを覚えていないか?それがこの悪い習慣の成因だ。セミコロン終端には由縁があるらしい。キーボードのセミコロンキーはちょうど右手の小指の位置にあり、句読点などと比べて地の利があるからだ。もちろんセミコロンが不要なプログラミング言語(RubyやPythonなど)もあるが、使い始めはセミコロンがないと妙に落ち着かない。
3. プログラマーの「言語」の概念は普通の人とは違う。
例:質問:「どんな言語ができますか?」 普通の人:「中国語と英語、あとフランス語を少々。」 プログラマー:「C言語とC++とJava、あとRubyを少々。」
原因:プログラマーの世界には母語も外国語もなく、プログラミング言語しかないから。
コメント:実際、プログラミング言語の文法は外国語より学びやすい。習ったことのない言語で書かれたプログラムを渡されても、ある程度は理解できる。プログラミング言語に国境はなく、各国のプログラマーが交流する最良の架け橋だ。
4. プログラマーは括弧/引用符がペアになっていない状況を非常に嫌う。
例:こんな内容を見たとき(簡単な例を挙げると(分かるでしょ)、「冷静だよ、取り乱したりしない」って言える?
原因:対応が取れない問題はコンパイルエラーを引き起こすから。
コメント:コードをざっと見ただけで、対応が取れていない箇所に異常に敏感で、一瞥するだけでどこで右括弧が足りないか分かる。この症状は、オートコンプリート機能付きの開発環境を使うとさらに悩ましくなる。
5. プログラマーはキロ(k)== 1024 だと思っている。
例:プログラマー換算表:1km == 1024m、1kg == 1024g。
原因:由来は曲折している。コンピュータは2進数の世界 → 1024は2の10乗 → 英語ではkiloという語を使う → kiloは中国語で「千」と訳される。例えばキロメートル、キログラム。
コメント:普通の人は500や1000がきりのいい数だと思うかもしれないが、プログラマーは512や1024がきりのいい数だと感じる。不思議に思わないでほしい。128、256、512という形が十分きりよく見えないなら、2進数に変換してあげよう:10000000、100000000、1000000000…
6. プログラマーは等しいという意味で == を使う。
例:5を参照。
原因:プログラミング言語では、「=」は代入で、「==」が両者の等価性を判断するために使われるから。
コメント:イコール1つと2つの違いはプログラミング入門の必修であり、先生が好んで出すテストポイントでもある。C言語のif文の条件にイコールを1つ書くと、コンパイルは通るが結果がおかしくなることが多く、初心者がしばらく調べる羽目になる。もちろん現在の言語の多くはこの点を考慮して、こうした書き間違いを防いでいる。しかし、イコール1つと2つの違いはすべてのプログラマーの心に深く刻み込まれている。
7. プログラマーは「//」を「この行の文字は無視してください」という意味で使う。
例:レストランで。プログラマーA:「私は魚香肉絲丼にする、君は何にする?」
プログラマーB:「宮保鶏丁丼。」
プログラマーAは注文票にこう書いた:
魚香肉絲丼 1
宮保鶏丁丼 1
プログラマーB:「やっぱり牛肉麺にする!」
プログラマーAは注文票を修正した:
魚香肉絲丼 1
// 宮保鶏丁丼 1
牛肉麺 1
原因:プログラムでは「//」を使ってコードにコメントを付ける。プログラムの実行時、「//」で始まるコード行は無視されるから。
コメント:プログラマーたちと一緒にいる時に無視されたら、「おいおいおい、俺はコメントアウトされたのか?」と文句を言えばいい。ユーモアと愛情に富むことで知られるプログラマーたちは、きっとあなたに注目してくれるだろう。
8. プログラマーは中国語の句読点恐怖症である。
例:気づいたかもしれないが、この記事は最初から最後まで英語の句読点を使っている。これが最良の例だ。
原因:プログラム内のすべての記号は厳密に英語の半角句読点である必要があるから。
コメント:この悪い習慣は中国らしさがあり、中国のプログラマー特有のものだ。優秀な中国のプログラマーなら誰でも中国語の句読点と英語の句読点を区別できるはずだ。例えば、「,」と「,」、「'」と「'」など。本当に、プログラミングを学び始めた頃、「error C2018: unknown character '0xa3′」のようなエラーを何度も見てきたではないか!
9. 私は今、256という数字は非常に完璧だと思っている。しかし非プログラマーはこれを理解してくれず、時々不意をつかれる。
編集者コメント:1024はどうなんだ?
10. 紙の本を読んでいると、とてもイライラする。なぜCtrl+Fで見たいものを探せないんだ?
編集者コメント:テレビを見ているとき、CMになると私もとてもイライラする。なぜシークできないんだ?
11. 私は何でもGoogleで検索する。
編集者コメント:Googleのアドレスを忘れたらどうする?
12. 数年前、昼食を食べに喫茶店へ行った。カウンターの中のお姉さんがどのパンにするか聞いてきた。私は考えもせずに「デフォルトで。」と答えた。
しまった、彼女は今もまだ私のことを笑っているかもしれない……
編集者コメント:そのお姉さんがプログラミングを理解していなければ、笑わずにきょとんとするだけだろう。
13. 睡眠不足、今はもう慣れた。
編集者コメント:パンダはもう絶滅危惧種じゃなくなるはずだ!睡眠不足は健康に悪い。また、この記事を読んでいる皆さん、プログラマーかどうかにかかわらず、自分の睡眠が十分かどうかチェックすべきだ。
私は毎日のタスクを最適化し、できるだけ並列処理を取り入れるのが好きだ。例えば、パソコンを起動したら、キッチンに走って湯沸しをオンにし、コーヒーを準備して、そして戻ってパスワードを入力してログインする。Firefoxを開いている間に、お湯を注ぎにいってコーヒーを淹れ、コーヒーを持って戻ってニュースを見る。さらに、便器に座りながら歯を磨くと、毎日数分節約できる。
編集者コメント:兄貴が持っているのはコーヒーじゃない、顎だ!
そういう人たちなのだ。パソコンをのろのろ使っていると、彼らは待ちきれずにキーボードを奪い取り、巧みにさまざまなショートカットキーを操る。子供たちにコンピュータの三原色は赤・緑・青であり、赤・黄・青ではないと言い聞かせる。大きさや距離を説明するときはピクセルを単位にしがちだ。彼女と映画を見に行って、映画館の座席にまばらに座っている人を見ると、ディスクの断片化を整理したくなる……文句を言うのは言うとしても、これこそ彼らの可愛らしいところではないか?
編集者コメント:文を疑問符で終えるプログラミング言語がなくてよかった?もしあったら、誰があなたの文章を理解できるだろう?
あなたにも似たような悪い習慣はありますか?みんなで愚痴って共有しましょう~
出典:oschina