![]() |
fortgeschrittene programmierung lernen
hi !
Momentan programmiere ich gerade an einem ActiveX-control. Der Source war frei verfügbar und ich erweitere dieses nun. Ich programmiere nun schon längere Zeit C++, MFC und habe auch mit C# begonnen. Ich finde es immer wieder interessant, wenn man sich codebeispiele ansieht, wie manche leute gewisse probleme gelöst haben. Ich meine - es ist doch ein großer unterschied, ein einfaches beispielprogramm zu implementieren (wie man diese immer in Büchern findet) oder z.B. ein ActiveX-Control, welches notifications an das Parent- Window schicken muss, von OLEControl abgeleitet ist und daher z.B. den Curosr selbst zeichnen muss, alle Tastatureingaben selbst verarbeiten muss usw. So etwas ist ja nicht gerade einfach (finde ich) und erfordert schon einiges an Hintergrundwisse über die Abläufe von Windows. Wenn man sich Bücher anschaut, werden darin meist nur die Basics behandlet. ...wie zeichne ich einen Button in meinen Dialog, wie zeige ich ein Bild an usw. Bisher habe ich aber noch kein gutes Buch gefunden, wo "fortgeschrittene" Themen gut erklärt werden. Die gesamte MSDN-Hilfe zu lesen ist etwas...hmmm "aufwändig". :) Wie kann man sich solches Wissen aneignen bzw. Welche Bücher verwendet ihr, um solche Dinge zu lernen ? Gibt es für soetwas überhaupt Bücher, oder muss man sich alles selbst erarbeiten ? Noch ein Beispiel: Es gibt ja Softwarefirmen, die fertige Komponenten anbieten (z.B. für MFC). Wo/Wie lernt man, soetwas zu programmieren - z.B. Controls, die man in MFC einbinden kann und die sich hinsichtlich Focus, Validation, sich selbst zeichnen usw. korrekt verhalten ? Würde mich sehr für eure Erfahrungen diesbezüglich interessieren ! fg -hannes |
|
hi & guten morgen !
@flink: das ist doch einfach ein buchversand, wie z.B. amazon, oder ? kannst du eines der dort angebotenen bücher im speziellen empfehlen ? angeblich soll es für control-programmierer einen kurs geben, wo man das lernen kann. soll in england sein, 1/2 jahr dauern + sauteuer sein....nicht ganz das, was ich suche. fg -hannes |
1. bei einer Firma als Programmierer anfangen
2. sich zusätzlich so etwas als längeres Projekt vornehmen 3. den Umstand, daß es 10 Jahre dauert bis man diese Dinge parat hat, gelten lassen Niemand ist ein Supermensch. Daß einem Material zu dieser Thematik (Fensterprogrammierung) in die Hände fällt ist ein Teil des Ganzen. |
hi !
@kikakater: ad 1) ich arbeite als programmierer bei einer Fa. - deshalb gerade (bzw. u.a.) interessiert mich sowetwas ja. :) ad 2) ist recht schwierig. im beruf ist man andauernd mit dingen konfrontiert, die einer schnellen lösung bedürfen. und in meiner freizeit mach ich lieber interessante dinge, als msdn hilfe auswendig zu lernen (wobei noch anzumerken ist, dass auch die darin enthaltenten beispiele oftmals fehler haben). ad 3) das schlimme ist, dass du damit vermutlich recht hast... supermensch will ich eh keiner sein - dass superman noch nebenbei gearbeitet hat war ja einen verschwendung seiner möglichkeiten. ;) na - ist ja fasching ! ist halt so, dass die meinsten bücher, die ich kenne als einstieg ins programmieren gedacht sind und ich mal fragen wollte, welche guten bücher ihr kennt/habt, die sich mit fortschrittlchen themen beschäftigen. fg -hannes |
Ich finde nicht, daß Punkt 3 etwas Schlimmes vermittelt. In Bezug auf C++ wohl schon, da bereits alles entwickelt ist oder während der eigenen Entwicklung entwickelt wird.
Bei Java ist das grundsätzlich anders. 1) Es ist nach Regeln vorzugehen, Programmieren war lange Zeit genug eine "Kunst", viel eher ist aber Flickschusterei gemeint 2) Um gut programmieren zu können, brauche ich Libraries oder Black boxes die den Job machen, bei C++ ist der Programmierer von daher eher ein Pseudo Pionier, tatsächlich ein Sklave der Entwicklungen der Zeit, weil es andere schon vollbracht haben (und es proprietär verwenden ohne es zugänglich zu machen) 3) Programme müssen abgeschottet sein gegenüber Hardware (ein Hardware Modul, von dem ich vorher gesprochen habe, dient anderen Zwecken) und Skriptingfähigkeiten anbieten, das tut C++ nicht und ist ungefähr so, wie eine scharfe Stahltrasse, die mit Wucht an die Seite eines Armes prallt und die nämlichen Folgen einer Verletzung liefert ... Java ist in diesem Zusammenhang der beste Kompromiß und vom Ansatz her durch eine Virtuelle Maschine unschlagbar - außer durch eine Erweiterung der Virtuellen Maschine. iX über JDK 1.5 Mit Java verkürzt sich die Zeitspanne von 10 Jahren auf 2,5 Jahre (Perfektion) + 2 Jahre (Grundwissen über das Programmieren allgemein) Java ist das beste was es für Programmierer gibt. Gleichgültig um welche Aufgabe es sich handelt. Die Virtuelle Maschine ist notwendig, aber dies darf beim denkenden Anwesenden als notwendiger Umstand vorausgesetzt werden. |
Zitat:
ich hab im letzten halben jahr auf einem msp430 herumprogrammiert. 2kb ram, 64 kb rom, 4 mHz java is da wirklich net das beste ein projekt von mir (java am ipaq) haben wir fallengelassen weil java zu langsam war. wir habens in C neuprogrammieren müssen. java - die sprache selbst - mag ja ganz fesch sein (hierbei ist auch c# net übel) aber es gibt einige sachen die mir abgehen (pointer, function pointers, etc). und die geschwindigkeit ist ein graus |
hi !
Werd mir den iX Artikel mal durchlesen. Dein Posting betrifft zwar nun nicht mehr die von mir angesprochene Thematik (gute Bücher für fortgeschrittene Windows programmierung) ;) - aber ich schreib halt mal, was ich so darüber denke. Erstmal: Es ist schon länger her, dass ich was mit Java gemacht habe - damals hats mich nicht begeistert. Dass es C++ bzw. der Win. Programmierung mit C++ überlegen ist, denke ich schon - man muss allerdings berücksichtigen, dass C ja im Zeitalter der prozedurealen Programmierung entwicklet wurde und für die Event-gesteuerte Win-Programmierung halt nicht gerade das geeignetste Tool ist. Durch diverse Erweiterungen hat man dann erreicht, dass man damit Win. programmieren kann, nur leider ist das ganze dadurch extrem kompliziert geworden. Anscheinenden ist sich MS dieser Problematik aber durchaus bewusst und hat daher z.B. C# entwickelt. Dieses hat ja seht viele Ansätze von Java übernommen und die Win. Programmierung damit ist sicher einfacher wie mit native C++ bzw. C++ mit MFC. Würdest du daher sagen, dass man sowieso nur noch auf C# oder Java setzen sollte und seine Zeit darin inverstieren sollte, um diese Sprachen zu meistern ? ...werd mich nach der Faschingszeit mal wieder mal mit Java beschäftigen, nachdem du das ja sehr empfielst - :) war, wie gesagt, am Anfang, als ich damit begonnen habe, ziemlich enttäuscht (ist aber schon 3 jahre her). Die in Java implementierten Oberflächen waren damals ja langsam und hässlich. (imho) fg -hannes PS: Deine Aussage "Java ist das beste was es für Programmierer gibt. Gleichgültig um welche Aufgabe es sich handelt." halte ich schon für etwas gewagt. |
C# ist konzeptmäßig der Nachfolger von Visual Basic, das Konzept lautet: "Ich möchte, daß die Programmierer für Windows programmieren und nicht für irgendein anderes System".
Java ist derzeit für Windows das beste, bald (mit der Einführung von Y Version 1.x) ist dies auch für Linux oder Unix im allgemeinen der Fall. Und Zeta ist auch nicht zu vernachlässigen. |
hi !
also C# mit visual basic zu verlgeichen, finde ich nicht richtig. ich habe mit beiden sprachen programmiert und der unterschied bezüglich der funktionalität ist schon enorm. das MS damit versucht, leute zur Win. programmierung zu animieren ist natürlich klar und kann man als "nachteil" gelten lassen. Das eine Programmiersprache eines Konkurrenten (i.d. Fall java von sun) besser zur Programmierung von Windows als eine von MS entwickelte Programmiersprache ist, kann ich nicht ganz glauben. hinsichtlich unix/linux programmierung ist das sicher anders. fg -hannes |
Zitat:
|
Zitat:
verschiedene C++-Bücher für Einsteiger |
Zitat:
Such mal im Netz oder auf der WCM Homepage nach Longhorn, Avalon und XAML. Spaetestens mit Longhorn wird das GUI-Design endlich bei den Grafikern und Werkzeugen wie Macromedia Fireworks landen. |
Und ... Zyniker, einer bzw. mehrere im Programmierteam ist bzw. sind für das Design zuständig. Fireworks oder ähnliche Programme müssen auch bedient werden (machen ihre Arbeit also nicht von alleine)
"des Programmierers als Designer" sollte eigentlich reichen bei einem intelligenten Menschen, ich sagte eigentlich :lol: Für die Zukunft: Krieg' Dich ein bißchen ein, "Forumsböser" ... |
Zitat:
Da sieht man halt den größten Nachteil eines Java Programmes: Es läuft einfach zäh. Jak |
Zäh ist es derzeit, das wird noch ... mit reinen nativen Compilersprachen ist es natürlich vom Prinzip her nicht zu vergleichen.
|
Zitat:
Ich programmiere in C ... Java kommt noch bei mir. |
dabei ist eclipse noch eines der schnellern programme (durch swt)...
|
@flink: Aha - das kannte ich noch nicht.
Auszug: What is Safari? Safari is a subscription based virtual library. => werd ich mal ausprobieren ! Zitat:
Da haben's auf einem Vortrag selbst gesagt, dass das Zeug langsam ist und leider oft abstürzt. ist aber schon länger her - ev. (hoffentlich) ist java inzwischen besser geworden. will darüber kein urteil abgeben, weil ich die letzten versionen davon noch nicht ausprobiert habe. das sich die programmierung mehr in "eigentliche programmierung" und design aufspaltet ist auch meine meinung - bei web-applikationen ist das ja schon so. java + zäh: natürlich wirds immer besser, weil die prozessoren immer schneller werden. werd mir wie gesagt mal eine neuere java version anschauen - momentan interessiere ich mich halt mehr für c#. ...und bissl freizeit für andere interessen sollte ja auch noch sein - meine: wenn man sich bei allen programmiersprachen auskennen will, hat man für nix anderes mehr zeit. :) fg -hannes |
Zu Eclipse: klar, braucht man dafür einen gscheiten Rechner, aber das Ding ist absolut genial - auch für PHP oder Perl (um noch einen Flame anzuwerfen).
Zu Java vs. C# vs. C++: es kommt auf das Einsatzgebiet an! Java und C# sind sich von der Syntax her sehr ähnlich, daher scheided dieser Vergleich aus. Ja, C# ist (noch) auf Windows limitiert, Java ist plattform unabhängig, aber langsamer. C++ ist schnell. Beginne oben zu lesen! Man dreht sich hier (gleich wie mit Windows vs. Linux, PHP vs. Perl, Milch vs. Orangensaft...) im Kreis. Jeder hat andere Vorlieben und andere Meinungen, was aber noch lange nicht heisst, dass man nicht auch die andere Meinung gelten lassen kann. Das eine ist gut für eine Anwendung, das andere für andere - je nach Einsatzgebiet und Aufgabe. Microsoft hat sich mit C# sicher nicht die Plattformunabhängigkeit zum Ziel gemacht, sondern einen modernen (da OO) Ersatz für C++ anzubieten... |
Zitat:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag