Welche Komponenten sind die beaten für das Programmieren?

8 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Für ein Informatikstudium braucht man Programmieren so wenig wie Rechnen für ein Mathematikstudium. Für das, was man da wirklich benötigt, reicht ein 30 Jahre alter PC mehr als aus.

Es sei denn, der Lehrstuhl kommt auf den Gedanken, Java wäre eine gute Idee, am besten noch in Verbindung mit Eclipse - das ist notorisch eine Schnecke im ersten Gang. (Andere Entwicklungsumgebungen kenne ich jetzt nicht aus eigener Erfahrung. Könnte ein klein wenig besser sein. - Es gibt aber Möglichkeiten, Eclipse erheblich zu beschleunigen.) Dann ist ein möglichst schneller Prozessor dringend zu empfehlen, ebenso ein paar GiB an RAM - aber 8 sollten ausreichen. Mit deinem System bist du also gut dabei, zumal dein Prozessor im "Turbo-Boost-Modus" (nur 1 Kern aktiv, der aber möglichst hoch getaktet) schon ziemlich am physikalischen Limit (für nicht gerade stickstoffgekühlte) Prozessoren bist.

Wichtig ist v. A. die Software - insbesondere eine bequeme (und nicht allzu träge) Entwicklungsumgebung und ein guter Debugger.

Ich würde auch ein Mobilgerät (Notebook) in Erwägung ziehen, um auch unterwegs zwischendurch schnell was ausprobieren zu können.

Woher ich das weiß:Berufserfahrung – Software-Entwickler

Selbst auf einem Microcontroller mit 32 KB Flash, 64 KB RAM, mit 50 MHz getaktet, ohne Grafik, läßt sich prima programmieren. Also nicht bloss "Kompiliertes Programm da drauf laden und ausführen", sondern "optimierenden native code compiler auf dem controller laufen lassen, dort Quellcode übersetzen lassen und ausführen". Mit interaktivem System auf dem laufend, also quasi auch Betriebssystem und shell.

Im Prinzip auch Editor, aber oft wird der vom PC bekannte und dort verwendete Editor vorgezogen gegenüber einem auf dem target laufenden und bedienten.

Programmieren ist weniger eine Frage der Leistungsfähigkeit des Gerätes, sondern eher eine der Leistungsfähigkeit des biologischen Hirns von demjenigen, der dieser Tätigkeit nachgeht.

Bei sehr großen Programmen (Hunderttausende bzw Millionen von Zeilen) beginnt die Leistungsfähigleit des Gerätes eine Rolle zu spielen, da Abarbeitungsgeschwindigkeit von Compilern nicht unendlich hoch ist.


Streicher356 
Fragesteller
 26.07.2022, 11:49

achsooo haha. und ich dachte schon, ich müsste mir hier einen halben NASA pc zusammen bauen. Vielen Dank!

0
Bushmills145  26.07.2022, 11:53
@Streicher356

NASA computer ... Der originale AGC hatte bissel mehr als 12000 Speicherplätze von ich glaub jeweils 16 bit. Aber der compiler für dessen Programme lief da vermutlich nicht drauf.

Der genannte native code compiler auf Microcontrollern ist aber auch nicht üblich für solche Geräte. Hat tatsächlich Bezug auf Luftfahrt und davor auch Raumfahrt, Astronomie. Konkret denke ich jetzt an mecrisp (bzw -stellaris)

0
Streicher356 
Fragesteller
 26.07.2022, 12:00
@Bushmills145

da ist bloß ein Problem: ich habe sogzt wie keine Ahnung, was genau du sagst. Du benutzt eher die Fachsprache, was für mich eher etwas komplizierter verständlich ist.

0
Bushmills145  26.07.2022, 12:05
@Streicher356

Kein Programme-Schreiber ist mit der Kenntnis, wie das geht, geboren worden.

AGC ist der Apollo Guidance Computer. Das Steuerungsmodul, womit z.B. auch zum Mond geflogen wurde.

Microcontroller sind kleine, sparsame und vergleichsweise leistungsschwache Computer, meist alles, was zum Laufen nötig ist, in einem einzigen Chip enthaltend.

"native code compiler" ist ein Übersetzer von Quellcode (das ist, was der Programmierer schreibt) in eine Form, die vom Computer direkt - also ohne weitere zusätzliche Übersetzungsschritte - ausführbar ist.

Luftfahrt ist ein Sammelbegriff für Technologien und Geräte, welche gesteuerte und kontrollierte Bewegung durch Atmosphäre ermöglichen :)

1
Streicher356 
Fragesteller
 26.07.2022, 12:47
@Bushmills145

vielen dank. Das was ich vorher wusste ist das mit Luftfahrt. Bei den anderen Punkten war es sehr hilfreich. Danke

0
Bushmills145  26.07.2022, 12:54
@Streicher356

Solche Microcontroller boards sind auch recht preisgünstig. Da zwischen den dafür geschriebenen Programmen und der Hardware (sowie evtl angeschlossener periphärer Elektronik) meist kein Betriebssystem ist, ist insbesondere die hardware-nahe Programmierung auf solchen Geräten sehr direkt. Ein Betriebssystem stellt sich dem direkten Zugang nämlich quer, und erfordert es stattdessen, die vom Betriebssystem angebotenen Dienste zu verwenden oder, oft aufwändig, das Betriebssystem von der Rechtmäßigkeit von direkten Zugriffen zu zu überzeugen.

Damit können solche microcontrollerbasierten Kleinstsysteme aber auch eine Menge Spaß machen, verglichen mit "großen" Computern.

"Preisgünstig" heißt, unter etwa 3€. Im Preisfenster 3 bis 10€ finden sich auch schon vergleichsweise leistungsfähige Systeme.

Und, ein Aspekt, welcher nicht zu verwahrlosen ist: auf solchen lernt man eher "Programmieren" statt "Bibliotheksfunktionen, geschrieben von anderen, zusammenzukleben".

1
Streicher356 
Fragesteller
 26.07.2022, 12:57
@Bushmills145

ok aber brauche ich diese. micro controller? und wie schließe ich den genau an den computer an? so ich verstehe den genauen Sinn nicht ganz. (auch wenn die frage vielleicht dumm ist, tut es mir leid)

0
Bushmills145  26.07.2022, 13:14
@Streicher356

Nö, brauchen tust du die nicht. Das sind halt selbst kleine Computer, die natürlich ebenfalls programmiert werden können. Und aufgrund der geringen Größe und niedrigem Preis auch gut als z.B. Steuerrechner eingesetzt werden können, also als Teil eines Apparates, den du damit baust. Sinn ist damit also, weitere, zusätzliche Computer zu haben, die auch praktischen Nutzen haben können, unabhängig von deinem PC: Willst du deine Programme für irgendetwas anderes Einsetzen, ausser die auf dem PC zu laden, laufen zu lassen, und wieder zu beenden, willst du natürlich nicht für jeden dauerhaften Anwendungsfall einen PC kaufen und dafür einsetzen - viel zu groß, zu stromhungrig, und zu teuer.

Das ist, wofür du dann einen billigen, sparsamen und kleinen Microcontroller verwenden würdest. Also wenn Programmieren nicht nur Selbstzweck ist, sondern einen Nutzen abseits vom Desktop PC haben soll.

Wie die genau angeschlossen werden, hängt vom jeweiligen board ab. Viele verfügen über einen USB Port, worüber die mittels Kabel an einen USB port vom Computer angeschlossen werden. Manche kommen sogar schon als direkt einsteckbares board mit Stecker-Teil dran. Andere wiederum werden z.B. über einen SWI Adapter ("Single Wire Interface") angeschlossen - solche mag ich z.B, da darüber sowohl der komplette Flash-Speicher des Controllers beschrieben werden kann - auch eines vollständig "leeren" Controllers -, als auch Quellcode dahin gesendet, und Tastatureingaben sowie Bildschirmausgaben, also Terminal, ebenfalls darüber laufen können. Also eine einzige minimale Verbindung für jeglichen Kommunikationsbedarf.

1
Streicher356 
Fragesteller
 26.07.2022, 13:17
@Bushmills145

achsoo. also brauche ich den theoretisch nur, wenn ich mir irgendetwas einzeln baue und dann außerhalb des computers programmieren möchte. aber für das programmieren am pc macht das nichts. So habe ich das jetzt verstanden.

0
Bushmills145  26.07.2022, 13:19
@Streicher356

Ja genau. Die sind eine Alternative, oder besser, eine Ergänzung zum Programmieren eines PCs. Damit vergrößert ein Programmierer sein Spektrum der Einsetzbarkeit, weil er damit zusätzliche Geräte programmieren kann.

Dazu kommt, dass solche Microcontroller-systeme auch einfacher aufgebaut sind als PCs. Du kannst die ganz in etwa mit sehr frühen PCs vergleichen.

2

Um mit dem Programmieren anzufangen, brauchst du erstmal eine Konsole und eine Entwicklungsumgebung. Eclipse (mal als Beispiel rausgegriffen) läuft auf einem 10 Jahre alten Rechner locker.

https://www.oreilly.com/library/view/eclipse-ide-pocket/0596100655/ch01.html

Von daher solltest du überhaupt kein Geld in Hardware stecken, sondern lieber in einem guten Programmierkurs und schauen, ob dir Programmieren überhaupt liegt. Wenn du in ein paar Jahren soweit bist, dass du zum Programmieren in irgendeiner Ecke bist, dass du gigantische Rechenleistung benötigst (und irgendwelche Virtualisierungslösungen o.ä. keine Option sind), dann kannst du dich zeitnah umschauen.

Wie gut und flüssig man programmiert, hängt nicht an der Hardware.

Ich habe auf einem ZX81 mit zunächst 1kB RAM angefangen zu programmieren und wirklich das letzte Byte aus dem Basic-Code gequetscht. Als ich dann auf 16kB aufgerüstet habe, lebte ich im reinen Luxus. Man lernt dabei auf Effizienz wertzulegen und ein Gefühl für das Zusammenspiel aus Soft- und Hardware zu bekommen. Davon profitiere ich auch heute noch, wenn ich Code für die winzigen Kerne einer GPU schreibe.

Beim Erlernen der ersten Programmiersprache gewöhnt man sich daran, Vorstellungen des Ablaufs in kleine Pakete aufzuteilen, die man in Code übersetzen kann. Wenn man dann etwas Erfahrung mit kleinen Programmen mit 1000 bis 10'000 Zeilen Code gesammelt hat, kann man dieses Wissen deutlich erweitern, indem man weitere Sprachen mit neuen Konzepten kennenlernt. Danach braucht man Wissen zum Thema Software-Engineering: Versionierung, Dokumentation, Erkennen des Zeitpunkts für ein Neuschreiben (Refactoring), usw. Projektmanagement und Test-Strategien kommen auch noch dazu.

Wie viel RAM die Grafikkarte hat, ist dabei nebensächlich. Die Hardware wählt man dann später passend zum Projekt: Ein selbst programmierter Internet-Chat-Dienst läuft auf einem Linux-Wurm mit 1 MB RAM, eine komplexe Simulation schiebt man dann auf einen Rechencluster mit 512 CPUs und 1 TB RAM.

Die Hardware ist da viel weniger wichtig als die Übung. Autofahren lernt man ja auch nicht in einem Wagen mit möglichst viel PS, sondern durch Übung, Erfahrung und das Nutzen von Tipps anderer.

  • 6900xt
  • i7 12700k
  • 32Gb RAM z. B. Von g.skill

Auch für mit hoher Grafik, weiß ja nicht, was du genau machen willst und Spiele.

Woher ich das weiß:eigene Erfahrung