Compiler, C++-Format, ...
-
könnt ihr mir vl die seite/n geben, wo ihr das gelernt habt?!
ich habe mir auf folgender Page mal die einführung durchgelesen,
ich habe zwar ungefähr verstanden was man da machen kann, aber warum man das so
machen muss, check ich net!
http://www.highscore.de/cpp/einfuehrung/
-
http://tutorial.schornboeck.net/inhalt.htm
oder
http://www.volkard.de/vcppkold/inhalt.html
das letzere ist glaub ich ein wenig umfangreicher, habs nur überflogen. das erste hab ich selbst durchgearbeitet.
ich hab mir dienen link net wirklcih angeguckt, aber so schlecht scheint das nicht zusein.
-
hustbaer schrieb:
Und ich wollte mit meinem Post sagen dass man auch nach 2-3 Jahren wohl immer noch am Lernen sein wird.
nur? zuerst war C++98 ganz neu und cool und man durfte die leute hier immer auf die container hinweisen (und den rest der standardlib), irgendwann kam dann boost in den mainstream und template metaprogramming wurde in, dann war der tr1 da und der nächste standard wird auch immer konkreter und wenn man jetzt anfängst, sich das alles beizubringen wird man in zwei jahren dann mit c++09 wieder ziemliches neuland erforschen können. stichwort: lebenslanges lernen.
Thinking in C++ hat sich immer als guter einstieg erwiesn
-
sollte ich vl mit VBS anfangen?
da brauch man nicht immer kompilieren und so!
oder ist da ein großer unterschied?
-
Jimbo schrieb:
sollte ich vl mit VBS anfangen?
Nein. VBS ist keine Lern-Programmiersprache.
-
wieso?
-
Jimbo schrieb:
wieso?
Zu chaotisch. Stellt keine Paradigmen heraus, zeigt nicht exemplarisch, wie man etwas macht. Außerdem zu eingeschränkt, vor allem durch mangelnden Editor-Support.
Letztendlich ist VBS aber eine Frickel-Sprache, in der man in möglichst wenig Zeit ein relativ kleines Automatisierungs-Problem löst – das ist aber nur ein winziger Teilbereich der Programmierung, und nicht der, den man anfangs lernen sollte. Abgesehen davon ist VBS einfach veraltet und wir kaum noch (für neue Sachen) benutzt. Und VBS war noch nie mehr als eine Rand-Sprache ohne große Bedeutung.
Eine gute Lernsprache ist eine Sprache, welche die notwendigen Konzepte vermittelt, damit man sich ins Programmieren hineindenkt. Das macht VBS nicht.
-
Übrigens ist Lerning-By-Doing wesentlich effektiver, als Tutorials oder Fremd-Code durchzuarbeiten. Musst ja auch nicht lange bei der Konsole bleiben (fande ich immer langweilig), kannst ja dann auf Fenster umsteigen. Nicht MFC, sondern WinAPI, da lernst du mehr. Und wie schon gesagt wurde, du lernst, lernst, lernst. Zum Glück ist das ein anderes Lernen als in der Schule/Uni, programmieren macht Spaß, und du lernst quasi ausversehen nebenbei; so wie du beim Fußball mit der Zeit bessere Kondition bekommst

Und lass dir nix erzählen von wegen nimm die Programmiersprache oder die, da gibts nichts schlechtes oder keine falsche Lösung, Hauptsache du bleibst bei einer. Wenn du dir dann irgendwann Java, C#, Delphi (gibts das eigentlich noch?) oder ähnliche anguckst, kannst du dir schneller, als du gucken kannst

-
Hallo
Also wie man WinAPI einen Anfänger empfehlen kann, verstehe ich wirklich nicht.
chrische
-
chrische5 schrieb:
Also wie man WinAPI einen Anfänger empfehlen kann, verstehe ich wirklich nicht.
Meiner subjektiven Meinung nach aus 2 Gründen :):
- Erstens denke ich, dass OOP verständlicher ist, wenn man prozedurale Programmierung kennt. Prozedurales Programmieren ist von Anfang an logisch, einfach und verständlich. Mit der WinAPI wird man darauf gestoßen, dass, und warum, Klassen nötig sind bzw von Vorteil sein können. Zum Beispiel gibt es unzählige Funktionen, die als ersten Parameter ein HWND fordern, wie ShowWindow, EnableWindow, SetWindowPos usw. Da sieht man dann das erste mal die Verknüpfung von Daten mit darauf zugeschnittenen Funktionen.
Dass dann eine Klasse "Window" praktisch ist, weil man das Handle nicht die ganze Zeit herumschleppen muss und sie im Konstruktor mit NULL initialisieren kann, ist ein nachzuvollziehender und logischer Schritt. So wird man ganz locker an die OOP herangeführt. Ebenso die dann nützliche Vererbung, falls man eine ChildWindow-Klasse will, die die Window-Klasse erweitert.- Zu zweiten ist es eine Sache des Verständis und der Einfachheit. Wenn man mit der Fensterprogrammierung anfangen will, wurde mit Sicherheit schon ein Konsole-Hello-World-Programm programmiert. Da hat man eine Datei, in der die main-Funktion ist, von der aus eine Funktion ausgeführt wird, die irgendwas tut.
Legt man dann ein MFC-Projekt an, hat man auf einen Schlag 9 (!!) Dateien, deren Inhalt man nicht versteht, die gefüllt sind mit irgendwelchen Klassen, die irgendwelche Makros beinhalten, die irgendetwas tun; nicht einmal eine vernünftige main-Funktion gibt es.
Da ist es definitiv einfacher, ein Projekt anzulegen mit einer Datei, in der statt der "main" nun eine "WinMain" ist. In dieser WinMain muss man 4 oder 5 Funktionen aufrufen, die dann ein Fenster erzeugen, eine Nachrichten-Schleife abarbeiten und bei einer Schließen-Nachricht macht man das Fenster mit einem Befehl zu und beendet die Nachrichten-Schleife.
-
Gibt es eine sprache, womit man kleine inputboxes und msgboxes erstellen kann,
ohne das Programm zu kompilieren?
(außer VBS)
-
Jimbo schrieb:
Gibt es eine sprache, womit man kleine inputboxes und msgboxes erstellen kann,
ohne das Programm zu kompilieren?
(außer VBS)Ja, gibt es zu Hauf. Aber sorry, das ist *absolut kein* Argument für eine Sprache, die man lernen möchte. Überleg Dir mal, wo die Prioritäten bei einer Programmiersprache liegen, die man lernen möchte. Die Prioritäten sind sicherlich *nicht*, einfach irgendwelche Nachrichten-Boxen erstellen zu können sondern möglichst viel zu lernen.
Mein persönlicher Vorschlag wäre sowieso entweder Python – oder aber Ruby, und zwar per Hackety Hack. Einfacher kann man Programmieren wahrscheinlich nicht lernen.
Bedenke: Wenn Du es mit dem Programmieren ernst meinst, wird eine Sprache nicht reichen, und auch nicht zwei oder drei. Vielmehr muss man in der Lage sein, sich auch später noch in relativ kurzer Zeit eine *neue* Sprache anzueignen, sobald das nötig ist. Es gibt Profis die vorschlagen, pro Jahr mindestens eine neue Sprache zu lernen. Ich selbst kann mindestens acht Sprachen "fließend" und mehrerer andere gut genug, um darin mit einer Doku Programme zu schreiben (und da sind Sachen wie XML, HTML etc. nicht enthalten). Und trotzdem kann ich für den aktuellen Arbeitsmarkt eigentlich *zuwenig* Sprachen!
-
Konrad Rudolph schrieb:
Es gibt Profis die vorschlagen, pro Jahr mindestens eine neue Sprache zu lernen. Ich selbst kann mindestens acht Sprachen "fließend" und mehrerer andere gut genug, um darin mit einer Doku Programme zu schreiben (und da sind Sachen wie XML, HTML etc. nicht enthalten). Und trotzdem kann ich für den aktuellen Arbeitsmarkt eigentlich *zuwenig* Sprachen!
Du machst mir Angst

-
Badestrand schrieb:
Konrad Rudolph schrieb:
Es gibt Profis die vorschlagen, pro Jahr mindestens eine neue Sprache zu lernen. Ich selbst kann mindestens acht Sprachen "fließend" und mehrerer andere gut genug, um darin mit einer Doku Programme zu schreiben (und da sind Sachen wie XML, HTML etc. nicht enthalten). Und trotzdem kann ich für den aktuellen Arbeitsmarkt eigentlich *zuwenig* Sprachen!
Du machst mir Angst

Na ja, vielleicht habe ich übertrieben. Ich habe mit meinem Studium (Bioinformatik) sowieso einige Probleme weniger. Aber wenn man als reiner Programmierer mit Ausbildung, ohne Studium, nen Job sucht, sollte man definitiv *mehr* können als andere. Und wenn Java gefragt ist – hey, dann lernt man halt in zehn Tagen (und Nächten, Schlaf wird allgemein überschätzt) Java, bevor man zum Vorstellungsgespräch geht. Such is life: A bitch, so f*ck her.
-
wobei man mit c++ ganz gut grundkonzepte lernt - von strukturiert über objektorientiert bis funktional ist (fast) alles da (wobei mir Prolog/CHR nichts ersetzen kann, und Qi ist auch ganz lustig
)
-
queer_boy schrieb:
wobei man mit c++ ganz gut grundkonzepte lernt - von strukturiert über objektorientiert bis funktional ist (fast) alles da (wobei mir Prolog/CHR nichts ersetzen kann, und Qi ist auch ganz lustig
)Das ist schon korrekt. Allerdings ist in C++ viel "Beiwerk" vonnöten, was zum einen daran liegt, dass C++ die echt perverse C-Syntax geerbt hat und zum anderen einfach daran, dass es eben so flexibel ist. Für Anfänger gibt es hier schon eine Menge Hürden, die in Python o.ä. einfach nicht existieren. Das Erfolgserlebnis ist schließlich ein wichtiger Teil des Lernens.
-
Allerdings gibt es in Python so viele Sachen die man (gerade als Anfänger) so schnell misbrauchen kann...
Mit Python lernen ist denke ich nicht viel besser als mit PHP lernen, und zu was das führt sieht man ja oft genug. Dasselbe gilt für Ruby.
-
hustbaer schrieb:
Allerdings gibt es in Python so viele Sachen die man (gerade als Anfänger) so schnell misbrauchen kann...
Mit Python lernen ist denke ich nicht viel besser als mit PHP lernenDas halte ich für grundsätzlich falsch. *Jede* Sprache lässt sich (relativ einfach) missbrauchen, sogar Ada oder Haskell. Trotzdem gibt es gerade zwischen Python und PHP massive Unterschiede. Python wurde mit System entwickelt, PHP als Kunterbunt-Haufen.
Zugegeben, die dynamische Typisierung in Python und Ruby mag ich auch nicht (und halte sie auch für überflüssig) aber ich denke, dass Python und Ruby trotzdem ein recht gutes Gefühl für ein Typsystem vermitteln, anders als dies z.B. bei PHP oder BASIC der Fall ist.
-
Hm.
Wo ist bitte ein Typensystem wenn ich zu Instanzen (!) dynamisch irgendwelche Member (Daten und Funktionen!) dazuhängen kann?
*schauder*
Oder gar zu ganzen "Klassen".Eieiei... ich weiss nicht.
Und: natürlich lässt sich jede Sprache misbrauchen, bloss wenn man mit etwas so "mächtigem" (im Sinne von: man kann fast alles schnell hinfrickeln) wie Python oder Ruby anfängt, dann wird man sich nachher sehr schwer tun sauber in einer Sprache wie C++ oder Java programmieren zu lernen.
-
hustbaer schrieb:
Hm.
Wo ist bitte ein Typensystem wenn ich zu Instanzen (!) dynamisch irgendwelche Member (Daten und Funktionen!) dazuhängen kann.
*schauder*
Oder gar zu ganzen "Klassen".Hä? Was hat das eine mit dem anderen zu tun? Was spricht dagegen, Klassen erweiterbar zu machen. Und was spricht gegen Reflection? AOP geht doch sogar noch weiter.
wenn man mit etwas so "mächtigem" (im Sinne von: man kann fast alles schnell hinfrickeln) wie Python oder Ruby anfängt, dann wird man sich nachher sehr schwer tun sauber in einer Sprache wie C++ oder Java programmieren zu lernen.
Halte ich wie gesagt für falsch und irgendwie fehlt mir da auch eine Begründung. Zu guter Letzt halte ich den Begriff "Frickeln" hier für falsch. Mit Python oder Ruby "hackt" man, da steckt aber IMHO eine ganze Menge mehr hinter als beim "Frickeln"; vor allem eine ganz andere Ideologie.