Aller Anfang ist schwer ......

  • Antworten:33
Barbara Schmidt
  • Forum-Beiträge: 15

10.01.2012, 12:40:39 via Website

Hallo Liebe Leute & Programmierer

Ich wollte Euch mal fragen, wie ihr so mit dem programmieren angefangen habt?

Wie startet man am besten?
Wie plant ihr Eure Programme usw.?

Wie seit ihr zum programmieren gekommen?

Ich habe noch kein Androidfähiges Handy, möchte mir aber bald mal eins zulegen,
und möchte auf den bereits fahrenden Zug der Androidprogrammierung aufsteigen.

Ich habe keinerlei Programmierkenntnisse, was Android angeht, habe mir von daher erst einmal einige eBooks besorgt.
Natürlich auch die Programme dazu, wie z.B. Eclipse.

Momentan bin ich grad dabei mich in die Materie reinzufuchsen. Da ich aber (noch) keinerlei Erfahrung habe,
ist es für mich nicht ganz leicht.

An Idee für Programme mangelt es nicht, die sind vorhanden, wüsste auch wie diese Aussehen sollten, bzw. was Sie können sollten usw.
allerdings kann ich diese noch nicht umsetzen. Macht aber auch gar nichts, denn jeder hat mal klein angefangen :) Somit habe ich die Programm erstmal beiseite gelegt um mir Grundkenntnisse anzueignen.

Ich würde mich freuen, wenn ihr vllt. den ein oder anderen Tip für mich habt :)

(Nebenbei: Ich würde mich auch freuen, wenn es hier vllt. den ein oder anderen Programmierer gibt, welcher evtl. sogar noch aus Hamburg kommt, mit dem man sich dann mal treffen könnte, einwenig über die Schulter schauen kann, und bei Fragen diese auch direkt stellen kann.
Klar gibt es dieses Forum hier, was ich auch nicht missen möchte, jedoch ist es doch immer einwenig einfach, wenn man einen direkt hat, den man kontaktieren kann - Wenn jemand sich dazu bereit erklären würde, würde ich mich sehr über eine Nachricht freuen)

Antworten
Stefan S.
  • Forum-Beiträge: 560

10.01.2012, 13:08:01 via Website

Hallo Barbara

Jaja, aller Anfang ist schwer. Das war bei mir auch so, wobei ich sagen muss, dass ich schon Programmierkenntnisse hatte.
Ich entwickle schon eine Weile auf .NET mit C#, darum war mein Einstieg in Java nicht ganz so fürchterlich wie ich es mir vorgestellt hatte.
Vieles ist gleich. Die grössten Mühe hatte ich mit dem Designen von der GUIs. Ich hatte des immer schön vor Augen wie es aussehen sollte,
jedoch sahen meine ersten Versuche extrem kläglich aus. (War hier nicht mal ein Knopf... wo ist er hin...? :grin:)

Wenn ich mich an eine App mache habe ich die Idee zuerst vor Augen, dann versuche ich meine Augen auf Papier zu bringen, d.h. was soll die
App am Schluss wirklich können. Wie muss sie aussehen etc.

Danach gehe ich dann ins Eclipse und versuche mein Glück.

Dieses Forum hat mir extrem geholfen (und tut es immer noch). Hierfür mal allen HelferInnen mein herzliches Dankeschön!

Ich hoffe du schaffst deinen Einstieg in die grüne Welt ohne grösseren Probleme

Gruss und toi toi toi
Stefan

Antworten
Barbara Schmidt
  • Forum-Beiträge: 15

10.01.2012, 14:54:43 via Website

Danke, wollen wir mal schauen, wie es klappt.

Das schlimme ist, dass wie gesagt, ich mir "mehrere" eBooks besorgt habe, und in jedem steht es irgendwie anders drin,
dann noch hier das Wiki ^^ und ich komme komplett durcheinander.

Des weiteren habe ich bei den eBooks das Gefühl, dass dort auch einiges vergessen wird, bzw. Schritte ausgelassen, und/oder übersprungen werden.

Aber schauen wir mal. Wird schon schiefgehen :)

Das mit den "Augen auf´s Papier" bringen, habe ich mir genau so gedacht, quasi eine Skizze (a = b = Fenster öffnen etc.) plus halt Design.
Wobei ich mir in erster Linie erstmal gedanken um die Funktionen als ums Design mache.

Des weiteren ist es irgendwie so, dass umso mehr man sucht,umso mehr bringt es ("mich") durcheinander.

Hatte zu Anfang mit Eclipse begonnen, da dies auch in den eBooks erklärt wird,
dann habe ich nun b4Android entdeckt, was wiederum einfacher zu bedienen aussieht, allerdings auch keine Freeware ist.

Was meint ihr? Erstmal bei Eclipse bleiben, oder mit b4A starten?

Antworten
Felix
  • Forum-Beiträge: 259

10.01.2012, 15:12:51 via Website

Tach!

Barbara Schmidt
Das schlimme ist, dass wie gesagt, ich mir "mehrere" eBooks besorgt habe, und in jedem steht es irgendwie anders drin,
dann noch hier das Wiki ^^ und ich komme komplett durcheinander.

Dass es nicht gleich ist, liegt daran, dass es kein Gesetz gibt, wie etwas zu programmieren ist. Im Gegenteil, es gibt üblicherweise mehrere Wege, die zu Ziel führen. Damit musst du dich abfinden, dass Programmieren ähnlich vielfältig ist, wie die Phantasie des Menschen.

Des weiteren habe ich bei den eBooks das Gefühl, dass dort auch einiges vergessen wird, bzw. Schritte ausgelassen, und/oder übersprungen werden.

Jeder Autor hat halt andere Prioritäten und Herangehensweisen, dazu kommt noch sein Wissensstand und seine didaktischen Fähigkeiten.

Des weiteren ist es irgendwie so, dass umso mehr man sucht,umso mehr bringt es ("mich") durcheinander.

In vielen Gebieten, so auch beim Programmieren ist es ähnlich wie mit dem Tauchen im Meer. Am Anfang am Strand ist alles seicht und toll. Aber je weiter man rausschwimmt, je mehr man eintaucht, desto größer wird der Ozean und die Erkenntnis, dass es viel mehr gibt, als man kennenlernen kann.

Was meint ihr? Erstmal bei Eclipse bleiben, oder mit b4A starten?

Du kannst nehmen was du willst, aber bei Eclipse wirst du mehr Hilfestellung bekommen können.


Felix.

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

10.01.2012, 15:15:59 via App

Ich baue meine kleinen Apps mit Basic4Android. Der Support dort - auch deutschsprachig - ist klasse.

Basic ist für den Einstieg natürlich viel, viel einfacher. Andererseits hast Du mit Eclipse und Java natürlich wesentlich mehr Möglichkeiten. Aber die Lernkurve ist dramatisch größer.

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Stefan S.
  • Forum-Beiträge: 560

11.01.2012, 06:53:30 via Website


Basic ist für den Einstieg natürlich viel, viel einfacher. Andererseits hast Du mit Eclipse und Java natürlich wesentlich mehr Möglichkeiten. Aber die Lernkurve ist dramatisch größer.
Ist es aber nicht so, dass bei Basic4Android man nicht genau weiss wie das jetzt zustande kommt da man den Code nicht analysieren kann?

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

11.01.2012, 07:47:45 via App

Stefan S.

Basic ist für den Einstieg natürlich viel, viel einfacher. Andererseits hast Du mit Eclipse und Java natürlich wesentlich mehr Möglichkeiten. Aber die Lernkurve ist dramatisch größer.
Ist es aber nicht so, dass bei Basic4Android man nicht genau weiss wie das jetzt zustande kommt da man den Code nicht analysieren kann?
Was meinst Du genau damit?

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Michael F.
  • Forum-Beiträge: 914

11.01.2012, 08:33:17 via Website

Er meint, dass du eben nicht hinter den Vorhang blickst, das Programm eigenständig arbeitet und du nicht lernst, was wirklich programmieren bedeutet. Etwa wie HTML-Seiten per Hand erstellen vs Nutzung von Dreamweaver...

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

11.01.2012, 09:13:16 via App

Michael F.
Er meint, dass du eben nicht hinter den Vorhang blickst, das Programm eigenständig arbeitet und du nicht lernst, was wirklich programmieren bedeutet. Etwa wie HTML-Seiten per Hand erstellen vs Nutzung von Dreamweaver...
Du lernst mit Basic natürlich nicht Java, logisch.

Und dass Java mächtiger ist, stellt niemand in Abrede.

Ansonsten ist entwickeln in Basic durchaus Programmieren. Nicht in einer Hochsprache, aber die Grundprinzipien sind ähnlich.

Ich kenne Unternehmen, deren komplette Business-Infrastruktur auf Mainframes läuft, die Anwendungen in Business Basic nutzen. Auch Cobol ist noch immer nicht weg.

Basic ist bei weitem nicht für alles tauglich und sinnvoll. Aber für durchaus erstaunlich vieles. Ich selbst könnte nie in nativem Java entwickeln. Wohl aber mit Basic4Android. Für mich und meinen Bedarf ist es weit mehr als ausreichend.

Und immerhin ist es kein Interpreter, sondern produziert nativen Byte Code.

Herzliche Grüße

Carsten

— geändert am 11.01.2012, 09:14:05

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Stefan S.
  • Forum-Beiträge: 560

11.01.2012, 10:12:42 via Website

Hauptsache das Resultat stimmt B)

Antworten
Daniel
  • Forum-Beiträge: 177

11.01.2012, 10:13:12 via Website

[quote=Carsten Müller]
Michael F.

Und immerhin ist es kein Interpreter, sondern produziert nativen Byte Code.
Dieser Satz ist widersprüchlich, denn Byte Code ist Code der von einem Interpreter interpretiert wird. Was du vielleicht meinst ist Maschinencode. Aber Basic4Android erstellt weder Byte- noch Maschinencode, sondern wandelt den in Basic geschriebenen Code einfach nur in Java um. Siehe hier:
During compilation Basic4android generates Java code which is then compiled with the Java compiler and converted to Dalvik (Android byte code format).
http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/13773-android-code-obfuscation.html
Der Byte Code entsteht dann erst wenn das in Java umgewandelte Basic Programm vom Java Compiler kompiliert wird.

Was programmieren lernen und basic4java angeht: Wenn man bereits Basic kann ist basic4android sicher eine gute Sache. Kann man aber noch nicht programmieren sollte man mMn eher gleich Java lernen. Java wird im Allgemeinen als leicht zu erlernen angesehen und man lernt dann auch gleich alle Konzepte die in heutigen und wohl auch den in den nächsten Jahren entstehenden Programmiersprachen wichtig sind. Wenn man Java kann fällt es leicht andere aktuelle Sprachen zu lernen, mit Basic ist das eher weniger der Fall.

Edgar Dijkstra sagte übrigens schon vor weit über 30 Jahren:
"Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung."

Zum eigentlichen Thema:
Ich gebe regelmäßig Programmieranfängern Nachhilfe und arbeite an der TU Wien als Tutor für eine Lehrveranstaltung die von fortgeschrittenen Anfängern besucht wird. Deshalb habe ich einige Erfahrung mit Programmieranfängern. Der meiner Meinung nach größte Fehler den ein Java Anfänger begehen kann ist Eclipse herunterzuladen. Nicht weil Eclipse schlecht wäre, sondern ganz einfach weil man als Anfänger die vielen Funktionen die Eclipse bietet ohnehin nicht braucht und man erst mal vom eigentlichen Ziel ein einfaches Programm zu schreiben abgelenkt wird. An der TU Wien kommen Informatik Studenten erst im 3. Semester mit Eclipse in Kontakt. Davor ist Verwendung verboten. Mein Tipp an dich Barbara wäre erst mal die Android EBooks, das Android SDK und Eclipse wieder wegzuräumen und mit einem Java Buch und einem simplen Editor wie z.B. JEdit anzufangen. Ein gutes Einsteigerbuch ist mMn das hier: http://www.javabuch.de/download.html

Philip M.

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

11.01.2012, 10:20:08 via App

HI Daniel,

Danke für die Präzisierung.

Das mit dem Byte Code mag nicht exakt gewesen sein. Was ich meinte ist, dass für Basic4Android keine gesonderte Laufzeitumgebung nötig ist, sondern die compilierten Apps genau so aussehen und laufen wie nativ entwickelte Apps.

Und ich gebe Dir recht: Wer die Möglichkeiten hat, ist gut beraten, gleich Java zu erlernen. Ich hatte in meinem Leben sehr viel mit Java zu tun und weiß es deshalb zu schätzen. Ich kann es bloß nicht programmieren und mir fehlt die Zeit, es zu erlernen. Ich wünschte ich könnte es.

Ich würde mich auch nie als Software Entwickler bezeichnen, nur weil ich in Basic die eine oder andere kleine Anwendung realisieren kann...

Herzliche Grüße

Carsten

— geändert am 11.01.2012, 10:20:22

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
kruemelnerd
  • Forum-Beiträge: 52

11.01.2012, 10:25:08 via Website

Falls du bei Java bleiben willst, kann ich dir empfehlen ein paar kleine und reine Java-Anwendungen zu schreiben. Also komplett losgelöst von Android. Damit kommst du ein wenig in die Materie, ohne vom GUI-Zeug erschlagen zu werden. Ein gutes Java-Kennenlernbuch ist zb "Java ist auch eine Insel" aus dem Galileo-Verlag: http://openbook.galileocomputing.de/javainsel/

Falls du noch Android-Bücher suchst kann ich dir das Buch "Android 2 - Grundlagen und Programmierung" von Arno Becker empfehlen. Ja auch wenn es den Vorgänger kostenlos gibt, ich finde das 2te Buch besser (allerdings hatte ich schon Java-Erfahrung, als ich es durchgearbeitet hab)


Allgemein kann ich dir sagen, programmieren lernen lohnt sich, denn du kannst damit echt super Sachen machen. Aber es ist auch eine unglaubliche Arbeit, welche nicht unterschätzt werden sollte.

Antworten
Stefan S.
  • Forum-Beiträge: 560

11.01.2012, 13:38:56 via Website

kruemelnerd

Allgemein kann ich dir sagen, programmieren lernen lohnt sich, denn du kannst damit echt super Sachen machen. Aber es ist auch eine unglaubliche Arbeit, welche nicht unterschätzt werden sollte.

Das kann ich bestätigen... Den Satz ich mal mal nur schnell kann doch mehrere Stunden dauern :vader:

Antworten
Barbara Schmidt
  • Forum-Beiträge: 15

11.01.2012, 23:18:15 via Website

Daniel

Zum eigentlichen Thema:
Ich gebe regelmäßig Programmieranfängern Nachhilfe und arbeite an der TU Wien als Tutor für eine Lehrveranstaltung die von fortgeschrittenen Anfängern besucht wird. Deshalb habe ich einige Erfahrung mit Programmieranfängern. Der meiner Meinung nach größte Fehler den ein Java Anfänger begehen kann ist Eclipse herunterzuladen. Nicht weil Eclipse schlecht wäre, sondern ganz einfach weil man als Anfänger die vielen Funktionen die Eclipse bietet ohnehin nicht braucht und man erst mal vom eigentlichen Ziel ein einfaches Programm zu schreiben abgelenkt wird. An der TU Wien kommen Informatik Studenten erst im 3. Semester mit Eclipse in Kontakt. Davor ist Verwendung verboten. Mein Tipp an dich Barbara wäre erst mal die Android EBooks, das Android SDK und Eclipse wieder wegzuräumen und mit einem Java Buch und einem simplen Editor wie z.B. JEdit anzufangen. Ein gutes Einsteigerbuch ist mMn das hier: http://www.javabuch.de/download.html

Habe mich nun mal einwenig umgeschaut, nach Java (Grundlagen) und auch dort einige Infos gefunden. Ich denke, ich werde mir dort einfach mal "Video2Brain" besorgen. Habe dies auch für Autocad und finde, dass dort sehr gut beschrieben wird.

Allerdings habe ich zum Thema Eclipse weglassen mal folgendes ("Zitat - Video2Brain"):


Video2Brain - Java 6

Ihr Einstieg in die Programmierung mit Java 6. Zu Beginn
dieses Kurses installiert Ihr Trainer Helge Maus mit Ihnen
die Entwicklungsumgebungen Eclipse und NetBeans und
vermittelt Ihnen die Grundlagen der Sprache.
Danach
wagen Sie sich gemeinsam an objektorientierte
Programmierung und weitere fortgeschrittene Themen.
Am Ende des Video-Trainings können Sie:

- mit Variablen, Konstanten und Operatoren arbeiten
- Ablaufsteuerungen mit else und if programmieren
- switch-case und Schleifen einsetzen
- Tastatureingaben eilesen
- Strings und Arrays verarbeiten und manipulieren
- objektorientiert programmieren
- mit Streams und Exceptions arbeiten

Wie soll ich mich denn da von Eclipse lösen :P Scheint ja ein grundlegendes Programm für Java zu sein?

Ich persönlich finde es nicht weiter schlimm, denn so lernt man ja auch gleich den Umgang mit Eclipse selbst.

Oder sehe ich das falsch?

Philip M.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

12.01.2012, 09:02:32 via Website

Speziell für Fehlersuche kann es durchaus sinnvoll sein zu verstehen wie Java unter der Haube funktioniert.
Vieles davon wird durch Eclipse aber versteckt.
Ist genauso wie damals mit Windows. Als altes DOS-Kind konnte ich problemlos noch Systeme zum Laufen kriegen, wenn der Windows95 Aufsatz nicht mehr funktioniert hat. Wer mit Windows angefangen hat, dem fehlt schlicht das Wissen dafür.
Jede Abstraktionsebene macht einem zwar die alltägliche Arbeit leichter, aber behindert einen dabei Probleme auf tieferen Ebenen zu verstehen.

Ich hab 2001 mit Java angefangen und die ersten Programme wirklich im Text-Editor geschrieben und über die Kommandozeile kompiliert und gestartet.
Dann mit einer guten IDE (erst IntelliJ, dann Eclipse) zu arbeiten war natürlich ein Quantensprung, aber es ist doch immer wieder schön zu wissen was das Teil im Hintergrund macht.
Generell ist es oft hilfreich die Sprache bis in alle Untiefen hinweg zu kennen, denn wenn einige Kollegen bei der Fehlersuche mangels Ideen aufgeben, kann ich meist mit ein bisschen Hintergrundwissen das Problem noch erkennen und lösen.

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

12.01.2012, 09:11:25 via App

Barbara Schmidt
Wie soll ich mich denn da von Eclipse lösen :P Scheint ja ein grundlegendes Programm für Java zu sein?

Ich persönlich finde es nicht weiter schlimm, denn so lernt man ja auch gleich den Umgang mit Eclipse selbst.

Oder sehe ich das falsch?
Eclipse ist eine (von vielen) Java Entwicklungsumgebungen.

Java selbst kann man auch in einem simplen Texteditor programmieren...

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Felix
  • Forum-Beiträge: 259

12.01.2012, 09:38:02 via Website

Tach!

Rafael K.
Speziell für Fehlersuche kann es durchaus sinnvoll sein zu verstehen wie Java unter der Haube funktioniert.
Vieles davon wird durch Eclipse aber versteckt.

Was genau verdeckt Eclipse denn da? Und was davon benötigt ein Anfänger für seine Erkenntnissammlung? Zusatzfrage: Wie testet man ohne Eclipse Android-Features, beispielsweise Telefonie, mit den üblicherweise in der DDMS-Perspektive zu findenden Tools? (Gibt sicher andere Möglichkeiten, hab mich nur noch nicht umgeschaut.) Nimmt man da das SDK an der Kommandozeile? Wenn ja, kommt man denn damit zu weitreichenderen Erkenntnisses als bei einer Bedienung derselben Features über eine grafische Oberfläche? Schließlich verdeckt das SDK ja auch was da eigentlich passiert.


Felix.

Philip M.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

12.01.2012, 10:03:03 via Website

all diese tools, die im eclipse integriert sind, liegen als eigenständige anwendungen im sdk

swordiApps Blog - Website

Philip M.

Antworten
Felix
  • Forum-Beiträge: 259

12.01.2012, 12:15:13 via Website

Tach!

Markus Gu
all diese tools, die im eclipse integriert sind, liegen als eigenständige anwendungen im sdk

Das beantwortet meine Zusatzfrage, bleibt noch zu klären, welche Vorteile man davon hat, diese Tools an der Kommandozeile zu benutzen als über die GUI.


Felix.

Philip M.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

12.01.2012, 12:41:08 via Website

Felix

Markus Gu
all diese tools, die im eclipse integriert sind, liegen als eigenständige anwendungen im sdk

Das beantwortet meine Zusatzfrage, bleibt noch zu klären, welche Vorteile man davon hat, diese Tools an der Kommandozeile zu benutzen als über die GUI.
Du schonst deine Maus ;)

IMHO ist es immer ein Vorteil Dinge tiefergehend zu verstehen und auch ohne Stützräder bedienen zu können.
Wenn man das das drauf hat, kann man ruhig auf Hilfsmittel zurückgreifen.

Antworten
Felix
  • Forum-Beiträge: 259

12.01.2012, 13:43:57 via Website

Rafael K.
IMHO ist es immer ein Vorteil Dinge tiefergehend zu verstehen und auch ohne Stützräder bedienen zu können.
Wenn man das das drauf hat, kann man ruhig auf Hilfsmittel zurückgreifen.

Leider weichst du meiner Frage aus und antwortest mit einem Allgemeinplatz. Was genau wird denn vertieft durch den Verzicht auf die Oberfläche? Das (unnötige) Beschäftigen mit dem Code, weil Fehler nicht sofort unterringelt werden sondern immer erst beim nächsten Compilerlauf und einzeln nacheinander angezeigt werden? Dass man sich beim Nutzen eines 08/15-Editor um eine Formatierung des Codes selbst kümmern muss, anstatt dies mit einem Hotkey-Tastendruck die IDE erledigen zu lassen? Verbessert man seine allgemeinen Tippfähigkeiten, wenn man die Befehle der Tools an der Kommandozeile eintippt statt per Mausklick auslöst? Was konkret dabei im Hintergrund abläuft sieht man in beiden Fällen nicht. Ist es die kontextsensitive Anzeige der API-Dokumentation, die einem vielleicht mehr schadet als das eigenständige Blättern in den entsprechenden Dokumenten oder ist es gar das Codevervollständigungsfeature?

Ich könnte bei deiner Argumentation vielleicht noch mitgehen, wenn du die Erstellung einer Oberfläche per Befehlsfolgen und per WYSIWYG-Editor vergleichst. Doch auch hier muss man meistens in beiden Fällen wissen, wie die Eigenschaften heißen, die man zu setzen gedenkt. Aber ansonsten finde ich grad keine Argumente, die deine Aussage stützen.

Ich empfinde die Hilfen der GUI nicht als Stützräder sondern als Erleichterung der Arbeit, so dass ich mich auf das Wesentliche konzentrieren kann. Wenn beispielsweise eine Exception auftaucht und die IDE gleich an die auslösende Codestelle springt, empfinde ich das nicht als Stützrad sondern als Zeitsparmaßnahme, weil ich mich nicht zu Fuß zur Datei und der passenden Stelle darin durchhangeln muss. Die fertig benutzbare Auflistung aller Variablen und deren Inhalte zum Prüfen, ob Wunsch und Wirklichkeit übereinstimmt, empfinde ich auch nicht als Nachteil gegenüber einem Kommandozeilendebugger. Möglicherweise kommt man im Laufe der Zeit an einen Punkt, wo ein Feature nicht in der IDE abgebildet ist, aber das wird meines Erachtens nach einen Anfänger so bald nicht treffen.


Felix.

Philip M.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

12.01.2012, 13:50:18 via Website

Felix, sieh es mir nach, aber aus dem Alter, in dem ich über subjektive Meinungen und daraus resultierende Empfehlungen seitenlange Diskussionen geführt habe, bin ich raus ;)
Wenn ich finde, dass Hintergrundwissen zu dem was man tut sinnvoll ist, dann finde ich das, weil ich damit gute Erfahrungen gemacht habe.
Wenn du das (noch) nicht so erlebt hast, dann ist das für mich völlig OK :)

— geändert am 12.01.2012, 13:52:05

Antworten
Felix
  • Forum-Beiträge: 259

12.01.2012, 14:46:38 via Website

Tach!

Keine Sorge, ich habe genügend Jahrzehnte auf dem Buckel, um ausreichend Erfahrungen gesammelt zu haben – nicht unbedingt mit Java, dafür aber mit ähnlichen und anderen Systemen, mit und ohne IDE. Grundlagenwissen sehe ich als essentiell und Hintergrundwissen als erstrebenswert an. Aber ich sehe grad nicht, welches sinnvolle Hintergrundwissen beim Nichtverwenden von Eclipse aufgebaut werden kann. Das ist der Punkt, warum ich dein "Eclipse versteckt"-Argument hinterfragt habe. Vielleicht kann ich ja dabei etwas lernen, was ich noch nicht selbst gesehen habe. Gerade beim von dir angeführten Fehlersuchen hilft doch der eingebaute Debugger wunderbar um die Interna der Objekte und gegebenenfalls (bei installiertem Quellcode) der Java- und Android-eigenen Klassen kennenzulernen.


Felix.

Philip M.

Antworten
Barbara Schmidt
  • Forum-Beiträge: 15

13.01.2012, 10:59:58 via Website

Irgendwie sieht es so aus, als würde es hier einwenig vom eigentlichem Thema abdriften :(

Wie genau sieht denn Euer "Bauplan" so aus?

Was stellt ihr Euch da so für Fragen?

Klar ist sowas wie,

- Was sollte das Programm können?
- Was kann der Nutzer selbst ausführen?
- Was genau bewirkt welche Funktion, bzw. welcher Tastendruck?

Aber was gibt es da noch so?

Plant ihr auch zu Anfang das "Design"? Bzw. muss das zu Anfang mit geplant werden, wo welcher Button sitzt, oder kann man dies zum Schluss machen?

Kurz zu mir:

Bin grad dabei, mir "Video2Brain" - Java 7 anzuschauen, und dort wird alles gut erklärt.

Da ich aber gerne parallel dazu vllt. schon mal einwenig mit meinem eigenem Programm anfangen möchte, um weiter zu lernen,
würde ich gerne mal eins erstellen bzw. planen.

Außerdem noch eine Frage, welche evtl. hier nicht "ganz" richtig ist....

Ist es möglich, automatisch auf Programme zuzugreifen bzw. zu updaten, ohne das der Nutzer was tun muss?

BSP:

Ein News-Programm. Es ist auf dem Handy aktiv, und alle Daten, die ich bei mir eingebe, werden dann automatisch an alle Programme gesendet.
Ähnlich wie die Funktion von "WhatsApp". Nachrichten kommen da ja an, auch wenn man das Programm ausgeschlatet hat.
So eine Funktion stelle ich mir auch vor, nur das ich die Nachrichten z.B. vom PC aus sende, evtl. von einem dafür programmiertem Programm.

Hoffe ihr wisst wie ich das meine?!

Antworten
Maximilian O
  • Forum-Beiträge: 990

13.01.2012, 15:06:33 via Website

Hallo Barbara,
Barbara Schmidt

Wie genau sieht denn Euer "Bauplan" so aus?
Was stellt ihr Euch da so für Fragen?

Plant ihr auch zu Anfang das "Design"? Bzw. muss das zu Anfang mit geplant werden, wo welcher Button sitzt, oder kann man dies zum Schluss machen?

der "Bauplan" sollte nur ganz grob sein, damit du beim designen eine grobe Richtschnur hast. Bei mir ist es so, dass ich mir zu erst überlege was ich für eine App machen möchte. Dann versuche ich meine Vorstellung in Photoshop um zusetzen und mehre so lange daran herum, bis es mir zusagt.

Doch irgendwann sollte man einfach anfangen zu programmieren und sich nicht zu lange an der Vorarbeit aufhalten. Denn während der Umsetzung fallen einem immer noch Dinge ein, die man einbringen sollte, daher sollten da noch Spielräume sein.

Deswegen: Zuerst die Funktionalität, dann das Design

Barbara Schmidt

Ist es möglich, automatisch auf Programme zuzugreifen bzw. zu updaten, ohne das der Nutzer was tun muss?

BSP:
Ein News-Programm. Es ist auf dem Handy aktiv, und alle Daten, die ich bei mir eingebe, werden dann automatisch an alle Programme gesendet.
Ähnlich wie die Funktion von "WhatsApp". Nachrichten kommen da ja an, auch wenn man das Programm ausgeschlatet hat.
So eine Funktion stelle ich mir auch vor, nur das ich die Nachrichten z.B. vom PC aus sende, evtl. von einem dafür programmiertem Programm.
Also du beantwortest dir deine Frage ja schon selber. "Ähnlich wie die Funktion von "WhatsApp".
Um Daten in die Apps zu "übertragen" müssen diese im Internet verfügbar sein. Dazu musst du zB eine php Datei schreiben, welches dir bei Aufruf die News zurückgibt. Mit einem HTTP Request bekommst du diese dann innerhalb deiner App.

MfG Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
kruemelnerd
  • Forum-Beiträge: 52

16.01.2012, 21:45:57 via Website

Mein persönlicher "Bauplan" oder meine Vorgehensweise beim Programmieren sieht meist so aus:

Halte immer Zettel und Stift bei dir. Bei eigentlich jedem Punkt muss was auf Papier geschrieben werden ;)

  1. Idee haben -
    Meist nur grob, kommt in der Regel dann wenn man es nicht erwartet. Oder man was vermisst, selbst gern hätte und sich fragt warum da sonst keiner draufgekommen ist. Ist meist der schwierigste Teil ;) Freunde ausquetschen hilft meist auch ganz gut.
  2. Brainstorming -
    Alles aufschreiben was die App/ das Programm können soll. Wirklich alles. Ohne groß über die Realisierung nachzudenken. Einfach alles was cool wäre, wenn deine App es können würde. Auch Bekannte / Freunde fragen, welche Funktion benötigt wird oder was vllt cool wäre.
  3. Über die Ideen nachdenken -
    Was ist realistisch zu machen? Evtl nachfragen über Funktionen, welche man nicht kennt und bei andern Programmen gesehen hat.
  4. Use-Cases und Programmablaufplan schreiben (evtl auch n Sequenzdiagramm) -
    Erste Funktionalitäten überlegen. Was soll die App wirklich können? Wie soll was funktioneren und in welcher Reihenfolge. Wahrscheinlich schreien hier die ersten schon "booooooooring, viel zu unhaxxorhaft", aber mir persönlich hilft es ungemein, weil ich meist große Pausen zwischen meinen Programmierzeiten hab. Und nach nem 1/4 Jahr wieder in den eigenen Code reinzukommen ist unglaublich schwierig. In dieser Phase hast du das meiste Programmieren. Allerdings brauchst du diese Phase nicht umbedingt und kannst es auch einfach runtertippen. Einfacher hast du es allerdings mit diesem "Mehraufwand".
  5. Erstes Design entwerfen -
    Prototypen auf Papier entwerfen, überlegen was wo hinkommt usw. Einfach ein paar Seiten verbrauchen. Ganz nett sind auch Schablonen (ein Beispiel) oder selbst ausgeschnittene Buttons und Textfelder.
    Für mich als Informatiker auch sehr schwierig. Meist lass ich mir dabei von Freunden helfen.
  6. Protoypen programmieren -
    Ich persönlich mag es einen groben Oberflächenprotoypen zu programmieren. Damit man schon mal was sieht und evtl. Fehler im Design findet. Hierbei gibt es noch keinen großen Funktion, sondern nur das Design.
  7. Funktionen programmieren -
    Endlich das Programmieren. Hier kannst du dich an die erstellten Use-Cases und PAPs halten die du erstellt hast. Kommentare im Code nicht vergessen.
  8. Neue Ideen und Funktionen hinzufügen
  9. Anpassungen am Design -
    Die letzten drei laufen meist recht parallel ab, wenn es kleinere Änderungen sind. Größere Sachen müssen allerdings wieder neu auf Papier gebracht und miteinander verglichen werden.
  10. Testen -
    Ich persönlich konnte mich ncoh nicht dazu durchringen JUnit-Tests für Android auszuprobieren. Meine Projekte waren meist zu klein und "unwichtig". Meist beschränk ich mich bei den Tests auf normales durchprobieren der Funktionen.
  11. Ausliefern und einsetzen.

Bitte sehr, das ist mein Vorgehen beim Programmieren. Allerdings ist das sehr stark auf mich angepasst. Weiß nicht, ob andere es anders machen und einfach gleich nach der Idee mit tippen anfangen. Mir ist das zu schnell, zu unübersichtlich und ich hab es nicht so gelernt. So ist der Programmierteil halt relativ "klein". Wenn du viele Usecases, PAPs und Sequenzdiagramme hast, geht das eigentliche Programmieren recht schnell. Allerdings solltest du schon ein wenig Erfahrung im Programmieren haben. Für den Anfang würde ich dir empfehlen diesen Punkt zu überspringen und später darauf zurückzukommen.

Da bestimmt noch Fragen sind, einfach hier posten :)


PS: ich seh grad 1000 Rechtschreibfehler. Bitte entschuldige diese, aber ich hab grad keinen Nerv zum verbessern. Hoffe du kannst drüber hinwegsehen. Danke :)

— geändert am 16.01.2012, 21:57:15

Antworten
Philip M.
  • Forum-Beiträge: 90

17.01.2012, 13:39:02 via Website

@Rafael K.
Mich würde hier auch mal interessieren was Eclipse versteckt, da ich nun schon ein paar Jahre damit arbeite. Da du aber sagst das man ohne Eclipse mehr Einsicht in die Tätigkeiten von Eclipse bekommt (was es im Hintergrund alles macht und was einem beim programmieren bzw. der Fehlersuche in Java helfen würde), würde ich schon gerne wissen wo man diese genauer nachsehen kann.
Ich hoffe du kannst mir da ein wenig weiter helfen denn du hast mich damit nun wirklich neugierig gemacht :-)

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

17.01.2012, 14:10:06 via Website

Ich frag mich immernoch was an der Idee jetzt so ungewöhnlich ist :)
Wenn man mit Stützrädern fahren lernt, hat man eben Probleme weiterzufahren, wenn ein Stützrad mal abbricht.
Es gibt ja auch nicht umsonst Linux-From-Scratch Projekte wo man von Grund auf lernt ein Linux System manuell aufzusetzen, damit man versteht wie es funktioniert. Ich glaube (aus Erfahrung) fest daran, dass einem solches Wissen im Problemfall extrem weiterhilft.

Eclipse ist sehr ausgereift und nimmt einem extrem viel Arbeit ab...ist aber leider (vor allem wenn Plugins ins Spiel kommen) auch nicht perfekt.
Wenn es dann mal irgendwo mit einer kryptischen Meldung hakt und man ein wenig Verständnis davon hat wie das System intern arbeitet, hat man zumindest schonmal Ansatzpunkte wo man nach den Ursachen suchen kann.
Letztens erst wieder beim Update des Android SDK gehabt. Plötzlich liefen die Produktiv-Builds nicht mehr, weil die Einbindung von Libraries sich geändert hatte und Proguard damit nicht klar kam.
Was macht man da als Newbie?
Compiler helfen bei syntaktischen Fehlern, Debugger helfen bei semantischen Fehlern, bei strukturellen Problemen hilft nur Wissen und Erfahrung.
Man kann dann natürlich auch in einem Forum fragen, aber ich löse meine Probleme lieber selbst :)

Wer meint, dass er auch ohne Hintergrundwissen zu Java/JVM usw. leben kann ... ist doch super :)
Ich finde es extrem sinnvoll in voller Tiefe zu verstehen was ich da tue. Sobald das der Fall ist, kann ich mir gerne von Tools helfen lassen.

Antworten
P Sciga
  • Forum-Beiträge: 7

17.01.2012, 14:25:03 via Website

Hallo Barbara,

dann will ich auch mal meinen Senf dazugeben, wenngleich kruemelnerd schon viel geschrieben hat, was auch meiner Meinung entspricht. Dennoch eine Ergänzung:

Vielleicht kennst Du vom Mensch ärgre Dich nicht den Würfel. Wenn nun jemand ein Handwerk lernen will, z.B. Schlosser, kann man ihm ein Stück rohes Eisen in die Hand drücken und ihn solange feilen lassen, bis daraus ein Würfel wurde. Und zwar so lange, bis die Maße, die Winkel, die Postionen der Senkungen und auch die Fasen stimmen.

Es mag Menschen geben, denen das liegt, Naturtalente schaffen es vielleicht sogar in 2 oder 3 Tagen. Normale Typen (wie ich) sind bereits nach dem 5. Anlauf sowas von genervt, dass sie am liebste alles in die Ecke schmeißen.

Ähnlich ist es mit der Softwareentwicklung. Bewußt vermeide ich in diesem Kontext den Begriff "Programmierung". Klar kann man am besten auf Assembler-Ebene beginnen. Ich selbst habe das anfangs mal für Z80-Prozessoren getan. War auch recht spannend, bis ich zum ersten mal vergaß die Lochstreifen zu beschriften. Klar hatte ich eine Menge gelernt. Hilft es mir wirklich weiter?

Worauf ich hinaus will ... bitte eines nicht vergessen:

Es zählen Erfolgserlebnisse. Portioniere Dir Deine Ziele so, dass Du mit jedem Teilschritt auch siehst, was Du geleistet und gelernt hast. Was war ich stolz darauf, mit Basic4Android das erste Foto gemacht zu haben und es dann auch noch unter einem eigenen Dateinamen abzuspeichern.

In diesem zusammenhang noch eine Empfehlung von mir. Warte nicht zu lange mit dem Handy. Es macht Spaß dort genau die Komponenten zu nutzen (Cam, GPS, ...), die ein Emulator in der Regel nicht hat.

Was ich mir nicht verkneifen kann:

Daniel

Edgar Dijkstra sagte übrigens schon vor weit über 30 Jahren:
"Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung."

Sorry, ich weiß nicht wie 1979 die EDV-Ausbildung (war bei mir nur Nebenfach) im Westen aussah. Wir haben mit einem Basic ähnlichen Interpreter auf Großrecherterminals angefangen (ich glaub der hieß FORINT). Später kamen dann FORTRAN IV und Assembler für Z80 dazu. Ich denke insbesondere im Interesse der Lernkurve, sollten die Werkzeuge anfangs möglichst komfortabel sein.

Viele Grüße - Peter

Antworten
Philip M.
  • Forum-Beiträge: 90

17.01.2012, 15:26:11 via Website

@Rafael K.

Stimm ich dir voll und ganz zu und ist auch unentbehrlich um gut programmieren zu können :-)
Ich wollte auch nur wissen was man mehr lernt wenn man erstmal auf Eclipse verzichtet da ich auch direkt mit Eclipse angefangen habe und nun schon ca. 6 Jahre damit entwickel. Denn wenn hier etwas vor meinem Auge versteckt geblieben ist und ich hier noch was lernen kann dann würde ich natürlich schon gerne wissen was du genau meinst da ich bisher eigentlich immer dachte ich kenne die Hintergründe und die Arbeitsweise einer JVM.

Vielleicht auch einfach nur ein Missverständnis da ich eine Ausbildung in der Richtung habe und ich dieses somit mehrfach in der Schule und privat mit Büchern mir dieses Wissen erarbeitet habe. Jemand der einfach nur so Hobbymäßig programmiert wird den Drang dieses Wissen zu erlangen nicht gehabt haben und kann und somit nur auf den von dir genannten Weg die Geschichten wie zum Beispiel die des Bytecodes und Maschinencodes oder die Geschichte der Interpreter und Compiler erlernen :)

Wenn ich mich irre dann bitte ich um Entschuldigung und Aufklärung :-)

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

17.01.2012, 15:45:14 via Website

Der Punkt ist halt, dass man bei der Arbeit mit Java hier und da jede Menge implizites Wissen aufschnappt.
Jedes Problem, das man selbst löst, hinterlässt den Lösungsweg im Hinterkopf, den man mit ein wenig Abstraktionsvermögen auf ähnliche Probleme anwenden kann.
Mit den Jahren wächst da ein Fundus an Informationen und Lösungswegen heran, dessen man sich vielleicht garnicht bewusst ist, aber wenn man ihn braucht ist er da. Man würde natürlich nie auf die Idee kommen einem Newbie dieses Wissen als wertvoll zu übermitteln, denn vordergründig "weiß man halt wie man mit Eclipse ein Programm schreibt" und denkt das wäre schon alles.
Was hier vielleicht außer acht gelassen wird, ist dass Newbies solches Wissen in der Regel nicht aufbauen und dann nur noch Bahnhof verstehen, wenn Eclipse mal nicht 100% so funktioniert wie man es gewohnt ist.
Man lernt quasi nur für den best-case.

Ich habe vor fast 12 Jahren mit UltraEdit meine ersten Java Programme geschrieben, sie auf der Kommandozeile kompiliert, gebaut, deployed und gestartet und ich würde dieses Wissen nicht missen wollen.
Es ist wie mit einem Baum. Fängt man mit Eclipse an, versteht man viel von den Blättern in der Baumkrone, aber wenn die Blätter plötzlich verwelken weil die Wurzeln kein Wasser mehr ziehen, kann man nichts machen, weil man nicht weiß wie sie funktionieren.

Also nochmal:
Ich kann es verstehen, wenn man zu faul ist sich alle Grundlagen anzueignen, weil man einfach nur schnell Erfolgserlebnisse haben möchte.
Irgendwann wird man aber mit Sicherheit auf ein Problem stoßen, wo einem weder Strg+1 noch Strg+Space noch Project->Clean weiterhelfen ;)

— geändert am 17.01.2012, 15:58:43

Mac SystemsPhilip M.

Antworten
kruemelnerd
  • Forum-Beiträge: 52

18.01.2012, 00:19:14 via Website

@Rafael K., Philip M. und den Rest:
Bitte verlasst doch einfach diesen Thread. Redet über PMs oder macht einen eigenen Thread. Das Thema interessiert garantiert noch mehr Leute, aber in diesem Thread ist es einfach nur total unpassend und verwirrt nur.

@Barbara:
Kann P Scigade nur zustimmen Erfolge und ein eigenes Smartphone (auch ein kleines wie zb das wildfire oder so) sind extrem motivierend. Das erste mal um die Hochschule zu rennen und zu schauen ob der weg wirklich mitgetrackt wird ist echt eine super Sache.

@P Scigade:
meine erste Sprache war QBasic. Was hab ich drüber geflucht und wie glücklich war ich als ich das erste mal Java richtig benutzt hab :D

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

18.01.2012, 08:47:28 via Website

kruemelnerd
@Rafael K., Philip M. und den Rest:
Bitte verlasst doch einfach diesen Thread. Redet über PMs oder macht einen eigenen Thread. Das Thema interessiert garantiert noch mehr Leute, aber in diesem Thread ist es einfach nur total unpassend und verwirrt nur.

kruemelnerd
@P Scigade:
meine erste Sprache war QBasic. Was hab ich drüber geflucht und wie glücklich war ich als ich das erste mal Java richtig benutzt hab :D

Wer ohne Sünde ist, werfe den ersten Stein auf sie :)

— geändert am 18.01.2012, 08:49:13

Philip M.

Antworten