Wirklich richtig Programmieren

StevenDaForce

Ensign
Registriert
Sep. 2004
Beiträge
189
N'abend,

ich wollte mal fragen, WIE man eigentlich richtig professionell programmieren lernt ?

Ich hab bisher mehrere Bücher über verschiedene Sprachen gelesen und ca. 90% aller Beispiele verstanden aber, ganz ehrlich, nicht selber abgetippt weil ich das für unnötig hielt 10 Zeilen simplen Code abzutippen.

Aber WIE schafft man den richtigen Einstieg in ein Programmiersprache, also dass man die dann voll beherrscht und sich dann seine Programme einfach kurz selbst schreibt ?

Und dann wollte ich noch wissen WIE man das richtig professionelle Programmieren lernt ?
Also nicht per Buch print Hello World oder so etwas Unnützes lernen, sondern so dass man sich in ein par Wochen ein (simplen) eMail Client schreibt oder ein Treiber für irgendwas oder ein Login-System ???? Das steht in keinem Buch das ich kenn.

Es heißt immer learning by doing, aber wenn ich weiß was Variablen, Klassen etc. sind, weiß ich immernoch nicht wie ich daraus mein eigenes Programm schreib. Also wo lernt man sowas ?

Kurzgefasst: Theorie in Praxis umsetzen.

Ich hoff ich bekomm ein par hilfreiche Antworten (am besten von den Profis unter euch die das können und erlernt haben.)


MfG
 
Naja ich finde die Frage etwas komisch.
Entweder du hast verstanden was da steht oder nicht.

Mal angenommen du willst deinen simplen E-Mail-Client schreiben, dann brauchst du doch sicherlich schon mal mindestens ein GUI und und du brauchst die Libraries für E-Mail-Funktionen usw.
Ansonsten ist das alles Abstraktion. Es ist halt "Learning by doing", keine Frage.
Mal angenommen du klickst auf nen Button und willst ne x-beliebige Aktion ausführen, z.B. eine E-Mail versenden.
Also was machst du?! Du überprüfst, ob alle Vorraussetzungen da sind eine E-Mail zu versenden. Wurde eine Empfänger-Adresse eingegeben, gibt es ein Subject, usw. usw.
Wie machst du das? Anhand von Variablen, usw, usw.
Üben, üben, üben...

@professionelles Programmieren: Am Anfang hast du eine Problemstellung, die es gilt zu lösen. Vielleicht brauchst du 100 Zeilen Code um ans Ziel zu kommen. Ein paar Wochen später schaust du dir das ganze nochmal an und plötzlich sinds keine 100, sondern nur noch 80 Zeilen. Was weiss ich.
Programmieren ist ein Prozess, der imho nie ganz abgeschlossen ist. Man lernt nie aus.
 
Hallo,

wie du schon selbst angesprochen hast ist hierbei "Learning by Doing" eine hervorrange Methode.

Am besten suchst du dir zunächst mal ein kleines Projekt, welches du realisieren möchtest und wozu es auch schon ein paar Hilfestellungen/Tutorials gibt.
Klar wirst du nun dennoch wahrscheinlich nicht gleich in der Lage sein, dies umzusetzen und schon bald auf das erste Problem stoßen, doch hilft dabei oft schon ein bisschen recherchieren.
Wenn auch dies nicht weiter hilft, so frage am besten einfach einmal in einem Forum oder ähnlichem um Hilfe zu der jeweiligen Problematik.
Wobei du dann auch hier jeden Lösungsansatz verstehen und im Zweifelsfall einfach noch einmal bezüglich dessen Funktionsweise nachfragen solltest.
So kannst du dich dann Stück für Stück weiter vortasten, was zwar am Anfang sicher etwas langsam gehen wird, jedoch wird dies auch um so mehr du dich praktisch mit dem Thema auseinandersetzt zügiger voran gehen, da manche Sachen einfach immer wieder erneut auftauchen.
Letztendlich wird der daraus resultierende Code auch nicht gerade perfekt sein, jedoch lernt man gerade auch aus nachträglichen Verbesserungen noch einiges dazu.
Bei deinem nächsten Projekt wird dir das ganze dann sicher schon viel einfacher fallen.

MfG mh1001
 
Zuletzt bearbeitet:
Wie du wirklich richtig zu Programmieren anfängst kann man nicht so pauschal sagen!

Erstmal ist die Frage, unter welchem Betriebssystem? -> Ich geh mal von Windows aus...
Dann ist die Frage, welche Sprache man nehmen sollte; abhängig davon, was du machen möchtest, wobei du eigentlich immer Alternativen hast:
Für eine Homepage: PHP, HTML, Java, JavaScript, XHTML, usw.
Für Applicationen: Delphi, C++, C, C#, Java, VisualBasic, usw.
Und dann denke, ich sollte man als nächsten Schritt sich dazu nen Buch oder wenigstens im Inet nen Tutorial suchen und anfangen...


---

Delphi:

Ich mache viel mit Delphi und kann dir daher den Tipp geben, dass du dir irgendwo her ne "Delphi Personal Edition" besorgen solltest! Liegt PC-Zeitschriften bei; gabs häufiger schon bei Borland auf der Seite und wenn es da nicht zu finden ist, sollte es auch Legal sein sich die Personal Edition (!) über eine FileSharingSoftware irgendwoher zu laden und sich schließlich - was du im jedenfalle müsstest - bei Borland auf der Website zu registrieren und so einen Key zu erhalten!
Vorteil bei Delphi ist unter anderem, dass du ne komplette IDE bekommst, in welcher du viele vorgefertigte Komponenten hast und so sicherlich auch schnell rein kommen kannst und schnell große erfolge hast - wenigstens optisch :P
Hilfestellung würdest du dann zu Delphi auf

www.delphi-source.de
www.delphi-forum.de
www.developia.de
www.swissdelphicenter.ch
und schließlich noch meine Homepage, wenn du einige anfängliche (aus der Schule) Delphi-Beispielprogramme mit Quellcodes suchst: www.meolus.de

uvm. bekommen. Die meisten der Seiten bieten Foren, Tuturials für alle "Lern"-Stufen und Tipps mit Beispielcodes usw.

Speziell für die Idee mit dem Emailprogramm könntest du dir die Indy Komponten ( www.indyproject.org bzw. www.atozedsoftware.com/Indy/Plus/Files.iwp ) herunterladen und installieren. Dann brauchste dir um die Protokollarbeit, etc. nicht so viel Gedanken machen und kannst direkt mit dem Restlichen (einfachereren Drumrum) beginnen. Zudem findest du auf den Indy-Seiten Beispiele zur Verwendung der Komponenten.

Ich würde jedoch empfehlen einfacher zu beginnen, wie mit einem Emailprogramm, da dieses schon sehr komplex ist bzw. werden kann! Ich sprech da nämlich aus Erfahrung :D


Für den Anfang ist die Sprache fast egal, da sich im Kern fast alle Programmiersprachen fast komplett ähneln und nur der Syntax nen bissel unterschiedlich ist, sowie die Leistungsfähigkeit im Detail!
 
Zuletzt bearbeitet:
Also ich würde sagen, dass man gar nicht professionell programmieren kann...

man kann professionelles Software-Engineering betreiben, ja ... Anforderungsanalyse, UML, usw. und ganz wichtig der Software ein professionelles Design mit Design-Patterns usw. geben.

Programmieren ist etwas, was man bis zu einem bestimmten Grad kann oder auch nicht. Meine Meinung! :)

Zum Rest: ÜBEN!

Wenn ein Tischlerazubi mit Kreissäge, Feile, Hobel usw. umgehen kann beherrscht er seine Werkzeuge (wie Programmiersprachen). Projekte zu verwirklichen braucht Übung. Die meisten Sprachen kann man innerhalb kurzer Zeit, die perfekte Beherrschung der größten Libs braucht wesentlich länger.
 
Zuletzt bearbeitet:
Wir lernen in der Schule (Technisches Gymnasium) programieren.
Ich glaube was du brauchst ist das:

  • Definiere dein Problem.
  • Definiere deine Fähigkeiten. => Was habe ich um das Problem zu lösen.
  • Ist- / Soll-Zustand

Ich hoffe du kannst damit was anfangen.
Wahrscheinlich hast du schon was über objektorientiertes programieren gehört. Das ist glaube ich auch sehr zu entfehlen, weil du dann aufgabenbereiche trennen kannst.

Skizzen sind auch nicht schlecht um zusammenhänge zu erkennen usw...
 
Zuletzt bearbeitet:
Nervenarzt schrieb:
Ich hoffe du kannst damit was anfangen.
Wahrscheinlich hast du schon was über objektorientiertes programieren gehört. Das ist glaube ich auch sehr zu entfehlen, weil du dann aufgabenbereiche trennen kannst.

Skizzen sin auch nicht schlecht um zusammenhänge zu erkenne usw...

Erstens kann man auch prozedural modularisieren ... die Vorteile der Objektorientierung liegen in erster Linie in der Wiederverwendbarkeit und dem Geheimnisprinzip (+ Polymorphie, + Kapselung) und zweitens verfolgen "Skizzen" höchstens den agilen Ansatz der Software-Entwicklung (XP - Extreme Programming). Die professionellen Verfahren erfordern meist UML-Diagramme.

Mein Vorschlag:
-> Beherrsche eine Sprache weitestgehend (Tutorials)
-> Lese etwas über Software-Engineering
-> Arbeite mit Libs (MFC, QT, ...)
 
@alphacast

Ich lerne erst seit einem jahr programieren. Bin also kein Profi.
Wir arbeiten in der Schule auch mit UML Diagrammen.

Das was ich gerade geschrieben habe ist nur ein Tipp, den ich aus meiner Erfahrung heraus als positiv betrachte.
Edit:
Auserdem war das was ich geschrieben habe auch sehr allgemein gemeint, weil aus seiner Fragestellung, meiner Meinung nach, eher die Ratlosigkeit wie man an ein Projekt ran geht, aufzeigt.
 
Zuletzt bearbeitet:
alphacast schrieb:
Programmieren ist etwas, was man bis zu einem bestimmten Grad kann oder auch nicht. Meine Meinung! :)
Auch meine Meinung. Wobei man allerdings lernen kann, um seinen Grad an Wissen zu vergrößern.

@StevenDaForce
Du machst sicher nichts falsch, wenn du dir jedes Buch über Programmiersprachen/-techniken/-algorithmen/etc. anschaust, aber ohne die angegebenen Beispiele durchzuprobieren, glaube ich nicht, dass du jemals das Programmieren erlernst. Wie du selber sagtes, learning by doing. Es ist fast eine Geundregel beim Programmieren. Ohne Erfahrung gesammelt zu haben, wirst du nie programmieren können.
Bei mir ist es immer so, wenn ich richtig in Laune bin, dann progge ich schon mal ne Nacht durch. Ohne was davon zu merken! Mein Gehirn schaltet in dieser Zeit einfach um. Mein Bewußtsein verändert sich so, dass ich nur noch in den Bahnen meines Programms denke. So sehe ich am Besten, was für Schwierigkeiten auftreten, wo man vielleicht doch anders rangehen sollte, etc. Das Genial an der Sache ist, dass während so einer Programmiersession quasi mein gesamtes Programm auswendig herbeten kann (beim letzten mit 2000 Zeilen Code klappte es jedenfalls fast ^^).

Du siehst also, Programmieren ist mehr als nur darüber zu lesen. Man muss es auch erleben. Und wenn man dann irgendwann die Fähigkeit hat, wie ein Prozessor zu denken (was gar nicht so schwer ist), dann macht Proggen auch richtig Spaß. Das Programm reagiert dann meistens auf Anhieb so, wie du es dir wünscht und Erfolgsergebnisse sind manchmal bitter nötig, damit überhaupt bei der Sache bleibt.

Ohje... hab ich schon wieder einen halben Roman geschrieben...pfff.
 
Zuletzt bearbeitet:
@ Nervenarzt
Hab ja gar nicht gesagt, dass er falsch ist! ;)

@ e-Laurin
Das hab ich jetzt mal vorausgesetzt! :)
Und ... wow! Ich vergesse meistens schon bei der zweiten Klasse, was in der ersten stand!
 
Zuletzt bearbeitet:
@e-Laurin: Wie hast du proggen gelernt ????

Danke für eure Antworten, aber was ich genau mein wurde nicht recht beantwortet glaube ich.

Ich weiß dass learning by doing so ziemlich das wichtigste ist, aber ich kann ein Beispiel aus einem Buch/Tutorial lesen und verstehen. Wenn ich es abschreibe wäre es learning by doing aber ich glaube nicht dass ich davon was hab.
Wenn ich das Programm dann um eine Funktion erweitern will und ich einfach nicht weiß wie das gehen soll, obwohl ich ein Buch vor mir hab wo Variablen, Klassen, Funktionen, Schleifen und alles erklärt sind, wie kommt man da weiter ?
Ich hör so oft: Selber beigebracht, hab das Tutorial gelesen und ich konnte programmieren bla bla...das glaub ich nicht.

Ich weiß einfach nicht wie ich das Wissen umsetze, also die Bestandteile und Fähigkeiten der Programmiersprache zu einem Programm zusammensetze.

PS: Wie wäre es wenn man praktisch ein Lehrer anstellt der einem das beibringt ? Taugt das was oder ist das nicht so gut ?
 
Also sowohl in der Berufsschule als auch in der FH fängt man i.d.R. mit abtippen von Programmen in den Seminaren an.

Fand das eigentlich immer ideal ... du tippst etwas ab. Liest wofür was davon gut ist. Änderst ab, fügst eigene Teile hinzu und siehe da, plötzlich hast du die Struktur verstanden und kannst was eigenes machen.

Ich hab noch nicht ein Buch über ne Sprache von vorne bis hinten gelesen. Anfangen, probieren, nachschlagen, lesen, verstehen, anwenden!

Aber man könnte denken, du hast es irgendwie eilig?! :)
 
Zuletzt bearbeitet:
Ich hör so oft: Selber beigebracht, hab das Tutorial gelesen und ich konnte programmieren bla bla...das glaub ich nicht.

tja ob dus glaubst oder nicht - das ist der einfachste weg. entweder du bringst es dir selbst bei oder bezahlst jemanden der es dir beibringt ;).

programmieren kann man wie so vieles nur durch anwendung lernen. also wie macht man das?
man sucht sich ein projekt aus und fängt einfach an. den anfang sollte man nach mehreren büchern/tutorials relativ problemlos hinbekommen. dann kommt die funktionalität - und die probleme. was also tun? suchen! wenn du nicht weißt wie du etwas programmieren sollst musst du einen ort finden an dem es steht. es gibt im netz milliarden von tutorials, beispielcode und ganzen betriebsystemen in sourcen. du wirst für jedes problem mindestens 20 implementierungen im netz finden.

am anfang geht es also erstmal nur darum ein programm aus vielen einzelteilen zusammen zu bauen, schließlich kannst du nicht von vornerein wissen wie man etwas macht. spähter werden dir dokus zu den benutzten apis reichen und danach wirst du vieleicht sogar eigene apis und offentlich auch dokus schreiben ;).


also wie lernt man programmieren? in dem man etwas eigeninitiative zeigt und google benutzen lernt :P.
 
Hallo,

programmieren lernt man am einfachsten durch programmieren :-).
Die nötige Praxis bekommt man indem man sich am Anfang selber Ziele steckt und auch versucht diese zu erreichen.

Danach hilft es ungemein an Projekten mitzuarbeiten, die auch konkret eingesetzt werden.

Ein bisschen Buchlektüre kann auch nicht schaden, wobei ich zugeben muss das ich ein Buch bisher seltenst bis zu Ende gelesen habe.
Professionell programmieren erlernt wohl am ehesten in dem man auch mit Profis zusammenarbeitet. Dabei lernt man am meisten.
Vor allem braucht es viel Zeit und Erfahrung.

Ein Informatikstudium schadet auch nicht, auch wenn es vielleicht etwas langweilig ist :-).
Ein allgemeines Rezept gibt es da wohl nicht.

Aus eigener Erfahrung kann ich nur sagen, das ich am meisten gelernt habe als ich in grösseren Projekten im Team gearbeitet habe. Das erweitert das eigene Sichtfeld ungemein.

Vor allem ist es keine Sache die man nebenbei erlernt. Ich habe früher und tue es auch noch immer, mir die Nächte am Bildschirm um die Ohren geschlagen.

Die Formulierung "selber beigebracht" kann ich so auch nur unterstützen.
Sicher hat mir auch mal jemand ein paar grundlegende Sachen erklärt. Konkret war das ein C-Kurs.
Das war notwendig um den Einstieg zu schaffen, aber danach ist einfach nur Eigeninitiative gefragt.

Sicher gehört auch ein bisschen Veranlagung dazu und eine gewisse Denkweise.
Wenn man die nicht hat, kann man sich noch so anstrengen und es wird nichts bringen.

Zu dem Punkt professionell, gehört auch noch ein bisschen der Blick über den Tellerrand.
Also nicht nur das programmieren an sich.
Dazu kommen noch methodische Vorgehensweisen (V-Modell, UML, ...), Kundenorientierung, Flexibilität, Belastbarkeit, soziale Kompetenz.

Die Liste lässt sich sicher noch fortsetzen, aber das brauchst Du um heute in einem Softwareteam erfolgreich mitarbeiten zu können.

MfG

Arnd
 
Zuletzt bearbeitet:
StevenDaForce schrieb:
@e-Laurin: Wie hast du proggen gelernt ????
Learning by doing :D
Im Ernst!

Wenn ich es abschreibe wäre es learning by doing aber ich glaube nicht dass ich davon was hab.
Nein, das ist keine Learning by doing. Das Prinzip hast du falsch verstanden. Es geht nicht darum, was abzuschreiben, sondern es zu verändern, zu sehen, was dann passiert. Experimentiere, füge mehrere Sachen zusammen, schaue, wie sie zusammenarbeiten. Tue irgendwas, hauptsache, das Programm ändert sich. Es können auch nur Details sein (meist sind es nur Details, zb andere Schriftfarbe etc.).

Ich hör so oft: Selber beigebracht, hab das Tutorial gelesen und ich konnte programmieren bla bla...das glaub ich nicht.

Ich weiß einfach nicht wie ich das Wissen umsetze, also die Bestandteile und Fähigkeiten der Programmiersprache zu einem Programm zusammensetze.

PS: Wie wäre es wenn man praktisch ein Lehrer anstellt der einem das beibringt ? Taugt das was oder ist das nicht so gut ?
Ein Lehrer ist dasselbe wie ein Tutorial. Nur ein Lehrer zwingt dich meisten zum Lernen, ein Tut nicht.

Du hast das Problem, was viele Leute haben. Wissen ist da, aber wenn man vor dem Editor sitzt, ist plötzlich Sense. Man weiß nicht, was man tun soll. Tja, du wirst es nicht mehr hören können, aber Learning by Doing ist die Lösung. Damit kann man wunderbar die Berührungsängste abbauen. Man bekommt relativ schnell ein Gefühl für das Programmieren, und dann ist die Zeit reif: Du willst keine Programme mehr abändern, du willst selber welche schreiben. Naja, den Rest kannst du dir ja denken ;)

Wenn du dann die Grundprogramme absoviert hast (zb Hallo-Welt-Programm :D , Tetris, BreakOut...), wirst du dich an die schwierigeren Dinge wagen, zb dein eMail-Programm (was eigendlich gar nicht so schwer ist (ok, hängt von der Programmiersprache ab).
 
Arnd schrieb:
Ein Informatikstudium schadet auch nicht, auch wenn es vielleicht etwas langweilig ist :-).

Da hat wohl einer an der Uni studiert! :)
 
Ein simpelst Email Programm mit Email senden und empfangen z.B. mit MFC unter Win32?
Als Hack geht sowas in in ein paar Stunden. Nur mal so als Vergleich.

Was natürlich vorraussetzt das man das EMail Protokoll kennt, die MFC und mit dem Compiler auch umgehen kann.

Wenn Du aber Probleme hast den Einstieg zu finden, wäre ein Kurs vielleicht mal ein guter Anfang. Aus meiner Sicht ist der Einstieg die grösste Hürde, danach fällt es leichter.

@alphacast

Wie kommst Du nur darauf :-)? Das Studium ist wie gesagt sicher Geschmackssache, aber ein paar wichtige Dinge kann man dabei schon lernen.

MfG

Arnd
 
Naja :D, will das ja jetzt nicht wieder in diese FH vs. Uni - Schlammschlacht ausarten lassen, aber sagen wir mal so ... langweilig wirds in einem FH-Studium fast nie. Aber dafür seit ihr theoretisch ein bisschen besser dran.
 
Ich habe absolut nichts gegen die FH. Dafür ist man bei der FH schneller fertig.
Und ein Studium sehe ich auch nur als gute Grundlage oder Starthilfe an.

Programmieren habe ich nicht an der Uni gelernt. Das habe ich mir eher selber beigebracht. Man bekommt dort wie gesagt ein bisschen nützliches Hintergrundwissen mit, das einem später zu Gute kommen kann.

MfG

Arnd
 
Ja okay, richtige Kurse bei Firmen oder der Volkshochschule sind brutal teuer - das ist nicht drin. Ich hätte mehr an ein Videotutorial gedacht wo man nicht nur liest sondern auch sieht und hört.
Wie kommt man als Anfänger zu Projekten mit Profis ? Das ist ja einfach nur störend für die.

Zu learning by doing: ich werde mal anfangen die Aufgaben in dem Buch http://www.amazon.de/exec/obidos/ASIN/3499600749/qid=1128244147/sr=8-1/ref=sr_8_xs_ap_i1_xgl/302-1217642-5221618 C-Programmieren von Anfang an (das Buch ist echt super) nicht nur im Kopf zu lösen, sondern wirklich zu schreiben.

:cool_alt:
 
Zurück
Oben