web-dev-qa-db-ja.com

プログラミングの問題について最も不合理な神話は何ですか?

別の言い方をすれば...プログラミングに関して最も一般的に保持され、イライラする誤解は何ですか?

プログラマーが追い払う/修正するのは難しい

これが神話である理由を説明してください。

101
Maniero

あなたはプログラマーなので、[人]のウイルスに乗ったマシンを修正する方法を知っています。

272
Neth

私が就職活動をしているときに私を混乱させる一般的なHRの事柄:すべてのコーディングスキルは言語固有であり、コマンドセットを超越するソフトウェアエンジニアリングの専門知識がないという暗黙の仮定。 Java=での10年の経験と、Perlでの5年間の経験は、C#などを使用するプロジェクトではまったく役に立たないことを意味します。

「そうです。学習曲線があります。しかし、私はこれよりも難しい移行をしました。私はあなたと契約を交わし、最初の月に80%を支払い、そうでない場合はその終わりに... oh 、ちょっと待ってください。HRモンキーが私のアプリケーションを削除しただけなので、実際にはこの会話はありません。」

266
BlairHippo

入力していない場合は、動作していません。

プログラマーが頭の中で物事を整理するためには、ゾンビの空を見つめることとコーヒーの散歩が不可欠だと思います。

260
burnt_hand

より多くの人に投げかけるだけで、後期のプロジェクトをスピードアップできるということです。

158
chrmue

そのライティングソフトウェアは簡単です。

時間とともに予算を超えて実行されるこれらすべてのプロジェクトを他にどのように説明しますか。人々(政治家、メディアなど)はまだ驚かれています。顧客は、「小さなWebサイト」(または何でも)が実際にかかると言うと不満を述べます6開発に数か月かかる数千ドル(ポンド、ユーロ、[選択した通貨を挿入])

あいまいで常に変化する要件により、ソフトウェアが完成するのは驚くべきことだと思うことがあります。

私はそれがそれよりも少し複雑であることを知っています;)

132
ChrisF

アプリの複雑さは、UIの複雑さに直接比例します。この理由により、週末にGoogleまたはTwitterを構築できるはずです。

114
JohnFx

すべてのプログラマーは数学が得意です。 :-)

95
David Cary

コンピューターをハッキングする10代の子供は、ベテランのプログラマーと同等(またはそれ以上)のスキルを持っています。

私の14歳の甥はコンピュータが上手で、芝生を刈るために彼に1時間あたり10ドルを支払っています。次のFaceBookを書くためになぜ6桁を支払う必要があるのですか?

95
JohnFx

リアルタイムは高速を意味します。

説明 "パケットはリアルタイムで処理する必要があります。"は価値がなく、邪悪な双子...答え "Xはどのくらいの速さで実行する必要がありますか?" "リアルタイム"は、おそらく価値がありません。 ..無知ではなく愚かな国境。

リアルタイムは、簡単に言えば、その関数Yは常にX時間かかり、偏差があれば重大なエラーを示すことを意味します。 Xの期間は「リアルタイム」を定義するものではなく、6マイクロ秒または6日間になる場合があります。 決定関数YがXをとる時間は、「リアルタイム」を定義します。リアルタイムシステムは、この定義により確定的です。

だからノックオフ..

69
Rusty

バグの多いコードを入力して、後でバグを見つけるためにコードを読むのに多くの時間を費やすのではなく、最初から正しく記述してみませんか?

:-) :-) :-) :-)

69
David Cary

大学に行ったことがないなら、あなたはその仕事に適していません

64
user2528

その時期尚早な最適化は、まったく最適化すべきではないことを意味します。他のデータベース設計の問題よりも時期尚早な最適化であるため、設計ではパフォーマンス(データベースシステムにとって重要)を誰も考慮したくなかったため、私はもっとひどく悪いデータベースを見てきました。ゴミ、既知のパフォーマンスキラーがあります。最初の選択肢としてそれらを使用しないでください。

別の神話、データベースをリファクタリングするのは難しすぎる。いいえ。ただし、設計フェーズでリファクタリングを効果的に行う方法を検討する必要があります。ところで、この厄介なデザインベースのパフォーマンスの問題を修正するために長く待つほど、修正するのが難しくなります。

別の悪い神話、データベース設計はOOP原則を反映する必要があります。いいえ、データベースはOOP原則ではありません。いくつかOOP物事は恐ろしいパフォーマンスの問題を引き起こし、他のものはデータベースの面でばかげた痛みです。

最後に、アプリケーションでデータの整合性を適用する必要があります。データベースはアプリケーションを超えて存続し、アプリケーションが置き換えられるとルールを失い、複数のアプリケーションがデータベースにアクセスするため、アプリケーションを経由しないものを修正するために直接クエリを実行する必要が生じることがよくあります。良いデータを持つデータベースでデータの整合性を強制することを拒否するデータベースを見たことがありません。

61
HLGEM

絶対的なベストプラクティスの神話的なソースがあること。

逸脱は正当化できません。

何かをベストプラクティスとして定義することを主張する文書に疑問を投げかけることはできません。

53
Bill

マーケティングでは、小さな機能を大量に追加する方が、1つではなく重い機能を追加するよりも作業が少ないと考えているようです。これはおそらく、「タスク切り替えにはオーバーヘッドがない」という誤解のより具体的なケースです。

51
Giel

そのコメントコードは不要です。または、「良いコードはコメントを必要としません」。コードの複雑なビットが何をしているかを説明する必要がある場合があります。さらに、コードのセクションにコメントを付けると、より効果的に読みやすくなります。

50
DisgruntledGoat

最悪の神話:長期間プログラミングをしている場合は、簡単にプロジェクトマネージャーになることができます。

そして、あなたが長い間プログラミングをしているなら、あなたはプロジェクトマネージャーになるべきです。

50
Namwar Rizvi

プロジェクトでJava、C#、およびC++以外のものを使用すると、それをサポートするプログラマーが見つかりません。

50
P Shved

Javaは、さまざまなクラスを持つ単なるC++です。

42
Gordon
33
TheLQ

おそらく、私がこれまでに見た中で最も危険なのは、すぐに受け入れられるため、コードをすばやく記述できることは優れているため、特定の言語で[ここに機能を挿入]をすばやくコーディングできるほど、言語は優れているということですです。

maintainコードは作成よりもはるかに多くの作業を行うため、これは時期尚早の最適化の深刻な例です。つまり、すばやく簡単に記述できるコードよりも、読みやすく、理解しやすく、デバッグしやすいコードを記述することの方がはるかに重要であり、読みやすいコードを容易にすることは、言語品質のはるかに有用な測定です。

33
Mason Wheeler

プログラマーとして、最新のハードウェアトレンド、オーバークロッキング、ケースMODなどに関するすべてを知っていることになります。

31
setzamora

ソフトウェア開発プロセスに製造レッスンを適用できます。

31
Mike King

プログラマーが行うことは非常に難しい/不可能であると言うとき、人事部は彼らが怠惰でやる気がないと考えています

30
koos303

私のビジネスにはオープンソースプログラムが必要です。あなたはそれをダウンロードして私の要件に微調整することはできませんか?.

28
Tim Murphy

会話の途中で、バイナリまたは数学記号を使用して直接プログラミングしていると彼らが実際に考えていることを理解するためだけにプログラムするのはどういうことかについて、複数の人に尋ねてきました。

その神話を払拭したいのかわかりませんが、とてもスマートに見えます!

27
JohnFx

最大の誤解は、コードを読み、理解するよりも、簡単にコードを書き込めることの方が重要だということです。

26

プログラミングは、組立ラインの作業と同じです。あなたは一定の期間(たぶん同僚と)製品に取り組んでおり、最後にそれを出荷します。レンガの家を建てるように。

反対:プログラミングには多くの創造性と計画が含まれています。アートです。メイソンのように、プログラマーもレンガを形作ることと大聖堂全体を計画することの違いを知っています。

24
Josua Schmid

プログラムをC++に移植すると、自動的に実行が速くなります。

24
JohnFx

何らかのビジュアルデザイナを備えたプログラミング環境であれば、ビジネスユーザーはプログラムを "作成"でき、実際のプログラマは必要ありません。

21
Jesse C. Slicer

OOPの再利用。これは、プログラミングで販売される最大の誤りです。

20
clrod

構文を学ぶことは難しい部分です。

19
palto

私が明らかにしたい2つの神話。私の友人の多くは、JavaとJavaScriptが完全に異なることを理解していません。プログラマー以外の多くのプログラマーは、複数の言語があることを理解していません。私の友人の1人ちょうどプログラミングに入り始めて、私からいくつかの助けが必要でした。

それらの両方は私にとってたくさん出てきます。

15
Doug

「1」以外の優先度を割り当てると、タスクが実行されることはありません。

マネージャーにバグ追跡ツールを優先度1a、1b、1c、1d、1eでカスタマイズするよう依頼して、優先度1のバリエーションとしてすべてを割り当てられるようにしましたが、作業を整理することができました。

はい、「優先度1」の問題はすべて解決しました。しかし、優先度2〜5の問題に進む前に、マネージャーはこれらの問題の優先度を5つの優先度1レベルに再割り当てさせました。

(私はこの神話が特定のプログラミングではないことを理解していますが、これはこのスレッドの他のいくつかの回答にも当てはまります。)

15
Bill Karwin

入力したコードをコンピューターが理解できる限り、それで問題ありません。したがって、コメントを入力し、2文字を超える変数名を使用すると、時間の無駄になります。 :-(

13
David Cary

キーボードのフォームはプログラミング能力に関連しています。真剣に、私の高校の先生の一人が私に言った、「あなたがすぐにタイプすることができないなら、あなたはすぐにコードを書くことができない」。 「筆記体で書かないとグレート・アメリカン・ノベルしか書けないと言っているようなものです」と私は答えた。

12
quanticle

典型的なプログラマーは:

  • 午前11時以降に仕事に来る
  • マウンテンデューしか飲まない
  • インド料理や寿司が大好き
  • 選択により一人暮らし(両親と同居、または地下室)
  • 午前3時までビデオゲームをプレイする
12
Kelly S. French

ハンガリー語の表記は、変数名の前に、保持するデータの種類(int xcTextfield = getTextfield()。coord.x;など)ではなく、型(int iArraylength = 5;など)を付けることだけを意味します。

"Systems Hungarian notation"!= "Apps Hungarian notation"

10
Zaz

バグのないソフトウェア。後で私はすべてのプログラムがまだバグで実行され、全体のプレーは顧客の要件を達成することであることがわかりました。

10
Gopi

だれでもOOP(C#、C++、Java)言語で記述したコードはすべて、自動的にオブジェクト指向で「再利用可能」になります。

継承以外のパターンを持たない(数えることもない)アーキテクチャで1000行のコードブロックまたはクラスを再利用するように求められたのは、一度だけではありませんでした。どうやら、コピー貼り付けも、OO言語とOOP自体の違いを知らない人にとっては、優れたコード再利用と見なされます。

頻繁に発生するお気に入りのTDWTF: Code-Refuse

9
Jonn

そのWebアプリは、「7x24」まで拡大できます。

どんなダウンタイムが許されているかビジネスマンに尋ねてください、そして彼らは常に100%のアップタイムを主張します。週に1分のダウンタイムは依然として99.99%であり、主要なユーティリティよりも小規模な組織ではほとんど達成できないことに注意してください。

9
bmb

C/C++で記述されたすべてのプログラムは、Java/C#の同等のプログラムよりも高速に実行されます。

7

単一の「最良の」ツール/ソリューション/問題/質問への回答があること

7
Murph

最大の神話は、それが簡単であるということです。

7
Fortyrunner

マネージャーになったプログラマはこう言っています:

"3週間?!過去にコーディングしましたが、hardどうやってできますか?"

6
Arcturus

その任意の修士号1つのプログラミングコースで、ソフトウェア開発者として雇うのに十分です。

6
FeatureCreep

あなたはプログラマーなので、コピー機を修理する方法を知っています。

6
Jeff Siver

どの間違った考えが長い間広まっている

プログラマーの間では、パフォーマンスの問題を見つける方法について非常に広く信じられています。それはそれらを見つけるためには、それらを測定する必要がありますです。

最も単純な反例は、(望ましくない)無限ループです。完全に不要なことをするのに100%の時間がかかります。

どのように問題を見つけますか?デバッガーの下で取得し、一時停止、停止、または中断します。次に、ループがどこかにあることがわかっているので、スタックを確認します。 あなたはそれを行為に巻き込みました。あなたはそれを測定しましたか?それともそれを見つけますか?

それが無限ループではなく、必要だと思うよりも時間がかかるだけだとします。不要な作業が100%未満、たとえば90%、50%、または20%であるとします。それは同じ考えです。一時停止した場合、その割合は、行為に巻き込まれる可能性です。 (それをキャッチするためにパーセントが何であるかを知る必要はありません。)

念のため、数回一時停止することができます。それが何かを実行しているのを見るとすぐに、twoのサンプルで、より高速なものに置き換えることができ、それを修正して、Niceスピードアップを実現できます。それだけでなく、他の問題を見つけやすくしました。時間が短くなり、問題の割合が大きくなるからです。これは、コードが最適に非常に近くなるまで「スノーボール」することができます。

もちろん、問題を測定するためにwantしたい場合は、さらにサンプルを取得しますが、それを見つけるための前提条件ではありません。

人々は、うまくいけば、これがサンプリングプロファイラーが行うことですが、それをよりうまく行うと私に言います。多くの人が自分で見るよりもむしろ問題を議論したいと思います。

4
Mike Dunlavey

マネージャであるということは、コーダであるよりも優れています。マネージャーであることは退屈です。純粋な管理を始めた人は、そもそもプログラミングを好きになったことがありません。

4
zhenka

コンピュータとソフトウェアはそれ自体で作業プロセスを改善します。

4
aasc

プログラマの間で:そのDelphiは死んでいるか、瀕死であるか、生命維持のためです。

3
Peter Turner

マネージャーが開発者が書いているコードについてジャッキスクワットを知っていること。

3
Mike Mooney

C/C++と呼ばれる言語があります

または、言語が非常に近いため、スキルを交換できます。

3
Martin York

そのソフトウェアの作成は、実際にはコードの作成に関するものです。

2
Craig Norton

多くの人々は、JavaScriptはC++に似ていると考えがちで、実際にはプロトタイプ継承を使用していることを理解していません。

1
diadem

そのプログラミング言語は常に変化しています。

これはずっと前のことかもしれません...
しかし、最近の変更はほとんどが既存のコードを壊さないようにする追加機能です。

1
Tamara Wijsman

なぜプログラマーはバグを書くことを主張するのですか? (バグ報告を正しく行うことができないマーケティング+テスターの人からのもの)。

1
Dorin Lazăr
  • OOは品質を意味します。
  • OOアプローチは正しいアプローチです。
  • プログラマーの仕事はコードを書くことです。
  • その言語は重要です。
0
Fredy

全体hollywood mentality(より良い名前がないため)映画/テレビシリーズのプログラマーが発言するときはいつでも、彼は必要なすべてのテクノロジーを明確にする必要があります(I PHPフロントエンドとMySQLバックエンド!!! 11)...が必要です...そして、それ以上意味のないいくつかのもちろんです。

もし私がこのように話をするなら、私は多分真面目にキックされるでしょう。

0

英語(または母国語)を使用して問題を説明する:

問題を示すコードのコンパイル可能な例を提供するよりも便利です。

0
Martin York