Ich wurde kontaktiert, um einige Arbeiten zur Fernsteuerung von LED-Anzeigen über TCP / IP auszuführen, aber meine Erfahrung und Vorbereitung sind hauptsächlich Programmiersprachen auf hohem Niveau. Ich sagte das zu der Person, die mich wegen der Arbeit kontaktierte und er sagte mir:
"Wenn Sie sich Programmierer nennen, sollten Sie all diese Dinge wissen"
Sollte ein Programmierer die Details der Low-Level-Programmierung wirklich kennen? Oder kann ich es als Black-Box-Konzept behandeln, als theoretisches Wissen, aber nicht unbedingt als Umsetzung von Low-Level-Sprachlösungen, wenn ich bedenke, dass Low-Level-Programmierung nicht mein Fachwissen ist?
Antworten:
Ihr Kontakt weiß nicht, wovon er spricht. Es gibt viele Sprachen, Methoden, Technologien usw., so dass eine einzelne Person möglicherweise nicht alle erforderlichen Details genau kennen kann. Was Sie als Programmierer wissen müssen, ist, wie Sie lernen, was Sie brauchen, um die Arbeit zu erledigen, und wie Sie Probleme lösen können, um zu einer Lösung zu gelangen, unabhängig davon, welche Programmiersprache Sie verwenden müssen.
Zugeben, was Sie nicht wissen, ist in Ordnung, aber Sie können auch nachweisen, dass Sie in der Lage sind, genug zu lernen, um das gewünschte Ergebnis zu erzielen, unabhängig davon, womit Sie konfrontiert sind. Gute Programmierer sind einfach gute Problemlöser, die ihre Lösungen in verschiedenen Programmiersprachen implementieren können.
Ich würde nicht für jemanden arbeiten, der die Einstellung hat, die Ihr Kontakt hat.
quelle
Ich stimme dieser Aussage überhaupt nicht zu. Das wäre so, als würde man einen Koch bitten, etwas zu kochen, einen Fahrer, ein Kraftfahrzeug zu bedienen, oder einen Arzt, um alle Krankheiten zu kennen, was eine lächerliche Annahme ist.
Um ein Programmierer zu sein, muss man wissen, wie man Schreibsoftware in einer Sprache gibt, um eine Aufgabe automatisiert ausführen zu können. Die Sprachen und Aufgaben variieren von Programmierer zu Programmierer, so wie die Gerichte, die ein Koch zubereiten kann, der Fahrer zu bedienen weiß oder der Arzt zu diagnostizieren weiß, je nachdem, wie spezialisiert man in den einzelnen Berufen sein möchte.
quelle
Gesprochen wie eine Person, die in ihrem Leben nie eine Codezeile geschrieben hat. Dies ist die gleiche Person, die das Gefühl hat, dass Sie dies in der Hälfte der von Ihnen angegebenen Zeit tun sollten. Streite nicht mit einem Idioten.
Sie zeigten viel mehr Wissen und Charakter, indem Sie Ihre Grenzen kannten. Diese Person spricht über Dinge, die sie nicht kennt.
Ich denke, jeder Schreiner sollte wissen, wie man ein verziertes Möbelstück schnitzt. Wenn eine Pilotin ein Flugzeug fliegen kann, kann sie alle fliegen.
quelle
Die meisten CS-Programme in der Schule vermitteln Ihnen Kenntnisse in der Programmierung auf niedrigem Niveau. Ich hatte zum Beispiel Assembler-Klassen, die den 8088-Prozessor verwendeten (OK ... das datiert mich ein bisschen). Ich denke jedoch, dass viele Handelsschulen heutzutage dieses Wissen umgehen - melden Sie sich mit einem Kommentar, wenn das nicht stimmt.
Unterm Strich ist es immer gut zu wissen, was auf Chipebene passiert - außerdem landen Ihre Hochsprachen irgendwann dort, wenn sie ausgeführt werden.
Es ist jedoch ignorant, sich von jemandem sagen zu lassen, dass Sie kein Programmierer sind, weil Sie derzeit nicht wissen, dass es sich um Low-Level-Programmierung handelt. Wenn Sie diese Fähigkeiten für das aktuelle Projekt benötigen, sollten Sie über genügend Intelligenz oder Motivation verfügen, um die von Ihnen benötigten Fähigkeiten zu erlernen und sie dann anzuwenden.
Ich müsste ernsthaft in Erwägung ziehen, dieses Projekt nicht zu übernehmen, wenn der Kunde bereits so mit Ihnen spricht - Sie wissen nie, wohin das führen könnte.
quelle
Ich verachte es wirklich, wenn Leute sagen: "Sie müssen X kennen, um sich selbst Programmierer zu nennen." "Ja wirklich?" Nun, einige Leute arbeiten den ganzen Tag an COBOL und LIEBEN ES. Sie sind vielleicht so gut darin und in ihrer Problemdomäne geworden, dass wir alle neben ihnen so tun, als ob wir etwas vorgeben würden.
Im Ernst, geben Sie den Menschen Respekt für die Lösung der Probleme, mit denen sie konfrontiert sind, auf coole und interessante Weise. Verstehen Sie, dass großartige Problemlösungen aus einer Vielzahl von Hintergründen stammen. Nicht, ob sie eine vermeintliche "Checkliste" von Fähigkeiten gemeistert haben, die jeder wissen sollte, damit sie alle gleich denken können. Das ist genau das Gegenteil von dem, was wir wollen. Jede "Checkliste" ist und sollte anders sein. Je unterschiedlicher, desto besser. Programmierung ist heutzutage eine Problemlösung. Respektiere diejenigen, die es gut machen und verstehe, dass jeder mit unterschiedlichen Stärken an den Tisch kommt. Nur so können wir uns gegenseitig dabei helfen, effektiv als Team zu arbeiten. Nur weil das Kennen von "C" oder etwas wirklich dazu beiträgt, dass dieser eine Typ großartig ist, heißt das nicht, dass du es nicht tust.
quelle
Ich schlage vor, dass Sie dies lesen:
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Wenn Sie eine Abstraktion verwenden, hat die niedrigere Ebene immer einen Einfluss auf das, was Sie tun. Dies kann die Leistung, die Fehlerursache, Sicherheitsgründe usw. sein.
Also definitiv, sollten Sie jetzt über diese Sachen. Nicht gerade ein Spezialist für Asm- oder CPU-Architektur. Aber genug zu wissen, um sich selbst zu dokumentieren, wenn Sie mehr wissen müssen, ist in der Tat ein Muss.
quelle
Sein Argument ist ein gutes Beispiel für den logischen Irrtum No True Scotsman .
Der Unterschied zwischen Low- und High-Level-Programmierung liegt jedoch nicht in der Sprache, sondern in der Domäne des Anwendungswissens. Das Zuweisen eines Werts zu true kann das Einschalten einer LED oder das Aktivieren von Mausklickereignissen in einem Widget bedeuten. Die Sprache ist mir egal.
Schauen Sie sich zum Beispiel diese Bibliothek an, um mit einer LED-Matrix auf einem Arduino zu arbeiten. Es ist hier keine Raketenwissenschaft, und wirklich jeder Programmierer würde es mit ein wenig Mühe verstehen können, wenn er kein "Low-Level-Oh nein!" mentale Blockade.
quelle
Jede Programmiersprache hat ihre eigenen Vor- und Nachteile. Wenn Sie ein paar davon lernen, erhalten Sie eine gute Vorstellung davon, was Sie bei einem bestimmten Projekt verwenden und wie Sie es effektiv einsetzen können.
Als Programmierer können Sie sich auf einen bestimmten PL spezialisieren und ihn als einziges Werkzeug zur Lösung eines Problems verwenden. Sie können auch eine Menge PL kennen, sich aber auf nichts und noch viel mehr zwischen diesen Extremen spezialisieren.
Vielleicht Person, die Ihnen sagte, dass "Phrase" frustriert ist, vielleicht waren Sie nicht die einzige Kontaktperson, mit der er gesprochen hat.
Das Problem zu kennen und zu wissen, welche Fähigkeiten erforderlich sind, um das Problem effektiv lösen zu können, ist eine gute Eigenschaft eines Programmierers. Leider können Sie in Ihrem Fall, da Sie nicht über die erforderlichen Fähigkeiten verfügen, Ihre Kontaktperson an einen anderen Programmierer mit den erforderlichen Fähigkeiten verweisen.
Prost,
Wardy
quelle
Das theoretische Wissen ist gut. Es ist sehr wichtig , die einfache Sprache bei Bedarf lernen zu können .
Aber wer kann schon alles über alles wissen, wenn man sich Programmierer nennt? Bevor sie sie überhaupt machen?
quelle
Ich werde neu formulieren
ZU
quelle