Programmierung herangehensweise

Akula

Neues Mitglied
Hallo Forum!
Beschäftige mich schon ein bisschen mit java und komme gut klar, allerdings nur wenn ich genaue Vorgaben bekomme/Tutorials nachschreibe.
Ich habe es noch nicht auf die Reihe bekommen, frei ein eigenes Programm zu schreiben.
Basics zu Java kenne ich, kann mit Java gut umgehen(Generics, Multithreading etc kein Problem), API kann ich auch lesen und finde mich auch ohne google dort zurecht.

Wie gehe ich Probleme, welche nicht elementar sind an?
Habe schon ein paar Tutorials durchgearbeitet und frag mich dauernd "wie Löse ich sowas allein/wie kam der Autor darauf?"

TL;DR: Schreibt ihr erstmal drauf los und schlagt sobald ein Problem auftritt in der API nach, zerlegt ihr das Programm erst und sucht passende Lösungen in der API bevor es los geht oder wie geht ihr eure Programme an?

Gruß
 

Joose

Top Contributor
Kommt ganz darauf an was du schreiben willst.
Willst du Desktopanwendungen inkl UI schreiben? Oder willst du "nur" Algorithmen schreiben um Sachen zu berechnen?
Oder Anwendungen ohne GUI die einfach etwas generieren/analysieren/....?

Persönlich suche ich zuerst nach einer einfachen und schnelle Lösung (nicht nach der besten).
Wenn ich weiß so und so funktioniert es dann wird probiert diese Lösung entsprechend zu optimieren.
 

Fab1

Top Contributor
Joose beschreibt hier schon einen sehr guten Weg. Top-down und Bottom-up Nur um es zu nennen.

Ich überlege mir bei meinen kleinen Projekten immer erstmal die Objekte die "herumgeschoben" werden. Bei einem Vokabeltrainer zum Beispiel die "Vokabelkarten"-Objekte. Im Anschluss dann entsprechend die handler, die die Objekte dann entsprechend rumschieben/speichern/laden usw.
 

Sessiolog

Mitglied
Programmieren lernen ist vergleichbar mit dem Lernen einer Sprache wie Französisch, Japanisch etc... Vokabeln einer Sprache zu lernen ist einfach, aber daraus dann grammatikalisch korrekte Sätze zu formulieren um eine eigene Kurzgeschichte zu verfassen, das wird schwierig. So etwas kann man nicht durch Bücher lernen, man muss also üben. Wenn du selber etwas bestimmtes programmieren willst, musst du das in kleinen Schritten machen. Erst nur grob strukturieren, Hauptsache es kann das umsetzen was du verlangst. die Nutzung von "System.out.println(blablabla);" ist für mich persönlich unfehlbar. Baue sowas als Markierungen ein um genau zu wissen, wo das Programm gerade ist. Zum Beispiel:

Java:
public void komplizierteMethode() {
     System.out.println("komplizierte Methode() gestartet");

     // komplizierter Kram...

     System.out.println("komplizierte Methode() fertig");
}

Lass die GUI erstmal weg, oder lass sie zumindest so minimalistisch wie möglich. Sollte die grundlegende Idee funktionieren, kannst du anfangen zu optimieren. D.h. Konstruktoren und Methoden überladen, Ausnahmebehandlungen(Exceptions) definieren, eine schicke GUI bauen. Bei Problemen kann dir Google helfen, meistens wirst du dann auf stackoverflow.com landen. In die API schaue ich persönlich eher selten, da es bei mir meistens nur noch mehr Fragen aufwirft. Folgendes passiert mir ständig:
"Die Methode RescaleOp hat eine .filter(...) Methode und gibt ein WritableRaster als Rückgabetyp... Was ist ein WritableRaster? Mal sehen..."
"WritableRaster braucht ein SampleModel und einen DataBuffer um erzeugt werden zu können."
"Was ist ein SampleModel?"
"Was ist ein DataBuffer?"
"Hää?!"

Mag sein, dass ich faul bin, aber in solchen Momenten vergeht mir dann die Lust.^^
 
Zuletzt bearbeitet:

arilou

Bekanntes Mitglied
Es heißt nicht umsonst Objektorientierte Programmierung. Also ein "Kurz-Crashkurs":
Übliche Herangehensweise ist, erst mal an die konkreten Objekte zu denken:
  • Mit welchen Dingen/"realen Objekten" muss ich hantieren, von welchem "Typ" sind diese? z.B. "Auto", "Motorrad", "Traktor", "Omnibus", aber auch: "Zulassung", "Kaufvertrag", "Kunde", "Benutzeraccount", ...) --> das werden dann alles Klassen
  • Was für Eigenschaften haben sie, mit welchen möglichen Größen? z.B. Farbe={rot,grün,blau,...}, maxSpeed={0..500}; // km/h, anzahl_Raeder={1..20}, Adresse={ Zusammengesetzer Datentyp ~so komplex, dass daraus auch eine eigene Klasse wird~ }, ...
  • Stehen die Klassen zueinander in Beziehung? Z.B. steht "Kunde" in Beziehung zu "Kaufvertrag", und der steht in Beziehung zu einem "Auto", aber auch zum "Verkäufer".
  • Das Ganze aufschreiben/zeichnen geht am besten als UML-Klassendiagramm.
  • Dann die Frage: Was soll man mit welchem Objekt anstellen können? (Methoden der jew. Klasse) Beispiel: "Kunde".setAdresse(neueAdresse), "Kunde".getKaufvertraege(), "Kunde".sendEMail(...), ...
  • Das ist "bottom up"-Vorgehen. Meist kombinier' ich das dann mit einem funktionalen "top-down" (sofern es sich nicht um ein GUI-Programm handelt, sondern ein "Rechenprogramm"): "Was soll das Programm nacheinander tun?" --> ergibt dann den Ablauf in der .main()-Methode.
 
Zuletzt bearbeitet:
Hallo,

also ich habe mir diese Frage auch ständig gestellt und nie eine zufriedenstellende Antwort erhalten.
Ich habe das programmieren lediglich aus Büchern, habe keinen Kurs besucht oder sowas in der Art auch damals
in der Schule hatten wir sowas nicht.

Zuerst habe ich die Grundlagen studiert und Übungen zu gemacht, das man da nicht mehr soviel denken muss :)
Ich arbeite aktuell an meinem ersten großen Projekt (für mich groß ;) )
Angefangen habe ich zuerst mit einem einfachen Fenster, dann die Grafik die ich brauche rein geladen, 2 Buttons erstellt und dann
einen simplen Algorithmus geschrieben der das Bild Pixel für Pixel durchläuft. Als das klappte gab es die ersten Probleme also, erstmal die Probleme mit ein wenig Hirnschmalz beseitigt und so kam eins zum anderen.

Ich habe gemerkt, hey das wäre hilfreich (Menü) also eine Menüleiste geschrieben, nach und nach wurde der Code
recht unübersichtlich also habe ich angefangen aufzuräumen und auszulagern, so hat sich das alles zusammengesetzt aber immer
kleine Teile, recht einfach halten, wenn es funktioniert kann es später optimiert werden, wie bereits meine Vorredner schon sagten.

Ein Tipp: Mir hilft es sehr alles zuerst zu zeichnen auf Papier, Ablaufdiagramme zu schreiben und vor allem wenn ich nicht weiß wie ich was umsetzen soll, die Idee und was die Funktion tun soll als Text niederschreiben, da fallen einem manchmal Dinge auf die man vorher nicht bedacht hat, so zumindest bei mir.

Das sind alles aber eher Laienerfahrungen, der Profil wird wohl anders vorgehen, wichtig ist das zu tun womit man selbst am Besten mit zurecht kommt :)

Grüße
 

Akula

Neues Mitglied
Hi, entschuldigung das ich mich jetzt erst melde und danke für die vielen ausführlichen Antworten.
Puh hab gar nicht so viel zu sagen, muss das erstmal alles umsetzen, denke mal wird jetzt einfacher mit den Beispielen von euch.

Btw. Diagramme etc hab ich auch schon erstellt, aber sobald ich irgendwo eine Zwickmühle hatte, kam ich nicht weiter bzw konnte mich nie richtig für eine Lösung entscheiden.
Muss einfach mal anfangen und mich bei Problemen durcharbeiten, auch wenn ich dabei nicht nach best practices gehe.

Falls ich noch Probleme habe, frage ich nochmal genauer nach, aber für den Moment habt ihr mir schon sehr geholfen.
 

Thallius

Top Contributor
Man sollte sich halt einfach nicht zu hohe Ziele stecken. In den heutigen Zeiten der großen Frameworks und des kostenlosen Codes im Internet, wollen viele Anfänger gleich mal eine App schreiben die in Echtzeit Videos analysiert oder künstliche Intelligenz benötigt. Dazu werden dann riesiege Frameworks ala openCV importiert, von denen man nicht den Ansatz einer Ahnung hat wie sie funktionieren und schon sind die Probleme vorprogrammiert.

Versuche einfach nur Code zu verwnden den Du auch selber schreibst. Später, kannst du dann auch gerne Code benutzen den Du hättest selber schreiben können...
Benutze keine UI Builder sondern schreibe deine ersten UI's selber. Nur was ich selber verstehe und selber programmieren kann, dass kann ich auch vernünftig einsetzen.

Gruß

Claus
 

osion

Bekanntes Mitglied
Ich versuchen den Computer zu sein....weil ein Computer auch nichts anderes macht, als wir machen würden...

Beispiel:

Ich nehme die Abfrage vom Kunden entgegegen und schaue in der Datenbank nach ob das Produkt auf Lager ist.
Ich melde dem Kunden ob es auf das Produkt auf Lager ist.
Ich warte, ob er es kaufen will.
Kunde sagt mir, dass er das Produkt kaufen will.
Ich nehme Kaufanfrage entgegegen
Ich trage in der Datenbank ein, dass eins weniger auf Lager ist
.
.
.


Benutze keine UI Builder sondern schreibe deine ersten UI's selber.

Jeder Mensch, der Produktiv programmiert, benutzt GUI-Builder, solange nicht ein spezielle GUI her muss.
 
Zuletzt bearbeitet:

Chisao

Mitglied
Ich persönlich bezeichne mich selbst noch als Anfänger, aber kann dir mal aufzeigen wie ich gerne mal an meine Programme rangehe bzw. wie ich den ganzen mist gelernt hab den ich bis jetzt kann^^:
-Zuerst überlege ich mir was ich denn alles so brauche.
-Weis ich wie in etwa das ganze aussehen kann(Muss nicht endgültig sein!) mache ich mich an die Implementierung.
-Stoße ich auf einen Fehler gehe ich den so an:
--Schauen an welchem Punkt er genau aufgetreten ist und nach Fehlern ausschau halten, die mir die IDE ins Gesicht wirft.
--Durch auskommentieren rumprobieren woran es denn nun exakt liegt, Fehlermeldung übersetzen und gegebenenfalls googeln.
--Falls das Problem bis jetzt noch nicht vollständig behoben ist, das Programm Schritt für Schritt im Kopf durchgehen und schauen ob irgendwas fehlt, hierbei sehr gründlich sein! Eine einfache nicht initialisierte Variable welche aber nicht aus der Fehlermeldung hervorgeht überliest man ziemlich schnell ;)
--Klappt gar nichts -->Andere Lösung für diesen Programmablauf suchen.

-Habe ich den Prototyp des Programmes fertig, fange ich an es hübsch zu machen. Ein Spiel beispielsweise hat anfangs noch keine Texturen, Sound o.ä.. Es besteht meist eher aus vielen einfarbigen Rechtecken^^.
-Ist im Grunde das Programm nun fertig, kann ich je nach Programm art Content noch rein bringen(Meist eher bei Spielen relevant).
-Jetzt noch das Programm möglichst "DAU-Sicher" machen, und anschließend alles brav kommentieren und documentieren(Als ob ich mich daran je halten würde... -.-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
F Automat-Programmierung Java Basics - Anfänger-Themen 30
N Lambdas, Methodenref, fkt Programmierung ? Java Basics - Anfänger-Themen 10
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
A Frage zur programmierung Java Basics - Anfänger-Themen 12
Nerdinfekt Programmieranfänger, Schwierigkeiten mit der Programmierung Java Basics - Anfänger-Themen 6
U Compiler-Fehler Programmierung einer Drehkugel Java Basics - Anfänger-Themen 8
L Programmierung mit Hash Java Basics - Anfänger-Themen 3
C Wie habt Ihr angefangen mit der Java Programmierung, ohne Programmiervorkenntnisse Java Basics - Anfänger-Themen 8
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
S Programmierung simulieren - aber wie?! Java Basics - Anfänger-Themen 3
H Java Programmierung Java Basics - Anfänger-Themen 3
W Problem bei Programmierung von Monte-Carlo-Integration Java Basics - Anfänger-Themen 12
D Guten Tag mache gerade eine Umschulung zum FiSi war leider jetzt 2 Wochen Krank und wir hatten Prozendurale Programmierung. Java Basics - Anfänger-Themen 3
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
D Objektorientierte Programmierung Java Basics - Anfänger-Themen 13
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
Q Objektorientierte Programmierung Java Basics - Anfänger-Themen 17
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
C GUI Programmierung unter Windows mit Java womit? Java Basics - Anfänger-Themen 11
D Collections Aufgaben Java-Programmierung Überforderung Java Basics - Anfänger-Themen 36
A GUI Programmierung mit Textfield Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
L Dynamische Programmierung Java Basics - Anfänger-Themen 0
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
slejden Erste Schritte Frage zur OOP (objektorientierten Programmierung Java Basics - Anfänger-Themen 4
V Threads Nebenläufige Programmierung Java Basics - Anfänger-Themen 6
V Nebenläufige Programmierung Java Basics - Anfänger-Themen 5
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
S Programmierung eines Geldwechselautomaten! Java Basics - Anfänger-Themen 2
R Einige Neulingsfragen (Wrapper, GUI-Programmierung) Java Basics - Anfänger-Themen 4
D JavaBeans und die visuelle Programmierung Java Basics - Anfänger-Themen 2
M Dringend Experten für Scala-Play basierte Programmierung!!!! Java Basics - Anfänger-Themen 0
Z Programmierung eines Stacks Java Basics - Anfänger-Themen 19
T Objektorientierte Programmierung - Kein Plan wieso das nicht funktioniert! Java Basics - Anfänger-Themen 6
G 3D-Spiele-Programmierung Java Basics - Anfänger-Themen 3
I Programmierung-Hausaufgabe: Hilfe benötigt Java Basics - Anfänger-Themen 8
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
T Nachhilfe JAVA Programmierung Java Basics - Anfänger-Themen 1
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
N Socket-Programmierung Java Basics - Anfänger-Themen 4
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
F Fehler bei Array und Index Programmierung Java Basics - Anfänger-Themen 18
K Objektorientierten Programmierung Java Basics - Anfänger-Themen 3
R Einstieg in Programmierung Java Basics - Anfänger-Themen 8
W Problem bei MineSweeper Programmierung Java Basics - Anfänger-Themen 10
N Objektorientierte Programmierung: Erben von 2 Klassen - wie ist korrekte Vorgehensweise? Java Basics - Anfänger-Themen 16
D Best Practise für Programmierung Java Basics - Anfänger-Themen 7
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
W objektorientierte Programmierung Java Basics - Anfänger-Themen 25
W objektorientierte Programmierung - String in andere Klasse übergeben Java Basics - Anfänger-Themen 13
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
Grejak OOP Einstieg in Objekt-Orientierte-Programmierung Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
U Geräte-Programmierung ? Java Basics - Anfänger-Themen 15
S 2 kurz Fragen zur Möglichkeit der Programmierung Java Basics - Anfänger-Themen 7
T Objektorientierte Programmierung, わからない です Java Basics - Anfänger-Themen 6
J Allgemeine Fragen zur Programmierung Java Basics - Anfänger-Themen 36
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
S Objektorientierte Programmierung Java Basics - Anfänger-Themen 21
M Gui Programmierung Java Basics - Anfänger-Themen 21
J Spielevorschläge für Programmierung Java Basics - Anfänger-Themen 3
O Eisenbahn-Programmierung Java Basics - Anfänger-Themen 8
S Schlechte Programmierung Java Basics - Anfänger-Themen 5
O Probleme bei OO-Programmierung mit Vererbung Java Basics - Anfänger-Themen 18
M Programmierung kürzen??? Java Basics - Anfänger-Themen 5
N Umstieg auf objektorintierte Programmierung Java Basics - Anfänger-Themen 2
N Probleme mit meiner Programmierung Java Basics - Anfänger-Themen 5
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
H Programmierung Ampelsteuerung Java Basics - Anfänger-Themen 4
J [Erledigt] Applet Programmierung Java Basics - Anfänger-Themen 4
C Objektorientierte Programmierung Java Basics - Anfänger-Themen 11
T Gui Programmierung lernen Java Basics - Anfänger-Themen 3
E Toolkit (Scanner) Programmierung Java Basics - Anfänger-Themen 5
D Programmierung Profi Java Basics - Anfänger-Themen 18
G Problem bei Programmierung Java Basics - Anfänger-Themen 15
X Objektorientierte Java Programmierung - 3 Fragen zum Code Java Basics - Anfänger-Themen 5
G Problem bei Programmierung Java Basics - Anfänger-Themen 2
G thread programmierung für ANFÄNGER Java Basics - Anfänger-Themen 2
S generic programmierung "ne:w T[X]" Java Basics - Anfänger-Themen 2
A Einstieg in die Programmierung Java Basics - Anfänger-Themen 20
I Frage wegen Wörterbuch Programmierung Java Basics - Anfänger-Themen 13
X Programmierung mit geometrischen Figuren Java Basics - Anfänger-Themen 3
G Opjektorientierte Programmierung (OOP). einfach für euch Java Basics - Anfänger-Themen 4
G Funktions Programmierung Java Basics - Anfänger-Themen 5
W Gui - Grundsätzliche Programmierung Java Basics - Anfänger-Themen 11
G Schnittstellen Programmierung Java Basics - Anfänger-Themen 5
G Nebenleufige Programmierung Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben