# Programmiergrundlagen -  wie gehts weiter?



## UlliS2 (12. Jul 2012)

Tach,

ich habe mir jetzt die Grundlagen von Java angeeignet. Nun frage ich mich wie es weitergeht.
Mir fehlen irgendwie die Kenntnisse wie man ein Projekt angeht. Nehmen wir an, ich will eine Kundenverwaltung programmieren. Wie geht ein Programmierer vor?
Macht er ein UML-Diagramm? Programmiert man aus dem Bauch heraus?

Wie komme ich auf das nächste Level des Programmierens. Bücher? Tutorials? Studium?

Kann mir jemand Empfehlungen aussprechen? Vielleicht sogar mit hilfreichen Links?

Gruß
Ulli


----------



## VfL_Freak (12. Jul 2012)

Moin,

nimm' mal an, Du willst ein Haus bauen 
Wie geht Du dann vor? 
Macht Du Dir erst einen Plan von Haus oder ziehst Du zunächst ein paar Mauern in die Höhe ???:L 

Sicherlich musst Du das Ganze je nach Umfang durchplanen - ob nun mit UML oder anderen Mechanismen ist zunächst mal egal. Kleine Projekte kannst Du Dir auch auf eine Zettel malen ......

Ein gutes Stichwort für eine Websuche wäre "Software engineering" (oder auf deutsch) "Softwaretechnik" !

Gruß
Klaus


----------



## UlliS2 (12. Jul 2012)

Danke für den Tipp.

Mit dem Begriff finde ich nichts passendes. Ist nicht ganz einfach hier weiterzukommen. Ich denke die meisten lernen das dann einer Firma, wo Knowhow transferiert wird. So bei doing self ist das nicht ganz so einfach?

Wegen dem Haus:
Mit Legos kann man ein Haus bauen und auch schnell wieder umbauen. Ohne große Verluste.
Ist ja mit Software eigentlich auch möglich.


----------



## timbeau (12. Jul 2012)

Ich kenne keine Häuser aus Lego...nur Spielzeughäuser.

Klar kannst du mit Software rumspielen...


----------



## Fab1 (12. Jul 2012)

Von dem ein oder anderen hier wurde das Buch empfohlen. Dieses Buch soll einem helfen guten den Übergang in die Professionalität zu meistern. 

Selbst kann ich dazu allerdings noch keine Aussage treffen, ich kaufe es mir erst, wenn die neue Auflage draußen ist.


----------



## Deception (13. Jul 2012)

Hallo,
ich denke wenn man gerade erst Programmieren gelernt hat ist es schwer direkt mit der Planung anzufangen, da noch sehr viel Erfahrung fehlt. Eine grobe Planung solltest du aber auf jedenfall vorher machen.
Das wichtigste ist wohl zu spezifizieren was die Software können soll. Ich mag es die Funktionalität anhand von Mockups zu spezifizieren. 
Die Software skizzieren wie du sie dir vorstellst. Dann jeden einzelnen Klick überlegen wozu er führt und entsprechend Gedanken darum machen, was dann geschehen wird. Das kannst du dir natürlichsprachlich oder mit Hilfe von pseudo code oder EBNF oder ähnliches niederschreiben.

Aus dem was du dann hast sollte dir eine Planung leichter fallen.
Je nachdem wie weit du bist, kommt dann noch die Technologie Frage. Benutze ich Datenbanken oder XML? Welche Datenbanken kämen in Frage? Ist die Anwendung eine Client-Server Anwendung? Wie gestaltet sich die Kommunikation, wenn es das ist. Ist das Frontend vielleicht eine Web-App? Wenn ja, was benutze ich Clientseitig: Spring-MVC, GWT o.ä.? Benutze ich einen REST-Server oder benutze ich JMS? Was benutze ich für Tests z.b. FEST, Selenium o.ä. für Obeflächentests?

Hier kannst du noch einige Fragen ergänzen!
Als nächstes kannst du dich dann um Software-Management, Build-Management kümmern. Wo liegt das Projekt (Versionskontroll System), wo finde ich Dokumente zu dem Projekt oder so. Wie erzeuge ich ein ausführbares Programm und wie gehe ich mit Abhängigkeiten um? 

Du siehst, man kann sehr viel machen bevor die erste Zeile geschrieben ist. Allerdings ist das zum Einstieg alles sehr sehr viel und machte mir damals keinen Spaß, daher bin ich ein Fan von deinem Lego Haus. Baue es auf, reiße es ab, reflektiere die gemachten Fehler, baue es erneut.
Wenn du dann ein wenig Erfahrung gesammelt hast, kannst du immernoch Konzeptionierter beim nächsten mal vorgehen. Wichtig ist den Spaß dran zu haben, sonst wird das alles nichts 
Beste Grüße,
Deception


----------



## UlliS2 (13. Jul 2012)

Danke für den guten Beitrag!!


----------



## Ullenboom (14. Jul 2012)

Analyse und Design sind hier Stichpunkte, und Dinge, die zeitlich vor Java, also der Implementierung, liegen. Schau mal, dass du dich mit Pattern (POSA, GoF) und Beschreibungssprachen wie UML beschäftigst. Wenn man die Finger an die Tastatur legt, befindet man sich schon in der Umsetzungsphase und im Kopf sollte das Modell schon geformt sein.


----------

