Programieren lernen?

Hallo,

nur noch mal so als Kommentar. Grössere Firmen (Siemens, Bosch, ...) machen immer noch sehr viel in C oder auch C++. Delphi, Pascal oder C# ist da eher nicht gefordert.

Deswegen spielt die Richtung in die man sich orientieren will eine Rolle. Ob das ganze dann unter Windows oder Linux stattfindet, ist da dann eher zweitrangig.

Sprich sehe ich mein Berufsziel darin mal für eine Waschmaschine, ein Auto, einen Bus oder eben andere technische Geräte zu entwickeln ist C sicher mal ein guter Anfang.

Um meine Homepage aufzupeppen oder eben in eine nicht so technisch orientierte Richtung zu gehen, ist dann sicher PHP oder Java vielleicht eher die richtige Sprache.

MfG

Arnd
 
Hi, hab' mir jetzt, aufgrund vieler guter Referenzen (insbesondere in diesem Thread), die beiden Bücher (C und C++) von "Helmut Erlenkötter" geholt.
Habt ihr sonst noch besondere Empfehlungen bezüglich C u. C++, meine "Ohren" sind gespitzt ;).
 
:daumen:
genau die werd ich Montag auch holen :)
Mamba sagt auch das "C++ in 21 Tagen"
gut sein soll :)
Max
 
Jaha!:D, hab' halt nen guten Riecher ;).
Stimmt, Mambas Empfehlung scheint auch ganz gut zu sein, aber wie man der Beschreibung (und den Rezensionen) entnehmen kann is das ja eher was für "Fortgeschrittene" und deshalb werde ich mir dieses vllt, nachdem ich die bereits bestellten durchgearbeitet habe, bestellen, zumal das ja auch für'n Anfang 'n bissel zu teuer is.
Warum bestellste se net jetzt wie ich bei Amazon :)? Montag is doch 'n Feiertag, da haben die Geschäfte doch zu, oder net :D?

Gruß

Markus
 
Weil meine Schwester einen Gutschein über 25€ inner Bücherrei hat :)
und ich den erst einlösen gehe ;) Weil sie Ihn genauso wenig brauch
wie ich, nur auf einem so ein "Schocker" als ich meinen Eltern sagte:
"Ich will ein Buch" :lol:
Naja das ist der Grund;)
Ich habe es genau so vor wie du;) Die beiden Bücher durcharbeiten und
dann "C++ in 21 Tagen" :)
Max
 
C++ in 21 Tagen ist an absolute Anfänger gerichtet. Hier ein Auszug:
Um mit diesem Buch C++ lernen zu können, müssen Sie über keinerlei Programmierkenntnisse verfügen. Das Buch beginnt mit den fundamentalen Grundlagen und führt Sie sowohl in die Sprache als auch die Konzepte ein, die mit der Programmierung in C++ verbunden sind. Zahlreiche Syntaxbeispiele und detaillierte Codeanalysen bereiten Ihnen den Weg. Ob Sie nun ganz am Anfang stehen oder bereits etwas Programmiererfahrung haben, der klare Aufbau des Buches erleichtert Ihnen das Erlernen von C++.
Das Buch gibts auch als HTML-Version. Sucht mal ein bisschen im Web, vielleicht lässt es sich ja aufstöbern. :)
 
@ a!i3n: Achso is das :D. Das find' ich cool, dann lernen wir ja sozusagen parallel ;).

@ Green Mamba: OK, dann hab' ich mich doch geirrt, obwohl dann braucht man das doch gar net, oder, denn ich hab' ja schon die beiden (s.o.) von "Helmut Erlenkötter" bestellt, dass müsste doch dann reichen, oder? Ich gehe doch mal davon aus, dass du beide schon durchgearbeitet hast ;).
Ansonsten schau ich mich mal nach der HTML-Version um ;).
 
Nein, ich hab an C++ Büchern noch kein einziges "durchgearbeitet". Ich hab anfangs programmieren gelernt mit Java, und hab beim Umstieg ab und zu C++ in 21 Tagen als Nachschlagwerk benutzt, aber auch mal größere Teile von Kapiteln angeschaut.
Aber ich hab schon einiges davon gelesen, und finde das Konzept ganz gut, und es ist auch sehr verständlich erklärt, mit vielen Beispielen. Wenn ich keinen Goldesel im Keller stehen hätte würde ich mir nicht unbedingt gleich mehrere Bücher kaufen. Erst mal eins, das durcharbeiten, und dann bei offenen Fragen einfach fragen, oder im Netz suchen. Da gibts soo viele Infos. ;)
 
Ahso, naja, genau die Strategie verfolge ich ja auch :), nur da C und C++ "zusammengehören", hab' ich mir gleich beide organisiert, is im Endeffekt auch billiger (es sei denn die Preise fallen in ein paar Wochen aufeinmal ;)).
 
a!i3n schrieb:
:daumen:
genau die werd ich Montag auch holen :)
Mamba sagt auch das "C++ in 21 Tagen"
gut sein soll :)
Max

C++ in 21 Tagen von Jesse Liberty soll gut sein? Du machst Witze. Ich hab dat schon mal gesagt, die Reihe "BlaBla in 21 Tagen" ist Müll.
Für Anfänger total ungeeignet und später nur als Nachschlagwerk zu gebrauchen. Aber ab .NET braucht man solche Bücher dann auch nicht mehr, den die Doku zum .NET Framework SDK ist einfach klasse :D .
 
Das mit der Ausrichtung der Sprache auf die spätere Berufsrichtung halte ich für Schwachsinn.
Zuerst einmal solltst du grundlegende Konzepte begreifen.
Als Einstieg haben sich Pascal/Delphi (die Sprache wurde u.a. zu Lehrzwecken entwickelt) und Visual Basic bewährt. Die nehmen einem recht viel Arbeit ab und sind recht übersichtlich gehalten. Wenn du dann Variablen, Bedingungen, Schleifen, Funktionen, etc. verstanden hast, weißt du schon einen großen Teil über die Programmierung. Die Konzepte sind prinzipbedingt ÜBERALL gleich. Bei C gibts aber deutlich mehr Fallstricke als bei VBasic, Pascal oder Java.
Die Fallstricke kann man im Nachhinein eher lernen und verstehen.

Als nächstes solltest du dich zur Übung ein wenig mit GUI Programmierung beschäftigen. Damit lernst du zwangsläufig auch Objektorientierte Programmierung kennen. Hast du die Zusammenhänge hier verstanden, kannst du dich daran machen, Objekte im großen Stil auch für nicht-grafikobjekte zu nehmen (Listen, Bäume und so ein Zeug)

Hast du die grundlegenden Konzepte und meinetwegen auch Objektorientierung verstanden, musst du bei einer neuen Sprache nur noch die Differenz zum dir vertrauten lernen.

Als grundlegende Programmkonzepte will ich mal folgendes aufführen:
* Ablaufgesteuerte Programme: Das Programm gibt die Reihenfolge der Aktionen fest vor. Das was man meist an der Konsole ("DOS Box") machen kann. Einfach zu programmieren und nachzuvollziehen.
* Ereignisgesteuerte Programmierung: Das Programm stellt Funktionen bereit, die bei bestimmten Funktionen aufgerufen werden. Z.B. Klick auf Button 1 oder so. Hierunter fallen alle GUI Programme und einige Webprogramme. Bei komplexeren Programmen kann man den Überblick verlieren.
* Webserver-Skripte (PHP, u.ä.): Das Programm wird mit Werten gefüttert, führt ein paar Aktionen aus, gibt HTML Quellcode aus und beendet sich. Das ganze sollte möglichst schnell passieren.
Bei komplexen Verschachtelungen kann man auch hier den Überblick verlieren.

Weitere Modelle fallen mir gerade nicht ein, vielleicht kann ja noch jemand ergänzen...
Fürs grundlegende Verständnis würde ich ablaufgesteuerte Programme empfehlen, weil man hier nicht wild im Quelltext rumspringen muss, um das Programm komplett zu lesen.

Meine Kategorisierung der Sprachen:
Pascal / Delphi: Recht übersichtlich, eindeutige Syntax
C: Anfangs übersichtlich, bei eigenen Funktionen kanns zu Fallstricken mit Speicherverwaltung kommen. Der Compiler ist sehr tolerant und sagt oft nichts gegen offensichtliche Fehler, weil der Code in C gültig ist.
C++: Für den Anfang zu viel Information, die man verarbeiten muss wenn man wirklich C++ macht.
Java: Hier gibt es zwei Arten der Verwendung. Entweder man verwendet die main() Methode um Übungen mit einfachen Typen, Bedingungen und Schleifen zu machen oder man lernt damit Objektorientierung.
Für Grundlagenübungen muss man aber ein Grundgerüst schreiben, das man am Anfang nicht vollständig versteht. Sieht man darüber hinweg, eignet sich Java als Einstiegssprache.
PHP: Eignet sich auch um die Grundlagen zu lernen. Auf andere Programmkonzepte umzudenken kann aber ein wenig schwerer fallen, weil man hier keine direkte Interaktion mit dem Benutzer programmiert, sondern nur "von einer Insel auf die nächste springt".

Ich gebe keinen direkten Tipp, mit was du anfangen solltest. Meine Ausführungen sollten dir aber ein paar Perspektiven eröffnen, damit du gezielter nachfragen kannst ob du eine bestimmte Richtung willst oder nicht.

Ganz wichtig sind beim Programmieren aber Englischkenntnisse, zumindest wenn dus wirklich ernst meinst. Die meisten Dokumentationen sind in englisch geschrieben. Vor allem bei Themen die nicht unbedingt alltäglich sind. Ohne Englisch entgeht dir sehr viel Information, die dir hilft dein Wissen zu erarbeiten.
 
Danke für die Blumen,

ich habe auch zuerst Basic und Pascal gelernt. Mit C habe ich mich dann anfangs ziemlich schwer getan. Von daher im nachhinein betrachtet hätte ich besser gleich mit C angefangen.

Und es ist kein Schwachsinn, gerade wenn anfängt sich schon mal ein paar Gedanken über die Zukunft zu machen. Man kann einfach später ziemlich viel Zeit sparen.
Auch wenn man die jetzt vielleicht noch im Überfluss hat. Das ändert sich dann ziemlich schnell :-).

Aber man soll sich sicher auch nicht verrückt machen. Man lernt das am besten was einem Spass macht.

MfG

Arnd
 
[UPS]Erazor schrieb:
Die Konzepte sind prinzipbedingt ÜBERALL gleich.
Für einen Anfänger wohl eher nicht so wichtig, aber: Es gibt auch logische und funktionale Programmiersprachen, und deren Konzepte unterscheiden sich doch recht deutlich von denen imperativer oder objektorientierter Programmiersprachen.
 
Wie wäre es mit Lisp oder Forth :-)? Das sind mal zwei Beispiele sehr unterschiedlicher Konzepte. Wo diese dann einzuordnen sind???

MfG

Arnd
 
Zuletzt bearbeitet:
Arnd schrieb:
Danke für die Blumen,
[...]
Und es ist kein Schwachsinn, gerade wenn anfängt sich schon mal ein paar Gedanken über die Zukunft zu machen. Man kann einfach später ziemlich viel Zeit sparen.
Auch wenn man die jetzt vielleicht noch im Überfluss hat. Das ändert sich dann ziemlich schnell :-).

Aber man soll sich sicher auch nicht verrückt machen. Man lernt das am besten was einem Spass macht.
Ok, Schwachsinn ist so ein hartes Wort. War nicht auf dich persönlich bezogen.
Ich finds nur nicht besonders sinnvoll sich gleich mit Besonderheiten komplexer (aber mächtiger) Sprachen rumzuschlagen. Nicht umsonst hat Bjarne Stroustrup (frei übersetzt) mal gesagt "Es ist einfach sich mit C in den Fuß zu schießen. C++ macht das ganze schwieriger aber dann ist das ganze Bein ab".
Weiterhin finde ich, dass man so übt flexibler zu sein und eine Methodik für das Lernen einer neuen Programmiersprache zu entwickeln. Je mehr Konzepte du mal gesehen hast, desto schneller findest du dich in einer neuen Umgebung zurecht, weil du mehr Orientierungspunkte hast.
Klar wird man mit C Kenntnissen einen Job finden, wenn du aber nicht flexibel bist schnell etwas neues zu lernen, könntest du auf der Strecke bleiben.

Auch in Lisp und Forth gibt es Variablen, Bedingungen, Wiederholungen, "Unterprogramme", etc. oder?
Muß aber zugeben, dass ich in diesen beiden Sprachen noch keine Erfahrung hab...
Laut den Einstiegstutorials ist das aber so.

Prinzipiell sind auch Regular Expressions eine Art von Programmiersprache. Wir hattens hier aber vom gewöhnlichen 08/15 Programmieren.
Für KI Programmierung gibt es auch extrem mächtige Spezialsprachen. Damit kriegt man aber kaum einen Taschenrechner programmiert.

Wie immer ist das nur meine Meinung und die braucht niemand zu teilen :D
 
Wichtig ist, dass man nicht wie viele (auch ich am Anfang) zuviel Zeit mit der Suche nach "der" Sprache für alles vergeudet, denn die gibt es nicht. Sicherlich kannst du mit Assembler oder C/C++ alles machen, aber das heißt nicht, dass es immer die optimale Sprache ist.

Man muss begreifen, dass man nicht Programmieren in C/C++/Java lernt sondern Programmieren anhand einer Sprache. Sprachen kommen und gehen, wenn du programmieren gelernt hast, kannst du dich auf jede relativ gut einstellen.

Ich z.B. habe mit COBOL angefangen. Eine grauenhafte Sprache, die außer in wirtschaftlichen Anwendungsfeldern kaum noch Beachtung findet, aber es hat mir geholfen die Grundzüge der prozeduralen Programmierung zu begreifen. Inzwischen hatte ich Kontakt mit Delphi, Java, C, C++, Prolog, Lisp und Assembler. Ich mag Java am liebsten, für kleine Programme zwischendurch geht aber nichts über C.

Nur für den Anfang würde ich zu Java raten, da nach C/C++ die häufigste Sprache und außerdem keine Pointer, die einen (zumindest mich) am Anfang ziemlich überfordern können.
 
alphacast schrieb:
Wichtig ist, dass man nicht wie viele (auch ich am Anfang) zuviel Zeit mit der Suche nach "der" Sprache für alles vergeudet, denn die gibt es nicht. Sicherlich kannst du mit Assembler oder C/C++ alles machen, aber das heißt nicht, dass es immer die optimale Sprache ist.

Man muss begreifen, dass man nicht Programmieren in C/C++/Java lernt sondern Programmieren anhand einer Sprache. Sprachen kommen und gehen, wenn du programmieren gelernt hast, kannst du dich auf jede relativ gut einstellen.
Genau das wollte ich auch sagen. Ich hab dafür nur irgendwie mehr Wörter benutzt :rolleyes:

:daumen:
 
[UPS]Erazor schrieb:
Für KI Programmierung gibt es auch extrem mächtige Spezialsprachen. Damit kriegt man aber kaum einen Taschenrechner programmiert.

Och naja, für Prolog gibt es mit XPCE auch eine objektorientierte Erweiterung, mit der man im Prinzip auch einen Taschenrechner machen kann, aber das will glaube ich keiner. :-)
 
Hallo,

das sehe ich ja genauso. Man lernt keine Sprache sondern programmieren. Nur in Pascal habe ich unendlich viel Energie reingesteckt, weil mir damals nicht klar war das es auch andere Sprachen gibt, die für eine spätere Praxis wesentlich relevanter sind.
Diese Energie war sicher nicht vergeudet, da ich dabei ja auch etwas gelernt habe.
Nur heute würde ich es anders machen.

Nur bis man halt dahin kommt, das es eigentlich nur um die Konzepte geht, das dauert etwas und ist ein Lernprozess. Warum ich die berufliche Orientierung erwähnt habe liegt halt an der Äusserung von Markus, weiter oben, der sich als Informatiker verwirklichen will.
Da macht es schon Sinn nicht gerade mit Delphi oder Pascal anzufangen. Ausser in der Ausblidung wird damit unterrichtet.

Was ich sagen will, ist das man sich klar sein soll was man erreichen will und sich dann in der Beziehung auch etwas schlauer macht, wie man das am effektivsten erreichen kann.

Z.B. in dem man sich vorab erkundigt was denn unterrichtet wird.

Und bzgl. Listp oder Forth oder anderen Exoten. Sicher gibt es immer irgendwelche Konstrukukte die sich vergleichen lassen.
Mal als Beispiel kann man eine Listenausgabe als for Schleife realisieren oder mittels rekursivem Aufruf. Bei Forth wird z.B. UPN als Notattion verwendet. Derartige Eigenarten einer Sprache erfordern schon eine andere Denkweise als bei "normalen" Sprachen.

MfG

Arnd
 
Zuletzt bearbeitet:
hi,

ich habe mit C angefangen mach voll bock zu proggen, ich habe mit dem Buch von ADDISON-WELEY ess heißt Programmieren lernen für Teens mit C, das Buch ist sau geil, aber ich tähte es nur für anfänger weiter empfehlen, da kriegt man alle Grundlagen beigebracht.


Gruß
Matthias
 
Zurück
Oben