Programmieren lernen

MisterY

Urgestein
Thread Starter
Mitglied seit
17.03.2007
Beiträge
2.777
Hi,

ich möchte gerne Programmieren lernen. Hab schon grundlegende (also extreme Basics) in Python, das wars dann aber auch schon. Was ich gerne machen würde: Neben mathematischen Problemen, die ich mit Matlab löse, würde ich auch gerne ein paar Programme für Simulationen schreiben. Beispielsweise Supernova-Explosion mit Stoßwellen und so ein Spaß. Oder Möglichkeiten (z.B. auf einem Dame-Brett die maximal mögliche Anzahl an Damen so hinstellen, dass sie sich gegenseitig nicht schlagen können) oder eine Enigma programmieren.

Mit welcher Sprache geht das am Besten? Python? Wie geht man an sowas ran? Die ganzen Tutorials, die ich gelesen habe, setzen sich ja eher mit so basiskram aus, aber wirklich etwas anwendungsbezogenes nicht wirklich. Ich würde gerne auch Ergebnisse grafisch ausgeben oder als Programm mit Schiebereglern und Eingabemasken schreiben.

Grüße
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Mit Matlab kannst du auch direkt programmieren. Die Matlab-Programmiersprache ist eine Skriptsprache ähnlich zu Python usw.
Ich hab damit eine ganze TestSuite geschrieben, es ist zwar etwas komplizierter als mit Java, C# & Co, es geht aber. Außerdem musste ich Matlab wegen Simulink verwenden, da man sonst nicht auf die Modelle, die damit getestet werden, zugreifen kann.
 
ah okayyy. Also mit Matlab kann ich sowas auch, ist ja nicht schlecht, muss dann nicht zwei Sprachen lernen. Kennst du oder jemand anderes n gutes Tutorial?
 
Wenn man programmieren lernen will, muss man einfach mit einer Sprache anfangen. Ob das Python, Visual Basic, C#, Java oder eine der Web-Sprachen (PHP, JavaScript) ist, ist nicht wirklich wichtig.
Die Funktionen sind überall sehr ähnlich. Wenn man die einmal beherrscht, ist auch ein Wechsel zu einer anderen Sprache relativ schnell möglich.

Gute Tutorials die ich kenne sind z. B.:
Python-Kurs: Tutorial, Referenz und weiterfhrende Themen
PHP - Einleitung

Einen Überblick gibt's hier (inkl. MathLab):
Programmiersprachen online lernen, Abteilung fr Theoretische Biologie, Universitt Bonn

Die Beispiele, die Du nennst, wirst Du aber nicht nach 2 Wochen programmieren können. Aber lass Dich davon nicht abhalten, Programmieren macht auf jeden Fall Spass!
 
Danke dir :)

Ich weiß, dass ich das nicht in 2 Wochen schaffe. Aber man lernt ja fürs Leben, und wer weiß, wofür ich sowas gebrauchen kann :)

Wie viel Rechenleistung benötigt solch eine Simulation? Weil ich hab noch was Platz in meinem Rack und meine Server langweilen sich :)


BTW: Gbit Internet rockt ;) hab ich hier auch :d
 
Zuletzt bearbeitet:
Für Simulationen möchte ich nochmal FORTRAN in den Raum werfen. Zwar mittlerweile nicht mehr ganz frisch, aber immer noch Top Aktuell in der wissenschafts-Community weil extrem performant!
 
okay, werde ich mir auch mal anschauen. Danke!

Edit: hab mir mal Fortran angeschaut, da krieg ich ja n Knoten im Hirn :d

Ich glaub ich bleib erstmal bei Matlab und Phyton
 
Zuletzt bearbeitet:
Mit welcher Sprache geht das am Besten? Python? Wie geht man an sowas ran? Die ganzen Tutorials, die ich gelesen habe, setzen sich ja eher mit so basiskram aus, aber wirklich etwas anwendungsbezogenes nicht wirklich. Ich würde gerne auch Ergebnisse grafisch ausgeben oder als Programm mit Schiebereglern und Eingabemasken schreiben.
Ich kenne mich mit Python nicht wirklich aus, aber es scheint schon in die Richtung zu gehen, die du suchst. Prinzipiell ist aber anzumerken, dass du da ganz unterschiedliche Ebenen bearbeiten willst. Für Schieberegler und Eingabemasken benötigst du eine Bibliothek die es dir erlaubt grafische Benutzeroberflächen zu erstellen, wie z.B. GTK+ oder QT. Für die grafische Auswertung deiner Tests wiederum gibt es spezialisierte Module, wie z.B. Matplotlib. Wenn es aber mehr in Richtung Spiel & 3D Simulation geht, dann ist wahrscheinlich sowas wie Unity besser geeignet, das hat aber keine Python Unterstützung.
 
Fortran schreibt doch heut keiner mehr von Hand, Die SW wird in Matlab geschrieben und dann durch nen Fortran Crosscompiler geschickt.

Wenn du von hand Programmieren willst und extreme Performance willst nimmste ein Ansi C mit sparsamer IDE. Grafikspielereien bekommste dann natürlich nicht.
 
Matplotlib. Wenn es aber mehr in Richtung Spiel & 3D Simulation geht, dann ist wahrscheinlich sowas wie Unity besser geeignet, das hat aber keine Python Unterstützung.
Dafür aber C# und JS - auch zwei relativ leicht zu lernende Sprachen.

Also grafische Darstellung von Physiksimulationen.. gar sowas wie eine Supernova Explosion, ist schon nunja.. ein recht hohes Ziel.
Würde (und habe selbst) da eher mit was einfacherem Anfangen wie ein kleines Game. Vieleicht ein 2D Billiard mit vielen Einstellungen oder sowas. Da kannst du dann lernen mit den Grafik APIs zu arbeiten (wie den genannten in Python).

Gleich richtung sowas wie Unity 3D gehen kann man auch machen, allerdings muss man sich dann erstmal einarbeiten welche der extrem mächtigen Komponenten man überhaupt braucht. Kann einen leicht überfordern und frustrieren.

Ein sozusagen Unity3D in lite ist der Game Maker: https://www.yoyogames.com/studio
Das "Problem" da ist allerdings die propriätere Sprache. Alles andere als schwer zu lernen (und dank <2000 Funktionen und ohne vorgefertigte Klassen auch in der Gesamtheit leicht zu begreifen), allerdings später im berufleben nützt einem das nichts...
Andererseits gilt: Beherscht du eine Sprache, "beherscht" du bald alle ;) Zumindest die der selben Klasse, in dem Fall Scriptsprachen wie Lua, Python, JS... ferner auch Java und C (alle in der Hochschule gehabt und konnte auf Anhieb die Verbindung zm Game Maker herstellen).

Nur für mathematsich korekte Simulationen ist das wie schon gesagt, nicht wirklich das richtige. Matlab ist wahrscheinlich der richtige Ansatz, aber Schau was für Anbindungen an Grafikengines es da gibt.
An sowas arbeiten allerdings auch ganze Teams an Universitäten und Forschungseinrichtungen....
 
Zuletzt bearbeitet:
1. Zum programmieren lernen brauchst du erstmal keine bestimmte Sprache.
2. Nimm Javascript wenn du dann weisst was programmieren ist. Es gibt nix einfacheres für UIs mit HTML/CSS und die Welt steht dir in allen Richtungen offen.
 
Hi,

ich möchte gerne Programmieren lernen. Hab schon grundlegende (also extreme Basics) in Python, das wars dann aber auch schon. Was ich gerne machen würde: Neben mathematischen Problemen, die ich mit Matlab löse, würde ich auch gerne ein paar Programme für Simulationen schreiben. Beispielsweise Supernova-Explosion mit Stoßwellen und so ein Spaß.
Ich wage zu bezweifeln, daß Du in der Lage bist eine brauchbare Simulation einer Supernova zu schreiben. Dazu müßtest Du Astrophysiker sein, und dann würdest Du wissen, daß eine solche Simulation mächtig CPU Power benötigt -> HPC Cluster notwendig.

Die typische Simulationssoftware für einen HPC Cluster schreibt man mit C, C++ oder Fortran, dazu kommen OpenMP und/oder MPI. Matlab kann man in solchen Größenordnungen komplett vergessen, da es viel zu langsam ist. Python wäre eine Option, aber nur als Wrapper für die eigentliche zeitaufwendigen Routinen, die man wieder in C, C++ oder Fortran schreibt.

Nachtrag:
Wenn du Dir ein fertiges HPC Programm mal anschauen willst, dann wirf mal einen Blick auf cp2k, wahrscheinlich wirst Du ohne Vorbildung nicht in der Lage sein, daß Programm irgend wie sinnvoll zu nutzen. Aber anschauen schadet definitiv nicht.
 
Zuletzt bearbeitet:
Ich bin gerade zufällig in einem anderen Thema darüber gestolpert:

Am Hasso Plattner Institut kann man online diverse Programmierkurse machen, z. B. Java.
Das ist eines der wenigen deutschsprachigen kostenlosen Onlinekursangebote.

Man kann die Kurse auch nach dem offiziellen Kursstart besuchen, lass Dich von den Terminen nicht verwirren.
 
Ich möchte auch programmieren lernen, aber habe Angst, dass ich nicht begabt bin.
 
Am besten ist es mit einer Interpreter Sprache anzufangen und wirklich nur einfache Dinge zu realisieren zu wollen. Die wichtigste Eigenschaft fürs Programmieren ist: Frustrationstoleranz. Am Anfang wird es wahnsinnig schwer und es wird sich besser, wenn Du dabei bleibst. Für eine Interpreter Sprache spricht, daß man leicht Änderungen vornehmen kann und nicht umständlich übersetzen, binden und anschließen debuggen muß. Moderne Debugger sind zwar leistungsfähig, aber auch entsprechend komplex.

Mein persönlicher Favorit unter diesen Sprachen ist Python. Das gibt es auch für Windows, obwohl die Sprache aus der *I*X Ecke kommt.
 
Die wichtigste Eigenschaft fürs Programmieren ist: Frustrationstoleranz.
Stimmt wohl :d

Würde aber auch sagen, die wichtigste Begabung, wenn man es so nennen will, ist logisches Denkvermögen. Das kann, muss sich aber nicht, auch in gutem Verständnis von Rechnen wiederspiegeln (ich schreibe bewusst "Rechnen" und nicht Mathematik).

Wie auch immer - mit Angst kommt man nicht weiter ;) Einfach versuchen und dabei ein Ziel setzen - entweder eine bestimmte kleinere Afgabe zu lösen (z.B. ein Ping Pong Game) oder das Ziel sich einen Monat lang so oft wie möglich zu beschäftigen.
Dann hat man auch die allerersten Anfangsschwierigkeiten überwunden.

Für eine Interpreter Sprache spricht, daß man leicht Änderungen vornehmen kann und nicht umständlich übersetzen, binden und anschließen debuggen muß.
Das hast du jetzt aber wieder von Linux...
Unter Windows, wenn man mit Umgebungen wie Visual Studio arbeitet (für C und C#) übernimmt die Umgebung diese Tätigkeiten und debuggen muss man bei Softwareentwicklung IMMER wenn man kein Genie ist.

Ich für meinen Teil halte es am sinnvollsten mit C oder von mir aus Java, anzufangen. Hat man dessen Grundlagen gelernt, kommt man in den meisten Sprachen rein. Python erscheint einem dann nur "umstrukturiert aber einfacher". Ebenso z.B. LUA.
Fängt man mit Python an, muss man sich erst noch mehr Grundlagen aneignen, wenn man sich mit C befassen will.
Ist dann in etwa so wie wenn man als Java Programmierer, sich mit C++ befasst (musste ich dieses Semester versuchen x-X)
 
Zuletzt bearbeitet:
… Ich für meinen Teil halte es am sinnvollsten mit C oder von mir aus Java, …

Ich halte beide Sprachen nicht für die beste Wahl. C hat so viele Macken, daß man wenn man möglich generell darum einen Bogen machen sollte, und Java ist nicht unbedingt die beste OOP Sprache für den Anfang.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh