Ideen wie man anfängt?

Kipperlenny

Erfahrenes Mitglied
Moin Moin

Nach etlichen Jahren der PHP Programmierung würde ich gerne eine wenig in Java einsteigen.

Habe dazu "Java ist auch nur eine Insel" rausgesucht und angefangen - bin jetzt (mit dem Lesen) bei Kapitel 4 (so langsam sollten die alle Datentypen, Schleifenarten, Was ist OOP etc. durch haben...) und möchte natürlich gerne anfangen!

Bei PHP (bzw. zuerst Html) war das einfach, hier nen Gästebuch, da nen Besucherzähler und man kam mehr und mehr rein - aber bei Java....

Habe jetzt mal sowas hier gebastelt:

Code:
import static java.lang.System.*;
import static javax.swing.JOptionPane.showInputDialog;

class InputWithDialog 
{ 
  public static void main( String[] args ) 
  { 
	  int fragen = 10;
	  while( fragen > 0) {
		  String antwort = showInputDialog("Nächst kleinere Zahl nach " + fragen);
		  if(new Integer( antwort ) == fragen-1) {
			  out.printf("Stimmt! %s kommt vor %d\n",antwort,fragen);
		  } else err.printf("Falsch, %d und nicht %s kommt vor %d\n",fragen-1,antwort,fragen);
		  fragen--;
	  }
    System.exit( 0 );                           // Exit program 
  }
}

Ein [ironie on]sehr witziges[ironie off] kleines Spielchen...

Doch was nun? Das Buch wird natürlich weitergelesen - aber eigene Ideen müssen her und umgesetzt werden - doch was?
Womit habt ihr so angefangen, was ist sinnvoll?

lenny

ps: richtiges Forum? Unterforen sind wohl falsch, Coders Talk hätte passen können, aber geht ja um Java.... (blicke bei den ganzen Foren bald net mehr durch)
 
Zuletzt bearbeitet:
Hallo lenny,

ich habe immer gleich mit Programmen angefangen, die ich auch wirkklich brauchte. Am Anfang wären natürlich kleine Sachen leichter, aber letztlich wächst man an seinen Aufgaben IMHO.

Ich brauchte beispielsweise ein Rename & Copy Tool zu der Zeit als ich C# begann zu lernen. War eine nette, kleine Übung.

Das Gute an solchen Übungen ist auch, dass man sich sehr reinhängt, da man das Ergebnis ja nutzen möchte ;)
 
Ich hab damals nen Tool gebastelt was mir die Logs von den ganzen Messengern die ich so benutzt habe von den Personen dich ich auf verschiedenen Messengern hatte in eines gemerged hat. Ist nie so wirklich fertig geworden aber ich habe doch ordentlich was gelernt. Z.B. wie man mit der API arbeitet.

Solltest dir wirklich was raussuchen was du gebrauchen könntest. Wenn dir nichts einfällt gibts aber auch so sicherlich genug Übungsaufgaben, z.B. von den Unis an denen Java gelehrt wird.
 
Du darfst Dir auf keinen Fall aber was richtig schweres zutrauen, da verlierst Du sicherlich bei den ersten Fehlern die Lust. Das kenne ich von meinen Schülern nur zu gut. Es sind zwar teilweise sehr triviale Fehlermeldungen, aber die man meist nur mit ein wenig Erfahrung in sehr schneller Zeit lösen kann.

Zudem solltest Du folgende Schritte im Vorfeld machen:

1. evtl. eine Marktanalyse durchführen...
.... gibt es das Tool schon?
.... gibt es ähnliche Tools die ich nur umschreiben müsste?
.... brauch die Welt das überhaupt?

2. wie viel Zeit habe ich?
.... kann ich das Projekt in adäquater Zeit umsetzen ohne mein Privatleben negativ zu beeinflussen?
.... ist eine Teamgründung sinnvoll, Sprichwort "teile und hersche"

3. MACH EINE FUNKTIONALITÄTSANALYSE
.... ganz wichtiger Part!
.... welche Funktionen brauch ich wirklich?
.... Funktionen sind gut wenn diese absolut fehlerfrei funktionieren!
.... es bringt einem Nutzer gar nichts, wenn zig Funktionen enthalten sind aber nur 50% wirklich funktionieren!

4. Dokumentation, Entwicklungsumgebung, etc. pp.


Software zu schreiben ist eine hochkomplexe Angelegenheit. Es spielen viele Faktoren eine Rolle und man muss ein sehr generalistische Wissen haben um gute Software zu produzieren.

So long, ... viel Spaß :p
 
Zudem solltest Du folgende Schritte im Vorfeld machen:

1. evtl. eine Marktanalyse durchführen...
.... gibt es das Tool schon?
.... gibt es ähnliche Tools die ich nur umschreiben müsste?
.... brauch die Welt das überhaupt?

2. wie viel Zeit habe ich?
.... kann ich das Projekt in adäquater Zeit umsetzen ohne mein Privatleben negativ zu beeinflussen?
.... ist eine Teamgründung sinnvoll, Sprichwort "teile und hersche"

3. MACH EINE FUNKTIONALITÄTSANALYSE
.... ganz wichtiger Part!
.... welche Funktionen brauch ich wirklich?
.... Funktionen sind gut wenn diese absolut fehlerfrei funktionieren!
.... es bringt einem Nutzer gar nichts, wenn zig Funktionen enthalten sind aber nur 50% wirklich funktionieren!

4. Dokumentation, Entwicklungsumgebung, etc. pp.


Software zu schreiben ist eine hochkomplexe Angelegenheit. Es spielen viele Faktoren eine Rolle und man muss ein sehr generalistische Wissen haben um gute Software zu produzieren.

So long, ... viel Spaß :p

Prinzipiell hast Du sicher recht, aber alle diese Schritte sind für ein Programm, welches man schreibt um daran zu lernen ziemlch irrelevant. ;)
 
Moin Moin

Ja wie gesagt in PHP einen Besucherzähler zu programmieren ist jetzt auch nicht so hoch innovativ XD aber halt recht einfach - mit Ergebnis am Ende.

Mein Problem ist ja, dass ich keine Ahnung habe was in Java recht leicht zu einem anschaulichen Ergebnis führt - ich mag zum Beispiel die Konsole gar nicht - will was grafisches haben - aber kann man damit anfangen in Java? Oder lieber erst mal bei Konsolen Programmen bleiben? Die wiederum werde ich selber niemals brauchen - insofern ist es zwar schick einen Taschenrechner oder ein "Konsolen-Vier-Gewinnt" zu bauen - aber sinnlos.

Also eigentlich ist die Frage folgende:
- Kann man gleich mit grafischen Sachen anfangen?
- Gibt es sinnvolle, leicht zu schreibende Programme (auch wenn es das Programm schon tausendfach gibt)?

lenny

ps: mit Eclipse, UML, Datenbanken (innoDB & MyIsam MySQL) kenne ich mich gut aus
 
Moin Moin
ps: mit Eclipse, UML, Datenbanken (innoDB & MyIsam MySQL) kenne ich mich gut aus

Dann versuch doch mal mit einem Application Server (Jetty, Tomcat) einen einfachen SOAP Service zu basteln. Zum Beispiel eine Art Umleitungsdienst für URLs. Sprich aus http://www.tutorials.de/forum/java/342163-ideen-wie-man-anfaengt-new-post.html wird http://myurl.com/12688712 und die ID setzt eine Assoziation aus der Datenbank in die tutorials urls um.

Die Idee ist zwar ca. 8 Jahre alt, aber heute dank Twitter und Co. wieder richtig in Mode gekommen.

Prinzipiell ist das ganze auch relativ schnell zu entwickeln. Aufbauschen kann man immer :p
 
"Einfach" und SOAP in einem Satz zu nennen ist schon aberwitzig. Das will ich als Javaentwickler eigentlich nicht nutzen und schon gar nicht einem Einsteiger als Anfangsthema empfehlen.

Wenn man aus dem Web kommt, kann es Sinn machen, sich in Eclipse eine einfache Webapplikation anzulegen, mal deren Aufbau zu studieren, evtl. ein Servlet zu implementieren und versuchen zu verstehen, wie so ein Request abgearbeitet wird. So bist du nah an dem technischen Ablauf von PHP, kannst ähnliche Anwendungsfälle realisieren und bekommst aber gut mit, worin die Unterschiede liegen, wie unterschiedliche die Programmiermodelle, Deploymenteigenheiten usw sind.

Gruß
Ollie
 
Mein Problem ist ja, dass ich keine Ahnung habe was in Java recht leicht zu einem anschaulichen Ergebnis führt - ich mag zum Beispiel die Konsole gar nicht - will was grafisches haben - aber kann man damit anfangen in Java? Oder lieber erst mal bei Konsolen Programmen bleiben? Die wiederum werde ich selber niemals brauchen - insofern ist es zwar schick einen Taschenrechner oder ein "Konsolen-Vier-Gewinnt" zu bauen - aber sinnlos.

Hi,
wenn man kein besonderes Ziel hat, wird das mit dem Programmieren fast nie wirklich was . Also was veranlasst dich zu Java?
Denkst du dir "Java kannn ja nicht schaden, irgendwann werde ichs schon brauchen" oder "Ich will jetzt diesen Chat mit Java programmieren und ich schaff' das schon irgendwie"?
Wenn ersteres zutrifft, dann warte bis "irgendwann", ansonsten bist du auf dem richten Weg.

Wenn du mit Java arbeitest wirst du generell nicht um die Konsole herumkommen.
Die JVM gibt zum Beispiel ihre Fehlermeldungen grundsätzlich auf der Konsole aus - oder auf der Internen-Konsole von IDEs.

Als Anfänger kann man zwar mit der Grafik anfangen, allerdings habe ich gemerkt, dass man sich dann bei den Methoden "setCursor", "setBackground" und so aufhält, was vom eigentlichen Lernziel abdriftet. Wozu zum Beipsiel brauchst du eine GUI, wenn du doch eigentlich nur das Abspeichern von Dateien üben willst. Das geht nämlich wunderbar ohne GUI - die Insel machts vor.

Und: Es ist niemals sinnlos, ein funktionierendes Programm zu programmieren. Programmieren lernt man durch programmieren! - auch wenn man die Programme nicht nutzt!
Hier noch eine Liste von Klassikern: http://antonis.de/faq/qbmonfaq-dateien/440654326.html
Ist zwar die QBasic-Seite, aber vieles geht auch mit Java.

Ciao
DosCoder
 
Zuletzt bearbeitet:
Hallo Kipperlenny
Also ich glaube das ganze ist eine Frage mit was Du Dich persönlich motivieren lässt.

Magst Du Spiele ist es vielleicht toll ein simples vielleicht selbst ersonnenes Spielchen zu basteln (oder ein schon bekanntes z.B. Würfelspiel, TicTacToe Schiffe versenken....)
Bist Du interessiert an natürlichen Sprachen, kann vielleicht ein Vokalbeltrainer zu basteln (käme Deinen DB-Kenntnissen vielleicht entgegen) eine nette Aufgabe sein.

Ist es nun noch eine Frage mit welcher Technologie Du arbeiten möchtest
- Simple wäre es mit Konsole (ok magst Du nicht)
- Interessant und auch recht angenehm wäre es als Java-Swing-Applikation.
- Oder Oliver's Vorschlag, da Du aus dem WEB-Umfeld schon Erfahrungen hast, als ein Java-HTTPServlet.

Da es unglaublich viele Web-Technologien in Java gibt, die sich teilweise gegenseitig Konkurrenz machen, könntest Du sowas später dann auch in verschiedenen Technologien versuchen z.B. JSP, Struts, JSF... Ist aber sicher etwas für später, wenn Du in der eigetnlichen Sprache Java sicher bist.

viel Spaß

Takidoso
 
Zurück