Sollte man sich mit der Rechnerarchitektur und mit den Zahlensystemen auskennen?

vram78

Lieutenant
Registriert
Dez. 2015
Beiträge
712
Hallo,

Bin ein Anfänger in der Programmierung und hätte da ein paar Fragen:


Muss man sich beispielsweise mit dem Hexadezimalsystem und Binärsystem auskennen? Und wie sieht es mit der Rechnerarchitektur aus? (Volladdierer, Halbaddierer etc.)

Da gab es noch einige Dinge, wie z.B. : Multithreading, Polling, Multiplexing, Asynchrone Ein - und Ausgabe



Muss man die erwähnten Dinge erlernen, um richtig programmieren zu können? Oder reicht es auch einfach, wenn man sich mit der Programmierung an sich beschäftigt?






MFG
 
Für einen Anfänger reicht ein Texteditor. Am wichtigsten ist es, zuerst die Grundlagen wie Variablen, Schleifen und If-Bedingungen zu kennen. Alles andere kommt später.
Zuerst sollte man sich was für Anfänger aussuchen, z. B. C und etwas Literatur mit Beispielen besorgen.
 
Das hängt ein bisschen davon ab was du erreichen möchtest. Möchtest du etwas in die Richtung studieren oder generell einen Job in diesem Bereich ausführen? Oder aber möchtest du einfach als Hobby hier und da ein wenig an Code rum schreiben?
Im Informatikstudium z.B. werden (je nach Fachrichtung) diese Dinge sowieso gelehrt, gerade ein Verständnis des Binärsystems ist wichtig.
Ein sehr benutzerfreundliche Programmiersprache wie Java z.B. braucht solche Hintergrundkenntnisse eigentlich nicht, kommt dann auch immer ein wenig dabei an wie anspruchsvoll dein Code ist.
 
Wenn man sich mit sowas beschäftigt, schadet es finde ich auch nicht, wenn man sich zumindest grundsätzlich über das Binärsystem usw. informiert. Ist ja auch nicht allzu kompliziert.
 
Ist, wie bereits vor mir gesagt wurde, abhaengig davon, was du machen moechtest.
Wenn du eher technische Informatik machen moechtest, Mikrocontroller und eingebettete Systeme programmieren moechtest, wirst du das wohl brauchen.
Moechtest du groessere Software, die nicht so systemnah arbeitet, schreiben, dann brauchst du das genannte mit Ausnahme von Multithreading nicht unbedingt. Kommt dann aber eben auch wieder darauf an, was fuer eine Software genau du entwickelst.

Du kannst aber auch schon viele gute und sinnvolle Programme ohne all diese Dinge machen. Ohne hier die ewig alte Diskussion starten zu wollen, wuerde ich fuer nen leichten und frustfreien Programmiereinstieg die Sprache Python empfehlen.
 
Jedes mal wen ich etwas mit dem Hexadezimalsystem oder Binärsystem zu tuen habe geht es mehr um reverse engineering oder das hacken/manipulieren von bereits vorhandener Software und nicht um das erstellen von neuer.
Also falls das die richtung ist die du einschlagen willst wird es sicher nicht schaden :)
 
vram78 schrieb:
Muss man die erwähnten Dinge erlernen, um richtig programmieren zu können?

Wie bereits gesagt kommt es bei der Beantwortung dieser Frage darauf an, was Du mit "richtig programmieren" meinst. Hier mal meine Einschätzung als jemand, der viele Jahre Erfahrung in der Anwendungsentwicklung hat. Wie aber auch bereits erwähnt wurde, sieht das beispielsweise ein Entwickler für Embedded-Systeme wieder ganz anders.

Hexadezimalsystem: Ja.
Binärsystem: Ja.
Volladdierer: Eher nein. Ist wichtig für theoretische Informatik und Elektronik.
Halbaddierer: Eher nein. Ist wichtig für theoretische Informatik und Elektronik.
Multithreading: Eher ja. Als Anwendungsentwickler muss man zumindest wissen, wann man Gefahr läuft, etwa in eine Race Condition zu rennen. Bisschen theoretischer Hintergrund kann nicht schaden, auch wenn man Parallelisierung in der Praxis dann so komfortabel wie mit OpenMP umsetzt.
Polling: Eher nein, ist aber manchmal praktisch, sich dort ein bisschen auszukennen. Allerdings ist das meist betriebsystemspezifisch. Statt nach Polling solltest Du hier eher fragen, ob es wichtig ist, sich mit dem auszukennen, was hinter den Kulissen des Betriebssystems so abgeht. Hier lautet die Antwort definitiv ja.
Multiplexing: Nein, wieder nur für Elektroniker und Embedded-Entwickler.
Asynchrone Ein- und Ausgabe: Eher ja. Auch wenn man keine Datenbankprogrammierung machen möchte, kann das in vielen Dingen hilfreich sein. Außerdem ist Warteschlangenoptimierung ein faszinierendes Gebiet.
 
Zuletzt bearbeitet:
Danke für die Antwort :)

z.B. wenn man später mal Softwareentwickler oder Spieleentwickler werden will.
 
Zurück
Oben