it-swarm-eu.dev

Was ist der absurdeste Mythos über Programmierprobleme?

Anders ausgedrückt ... Was ist das häufigste und frustrierendste Missverständnis bei der Programmierung, auf das Sie gestoßen sind?

Welche weit verbreiteten und langjährigen Mythen/Missverständnisse finden Sie für Programmierer schwer zu zerstreuen/zu korrigieren.

Bitte erklären Sie, warum dies ein Mythos ist.

101
Maniero

Da Sie ein Programmierer sind, wissen Sie, wie Sie den von Viren befallenen Computer von [person] reparieren können.

272
Neth

Eine häufige HR-Sache, die mich bei der Jobsuche verrückt macht: die implizite Annahme, dass alle Codierungsfähigkeiten sprachspezifisch sind und dass es kein Software-Engineering-Know-how gibt, das über Befehlssätze hinausgeht. Diese zehn Jahre Erfahrung in Java und weitere fünf Jahre in Perl bedeuten, dass Sie für ein Projekt, das beispielsweise C # verwendet, völlig nutzlos wären.

"Ja, es gibt eine Lernkurve. Aber ich habe härtere Übergänge gemacht als diese. Ich mache dir einen Deal, bezahle mir 80% für den ersten Monat und am Ende dieser Zeit, wenn ich nicht ... oh Warten Sie, wir führen dieses Gespräch nicht, weil Ihr HR-Affe meine Bewerbung einfach gelöscht hat. "

266
BlairHippo

Wenn Sie nicht tippen, arbeiten Sie nicht.

Ich glaube, dass Zombie-Blicke und Kaffeespaziergänge für Programmierer, die Dinge in ihren Köpfen organisieren, unerlässlich sind.

260
burnt_hand

dass Sie ein spätes Projekt beschleunigen können, indem Sie einfach mehr Leute darauf werfen.

158
chrmue

Diese Schreibsoftware ist einfach.

Wie sonst erklären Sie all diese Projekte, die über die Zeit und das Budget laufen, und die Leute (Politiker, Medien usw.) sind immer noch überrascht, und Kunden beschweren sich, wenn Sie ihnen sagen, dass ihre "kleine Website" (oder was auch immer) tatsächlich 6 dauert Monate zu entwickeln und mehrere tausend Dollar zu kosten (Pfund, Euro, [Währung der Wahl einfügen])

Bei unscharfen und sich ständig ändernden Anforderungen finde ich es manchmal erstaunlich, dass jede Software jemals fertig wird!

Ich weiß, dass es etwas komplizierter ist;)

132
ChrisF

Die Komplexität der App ist direkt proportional zur Komplexität der Benutzeroberfläche. Aufgrund dieser Überlegungen sollten Sie in der Lage sein, über ein Wochenende Google oder Twitter zu erstellen.

114
JohnFx

Alle Programmierer sind gut in Mathe. :-)

95
David Cary

Jedes Teenager-Kind, das mit Computern hackt, ist in seinen Fähigkeiten einem erfahrenen Programmierer gleichwertig (oder überlegen).

Mein 14-jähriger Neffe kann gut mit Computern umgehen und ich zahle ihm 10 Dollar pro Stunde, um meinen Rasen zu mähen. Warum sollte ich dir sechs Ziffern bezahlen, um das nächste FaceBook zu schreiben?

95
JohnFx

Das Echtzeit bedeutet schnell.

Angabe "Die Pakete müssen in Echtzeit verarbeitet werden." ist wertlos und der böse Zwilling ... antwortet "Wie schnell muss X passieren?" mit "Echtzeit" ist möglicherweise weniger als wertlos. .. eher dumm als unwissend.

Echtzeit bedeutet, dass diese Funktion Y einfach immer X Zeit in Anspruch nimmt und dass jede Abweichung auf einen schwerwiegenden Fehler hinweist. Die Dauer von X definiert nicht "Echtzeit", sondern kann sechs Mikrosekunden oder sechs Tage betragen. Dass Sie bestimmen Funktion Y X Zeit benötigen, definiert "Echtzeit". Echtzeitsysteme sind durch diese Definition deterministisch.

Also hör auf damit ..

69
Rusty

Warum schreibt ihr es nicht einfach gleich beim ersten Mal richtig, anstatt so viel Zeit damit zu verbringen, fehlerhaften Code einzugeben und später den Code zu lesen, um die Fehler zu finden?

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

69
David Cary

Wenn Sie nicht zur Universität gegangen sind, sind Sie für den Job nicht geeignet

64
user2528

Diese vorzeitige Optimierung bedeutet, dass Sie überhaupt nicht optimieren sollten. Ich habe schrecklich schlechte Datenbanken gesehen, weil niemand die Leistung (kritisch für jedes Datenbanksystem) im Design berücksichtigen wollte, da dies eine vorzeitige Optimierung war als jedes andere Problem beim Datenbankdesign. Quatsch, es gibt bekannte Leistungskiller, hör auf, sie als erste Wahl zu verwenden.

Ein weiterer Mythos: Es ist zu schwierig, die Datenbank umzugestalten. Nein, aber Sie müssen überlegen, wie Sie in der Entwurfsphase Refactoring durchführen, um dies effektiv durchzuführen. Übrigens: Je länger Sie auf die Behebung dieses lästigen designbasierten Leistungsproblems warten, desto schwieriger wird es, es zu beheben.

Ein weiterer schlechter Mythos, das Datenbankdesign, sollte OOP Prinzipien widerspiegeln. Nein, Datenbanken sind so konzipiert, dass sie mit Mengen arbeiten, die nicht OOP Prinzipien sind. Einige OOP Dinge verursachen schreckliche Leistungsprobleme, andere sind in Bezug auf die Datenbank nur albern.

Schließlich sollten Sie die Datenintegrität in der Anwendung erzwingen. Datenbanken halten an der Anwendung vorbei und verlieren die Regeln, wenn die Anwendung ersetzt wird. Mehrere Anwendungen greifen darauf zu, und häufig müssen direkte Abfragen ausgeführt werden, um Probleme zu beheben, die nicht durch die Anwendung gehen. Ich habe noch nie eine Datenbank gesehen, die sich weigert, die Datenintegrität in der Datenbank mit guten Daten durchzusetzen.

61
HLGEM

Dass es eine mythische Quelle für absolute Best Practices gibt.

Keine Abweichung kann jemals gerechtfertigt werden.

Kein Dokument, das behauptet, etwas als Best Practice zu definieren, kann jemals in Frage gestellt werden.

53
Bill

Die Tatsache, dass das Marketing zu glauben scheint, dass das Hinzufügen einer Menge kleiner Features weniger Arbeit bedeutet als das Hinzufügen eines einzelnen, aber ziemlich schweren Features. Dies ist wahrscheinlich ein spezifischerer Fall des Missverständnisses, dass "Task-Switching keinen Overhead hat".

51
Giel

Dieser Kommentarcode ist nicht erforderlich oder "guter Code benötigt keine Kommentare". Manchmal müssen Sie erklären, was ein komplexes Stück Code tut. Durch das Kommentieren von Codeabschnitten können Sie das Lesen viel effektiver überfliegen.

50
DisgruntledGoat

Der schlimmste Mythos: Wenn Sie lange programmieren, können Sie leicht ein Projektmanager sein.

Und dass Sie Projektmanager werden sollten, wenn Sie schon lange programmieren.

50
Namwar Rizvi

Wenn wir in unserem Projekt etwas anderes als Java, C # und C++ verwenden, werden wir keine Programmierer finden, die dies unterstützen.

50
P Shved

Java ist nur C++ mit verschiedenen Klassen.

42
Gordon
33
TheLQ

Das wahrscheinlich gefährlichste, das ich gesehen habe, weil es so schnell akzeptiert wird, ist, dass es gut ist, Code schnell schreiben zu können. Je schneller Sie [Funktion hier einfügen] in einer bestimmten Sprache codieren können, desto besser ist die Sprache ist.

Dies ist ein ernstes Beispiel für vorzeitige Optimierung, da viel mehr Arbeit in Wartung Code investiert wird als in dessen Erstellung. Dies bedeutet, dass es viel wichtiger ist, Code zu schreiben, der leicht zu lesen, zu verstehen und zu debuggen ist, als Code, der schnell zu schreiben ist, und dass das Ermöglichen von einfach zu lesendem Code eine viel nützlichere Messung der Sprachqualität ist.

33
Mason Wheeler

als Programmierer wissen Sie alles über die neuesten Hardwaretrends, Übertaktung, Case Mod usw. Freunde und Verwandte konsultieren Sie, wenn sie ihre Ausrüstung kaufen.

31
setzamora

Fertigungslektionen können auf den Softwareentwicklungsprozess angewendet werden.

31
Mike King

Wenn Programmierer sagen, es sei sehr schwer/einfach unmöglich, denkt die Personalabteilung, dass sie faul und unmotiviert sind

30
koos303

Es muss ein Open Source-Programm für mein Unternehmen geben. Kannst du es nicht einfach herunterladen und an meine Anforderungen anpassen?.

28
Tim Murphy

Ich wurde von mehr als einer Person gefragt, wie es ist, nur zu programmieren, um in der Mitte des Gesprächs zu erkennen, dass sie tatsächlich glauben, wir programmieren direkt in Binärform oder unter Verwendung mathematischer Symbole.

Ich weiß nicht, ob ich diesen Mythos zerstreuen will, er lässt mich wirklich schlau aussehen!

27
JohnFx

Ich denke, das größte Missverständnis ist, dass es wichtiger ist, den Code leicht aufschreiben zu können, als ihn lesen und verstehen zu können.

26

Die Programmierung ist wie die Arbeit am Fließband. Sie arbeiten für eine bestimmte Zeit an einem Produkt (möglicherweise mit Kollegen) und versenden es schließlich. Genau wie beim Bau eines Ziegelhauses.

Contra: Programmierung beinhaltet viel Kreativität und Planung. Es ist Kunst. Wie der Maurer kennt auch ein Programmierer den Unterschied zwischen der Formgebung eines Ziegelsteines und der Planung einer ganzen Kathedrale.

24
Josua Schmid

Durch das Portieren eines Programms nach C++ wird es automatisch schneller ausgeführt.

24
JohnFx

Jede Programmierumgebung mit einem visuellen Designer sorgt dafür, dass Geschäftsbenutzer das Programm "schreiben" können und keine tatsächlichen Programmierer benötigt werden.

21
Jesse C. Slicer

OOP-Wiederverwendung. Es ist der größte Irrtum, der in der Programmierung vermarktet wird.

20
clrod

Das Erlernen der Syntax ist der schwierige Teil.

19
palto

2 Mythen, die ich enthüllen möchte. Viele meiner Freunde verstehen das nicht Java und JavaScript sind völlig unterschiedlich, und viele Nicht-Programmierer, die ich kenne, verstehen nicht, dass es mehr als eine Sprache gibt. Einer meiner Freunde Ich habe gerade angefangen zu programmieren und brauchte Hilfe von mir. Natürlich wusste er nicht einmal, in welcher Sprache er arbeitete.

Die beiden kommen mir sehr nahe.

15
Doug

Das Zuweisen einer anderen Priorität als "1" bedeutet, dass die Aufgabe niemals ausgeführt wird.

Ich wurde von einem Manager gebeten, das Tool zur Fehlerverfolgung mit den Prioritäten 1a, 1b, 1c, 1d und 1e anzupassen, damit er alles als Variation der Priorität 1 zuweisen konnte, aber wir konnten die Arbeit trotzdem organisieren.

Und ja, ich habe alle "Priorität 1" -Probleme gelöst. Bevor ich jedoch zu den Themen übergehen konnte, die noch Priorität 2-5 hatten, ließ mich der Manager die Prioritäten dieser Themen den fünf Prioritätsstufen 1 zuordnen.

(Mir ist klar, dass dieser Mythos nicht spezifisch für die Programmierung ist, aber das gilt für mehrere andere Antworten in diesem Thread.)

15
Bill Karwin

Solange der Computer den von Ihnen eingegebenen Code versteht, ist das alles, was zählt. Daher ist es Zeitverschwendung, Kommentare einzugeben und Variablennamen zu verwenden, die länger als zwei Buchstaben sind. :-(

13
David Cary

Das Tastaturformular hängt mit der Programmierfähigkeit zusammen. Im Ernst, einer der Lehrer an meiner High School sagte mir: "Sie können nicht schnell codieren, wenn Sie nicht schnell tippen können." Meine Antwort war: "Das heißt, ich kann den Great American Novel nur schreiben, wenn ich es in Kursivschrift mache."

12
quanticle

Dass der prototypische Programmierer:

  • kommt nach 11 Uhr zur Arbeit
  • trinkt nichts als Gebirgstau
  • liebt indisches Essen oder Sushi
  • lebt allein nach Wahl (mit Eltern und/oder im Keller)
  • bleibt bis 3 Uhr morgens beim Spielen von Videospielen wach
12
Kelly S. French

Diese ungarische Notation bedeutet nur, dass Sie Variablennamen einen Typ voranstellen (wie int iArraylength = 5;) anstelle der Art der darin enthaltenen Daten (wie int xcTextfield = getTextfield (). Coord.x;).

"Systems Hungarian Notation"! = "Apps Hungarian Notation"

10
Zaz

Fehlerfreie Software. Später erfuhr ich, dass jedes Programm immer noch mit Bugs ausgeführt werden würde und es im gesamten Spiel darum ging, die Kundenanforderungen zu erfüllen.

10
Gopi

Dass jeder Code, der von irgendjemandem in einer OOP (C #, C++, Java) -Sprache geschrieben wurde, automatisch objektorientiert und "wiederverwendbar" ist.

Es war nicht nur ein einziges Mal, dass ich gebeten wurde, einen Codeblock mit tausend Zeilen oder eine Klasse in einer Architektur wiederzuverwenden, die außer der Vererbung keine Muster hatte (was nicht einmal zählt). Anscheinend gilt das Einfügen von Kopien auch als gute Wiederverwendung von Code für alle, die den Unterschied zwischen einer OO-Sprache und OOP selbst) nicht kennen.

Ein beliebter TDWTF, der immer wieder vorkommt: Code-Refuse

9
Jonn

Diese Web-Apps können "7x24" sein.

Fragen Sie jeden Unternehmer, welche Ausfallzeiten zulässig sind, und er besteht immer auf einer 100% igen Verfügbarkeit. Bedenken Sie jedoch, dass eine Ausfallzeit von 1 Minute pro Woche immer noch 99,99% beträgt und für ein Unternehmen, das kleiner als ein großes Versorgungsunternehmen ist, nahezu unerreichbar ist.

9
bmb

Alle in C/C++ geschriebenen Programme werden schneller ausgeführt als Java/C # -äquivalente Programme.

7

Dass es ein einziges "bestes" Werkzeug/eine Lösung/eine Antwort auf jedes Problem/jede Frage gibt

7
Murph

Der größte Mythos ist, dass es einfach ist.

7
Fortyrunner

Programmierer, die Manager wurden und sagten:

"Drei Wochen?! Ich habe in der Vergangenheit codiert, wie schwer kann es sein?"

6
Arcturus

Dass jeder M.Sc. mit einem Programmierkurs reicht es aus, als Softwareentwickler eingestellt zu werden.

6
FeatureCreep

Da Sie Programmierer sind, wissen Sie, wie Sie den Kopierer reparieren.

6
Jeff Siver

Welche falschen Ideen sind seit langem verbreitet

Programmierer sind weit verbreitet davon überzeugt, wie Leistungsprobleme zu finden sind. Es ist das m sie zu finden, muss man sie messen.

Das einfachste Gegenbeispiel ist eine (unerwünschte) Endlosschleife. Es dauert 100% der Zeit, Dinge zu tun, die völlig unnötig sind.

Wie finden Sie das Problem? Sie erhalten es unter einem Debugger und halten es an, halten an oder unterbrechen es. Dann schauen Sie sich den Stapel an, weil Sie wissen, dass sich die Schleife irgendwo darauf befindet. Sie haben es auf frischer Tat ertappt. Haben Sie es gemessen? oder einfach nur finden?

Angenommen, es ist keine Endlosschleife, es dauert nur länger, als Sie für notwendig halten. Angenommen, die unnötige Arbeit beträgt weniger als 100%, z. B. 90%, 50% oder 20%. Es ist die gleiche Idee. Wenn Sie es anhalten, ist dieser Prozentsatz die Chance, dass Sie es auf frischer Tat ertappen. (Sie müssen nicht wissen, wie viel Prozent es sind, um es zu fangen.)

Nur um sicherzugehen, können Sie es mehrmals anhalten. Sobald Sie sehen, dass es etwas tut, das Sie an nur zwei Beispielen durch etwas schnelleres ersetzen können, können Sie es für eine nette Beschleunigung reparieren. Darüber hinaus haben Sie es einfacher gemacht, andere Probleme zu finden, da die Zeit kürzer ist und sie einen größeren Prozentsatz beanspruchen. Dies kann "Schneeball", bis der Code sehr nahe am Optimum ist.

Wenn Sie möchten, dass das Problem misst, nehmen Sie einfach mehr Proben, aber das ist keine Voraussetzung, um es zu finden.

Die Leute sagen mir auf Wunsch, dass dies das ist, was Sampling-Profiler tun, aber besser machen. Viele würden das Thema lieber diskutieren, als sich selbst davon zu überzeugen.

4
Mike Dunlavey

Manager zu sein ist besser als Programmierer zu sein. Manager zu sein ist langweilig. Jeder, der sich mit reinem Management befasst hat, hat das Programmieren von Anfang an nie geliebt.

4
zhenka

Computer und Software verbessern den Arbeitsprozess von selbst.

4
aasc

Unter Programmierern: Dass Delphi tot ist, stirbt oder lebenserhaltend ist.

3
Peter Turner

Dass ein Manager Jack-Squat über den Code kennt, den seine Entwickler schreiben.

3
Mike Mooney

Es gibt eine Sprache namens C/C++

Oder dass die Sprachen so nah beieinander liegen, dass die Fähigkeiten austauschbar sind.

3
Martin York

Bei dieser Schreibsoftware geht es eigentlich darum, Code zu schreiben.

2
Craig Norton

Viele Leute neigen dazu zu denken, dass JavaScript C++ ähnlich ist und verstehen nicht, dass es tatsächlich die Vererbung von Prototypen verwendet.

1
diadem

Diese Programmiersprachen ändern sich ständig.

Dies könnte vor langer Zeit in der Vergangenheit gewesen sein ...
Aber heutzutage sind die Änderungen meistens zusätzliche Funktionen, die versuchen, vorhandenen Code nicht zu beschädigen.

1
Tamara Wijsman

Warum bestehen Programmierer darauf, Fehler zu schreiben? (Ich komme von einer Marketing + Tester Person, die niemals einen Fehlerbericht richtig machen kann).

1
Dorin Lazăr
  • Das OO bedeutet Qualität.
  • Dass der Ansatz OO) der richtige Ansatz ist.
  • Dass es die Aufgabe eines Programmierers ist, Code zu schreiben.
  • Diese Sprache ist wichtig.
0
Fredy

Das Ganze Hollywood-Mentalität (mangels eines besseren Namens), dass ein Programmierer in einer Film-/Fernsehserie, wenn er spricht, jede Technologie artikulieren muss, die er braucht ( I. brauche ein PHP Front-End und ein MySQL-Back-End !!! 11 ) ... und noch ein paar mehr, die bei keinen Sinn ergeben alles natürlich.

Wenn ich so reden würde, würde ich wahrscheinlich in die Nüsse treten.

0

Verwenden Sie Englisch (oder Ihre Muttersprache), um ein Problem zu beschreiben:

ist nützlicher als ein kompilierbares Beispiel für den Code, der das Problem veranschaulicht.

0
Martin York