Java Buch für Anfänger

izedra1996

Cadet 3rd Year
Registriert
Juli 2017
Beiträge
44
Hey Community,
Ich bräuchte eine Buchemfehlung von euch.
Mein zukünftiges Ziel ist die appenntwickulung auf Android Basis.
Welches Java Anfänger Buch würdet ihr mir empfehlen?
Und welches weitere Android/androidstudio zum aufbauen ?
Oder gleiche ein java/Android Buch (ich weiß nur nicht ob mir das Probleme machen wird wenn ich von Anfang an Android eingesessen bin und vielleicht zukünftig auch mal Java auf Desktop Basis programmieren will)


Habe mir bereits Schrödinger programmiert Java angeschaut aber das ist mir zu bunt:)
Gruß:)
 
Für Java: Java ist auch eine Insel

Android und Java ist so eine Sache. Du hast zwar die Sprache, aber die SDK ist dann doch nochmal was ganz eigenes.
 
Auf Android wäre auch Kotlin möglich, kenne da aber kein Buch für.

Finde Ehrlichgesagt aber die Docs + Stackoverflow in den Meisten Fällen ausreichend.
 
Naja, erstmal muss man die Grundstruktur verstehen, also zB die Lifecycles der Activities, um überhaupt eine brauchbare App schreiben zu können. Stackoverflow und die Dokus bringen erst was, wenn man konkret weiß, wo man hängt.
 
Sowas muss man erstmal wissen. Wenn man zuvor noch nie für mobile Geräte entwickelt hat, ist einem so eine Vorgehensweise unbekannt.
Von 0 auf kann man mMn nur sehr schwer Android "lernen" durch die Docs. Ich finde die Docs sogar oft heute noch wirr und nichts sagend, selbst nachdem ich schon ein paar Apps programmiert habe. Ohne Stackoverflow geht da oft gar nix.
 
Ich persönlich fand Java von Kopf bis Fuß als Einstieg ganz nett. Natürlich ist es aufgrund des Erscheinungsdatums nicht topaktuell. Aber es war zum Einstieg ganz nett zu lesen und nicht so einschläfernd wie Java ist auch eine Insel, welches ich persönlich eher als Nachschlagewerk empfehlenswert finde.

Programmieren und vor allem Software Entwicklung lernt man ohnehin nur durch Praxis und nicht durch das Lesen eines Buches. Also würde ich vor allem erstmal ein konkretes Projekt zum Üben des Ganzen suchen. Welches Buch man dann genau wählt ist in meine Augen nicht so wichtig.
 
Das ist ja schon mal was, ich persönlich fand beim überfliegen "Java ist auch eine insel" auch recht trocken
Vor Jahren habe ich mir mal die Grundlagen von c++ angeeignet was mir den Einstieg vielleicht einwenig erleichtern wird.
Ich habe mir über Jahre hinweg Ideen über mögliche Projekte notiert (grafisch) und möchte diese verwirklichen nur mein Problem ist ich habe so viele offene Themen und weiß nicht nach was ich suchen soll (deshalb die benötigte Buchemfehlung.
Als Beispiel eine App nehmen wir als Beispiel Dating Apps wie Tinder,Lovoo usw. alleine Netzwerk technisch, wie binde ich einen Server ein, wo muss ich mir einen Server holen? Bietet Google Hosting Möglichkeiten, wie kann ich zukunftstechnisch planen(z.b. eine Portierung ins Web oder ios). Wie habt ihr euch dieses wissen angeeignet? Habe mir mal die Bücher angesehen. Danach kann ich sicher eine minimalistische App mit vielleicht schon er Oberfläche entwickeln aber wie löse ich z.b. die "online/server/netzwerk" Problem. Oder das einbinden von Werbung.
Kurzfassung
Ich weiß das man sich in alles einarbeiten muss,
aber woher weiß ich nach was ich suchen muss ?



# https://www.amazon.de/dp/3836256053/ref=cm_sw_r_em_apa_XHVSAbKACQT2G
Habt ihr damit Erfahrungen?
#
 
Zuletzt bearbeitet:
Das was du vorhast ist noch VIEL zu weit gegriffen. Netzwerkfunktionen benötigen erstmal das grundsätzliche Wissen, wie eine App überhaupt aufgebaut ist. Dann kann man sich mit den Async Tasks mal auseinander setzen und DANN kann man scih in den weiteren Bereich einarbeiten, wie man eine GUI richtig aufbaut, die States abspeichert und dann kann man sich in die Kommnuikation nach außen kümmern.
Du stellst dir das ein bisschen zu leicht vor glaub ich. Hier gehts nicht nur darum, dass du eine Programmiersprache lernen musst, sondern auch darum, dass du lernen musst die IDE und die SDK richtig zu benutzen.
Wenn du als Beispiel eine Dating App nimmst, dann kommt dort so gut wie das ganze Reportoire vor, was du drauf haben musst, um sowas halbwegs zu entwickeln. Das einzige was du dabei nicht brauchst, sind 3D Libs. Ansonsten musst du quasi alles bei Android kennen und können. Das ist schon ein nicht sooo kleiner Weg mMn
 
rg88 schrieb:
Das was du vorhast ist noch VIEL zu weit gegriffen. Netzwerkfunktionen benötigen erstmal das grundsätzliche Wissen, wie eine App überhaupt aufgebaut ist. Dann kann man sich mit den Async Tasks mal auseinander setzen und DANN kann man scih in den weiteren Bereich einarbeiten, wie man eine GUI richtig aufbaut, die States abspeichert und dann kann man sich in die Kommnuikation nach außen kümmern.
Du stellst dir das ein bisschen zu leicht vor glaub ich. Hier gehts nicht nur darum, dass du eine Programmiersprache lernen musst, sondern auch darum, dass du lernen musst die IDE und die SDK richtig zu benutzen.
Wenn du als Beispiel eine Dating App nimmst, dann kommt dort so gut wie das ganze Reportoire vor, was du drauf haben musst, um sowas halbwegs zu entwickeln. Das einzige was du dabei nicht brauchst, sind 3D Libs. Ansonsten musst du quasi alles bei Android kennen und können. Das ist schon ein nicht sooo kleiner Weg mMn
Genau das meinte ich(Habe mich etwas wirr ausgedrückt). Ich Frage mich eben immer wieder,
Ich arbeite mit mit einem Buch in die Grundlagen ein, beginne mit einem Projekt wenn ich nicht weiter komme googel ich (z.b. wenn ich mal ganz pragmatisch eine Verlinkung machen will) und lerne damit hinzu. soweit so gut. Aber wenn eben große Themen kommen woher weiß ich nach was ich suchen muss. Eben als Beispiel Netzwerk für diese Funktionen gibt es Namen/Bibliotheken Wie auch immer die ein guter Entwickler kennt. Aber ich denke nicht das jeder gute Entwickler wie ich einen Foren Beitrag macht im Sinne von ja wie kann ich eine "online" App machen.


Mich würde interessieren wie seid ihr zu dem wissen gekommen wo ihr jetzt seit, mit was habt ihr begonnen(Übungsprpjekte z.b.) habt. Wie weiter gemacht?
 
Puh, schwer zu sagen. Meist mit Alltagsdingen. Mich hat zum Beispiel mein Fritz Repeater genervt. Das ist das erste Modell, welches noch UKW senden konnte. Dazu konnte man Webstreams als Quelle nehmen.
Die Bedienung über das Display ist unbrauchbar unzuverlässig, das Webinterface war zu aufwändig um mal schnell den Stream zu starten. Zudem brach es hin und wieder ab und man musste den Stream neu starten. Da hab ich mich mal mit Android auseinander gesetzt und mir ne kleine App gebastelt, welche im Hintergrund eine Service einrichtet, der alle paar Minuten prüft, ob der Webstream noch läuft und wenn nicht, dann wurde das entsprechende Signal an den Repeater zum starten gesendet.
Das hab ich dann stückchenweise ausgebaut. Um Buttons mit denen man den Dienst starten konnte. Mit WLAN-Infos, dass der Dienst nur im eigenen WLAN aktiv ist usw. Später dann, wie man Daten lokal speichert um die App mit flexiblen Einstellungen wie einer neuen IP zu nutzen.

Also einfach das versucht umzusetzen, was mir einen praktischen Nutzen bringt. Wenn man ein gewisses Ziel hat, kann man sich entsprechend auch eingooglen, wie dies und jenes nun geht. Englisch lesen zu können ist dabei aber eine absolute Grundvoraussetzung.
 
rg88 schrieb:
Für Java: Java ist auch eine Insel
Sehe das eher als Nachschlagewerk, auch wenns es in den Kapiteln schon einen bestimmten Weg verfolgt. Finde ich als primäres Medium zum Einstieg nicht geeignet.

Shadow127 schrieb:
Auf Android wäre auch Kotlin möglich, kenne da aber kein Buch für.
Wenn man nativ unter Android entwickelt kommt man um Java nicht herum. Kotlin kann man sich später mal anschauen. Es macht aber keinen Sinn sich zu Beginn damit zu befassen.

Depp_vom_Dienst schrieb:
Ich persönlich fand Java von Kopf bis Fuß als Einstieg ganz nett. Natürlich ist es aufgrund des Erscheinungsdatums nicht topaktuell.
Finde "Java von Kopf bis Fuß" für den Einstieg auch sehr gut. Hab ich selbst auch gelesen. Die Aktualität ist kein Problem. Grundlegend hat sich eh nichts geändert und Android setzt intern ja auch noch immer auf Java 7. Es kamen zwar ein paar Java 8 Sprach-Features dazu, diese werden aber zur Compile Zeit wieder in Java 7 Code "desugared".

izedra1996 schrieb:
Danach kann ich sicher eine minimalistische App mit vielleicht schon er Oberfläche entwickeln aber wie löse ich z.b. die "online/server/netzwerk" Problem. Oder das einbinden von Werbung.
Also das Anbinden von Webservices und das Aufsetzen/Implementieren eines solchen sind zwei komplett verschiedene paar Schuhe. Zum Lernen empfehle ich in jedem Fall eine freie JSON API in einem App Projekt anzuzapfen. Das geht sehr komfortabel und einfach mit retrofit.
Das Thema Webservice entwickeln ist geht dann in Richtung Webentwicklung bzw. Backendentwicklung. Ich glaube den Focus auf beide Themen zu legen und versuchen beides zu lernen wird dich überschlagen. Du könntest dir aber mal Google Firebase anschauen. Damit damit kannst du kostenlos und mit Android Studio Integration schon mal eine zentralisierte Online-Datenbank und Benutzer Authentifizierung implementieren. Theoretisch ließe sich damit schon sowas wie eine Dating Apps nachbauen ohne einen eigenen Server aufzusetzen. Über Sachen wie AdMob würde ich mir dann ganz zuletzt Gedanken machen.;)

izedra1996 schrieb:
Aber ich denke nicht das jeder gute Entwickler wie ich einen Foren Beitrag macht im Sinne von ja wie kann ich eine "online" App machen.

Mich würde interessieren wie seid ihr zu dem wissen gekommen wo ihr jetzt seit, mit was habt ihr begonnen(Übungsprpjekte z.b.) habt. Wie weiter gemacht?
Als Entwickler (speziell im Mobile Bereich) muss man sich praktisch ständig weiterbilden. Ich bin praktisch täglich auf Twitter, Medium und reddit unterwegs. Unterhalte mich auf der Arbeit mit Kollegen über Neuigkeiten und probiere privat in Projekten neue Frameworks und Libraries. Das gehört so gesehen einfach dazu und ist ein Stück weit Teil des Jobs.:D

Ansonsten habe ich mir viele Sample Projekte angeschaut und mich früh mit Best Practices und Softwarearchitektur beschäftigt. Du solltest dir zB mal die SOLID Priciples und MVP anschauen.
 
Zuletzt bearbeitet:
G00fY schrieb:
Wenn man nativ unter Android entwickelt kommt man um Java nicht herum. Kotlin kann man sich später mal anschauen. Es macht aber keinen Sinn sich zu Beginn damit zu befassen.
Verstehe ich nicht. Kotlin ist doch eine "offizielle Sprache" für Android. Da fällt ebenso JVM byte code raus, wie bei der Entwicklung mit Java. Ehrlich gesagt sehe ich gar keinen Grund heute noch Java zu lernen, außer man hat vor, sich auf einen Java-Job zu bewerben, weil halt enorm viel bestehende Software im deutschen Unternehmensbereich noch auf Java basiert.

Java ist ein Dreck im Vergleich zu Kotlin und die Weiterentwicklung ist zäh wie nichts. Das sage ich als (mehr oder weniger ehemaliger) Java-Entwickler, der auch den Scala-Hype mitgenommen hat und schnell davon desillusioniert war. Kotlin ist für mich "Scala, the good parts" und macht viele Dinge richtig, die in Java einfach grauenvoll rückständig sind. Allem voran null heilen.
 
@Tumbleweed: Ich selbst nutze auch Kotlin und mag die Sprache. Aber bevor man nicht grundlegend Java beherrscht sehe ich das sehr kritisch in der Android Entwicklung.
Das Android Framework, viele Libraries und vor allem viele Beispiele über die man stolpert sind in Java geschrieben. Wenn man diese verstehen oder zB Custom Views bauen möchte muss man gezwungenermaßen den Java Code verstehen! Daher macht es imo nicht viel Sinn, sich als Einsteiger ohne Java Erfahrung direkt auf Kotlin zu stürzen.

Wenn dann würde ich empfehlen nach ersten Gehversuchen immer mehr Klassen in Kotlin zu schreiben. Aber "Kotlin statt Java" lernen ist wenig praktikabel.
 
Zuletzt bearbeitet:
Ja, in dem Punkt gebe ich dir Recht. Wenn man doch mal zum Debuggen/Nachvollziehen in die Libs muss, sollte man ein Grundverständnis haben.
 
Schau Dir lieber mal Kotlin an. Das wird oft als die Zukunft von Android-Apps genannt.
 
Tumbleweed schrieb:
Java ist ein Dreck im Vergleich zu Kotlin und die Weiterentwicklung ist zäh wie nichts.
Weiß im Übrigen nicht was du in deiner Tätigkeit als Java Entwickler (vermutlich Spring?) gemacht hast. Aber in der modernen Android Entwicklung setzt beispielsweise der Großteil auf RxJava. Zusammen mit Lambda Expressions kommt da extrem kompakter und lesbarer Code bei raus.

Klar bietet Kotlin nochmal viele Vorteile, aber würde nicht auf die Idee kommen Java in dem Zusammenhang als Dreck zu bezeichnen. Zumal der Focus meist ohnehin auf spezifischen Frameworks liegt und die Businesslogic häufig "nur" darin besteht Daten von einer Web-API abzurufen.

Schau Dir lieber mal Kotlin an. Das wird oft als die Zukunft von Android-Apps genannt.
Weiß nicht ob du meinen obigen Beitrag übersehen hast. Klar machts Sinn sich Kotlin anzusehen. Aber die Wahl der Sprache ist unter Android kein Entweder-Oder. Du musst, wie gesagt, Java schon verstehen um zurecht zu kommen. Und ob Kotlin langfristig die Zukunft ist wird sich noch zeigen. Bezweifle dass alle Unternehmen wechseln. Da am Ende auch JVM Bytecode raus kommt (Kotlin hat mit Kotlin/Nativ noch ein Ass im Ärmel) macht es technisch keinen Unterschied und man muss keine Angst haben dass die in Java geschrieben Apps zB nicht mehr laufen.:p Denke im Bereich der nativen Entwicklung wird sich eh noch viel ändern. Schaue dabei auch etwas besorgt zu den Alternativen aus dem Cross-Plattform Lager (Frameworks wie React Native oder Flutter).
 
Zuletzt bearbeitet:
Zudem ist quasi alles was man in Stackoverflow findet in Java. Vorallem als Anfänger wird man dort die größte Zeit verbringen um auf ein brauchbares Ergebnis zu kommen. Java ist für den Einstieg schon die richtige Sprache
 
@G00fY: Java ist für mich deshalb so schlecht, wegen all der hier genannten Punkte: https://medium.com/@magnus.chatt/why-you-should-totally-switch-to-kotlin-c7bbde9e10d5

Einige davon wären ohne mit der Abwärtskompatibilität zu brechen einzuführen und würden Produktivität, Stabilität und Lesbarkeit des Codes deutlich erhöhen (3, 11 und 14 hielte ich für verhandelbar, da ich Gegenargumente einsehe, wenn ich sie mir auch nicht zu eigen machen würde). Man tut es aber nicht. Ich muss mir in Java also mit Lombok helfen, was schon längst hätte integriert werden müssen, damit diese Byte-Code- und IDE-Patcherei nicht sein muss.
 
Zuletzt bearbeitet:
Jepp, stimme dir da vollkommen zu. Bin aber bei vielen Punkten der Ansicht dass es nicht schadet zumindest zu wissen wie die Syntax in Java ist. Letztendlich dient (abseits der Null Safety) der Großteil der Features dazu den Code schlanker zu halten und die Lesbarkeit zu verbessern. Klar ist das grundsätzlich wünschenswert. Denke dennoch dass es gut ist zu Beginn auf Lambdas zu verzichten, Methoden selbst zu überladen und POJOs inkl. Setter&Getter selbst zu schreiben. Das alles schafft ein Bewusstsein für dass was da passiert und erst danach kann man wirklich schätzen was Kotlin für Vorzüge bietet. Ist meine persönliche Meinung, abseits der o.g. Gründe die dafür sprechen, dass man grundsätzlich nicht an Java vorbei kommt.
 
Zuletzt bearbeitet:
Zurück
Oben