Wissen, wie die Dinge funktionieren, wie die virtuelle Maschine funktioniert und wie sie auf Ihrer Plattform funktioniert oder wie bestimmte C++ - Konstrukte in Assembly umgewandelt werden, macht Sie immer zu einem besseren Programmierer, weil Sie verstehen, warum Dinge so sein sollten so gemacht wie sie sind.
Sie müssen Dinge wie Speicher verstehen, um zu wissen, was Cache-Misses sind und warum diese Ihr Programm beeinflussen könnten. Sie sollten wissen, wie bestimmte Dinge implementiert werden, auch wenn Sie nur eine Schnittstelle oder einen High-Level-Weg verwenden, um zu erreichen. Wenn Sie wissen, wie es funktioniert, werden Sie sicher sein, dass Sie es auf die beste Weise tun.
Für die Paketarbeit müssen Sie verstehen, wie Daten auf Plattformen gespeichert werden und wie das Senden über das Netzwerk an eine andere Plattform das Lesen der Daten ändern kann (Endian-Ness).
Ihr Compiler wird die Plattform, auf der Sie kompilieren, am besten nutzen. Solange Sie sich an Standards halten und gut programmieren, können Sie die meisten Dinge ignorieren und annehmen, dass der Compiler das Beste herauspeitscht.
Also kurz gesagt, nein. Sie müssen nicht die Low-Level-Zeug wissen, aber es nie tut weh zu wissen.
Kennen Sie überhaupt den Sinn von Sprachen wie Java? Es läuft praktisch unverändert auf allen unterstützten Plattformen ohne Programmänderungen. –
Der Vergleich von Java mit C++ in Bezug auf die Plattformunabhängigkeit zeigt ein mangelndes Verständnis für die Vor- und Nachteile der genannten Sprachen/Plattformen. –
Die genannten Sprachen sind nur Beispiele! Ich vergleiche oder kritisiere nicht! – g06lin