Hallo! Ich finde Programmieren ja total faszinierend, kann es aber nicht. Wie lerne ich am besten programmieren? Welche Sprache soll ich lernen? Gibt es da gute Bücher?
Es is stinklangweilig und macht kopfweh aber der Kaffee ist gut. nej, "was willst du programmieren?" ist hier wohl die Gegenfrage die erst beantwortet werden muss bevor dir irgendwer vernünftig helfen kann :)
Gast
#976652
[Regieanweisung] Der Glaubenskrieg ist eröffnet [/Regieanweisung] PS: Ich wett alles auf mindestens 50 Antworten in den ersten Tagen...
Programmieren lernen? Schöner Ansatz, leider tun es viel zu viele ohne es zu tun (also programmieren, ohne es zu lernen).
@ Kurt Zimmermann (Firma PCU) (kurt03) >lerne ich am besten programmieren? Bücher lesen, Beispiele durcharebiten, selber kleine Programme schreiben. > Welche Sprache soll ich lernen? Meine Meinung. In dieser Reihenfolge ist es am leichtesten, in die Welt der Programmierung einzusteigen 1.) BASIC, möglichst ohne GOTO Befehl Pascal war füher mal recht gut und beliebt, ist leider nicht mehr ganz up to date, wenn man einen brauchbaren Compiler noch auftreiben kann (z.B. Delphi), das ist das eine Alternative. 2.) C, der Klassiker und defacto Industriestandard; Aber mit VIELEN Fallstricken und offenen Messern gespickt. IMO GAR NICHT für Einsteiger geeignet!!! Da hab ich als schon recht routinierter Programmierer noch tierisch geflucht! 3.) Assembler, wird heute nur noch selten gebraucht, ist aber im Feld der Mikrocontrollerprogrammierung bisweilen nützlich > Gibt es da gute Bücher? Ja. Direkte Empfehlung kann ich keine geben, weil meine Bücher die ich damals so hatte alle antiquiert sind, aus Ostzeiten. Der Klassiker ist immer noch "Programmieren in C", entweder das Original (in deutscher Übersetzung) oder diverse Klone davon. http://www.mikrocontroller.net/buecher/ Dann gibt es noch diverse "Schiki Micki Sprachen" wie Java, C# (C Sharp) etc. Damit kenn ich mich aber nicht aus. MfG Falk
Gast
#976772
Vielleicht können ja mal einige erfahrenere Leute ihre Lernlaufbahn auflisten, immerhin scheint ihr Weg schonmal mehr oder minder erfolgreich gewesen zu sein ;) Also: Los ging alles mit einem alten Robotron KC87 (2.5 MHz, 16kB Ram und genauso viel ROM, Programme wurden von klassischen Audio-Kassetten in Form von Tonfolgen geladen)), an dem habe ich mir anhand der mitgelieferten Anleitung BASIC beigebracht. An weitere Literatur zu kommen war da als Schüler zu Ost-Zeiten leider etwas schwierig. Einige Jahre später gab es dann den ersten PC, an welchem ich mich mit QBASIC versucht habe, auch hier war die QBASIC-Doku recht hilfreich. So richtig am PC programmiert habe ich dann erst mit Pascal, auch noch unter DOS. Hierfür gabs dann in unserer Dorf-Bücherei immerhin schon einige Bücher aus den späten 80iger-Jahren. Irgendwann viel mir dann ein Buch über x86-Assembler in die Hände, das hat dann meine Leidenschaft für Hardware-nahe Programmierung geweckt, die bis heute noch erhalten geblieben ist. Als Einstieg kann ich hier Rainer Backer "Programmiersprache Assembler" empfehlen, allerdings ist das auch schon sehr eingestaubt. Ausserdem wird Assembler am PC schon seit Jahren nicht mehr im professionellem Bereich eingesetzt. Sogar alle aktuellen Betriebssysteme sind zu 99.9% in C/C++ geschrieben. Allerdings gab (gibt?) es bis in die späten 90iger Jahre eine recht aktive Demo-Coding-Szene wo nach kleinere Animationen und Mini-Spiele in Assembler (ja, auch unter Windows/OpenGL!) programmiert wurden. Ende der 90iger Jahre hab ich dann nach einem kurzem auf C/C++ umgesattelt, hier hat mir das Buch "Jetzt lerne ich C++" von Markt&Technik einen guten Einstieg gegeben. Tiefer in die Programmierung bin ich dann durch Stefan Zerbst's wunderbares Buch "3D-Spieleprogrammierung mit DirectX" eingestiegen. Kurz vor Studi-Beginn (Elektrotechnik/Nachrichtentechnik) hab ich dann meine Begeisterung für die AVRs entdeckt, die man endlich wieder sinnvoll in Assembler programmieren kann (zumindest bei den Tinys ist es teilweise immer noch sinnvoll, komplette Anwendungen in Assembler zu schreiben). Meiner Meinung nach ein guter Einstieg: Besorg dir das alte DevCpp-Paket (das ist eine freie Entwicklungsumgebung für C/C++) und eine Einführung in die C-Programmierung. Hoffe es kann hier im Forum jemand dazu ein paar Tipps geben. Der DevCpp ist zwar mittlerweile auch schon etwas angestaubt, aber gerade dadurch ist er auch nicht so komplex wie andere moderne Werkzeuge. Damit sollte erstmal ein frustfrei(erer) Start möglich sein. Halte dich zunächst an einfache Konsolen-Anwendungen (also Programme im 'Dos'-Textfenster), die sind wesentlich einfacher zu überblicken als komplexe grafische Programme und du kannst in Ruhe erstmal alle Eigenheiten der Sprache C erlernen. Ausserdem kannst du hier schön Zeile für Zeile durch deine ersten Gehversuche springen. C auf einem Mikrocontroller ist für den Einstieg nicht zu empfehlen, da hier extrem viele Fallstricke lauern.
Gast
#976783
>Vielleicht können ja mal einige erfahrenere Leute
Ach Leute...
Erstens ist es doch für einen heutigen Anfänger völlig schnuppe, wie wir
mal angefangen haben. C-64 und Datasette, oder Pascal an der Uni mit
Teletyper?
Und: Der Threadstarter hat weder gesagt wie alt er ist noch ob er mal
Informatikprofessor werden will oder nur ein paar paar elementare
Basic-Anweisungen abarbeiten will.
Gast
#976787
Und er hatte auch nich gesagt, ob er unter Windows oder Linux oder gar auf einem Mikrocontroller lernen möchte. Programmieren kann man ein Excel-Skript oder einen Texteditor mit Delphi zusammen klicken. Ist beides irgendwie programmieren,oder? Also wen der Topic-Eröffner etwas genauer schreibt was er eigentlich lernen möchte, dann kann man auch etwas detailierter Tipps geben.
Gast
#976792
Neulich (Ausgabe 17/2008) hatte CT das Visual Studio 2008 Express auf der CD. http://www.heise.de/ct/08/17/122/ Kann auch bei MS direkt geladen werden: http://www.microsoft.com/germany/express/ Für die enthaltenen Sprachen gibt es unzählige Foren, Beispiele und Bücher. Für kleine Anwendungen bestens geeignet, auch um seine eigenen Vorlieben zu entdecken (c oder Basic oder ?) gruß hans
Gast
#976818
Früher war alles noch so einfach: Entweder man hatte einen Computer, oder man hatte keinen. Hatte man keinen,was der Normalfall war, besorgte man sich einen Ersatz aus Papier und Holz: http://www.wolfgang-back.com/knowhow_home.php Damit konnte man programmieren lernen. Viele Möglichkeiten hatte man nicht, Internetforen gab es auch noch keine, also stellte man keine Fragen, sondern konnte es nach einigen Versuchen einfach. War man glücklicher Besitzer eines Apple, PET oder TRS-80, war der Einstieg in die Programmiereung ebenfalls klar vorgegeben: Auf diesen Rechnern war genau eine Programmiersprache fest installiert, nämlich BASIC. In der beiliegenden Gebrauchsanleitung stand geschrieben, wie man damit programmiert. Nachdem man die Anleitung durchgelesen und jeden BASIC-Befehl ausprobiert hatte, konnte man programmieren (oder dachte es zumindest ;-)). Am Stammtisch war man jedenfalls das Genie. Und heute? Jeder kauft man sich einen PC vom Lebensmitteldiscounter. Programmieren? Häh, was? Auf dem PC ist weder BASIC noch irgendeine andere Programmiersprache installiert. Ist ja auch klar: Programmieren tun heutzutage nur noch die Inder. Stattdessen kann man im Internet surfen. Immerhin gibt es im Internet ungefähr 759 verschiedene Programmiersprachen, die man alle umsonst herunterladen kann. Man weiß nur nicht, welche. Zum Glück gibt es Internetforen, wo man fragen kann. Hier bekommt man ungefähr 759 verschiedene Antworten, und am Schluss ist man genauso gescheit wie vorher. Am Stammtisch kann man mit der Programmiererei auch nicht mehr prahlen. Software wird nicht mehr programmiert, sondern kopiert, das ist viel effizienter. Also lässt man das Programmieren lieber sein und nutzt die vielen Gigahertze des Prozessors, um sich Titten anzuschauen. Ja, ja, so ändern sich halt die Zeiten ... Dem Kurt kann ich deswegen nur raten, sich auf dem Flohmarkt nach einem verstaubten Apple mit vergilbtem Handbuch umzusehen. Damit steht seinem Werdegang zum "Real Programmer" nichts im Wege ;-) Euer ewig gestriger yalu
Gast
#976827
jouu, yalu hat's getroffen :)
Gast
#976828
also ich hab mit PHP angefangen und fands ziemlich cool und denk im nachhinein auch, dass es so sinnvoll war. Ich hab damals ne Stufenpage gemacht und würde auch sagen dass ein konkretes Projekt am Anfang einen motiviert dran zu bleiben. An der Uni hatten wir am Anfang auch ein Praktikum in dem man ein Programm zur Laufzeitanalyse von Gattern schreiben musste und auch hier fand ich sinnvoll und motivierend wenn auch kompliziert. In PHP selbst muss man sich um nichts kümmern was dem Anfänger ein paar Hürden aus dem Weg räumt. Orientiert ist PHP auch an C aber naja das selbe ist es definitiv nicht! Aber die Syntax ist ähnlich. so das damit mein post nicht offtopic ist zu meinem Vorredner hab ich was lustiges: Also lässt man das Programmieren lieber sein und nutzt die vielen Gigahertze des Prozessors, um sich Titten anzuschauen. http://de.youtube.com/watch?v=S7d5suAzdEA
Gast
#976829
am besten mit einfachem Editor anfangen nix full blown pattern refactoring enabled dingens syntaxhighlighting muss sein eventuell noch compile und run und eventuell² projektpfade zu includes etc wegen der Sprache, nimm irgendeine, ist egal welche. ich kann 5 verschiedene und das werden bestimmt nicht die letzten sein.
Womit ich nicht anfangen würde: C oder PHP, ersteres erfordert eine hohe Frusttoleranz, beides verleitet zu schlechtem Stil. Basic ist sicher nach wie vor keine schlechte Wahl, aber inzwischen gibt es modernere Sprachen die auch nicht schwieriger zu lernen sind. Ruby oder Python fallen mir da zuerst ein. Wie dieser Thread enden wird ist abzusehen, nämlich gar nicht...
Ich persönlich habe auf einem Commodore 64 angefangen BASIC zu programmieren. Dann später auf dem PC bin ich mit Delphi eingestiegen, womit man meines Erachtens sehr schnell zu einem Erfolg kommt. Dann kam C, weil es für den AVR keinen Delphi Compiler gab ;-) Dadurch habe ich C "lieben" gelernt, es dann auch auf dem PC verwendet und durch die Sehnsucht nach objektorientiertem Programmieren noch C++ erlernt. Dann anwendungsbedingt noch etwas Java und PHP gelernt. Delphi kann ich für den Einstieg in die Windowsprogrammierung sehr empfehlen, da gibt es auch wie schon genannt eine kostenlose Express-Version. C# ist vielleicht einen Blick wert, auch da gibt es eine Umsonst-Version. Bei C/C++ kann ich mich an den Vorredner nur anschließen; Man kann einfach zu leicht über eine rote Ampel laufen.
Gast
#976855
irgendwie scheinen sehr viele Menschen Programmiersprache mit "imperative Programmiersprache" gleichzusetzen. Es gibt ja viel mehr dadraussen ;) Die funktionalen werden zumindest die Informatiker noch kennen und manch einer auch können. Dann gibt es noch gleichungsbasierte Sprachen. Diese sind den meisten unbekannt. (wer möchte google nach equation based language) Den Ansatz finde ich sehr interessant. Ich habe mich auch in Modelica eingearbeitet. Dymola bietet da eine kostenlose Try-Version oder man kann OpenModelica als Umgebung nehmen.
Gast
#976892
[Vielleicht können ja mal einige erfahrenere Leute ihre Lernlaufbahn auflisten, immerhin scheint ihr Weg schonmal mehr oder minder erfolgreich gewesen zu sein ;)] Ich habe 1993 mit QBasic angefangen, bin dann aber innerhalb von 2 Wochen auf PowerBasic (richtiger Compiler, kein Interpreter) umgestiegen. 1997 dann Umstieg auf VisualBasic, leider wieder Interpreter, sofern ich mich erinnere. 2005 kam dann Delphi an die Reihe, für die Firma in der ich jetzt arbeite. Und privat kam vor kurzem dann C für Mikrocontroller an die Reihe. Allerdings: C/C++ kann man einfach lernen, würde aber empfehlen mit ner anderen Sprache die Fehler eher "verzeiht" anzufangen und dann auf C/C++ umzusatteln. Und welche Sprache die beste ist: Musst du dir selbst aussuchen. Für Visual Basic, Delphi und C++ gibts in etwa genausoviele Beispiele im Internet, von welchen du lernen kannst. Viele Grüße, Richard
Gast
#977021
Meine Vorgänger haben eigentlich schon alles gesagt. Hinzufügen mochte ich nur noch wenig. Wenn du 15 J alt bist kannst du mit jeden anfangen,es bleibt dir immer noch genügend Zeit wieder umzusteigen, aber du sammelst Erfahrungen. Wie ich immer sage "Der Weg ist das Ziel" Bist du 60J ,dann solltest du zielgerichteter wählen, denn das Leben ist kurz. Gruß
Gast
#977032
Ohne mir alles durchgelesen zu habe: Ich habe mit Basic auf einem Schneider CPC angefangen. Danach QBasic am PC. Irgendwann kam dann Pascal dazu. Unter Windows dann Visual Basic. Später PHP (was ich nun auch mal als Programmiersprache nenne, obwohl ich weiss, dass es eine Scriptsprache ist). Und nun durch das Studium auch C. Nachdem ich jetzt recht routiniert in C und PHP bin musste ich mal wieder ein Programm in Visual Basic schreiben und habe echt geflucht. Ich würde, auch wenn es vielleicht viele Fall Stricke gibt, lieber gleich in C anfangen, da man sich sonst so schmutzige Programmiertechniken, wie sie in Visual Basic üblich sind, gar nicht erst angewöhnt. (Stichwort: Goto)
Gast
#977057
Da hier ja auch das Mikrocontroller-Forum ist, wuerde ich auch zur Mikrocontroller-Programmierung raten. Der Vorteil ist, dass das eine recht uebersichtliche Platform ist (so wie die guten alten Homecomputer). Viele Anfaenger wollen gleich epochales leisten, einen neuen Ego-Shooter oder sowas programmieren - auf dem Mikrocontroller gibt es das nicht, da kann man sich am Anfang darauf konzentrieren, mit ein paar LEDs zu spielen, evtl. mit einem Textdisplay. Wichtig ist, dass man eine bekannte Hardware waehlt, die aus der Packung funktioniert und nicht erst in Gang gebracht werden muss - gerade als Anfaenger sind zu viele Fehlerquellen zu vermeiden. Vorteil der AVR-Ecke ist, dass es dafuer ein Basic gibt. Einfach zu programmieren, nicht all zu viele Fallstricke, schnelle Erfolgserlebnisse. Damit kann man rumspielen und waehrendher lernt man, was so ein Computer eigentlich ist und wie er "denkt". Wenn das klappt, wuerde ich Assembler empfehlen, auf der gleichen Platform, die gleichen Beispiele. Das groesste Problem an Assembler ist, dass man ohne jeden Komfort dasteht - alles muss man selbst machen, in winzigen Schritten. Aber wer durch Assembler durch ist, weiss, dass auch die grossen und maechtigen Sprachen nur mit Wasser kochen, was ein Speicher ist, Pointer, etc, pp. Wer das kann, ist bereit fuer den besten Assembler der Welt: C/C++ ;^) Wer von Assembler her kommt, hat eigentlich nicht viele Probleme mit C. Wer nur Basic, Java oder sonstwas kennt, hat meist gar keine Vorstellung davon, wie ein Computer funktioniert. Was man spaeter dann mal benutzt, ist Geschmackssache. Nur gelernt haben sollte man die anderen Sprachen schon.
Ich habe Programmieren direkt mit einer "echten" Programmiersprache gelernt, das war recht frustrierend. Ich würde eher eigens für Lernzwecke entwickelte Programmierumgebungen empfehlen. Kara wurde an der ETH Zürich entwickelt: http://www.educ.ethz.ch/lehrpersonen/informatik/unterrichtsmaterialien_inf/programmieren/kara_umgebung/index Dort programmierst du einen Marienkäfer, der verschiedene Aufgaben lösen soll. Ist gratis, aber leider ein bisschen abstrakt: bis du dein erstes Programm in einer "normalen" Programmiersprache schreibst, dauert es ganz schön lang. Direkt mit Java startest du im Hamster-Modell, an der Uni Oldenburg entwickelt: http://www.java-hamster-modell.de/ Ist halt auch ein bisschen Uni-mässig staubig-trocken, bietet aber eine gute Einführung. CeeBot4 ist ähnlich, hat aber einen viel mehr spielerischen Zugang, fast wie ein Videospiel, man lernt aber auch eine ganze Menge dabei: http://www.ceebot.org/index.php?lang=ge Wenn du es trotz allen Warnungen sofort mit einer "echten" Programmiersprache versuchen willst, kann ich folgende Websites für Java empfehlen: http://www.gailer-net.de/tutorials/java/java-toc.html http://www.boku.ac.at/javaeinf/ http://hestia.hs-niederrhein.de/~gkorsch/javakurs/Javagk.htm Und folgende für PHP: http://www.php-dummies.de/ http://alexander-projects.de/ http://cgi.tu-harburg.de/~rztmbr/Kurse/PHP/PHP_Kurs/ Websites haben vor Büchern den Vorteil, dass man die erklärten Programme direkt in den Programmeditor kopieren kann. Auch findest du viele Foren, wo du Fragen stellen kannst, bevor du ganz verzweifelst. Echt pädagogisch ist aber keine der Websites "für Anfänger", die ich gefunden habe. Viel Spass!
Gast
#977418
Andreas Schwarz (andreas) (Admin) wrote: > Wie dieser Thread enden wird ist abzusehen, nämlich gar nicht... jaja, so wird es kommen :) 1) Wie wäre es diesen Fred mit den bereits existierenden Threads die sich um das gleiche Problem drehen zu verlinken? ich will das gleich mal machen Beitrag "Programmierung für Linux und Windows" wäre doch mal interessant zu erfahren, was daraus geworden ist 1) ein wild gackernder Hühnerhaufen und jedes Huhn empfiehlt was anderes :) mein Gegacker lautet deshalb wie folgt mit C anfangen Warum? Ganz einfach, ist sehr nützlich für Mikrocontroller-Programmierung dirty pittfals? Aber sicher doch, na und? Versuch macht kluch! :) zu C passt Assembler wunderbar (sind wir wieder bei den Mikrocontrollern um die sich quasi alles oder vieles dreht) für die bunten Oberflächen (unter Windows) kann man auch C verwenden, durch anprogrammieren der guten alten Win32 API (Charles Petzold lesen!) .. .. wer das zu schwierig, altbacken oder mittlerweile als zu eingeschränkt empfindet der .. tja, bei dem fängt die Diskussion erneut an :) Ich empfehle es mit C-Sharp (C#) zu probieren (hab mir das selber angesehen und bin dabei es mir reinzupfeifen); erfordert aber eine andere Denke als das typisch funktionale durchlaufen eines C-Programms von oben nach unten; man hat es dann mit Objekten und deren Eigenschaften zu tun (dafür fühlt man sich als "C# Kenner" dann wahrscheinlich auch schnell bei Java und ein paar anderen Sprachen beheimatet; man könnte natürlich auch gleich damit anfangen, aber die Welt der Objekte und Mikrocontroller? Ich weiß nicht, ich weiß nicht .. ;)) Wer nur mal eben was für die bunte Oberfläche stricken möchte, der sollte sich lieber einer der Skriptsprachen/Interpretersprachen bemächtigen (ich würde wahrscheinlich Python nehmen)
Gast
#977480
Ist doch alles gesagt! Beitrag "Re: Programmieren lernen?"
Gast
#977486
> Websites haben vor Büchern den Vorteil, dass man die erklärten Programme > direkt in den Programmeditor kopieren kann. Das ist der größte Nachteil vom Internet. Bei Copy und Paste bringt man Dinge zum laufen, die man nicht versteht und auch nicht zwangsläufig 100%ige durchdenken muss. Beim abtippen ist man eher gezwungen sich mit dem Beispielcode zu Beschäftigen und bekommt gleich ein Gefühl für häufig verwendete Schlüsselwörter und Syntax. Das kommt beim stupiden abkopieren nicht auf. Und auch der ein oder andere Tipp-Fehler zwingt zum drüber nachdenken, was man gerade warum tut. Und am wichtigsten: Sogut wie alle Anfänger-Beispiele bestehen nur aus wenigen Code-Zeilen, selbst sehr komplexe (Anfänger-)Beispiele haben nie mehr als 50, 60 Zeilen Code. Wenn man nicht die 20 Minuten zum abtippen hat, hat man auch nicht die Zeit eine Programmiersprache zu lernen.
Gast
#977520
> Das ist der größte Nachteil vom Internet. Bei Copy und Paste bringt > man Dinge zum laufen, die man nicht versteht und auch nicht > zwangsläufig 100%ige durchdenken muss. Beim abtippen ist man eher > gezwungen sich mit dem Beispielcode zu Beschäftigen und bekommt gleich > ein Gefühl für häufig verwendete Schlüsselwörter und Syntax. Deswegen tippe ich (scheinbar schwachsinnigerweise) auch die Beispiele aus dem Internet ab. Damit die Abtipperei nicht zu stupide wird, versuche ich, beim Abtippen gleich ein paar kleinere Modifikationen einzubauen (z.B. andere Variablennamen). Wenn das Beispiel dann noch läuft, wird es so lange verbogen und erweitert, bis es das nicht mehr tut. Dann kann man zum nächsten Abschnitt des Tutorials übergehen. Ist dieses gut gemacht, findet man dort die Erklärung, wie man es richtig gemacht hätte. Auf diese Weise lerne ich am schnellsten und vor allem am nachhaltigsten. Da hat aber jeder seine eigene Methode.
Gast
#977530
Ich lerne am schnellsten, wenn ich gleich mal was praktisches damit umsetze. Dann kommt einem das Lernen/Programmieren nicht so unnütz vor.
Gast
#977550
> Ich lerne am schnellsten, wenn ich gleich mal was praktisches damit > umsetze. Dann kommt einem das Lernen/Programmieren nicht so unnütz vor. Jap, der Extreme-Programming Ansatz. Keine trockene Theorie, gleich und direkt zum Ziel. Ist ganz gut geeignet wenn man sicher in der Materie ist, zum lernen ist das allerdings eine echte Katastrophe. Es entsteht jede Menge brand-gefärhliches Halbwissen und da der von anderen geschriebene Quark vorerst läuft merkt man es noch nicht einmal...
>daniel (Gast) >irgendwie scheinen sehr viele Menschen Programmiersprache mit >"imperative Programmiersprache" gleichzusetzen. >Es gibt ja viel mehr dadraussen ;) Mein Eindruck von funktionaler Programmierung ist, dass es scheinbar nur für Akademiker ist und keine Praxis hat. Kann man Betriebssysteme/Treiber/GUI/Spiele mit einer funktionalen Programmiersprache erstellen? Selbst wenn einige Programmiersprachen den Sinn im lösen von Mathematischen Problemen haben (=nicht universell heul) - So stellen Anfänger sich meiner Meinung nicht "Mal was programmieren" vor.
Gast
#1018106
Hallo Kurt, > Ich finde Programmieren ja total faszinierend, kann es aber nicht. Wie > lerne ich am besten programmieren? Welche Sprache soll ich lernen? Gibt > es da gute Bücher? es kommt sehr darauf an, was Du machen willst. Ich würde als Anfänger mit einer imperativen Programmiersprache anfangen. Imperativ bedeutet "durch Befehl". Es geht dabei um eine Sprache, bei der Du dem Rechner Zeile für Zeile sagst, was er zu tun hat. Das läuft dann etwa so ab: a = 5; // Gib der Variablen a den Wert 5 b = 7; // Gib der Variablen b den Wert 7 c = a+b; // Addiere a und b und benenne das ganze c. Das kann auch sein "Zeichne eine Linie von (x1,y1) zu (x2,y2)". Es gibt auch andere Ansätze (objektorientiert, funktional). Ich empfehle Dir aber, solche Spezialitäten erst zu lernen, wenn Du imperativ programmieren kannst. Objektorientiertes Programmieren lohnt sich erst bei sehr großen Programmen und hilft bei der Organisation des Programmier- und Programmablaufs. Für den Mikrocontroller brauchst Du das erstmal nicht, und funktionales Programmieren führt ohnehin ein sehr bescheidenes Nischenleben. Wenn Du später einmal Mikrocontroller programmieren willst, würde ich empfehlen, mit C anzufangen. C ist eine der am häufigsten verwendeten Sprachen für Mikrocontroller und hat ganz ähnliche Strukturen wie viele andere Sprachen auch. Ganz grob gilt bei den imperativen Programmiersprachen ohnehin: Kennst Du eine, kennst Du alle. C hat den Vorteil, daß Hardwarezugriffe vorgesehen sind. Genau das brauchst Du beim Mikrocontroller. Empfehlenswert zum Erlernen von C ist beispielsweise das Buch: http://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628 Willst Du in Richtung Signalverarbeitung gehen, kann ich Dir die Skriptsprache Matlab empfehlen. Der Vorteil gegenüber C besteht darin, daß sie viele mächtige Befehle standardmäßig eingebaut hat (inkl. FFT u. ä) und zur Visualisierung von Daten bestens geeignet ist. Trotzdem kannst Du auch ganz normale Programmierbefehle (Schleifen, wenn/dann Entscheidungen) erlernen und ausführen. Um Klickibunti-Anwendungen zu programmieren brauchst Du Aufsätze auf die üblichen Programmiersprachen, beispielsweise Borland C++ oder Visual C++ statt C/C++. Das ist aber der zweite Schritt. Gruß, Michael
Gast
#1018268
Linux auf die Festplatte! Für Umsteiger/Einsteiger würde
ich SuSe empfehlen.Ist noch am nähesten an der Windows
"ich-klick-mir-was-zusammen" -Welt.(Installation als
Dualsystem klappt auch für DAU's).
Anschließend gehts schnell:
1. Texteditor wählen(Linux hat viele und die besten!)
2. Programm in C schreiben(Hallo Welt als anfang?):
################################################
#include <stdio.h>
int main (int argc, char *argv[])
{
printf("Hallo Welt!\n");
return(0);
}
#################################################
3. Kompilieren(C-GNU-Compiler ist schon installiert):
Textkonsole(shell)öffnen,
folgendes eintippen:
gcc -g -o hallowelt hallowelt.c
Wenn fehlerfrei Programm starten mit ./hallowelt
4. Wenn du Interesse hast was hinter den Kulissen
des Programms vorsichgeht, ist eine -g Option
eingefügt.Damit kannst du den Debugger starten,
in SuSe z.b. ddd hallowelt,ddd ist auch schon
vorhanden.
Alles in allem eine Sache von 5min,bis zum 1.Programm.
Die Möglichkeiten vieles zu probieren und zu erlernen
wird dir nur mit Linux gegeben!Alles ist Opensource!
Alles ist gut dokumentiert.
Windows als Entwicklungsumgebung wird dir schnell
deine Grenzen aufzeigen.
(es gibt auch für windows gute Entw.werkzeuge,aber
unerschwinglich für Privatperson)
Probiers mal aus.
Mfg
Christian
Assembler ist auch keine schlechte Wahl. Du freust dich tierisch über dein erstes "Hello World", und später hast du mit Zeigern in C/C++ kaum Probleme.
Stefan wrote: > [Regieanweisung] > > Der Glaubenskrieg ist eröffnet > > [/Regieanweisung] > > PS: Ich wett alles auf mindestens 50 Antworten in den ersten Tagen... Das ist eine total sinnlose Frage. Als ob es net tausend Beiträge und allen möglichen Foren geht... Denken, Drücken, Sprechen/Schreiben ...
> Windows als Entwicklungsumgebung wird dir schnell > deine Grenzen aufzeigen. Welche Grenzen? > (es gibt auch für windows gute Entw.werkzeuge,aber > unerschwinglich für Privatperson) Alle Visual Studio Express Versionen sind kostenlos. Von Codegear/Borland gibt's den TurboExplorer für Delphi/C++/C# kostenlos. Eclipse, Code::Blocks etc. laufen auch, wobei Eclipse nichts für schwache Hardware ist und die Debugger (ddd/gdb) wesentlich schlechter sind als die von MS.
http://norvig.com/21-days.html ;) Ich bin schon bei mehr als 10 Jahren lern aber immer noch was dazu ^^
Läubi Mail@laeubi.de wrote: > http://norvig.com/21-days.html ;) > Ich bin schon bei mehr als 10 Jahren lern aber immer noch was dazu ^^ Wenn das noch die Verantwortlichen verstehen würden, die immer Fachkräftemangel schreien...
Gast
#1019269
> Windows als Entwicklungsumgebung wird dir schnell > deine Grenzen aufzeigen. > (es gibt auch für windows gute Entw.werkzeuge,aber > unerschwinglich für Privatperson) Was ist denn das für ein hohles Geschwätz? Da zeigt einer auf wie man mit gcc und einem simplen Text-Editor sein erstes 'Hallo, Welt' Programm kompiliert und redet dann davon, es gäbe keine Erschwinglichen Entwicklungswerkzeuge für Windows? Hallo! Sag mal, geht's noch? Es gab schon IMMER erschwingliche Entwicklungswerkzeuge. Damals nannten die sich Turbo Pascal 5.5, 6.0 und Turbo C++ 3.0, 3.1. Die musste man zwar noch kaufen, aber auch die waren bezahlbar und billiger als ein MS Office und sogar billiger als ein Winword 6.0. Damals hätte man sich alle Finger danach geleckt eine komplexe Entwicklungsumgebung wie Visual C# Express für lau benutzen zu dürfen oder eine sehr schöne u. einfache integrierte Entwicklungsumgebung wie diese hier verwenden zu dürfen http://www.smorgasbordet.com/pellesc/index.htm Der Programmieranfänger braucht vor allem gute Codebeispiele, die er verstehen und nachvollziehen kann. Eine gute Hilfe mittels F1-Taste, wie sie damals die Borland-Produkte aufwiesen, lassen die Fragezeichen im Gesicht des Einsteigers deutlich kleiner werden, die sich bei einem leeren Texteditor + Compiler sonst schnell einstellen werden. Ein gutes Buch das einfache Beispiele schrittweise erläutert hilft Frust zu vermeiden (ein gutes Skript geht auch, ist aber oft didaktisch nicht so gut aufgebaut und meistens nicht so ausführlich). Der Rest kommt dann mit der Zeit. Das Wichtigste ist eigentlich dass man sich wohl fühlt und am Ball bleibt. DAS richtige Buch + DIE richtige Entwicklungsumgebung muss jeder für sich selber finden. Das kann am Anfang etwas mühsam sein. Schon die Frage welche Programmiersprache man sich jetzt "antut" kann ein zäher Prozess sein. Meine Empfehlung daher: Nix Exotisches am Anfang nehmen und nicht zuviel verlangen (Sätze wie, "ich will programmieren lernen, um Spiele selber zu programmieren sind naiv und enden schließlich in Frustration). Am besten fängt man mit Konsolenprogrammen an und lässt Fenster mit Menüs (egal ob unter Linux oder Windows) erst man beiseite. Klappt es mit den Konsolenprogramm(en), dann übergehen zum Dialog-orientierten Programm mit einfachen Button und danach zum Fenster-orientierten Programm mit Steuerelementen wie Menüleisten. Von den Assistenten die gleich ganze Anwendungen zusammenklicken sollte man als Einsteiger die Finger lassen. Davon lernt man nix! Man muss die Quelltexte im Ganzen verstehen und nicht einen vorgegebenen Quelltext irgendwo ergänzen und dann nicht so richtig wissen, an welcher Stelle eigentlich was passiert.
Gast
#1019462
Gelegenheitsprogrammierer wrote: > [blablabla] > Der Programmieranfänger braucht vor allem gute Codebeispiele, die er > verstehen und nachvollziehen kann. DAS ist der Punkt. > Eine gute Hilfe mittels F1-Taste, wie > sie damals die Borland-Produkte aufwiesen, lassen die Fragezeichen im > Gesicht des Einsteigers deutlich kleiner werden, die sich bei einem > leeren Texteditor + Compiler sonst schnell einstellen werden. Vorallem empfehle ich ein dickes Buch über den C(89,99)-Standard. Das bringt gegenüber der üblichen "Jetzt lerne ich"- und "C-Für-Anfänger"-Literatur einen ganz gewaltigen Vorteil: Man hangelt sich nicht von Beispiel zu Beispiel und steht am Ende im Regen da, sondern man sieht, dass C überschaubarer und kompakter ist, als man glaubt. Natürlich sollte man schon grunsätzliche Syntaxkenntnisse mitbringen, aber immerhin nimmt einem so ein Buch ganz gut das Gefühl, nur an der Oberfläche zu kratzen. Denn in C "kommt nach Syntax nicht mehr viel", so zu sagen. Ihr versteht schon. > Ein gutes > Buch das einfache Beispiele schrittweise erläutert hilft Frust zu > vermeiden (ein gutes Skript geht auch, ist aber oft didaktisch nicht so > gut aufgebaut und meistens nicht so ausführlich). Am besten sogar eine Person, die einem mal ne Viertelstunde lang Schritt für Schritt erklärt, wo die { hinkommt und so weiter. Auch das nimmt einem ganz schnell die Angst vor wilden Sonderzeichenorgien und taugt ewig mehr als irgendwelche Syntaxbäumchen. > Der Rest kommt dann > mit der Zeit. Das Wichtigste ist eigentlich dass man sich wohl fühlt und > am Ball bleibt. Programmieren, programmieren, programmieren! > DAS richtige Buch + DIE richtige Entwicklungsumgebung > muss jeder für sich selber finden. Das kann am Anfang etwas mühsam sein. Genau, vorallen Dingen bitte "Buch", so richtig aus Papier. Zumindest aus eigener Erfahrung hab ich gemerkt, dass man bei Online-Dokus viel leichter abschweift oder zu Copy&Paste neigt. Kauf dirn Buch, das kannste aufm Weg zur Arbeit weiterlesen bzw. zurücklesen um zu rekapitulieren und gut. > Schon die Frage welche Programmiersprache man sich jetzt "antut" kann > ein zäher Prozess sein. Meine Empfehlung daher: Nix Exotisches am Anfang > nehmen und nicht zuviel verlangen (Sätze wie, "ich will programmieren > lernen, um Spiele selber zu programmieren sind naiv und enden > schließlich in Frustration). Und man darf durchaus später wechseln, ohne den Kopf abgerissen zu bekommen! Sah bei mir so aus: - Rohde&Schwartz-Basic - QBASIC auf dem ersten eigenen Rechner - National Instruments' LabVIEW - Visual Basic - Turbo Pascal - PHP, Perl (mal sondiert, dann bei PHP hängen geblieben) - Delphi (in der Schule) - C - C++ (auch mal sondiert, aber keinen Gefallen dran gefunden) > Am besten fängt man mit Konsolenprogrammen > an und lässt Fenster mit Menüs (egal ob unter Linux oder Windows) erst > man beiseite. Auch das ist ne gute Empfehlung. > Klappt es mit den Konsolenprogramm(en), dann übergehen zum > Dialog-orientierten Programm mit einfachen Button und danach zum > Fenster-orientierten Programm mit Steuerelementen wie Menüleisten. Das ist der schwierigste Schritt. > Von > den Assistenten die gleich ganze Anwendungen zusammenklicken sollte man > als Einsteiger die Finger lassen. Davon lernt man nix! Man muss die > Quelltexte im Ganzen verstehen und nicht einen vorgegebenen Quelltext > irgendwo ergänzen und dann nicht so richtig wissen, an welcher Stelle > eigentlich was passiert. Das Problem bei der Sache ist, dass es meistens nur noch Assistenten gibt: Visual-XXX (ohne .NET) kommt mit Resourcendateien daher, genauso wie Borland-C. Da hat man als Programmierer fast schon keinen Einfluss mehr auf das Erzeugen der Bedienoberfläche. Gegenbeispiel wäre dazu das GTK (mit dem auch Gnome geschrieben ist): hier schreibt man sich in C seine Oberfläche Stück für Stück zusammen.
Sven Pauli wrote: >> Am besten fängt man mit Konsolenprogrammen >> an und lässt Fenster mit Menüs (egal ob unter Linux oder Windows) erst >> man beiseite. > Auch das ist ne gute Empfehlung. Nicht unbedingt - man sollte für solche Aufgaben aber auch das passende Werkzeug verwenden. C oder C++ sind für grafische Oberflächen sicherlich das falsche. >> Klappt es mit den Konsolenprogramm(en), dann übergehen zum >> Dialog-orientierten Programm mit einfachen Button und danach zum >> Fenster-orientierten Programm mit Steuerelementen wie Menüleisten. > Das ist der schwierigste Schritt. Nein :-) Das ist sogar einfach - z.B. mit Tcl/Tk >> Von >> den Assistenten die gleich ganze Anwendungen zusammenklicken sollte man >> als Einsteiger die Finger lassen. Davon lernt man nix! Man muss die >> Quelltexte im Ganzen verstehen und nicht einen vorgegebenen Quelltext >> irgendwo ergänzen und dann nicht so richtig wissen, an welcher Stelle >> eigentlich was passiert. Das stimmt. > Das Problem bei der Sache ist, dass es meistens nur noch Assistenten > gibt: Visual-XXX (ohne .NET) kommt mit Resourcendateien daher, genauso > wie Borland-C. Da hat man als Programmierer fast schon keinen Einfluss > mehr auf das Erzeugen der Bedienoberfläche. Ja, deswegen verwende ich da Tcl/Tk. > Gegenbeispiel wäre dazu das GTK (mit dem auch Gnome geschrieben ist): > hier schreibt man sich in C seine Oberfläche Stück für Stück zusammen. Ja, das ist ein echter Krampf - musste ich mir nicht lange antun. Ein Beispiel für die Einfachheit von Tcl/Tk gefällig? Hier das übliche "Hello World" - als Button im Fenster. Bei Anklicken wird dieses geschlossen:
1 | |
2 | |
Das war's :-) Für den OP: Für einen Überblick würde ich mir mal das Wiki zu Tcl/Tk ansehen - dort sind schöne Beispiele zu sehen, wie man mit schon mit einigen Zeilen eine GUI stricken kann: hier sogar in Deutsch: http://wiki.tcl.tk/2548 Übrigens kann man Tcl auch auf Controllern verwenden - mache ich hier mit großem Erfolg. Allerdings muss ich da meinen Vorrednern Recht geben: C sollte man in dem Bereich unbedingt können. Und noch ein Goodie: Tcl/Tk und praktisch sämtliche Erweiterungen stehen unter BSD-Lizenz, dürfen also ohne Quelltexte weitergegeben werden. Chris
Gast
#1019542
Musses wohl klarer ausdrücken, wohl gemerkt, ich rede hier von C/C++. Dass es Alternativen gibt, die einfacher sind (z.B. Skriptsprachen wie Tcl/Tk, PHP und Co., und die auch alle schöne, bunte Oberflächen machen, WEISS ICH). Chris D. wrote: > Sven Pauli wrote: > >>> Am besten fängt man mit Konsolenprogrammen >>> [...] >> Auch das ist ne gute Empfehlung. > > Nicht unbedingt - man sollte für solche Aufgaben aber auch das passende > Werkzeug verwenden. C oder C++ sind für grafische Oberflächen sicherlich > das falsche. C und C++ sind für die Programmlogik durchaus die richtige Wahl. Blöderweise verschleiern aber solche resourcenbasierten Oberflächen-"Designer", was denn nun wirklich im Programm passiert. QT (was an sich ne feine Sache ist) treibt das sogar so weit, dass es selber noch ne ganze Menge C++-Code dazupackt, den der Programmierer garnicht zu sehen bekommt. Tk ist für GUI ne prima Sache, aber irgendwie zieht es mich bei hardwarenaher Programmierung (Auswertprogramme an RS232, Parallelport, ISA, wasauchimmer) gerne wieder zu C hin. Und richtig flotte Sachen mach ich auch wesentlich lieber in C als in Tcl/Tk, und wenns dann nachher wieder als Tcl/Tk-Erweiterung auftaucht. Was manche (mich eigentlich nicht) noch stören könnte ist, dass die Oberflächen von Tk von Haus aus nicht uuuunbedingt sooo toll aussehen, also so richtig ins QT-Feeling von KDE oder ins Aussehen von Gnome passen die eigentlich nicht.
Sven Pauli wrote: > Musses wohl klarer ausdrücken, wohl gemerkt, ich rede hier von C/C++. > Dass es Alternativen gibt, die einfacher sind (z.B. Skriptsprachen wie > Tcl/Tk, PHP und Co., und die auch alle schöne, bunte Oberflächen machen, > WEISS ICH). Gut ;-) >> C oder C++ sind für grafische Oberflächen sicherlich >> das falsche. > C und C++ sind für die Programmlogik durchaus die richtige Wahl. Eben. Man beachte den Unterschied: Programmlogik <-> grafische Oberfläche :-) > Blöderweise verschleiern aber solche resourcenbasierten > Oberflächen-"Designer", was denn nun wirklich im Programm passiert. QT > (was an sich ne feine Sache ist) treibt das sogar so weit, dass es > selber noch ne ganze Menge C++-Code dazupackt, den der Programmierer > garnicht zu sehen bekommt. Tja :-/ > Tk ist für GUI ne prima Sache, aber irgendwie zieht es mich bei > hardwarenaher Programmierung (Auswertprogramme an RS232, Parallelport, > ISA, wasauchimmer) gerne wieder zu C hin. Und richtig flotte Sachen mach > ich auch wesentlich lieber in C als in Tcl/Tk, und wenns dann nachher > wieder als Tcl/Tk-Erweiterung auftaucht. Ja, klar - genau dafür ist Tcl/Tk ja auch gemacht worden: der Allerweltskram wird skriptmäßig erschlagen und hardwarenahe Funktionalität wird in C implementiert und als neuer Tcl-Befehl eingebunden. Die Schnittstelle zu Tcl ist mMn die bestdokumentierte und einfachste, die ich je gesehen habe. Wobei ich sagen muss, dass ich selbst bei hardwarenahen Kundenprojekten selten mehr als 5% wirklich in C implementieren muss. Das erstaunt mich immer wieder selbst :-) > Was manche (mich eigentlich nicht) noch stören könnte ist, dass die > Oberflächen von Tk von Haus aus nicht uuuunbedingt sooo toll aussehen, > also so richtig ins QT-Feeling von KDE oder ins Aussehen von Gnome > passen die eigentlich nicht. Oh, dann hast Du länger nicht mehr bei Tk vorbeigeschaut. Themenbasiertes Aussehen ist enthalten. Unter Windows und Mac sowieso, unter X11 auch seit einiger Zeit (Stichwort: ttk). Das zugegebenerweise hässliche Motif/X-Outfit ist damit glücklicherweise Geschichte. Chris
Gast
#1019563
Gut so :-)
Gast
#5447048
Ich benutze ein wirklich kleines Entwicklungsboard mit NXP LPC11U68 Cortex-M0 + von dieser Seite (https://eigerdb.eu/), wo ich auch einige interessante grundlegende Tutorials gefunden habe. Deshalb benutze ich es. Ich denke, dass der Mikrocontroller alle Peripheriegeräte hat, die Sie benötigen.
Gast
#5447051
Hallo, Über diese Antwort wird sich der Threadersteller aber freuen. Ach nee
Gast
#5447053
Für grafische Oberflächen ist, ohne Scherz, Lazarus Pascal, super. C/C++ ist gerade für den Anfang frustrierend, meist gibt es dann auch nicht den bedarf, Wenn Du gut mit Lazarus Pascal arbeiten kannst, gibt es faktisch keinen Grund zu C++ zu wechseln. Python hat sicher auch seine Vorteile, ist meines Wissens aber nach wie vor, für größeres und Grafisch nicht optimal. Weshalb Lazaraus eine Option ist? Es ist sehr einfach, gibt sehr günstig unzählige Bücher(Einfach Bücher für Delpi kaufen) eine sehr freundliche hilfreiche Community, die ein nicht ständig bei jeder Frage an den Kopf wird, das man sich ein Buch kaufen und lesen soll, oder google bemühen soll ;-) Solche Antworten braucht halt wirklich niemand. Ursprünglich wurde Pascal ja mal als Lehrsprache entwickelt, mit Turbo Pascal, Delphi / Lazarus ist es aber voll Alltagstauglich geworden. Das Erstellen geht damit super fix und auch große Projekte sind damit problemlos möglich. Unter C++ fällt mir nur MS Visuell C++ ein, was als Alternative taugt. Im Basic Bericht, wäre Visuell Basic sicher auch nicht schlecht. Sowohl BAsic als auch PAscal eignen sich später zur µC Programmierung dank Mikro.com gibt es für alle gängigen µC auch basic und Pascal http://www.lazarus-ide.org/
Gast
#5447054
der Themenstarter evtl. nicht. aber der nächste den diese Frage beschäftigt..vielleicht erweiterst Du mal etwas Deinen Horizont?...
Gast
#5447058
...und empfiehlt: Arduino.
Gast
#5447062
Delphi,C++,Assembler,Basic,Java (zeitl. Reihenfolge) Fazit: Ein motivierendes Buch holen (egal welches oder welche Sprache) und das durcharbeiten bis du alles verstanden hast. Tipp: Ohne Codeergänzung usw arbeiten. Besser alles im Kopf. Und: Scheiß auf deine Eltern usw, wenn die das nicht verstehen oder gut finden. Mach dein Ding.
Gast
#5447063
30 Jahre später gibt es eine Lösung auf ale Probleme. Ok, es sind nur 10 Jahre, aber immerhin.
Gast
#5447088
vielleicht wäre ja auch Feedback interessant, was er nun gemacht hat? Können sich die Leute , die nichts zum Thema Beitagen, einfach mal enthalten?!?
Gast
#5447096
Andreas S. schrieb: > Basic ist sicher nach wie vor keine schlechte Wahl, aber inzwischen gibt > es modernere Sprachen die auch nicht schwieriger zu lernen sind. Ruby > oder Python fallen mir da zuerst ein. Dem würde ich mich Anschließen, ich denke Python ist heute eine gute Wahl für Anfänger als erste Sprache. Als Ergänzung würde ich allerdings denn Trick meines Informatik Lehrer nehmen und dem TO empfehlen ein, zwei Gebrauchsanleitungen vorher zu schreiben. Zum Beispiel für die Kaffeemaschine oder den Rasenmäher. Dabei sollte eine kleine Anleitung raus kommen welche es ermöglicht den Gegenstand zu benutzen. Der Vorteil von diesen Anleitungen ist, das man lernt strukturiert zu denken ohne Programmieren zu können. hier mal ein Beispiel für die Kaffeemaschine:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
Das schöne an dieser Art der Anleitung, ohne viel Programmiererfahrung oder Informatik Kenntnisse fängt man an zu denken wie ein Software Entwickler, gerade am Anfang kann das eine Hilfe sein.
Gast
#5447219
Ich finde C & Konsolenanwendungen zum anfangen am besten. C ist eine sehr minimalistische imperative Programmiersprache mit statischer Typisierung. Man hat alle Standard Sprachkonstrukte, wie z.B. Datenstrukturen, Funktionen, Schleifen, Bedingungen, etc. aber nicht 100 Konstrukte um das selbe mit ein paar anderen Gewürzen zu Backen, wie dies z.B. bei C++ der Fall ist. Und dank der statische Typisierung kann man alle Fehler bei der falschen Nutzung von Variablen und Funktionen schon im voraus beim Kompilieren erkennen. Bei anderen Programmiersprachen mit dynamischer Typisierung merkt man Dinge wie den Typo beim Methodenaufruf erst zur Runtime. Das fehlende bound Checking, welche es einfach macht sich das Programm zur Runtime zu zerschiessen, ist ein wenig ein nachteil. Pointer zu haben, und sich selbst mit dem Memory Management auseinander setzen zu können, ist ein grosser Vorteil. Klar, man kann schnell mal was vergessen oder doppelt freigeben, aber mit etwas Übung lernt man recht schnell, damit umzugehen. Bei anderen Programmiersprachen mit Garbagecollection machen sich viele keine Gedanken mehr um Memory Management, aber der GC löst die Probleme nicht magisch. Es gibt immer noch Memoryleaks, wenn man noch irgendwo Referenzen herumhängen hat, man weiss nie so genau, wann der GC wieder zuschlagen wird, bei Programmen wie z.B. Games kann man Latenzprobleme bekommen, wenn der GC sich mal wieder ein paar Frames zeit nimmt, und in JS hatte ich schon mal eine sich regelmässig updatende Datenstruktur, bei welcher das herausfinden was noch referenziert ist mit den Algorithmen der gängigen Browser als derart ineffizient herausstellte, dass ich 100% CPU last hatte von der der Browser 99% der Zeit mit GC beschäftigt war, bis ich das gedebugt hatte... Ich selbst hatte damals mit einer Webseite angefangen. Mit JS kann man erstaunlich viel machen, es gibt für alles APIs, man hat schon ein GUI Framework, etc. Irgendwie scheinen aber bei JS viele Probleme zu haben ihren Code sauber zu strukturieren und werfen weitere Frameworks und Libraries auf Probleme, noch bevor sie die APIs die der Browser schon anbietet überhaupt gelernt haben... Nach meiner ersten Webseite hatte ich damals ein 3D Game mit C++ und OpenGL geschrieben. Es funktioniert, aber der Code ist eine Katastrophe, würde der heute jemand lesen bekäme dieser sofort einen Herzinfarkt. Das wichtigste ist, viel üben, auch Code anderer anschauen, versuchen Probleme selbst zu lösen, auch mit Debuggern und co., keinen Code einfach so kopieren, und sich auch mit Algorithmen beschäftigen und sich verschiedene Lösungen für seine Problem ausdenken. Und nie vergessen, es gibt immer für alles einen Grund. Ich habe schon Läute gesehen, die konnten Programmieren ohne die geringste Ahnung zu haben was sie eigentlich tun. Ich bin nie dahinter gekommen, wie das möglich war. Ausserdem ist es von Vorteil, von Grund auf alle Abläufe zu kennen, und sich beim Programmieren nicht nur auf Tools zu verlassen. Eine IDE z.B. ist ja praktisch, aber man sollte schon in der Lage sein seinen Code auch ohne diese zu compilieren. Und zu guter letzt, ich finde auf Linux ist das Entwickeln wirklich am bequemsten. Dort ist alles vollkommen transparent. Die ganzen Werkzeuge, die es darauf gibt, und wie viel einfacher man diese darauf nutzen kann, ist phänomenal. Einige davon gibt es auf anderen OSen noch nicht einmal. Man sollte beim Programmieren aber allgemein keine Angst vor Kommandozeilen haben, gerade hier machen diese vieles einfacher.
Dieser Thread ist von 2008.