Kompletter Neueinsteiger will in der Android-Entwicklung einsteigen - Empfehlungen?

M

.mo

Enthusiast
3.354
Ich will die Programmierung von Android-App erlernen! :razz:

Lernbereitschaft ist vorhanden, aber das Thema ist gigantisch. Zu groß für einen Anfänger, wie mich. Überall lauern nur Code-Schnipsel, die ich aber nicht zuordnen kann. Ziemlich verwirrt für mich im Moment.

Daher: Welche Bücher könnt ihr mir empfehlen? Am besten wären die Bücher, die samt CD und Software daherkommen - ist ganz praktisch für mich am Anfang. Wie seit ihr in die Programmierwelt von Android einstiegen?

Vielen Dank im Voraus! :smile:
 
Samt CD und Sofrtware? Ja dann empfehle ich dir das buch das ich mir geholt habe : Android 4 von Thomas Kuenneth. Gutes Buch!!!

Das ist der perfekte Einstieg in die Android Programmierung!!!
 
Hallo Cupofcoffee,

dein Thema gibt es hier schon sehr häufig.
Zum besseren Beraten wären mehr Informationen nötig.

Welche Programmiersprachen kannst du schon. Kannst du schon überhaupt Programmieren?
Scriptsprachen, Markuplanguage?

Ich bin in die Androidwelt so eingestiegen wie bei allen anderen Sprachen auch.
Ich habe ein Tutorial für eine kleine App gemacht:
Getting Started | Android Developers

Dafür musst du aber schon mindestens eine Programmiersprache können.
Falls du noch keine kannst, wäre Java gut geeignet.

Ich habe mit dem HeadFirst-Büchern gute Erfahrung gemacht.
Gelernt habe ich aber mit der Turtle. Turtlegrafik

Viel Erfolg bei deinem Vorhaben.
 
Jaiel schrieb:
Samt CD und Sofrtware? Ja dann empfehle ich dir das buch das ich mir geholt habe : Android 4 von Thomas Kuenneth. Gutes Buch!!!

Das ist der perfekte Einstieg in die Android Programmierung!!!
Vielen Dank für den Buchtipp! Allerdings basiert die Software noch auf Android 3 und Java im Grundsatz wird verlangt laut einge Rezensionen. Das ist so eine Sache, weil ...

Kardroid schrieb:
Welche Programmiersprachen kannst du schon. Kannst du schon überhaupt Programmieren?
Scriptsprachen, Markuplanguage?
.. ich habe keinerlei Wissen an Programmiersprache - Null und nichts. Bin da ein kompletter Anfänger. :unsure:

Java ist für den Anfang also geeignet? Buchtipps hier?
 
oh mann dann nimm dir erstmal zeit so ca. 6 monate wird ich empfehlen und lern eine programmiersprachen oder verschiedene programmierparadigmen(sprachen sind ja austauschbar)

du kannst wenn du ein sehr gutes Fundament haben möchtest in die c programmierung einsteigen, dann c++ für objektorientierte programmierung und dann zu java, c# wechseln wenn es um GUI programmierung geht(c++ ist da ein richtiges pain in the ass wenn es um gui programmierung geht du kannst dir natürlich auch schwer machen und zum Beispiel die WinAPI studieren um Windowsprogramme schrieben zu können)

bei Java mit Proggrammierung einzusteigen wird dir dann erstmal das objektorientierte programmierparadigma über den weg laufen und für einen kompletten anfänger ist es erst mal ratsam das sequenzielle programmieren zu lernen bevor man etwas mit objekten macht
lerne erstmal für den Anfang kleine Konsolenprogramme zu schreiben


zum Schluss noch ein gutgemeinter Rat

Das Gebiet des Programmieren ist sehr Groß und man steht erstmal vor einem Berg an Informationen aber jeder weg beginnt mit kleinen Schritten und führt evtl irgendwann auch zum ziel wenn man durchhält. Und du solltest soviel probieren und programmieren wie es nur geht...und keine Angst du brauchst nciht immer alles bis ins kleinste Detail zu wissen über programmierung um zu programmieren das kommt mit der Zeit.

Also viel Spaß

Buchtipps C/C++:
einfach mal googlen da gibt es sehr viel Lektür und du solltest dir ein elichtes gut verständliches Buch das nicht zu alt ist aussuchen

Java :
Java ist auch eine Insel
das ist DIE java Fibel seit Jahren und die gibts kostenlos online bei Galileoprint oder so


und :

konzentrier dich hauptsächlich auf Sprachen der C-Familie(C,C++,(((C#)))) und Java
und vergiss die anderen wie Ruby, Pascall, Basic,Pearl,Delphi oder konsorten udn fang mir bloß nciht mit Scriptsprachen an :) die kannst du später noch kennenlernen!!!

Man sieht sich in ein paar Monaten dann!
 
Am besten du fängst mit Java an. Java bietet sich an, da Android darauf basiert.

C u. C++ würde ich aussparen. Da schleppt man relativ viel Müll mit sich, die man für die Programmierung von Android (Java) nicht bracht. Zwar beruht die Syntax von Java auf C, aber die Paradigma unterscheiden sich schon. Das merkt man immer, wenn sich ehemalige C-Entwickeler sich auf Java stürzen.
C ist eine hardwarenahe Sprache, die einen nicht unbedingt zu sauberen Programmieren zwingt, da man viele Probleme mit einem Hack umgehen kann. Sprich meistens sieht der Code wie Kraut und Rüben aus.

Ein Sprache am Anfang reicht, wenn man die wirklich verstanden hat, sollte man erst die nächste angehen.
Wenn es nicht klappt, dann melde dich noch mal.

6 Monate ist vielleicht zu lange, aber du solltest ein paar kleinere Programme in Java geschrieben habe. Am besten mit einem konkreten Ziel.

Viele meiner Freunde hat das Buch "Java von Kopf bis Fuß" geholfen. Ist in einen recht lockeren Stil gehalten. Java von Kopf bis Fuß: Amazon.de: Kathy Sierra, Bert Bates: Bücher

Ein anderes gutes Javabuch ist meiner Meinung "Konzepte objektorientierter Programmierung". Ein wirklich gute Einführung in die OOP.

Konzepte objektorientierter Programmierung - Mit einer Einführung in Java

Für Android gibt es eigentlich keine gute Einführung. Da sich fast jedes halbes Jahr etwas ändert, sollte man immer auf die Seiten von Google schauen. Nur dort hat man die Chance halbwegs auf dem laufenden zu bleiben.

https://developer.android.com/training/index.html
 
Ich würde ihm nciht zu Java raten als Einstieg:
Wenn er ncoh nicht mal weiß was variablen, callbackfunktionen, schleifen etc. pp. sind und nciht weiß wie ein computer sein Programm abarbeitet dann sollte er nciht gleich mit member variablen methoden vererbung polymorphismus interfaces konstruktoren und so in berührung kommen.

lieber erstmal c++ versuchen dort dinge wie schleifen verzweigungen rekursion, später auch objekte konstruktoren destruktoren zeiger(!!!) und vor allem Templates(!!!) kennenlernen denn diese gibt es in java (generics in java sind ncihts im vergleich dazu) nicht vor allem lernt er kennen wie viel arbeit ein c++ objekt macht dass man vers. konstruktoren(Copykonstruktor z.B.) deklarieren muss dann ncoh die Aufräumarbeit die in java der GC übernimmt, die gibt es in c++ gar nicht da müssen desktruktoren ran, zeiger wird er nciht kennenlernen und die zeigerarithmetik und was das gefährliche an diesen Dingern ist...das wort Stackoverflow wird ihm kaum üpber die quere kommen...von heap wird er keine ahnung haben.....nur ein paar beispiele

ich finde da entgeht ihm so viel...besser ist es sop früh wie möglich diese sachen kennenlernen(nciht unbedingt perfekt beherrschen) dann wird man ein viel selbstbewussterer Programmierer und vielseitiger

vielleicht taucht er ab ind ie welt von Unix und kernelprogrammierung oder wird der neue linus torwald oder konsorten.

naja ist nur meine Meinung dazu.

Java ist leicht zu erlernen
ich hatte1 Jahr lang C++ in meiner Ausbildung damals gehabt und brauchte nur 4 Wochen um die Java konzepte kennenzulöernen einfach weil ich so einen background hatte deswegen meine Empfehlung mit c++ anzufangen

Wenn er schnell udn azck zack haben will ist java in ordnung aber das schafft keine gute programmierqualität!
 
Zu C fällt mir nur das ein:

Code:
void *address = 0x10680900; goto *address;

Da kannst Du ihn ja gleich auffordern Assembler zu lernen. Da hat man auch schon alle Konzepte der Programmierung (Das war meine erste Programmiersprache. Hatte ein selbst gelöteten Rechner :) ). C hat seine Berechtigung, aber es hat ein recht großen Satz an reservierte Worte, und es ist von der Grundstruktur keine OOP - Sprache. Und C++ macht es nicht wirklich besser.

Eine Sprache reicht am Anfang. Java ist nicht unbedingt einfach. Aber sollte mit der Sprache anfangen, die man braucht. Schon um bei der Stange zu bleiben. Und zu Android gehört Java und nicht C. C das wäre eher etwas für iOS.
 
  • Danke
Reaktionen: reneph
Also als Einstieg in die Programmierung ist Java erste Sahne =)
Ich habe damit auch vor... uh mittlerweile laaaanger Zeit angefangen... und bis jetzt keine zweite Sprache gebraucht :D

lg. Dagobert
 
  • Danke
Reaktionen: markus.tullius
Falls du iTunes hast schau mal unter iTunes U nach, da gibt es bestimmt Uni-Kurse die einem das Programmieren näher bringen.

z.B. von der RWTH Aachen "Programmierung für Alle (Java)"
 
markus.tullius schrieb:
Zu C fällt mir nur das ein:

Code:
 Und zu Android gehört Java und nicht C. C das wäre eher etwas  für iOS.[/quote]

mmh ich frage mich worauf der Android Kernel wohl basiert?  Linux? War das nciht rigendwas in C geschirebenes? C/C++ sind weitetrhin die weitverbreitesten Sprachen auf der welt. Jeder rechner hat standard mäßig einen c-Compiler eingebaut.

Bis jetzt mal wieder jemand auf die Idee kommt einen neuen Kernel zu schreiben der Linux/Unix ablöst wird sichn da auch kaum etwas ändern imho.
Und mal ehrlich: C/C++ ist die schnellste performanteste Sprache für Software lösungen.

Und ich erwähne nur am Rande das Android NDK;) Für hochwertige 3D Spiele oder Bildbearbeitungssoftware eine gute Wahl C/C++ zu benutzen für Android!!![COLOR="Silver"]

[SIZE=1]Der ursprüngliche Beitrag von 20:06 Uhr wurde um 20:13 Uhr ergänzt:[/SIZE]

[/COLOR]und die Dalvik und ART maschine sind in c geschrieben!!![COLOR="Silver"]

[SIZE=1]Der ursprüngliche Beitrag von 20:13 Uhr wurde um 20:14 Uhr ergänzt:[/SIZE]

[/COLOR]Aber ok das ist alles sehr philosophisch was heir besprochen wird.
 
Nö, C ist einfach nur alt. ;)

Auf den echt großen und schnellen Kisten (Großrechner) läuft kein C, weil es nicht die Anforderungen erfüllt. Und nicht alle Unix - Systeme unterstützen C. ;) Da läuft meistens Cobol oder Fortran.

Außerdem sind Fortran-Compiler normalerweise schneller als C-Compiler. Und noch noch ein Fakt, Fortran Compiler gibt es in Gegensatz zu C praktisch für jede Rechner-Architektur.

Nach deiner Logik müssten dann alle Anfänger Fortran lernen. ;)

Es gibt ein einfachen Grund sofort Java zu lernen, Android App werden normalerweise in Java implementiert. Und man sollte immer dass machen, was ein interessiert. Und wenn es die Programmierung von Android Apps ist, sollte man erst mal die Sprache lernen, die man braucht. Und das wäre Java.

Für Windows wäre es C#; für Apple Objective-C oder C. Und für hardwarenahe Programmierung C.

PS:

NDK ist nur eine Möglichkeit C - Code in einen Android-Projekt einzubinden. Laut Google ist C - Code unter Android langsamer als Java, und bläht die apk auf.
 
C mag ich auch nicht dafür aber C++ umso mehr das war meine allererste Sprache und ich fand das als einen guten Einstieg in die Programmierung.
 
Ich habe mehrere Programmieranfängerbücher zu Hause stehen.
Trotzdem finde ich Java für Programmieranfänger geeignet.

Wir hatten letztens einen Schülerpraktikanten (15 Jahre) im Büro.
Er hatte gar keine Ahnung von Programmierung, aber war sehr interessiert.
Damit er was in der Schule zeigen konnte, habe ich ihm erstmal kleine Apps mit Appinventor erstellen lassen.
Dort konnte er schon spielerisch Bedingungen und Schleifen benutzen und ganz kleine Apps schreiben.

In der zweiten Woche habe ich ihm die Turtle gezeigt.
Durch die Aufgaben bei der Turtle geht man ganz langsam an die Implementierung von Java dran.
Als erstes muss man nur Methoden der API aufrufen.
Danach Schleifen erstellen, um Muster zu generieren.
Danach Abfragen und Methoden selber erstellen um den Code kleiner zu halten.
Als letztes gibt es sogar Threads und OnClickListener.
Und man kann schon sehr schnell Ergebnisse sehen, ohne Vererbung, ohne Speicherallokationen etc.

Also ich finde Java oder Skriptsprachen/Websprachen (JS, PHP) als Einstieg viel besser als C oder C++.
 
An der ersten Sprache hängt man immer am meistens. ;)

Meine Erfahrung ist, man nicht gleich ein Satz von Sprachen lernen sollte, sondern erst mal eine.

Und wenn man die halbwegs beherrscht, kann man sich immer noch weitere lernen.

Man sollte aber nur das lernen, was man wirklich braucht. Die beste Motivation ist immer noch ein bestimmtes Projekt umzusetzen, dabei lernt man mehr, als sich nur akademisch mit einer Sprache auseinander zu setzen.
 
Zum Thema C / C++ & Java habe ich folgende Meinung:
Wer die Basics in den C-Sprachen beherrscht, hat Java in Kürze gelernt (das ging mir auch so). Wer etwas Erfahrung in Java hat, wird sich in C bzw. C++ auch mehr oder weniger schnell zurecht finden (jedenfalls um die Basics anwenden zu können). Spezielle Frameworks und Plattformen sind bei dieser Betrachtung außen vor.

Für Android ist C-Wissen vielleicht hilfreich, aber definitiv nicht notwendig, um Apps programmieren zu können. Für manchen ist C++ vielleicht eher hinderlich und stiftet unnötig Verwirrung. Mehrfachvererbung gibt es in der Form in Java nicht, in der es sie in C++ beispielsweise gibt.
Für Android sind fundierte Java Basics notwendig - jedenfalls wenn man mit dem normalen SDK programmiert.
Deswegen mein Rat:
1. Java (Grundlagen) aneignen.
2. How to build your first app (Google Developer Docs / Trainings) durcharbeiten.
3. Buch lesen (wahrscheinlich in englischer Sprache, da die wirklich gute Literatur wohl eher auf englisch zu finden ist - zB Reto Meier Professional Android Development)... ggf. ein paar Youtube-Videos (Android-Developer / slidenerd) und den Android Developer-Blog im Auge behalten / ggf. noch die Vogella Website.
Aus diesen Quellen habe ich immer die besten Infos erhalten.
 
Es kommt da ein wenig drauf an wo man hin will.

Wenn man "langsam" starten möchte, dann kann man sich ruhig erstmal C angucken. C ist der Urvater von sehr vielen Sprachen und das merkt man im späteren Leben auch. Man lernt vieles was man später brauchen kann, hat aber am Anfang durch eine imperative Programmiersprache weniger Overhead als eine Objektorientierte Sprache.
C Syntax begegnet einem an jeder Ecke. Auch bei neueren Entwicklungen wie der Shaderprogrammierung.

Wenn man wissenschaftlich/mathematisch veranlagt ist, kann man sich auch eine funktionale Programmiersprache wie Haskell angucken. Das ist aber wohl eher die Minderheit.

Will man direkt die volle Packung, dann nimmt man C++. Die Hürde die es da zu nehmen gilt ist halt enorm hoch, wenn man sie aber genommen hat, dann hat man eine sehr solide Basis.

Der Mittelweg zwischen C und C++ stellt Java dar. Es ist nicht so schwer zu lernen wie C++ hat aber mehr Overhead als C. Wenn man zielgerichtet auf Appprogrammierung für Android zusteuern möchte, ist Java das Mittel der Wahl. Android Apps sind meistens in Java geschrieben und für die ersten eigenen Apps ist Java das Mittel der Wahl.

Viele aus meinem Bekanntenkreis vertreten die Meinung, dass Phyton eine wirklich gute und auch für Anfänger gut geeignete Sprache ist. Gerade die Jungs die aus der Netzwerkecke kommen, schwören so ein wenig auf Phyton.
Eigene Erfahrungswerte, außer mal beim Coden zugeguckt zu haben, habe ich aber nicht.
 
Wenn jemand mit dem Programmieren beginnen will, und gleich Android als Zielplattform im Auge hat, würde ich von dem Umweg über Python abraten.

Neben der "noch eine Sprache" gibt es das Problem, dass Python eine eigenwillige(**) Syntax(*) hat. Für erfahrene Programmierer ist sowas wenig hinderlich, aber für Anfänger schon.

(*) Konzeptionell anders als alles, was aus der C,C+,Java,Pascal,Simula,...-Ecke kommt.
(**) Mir ist das "unsichtbare Zeichen TAB vs. Space haben sichtbar unterschiedliche Semantik" zutiefst zuwieder (nicht nur Python, auch bei Haskell und ganz wichtig: bei Makefiles), aber das kann man auch als Geschmackssache ansehen.
 
Zuletzt bearbeitet:
Ein Glaubenskrieg. ;)

Für OOP ist C und C++ nicht unbedingt der Maßstab. Sie haben einfach ein Problem mit der Kapselung (Pointer).

Das heißt nicht, das C und C++ keine Berechtigung hat. Für iOS greife ich häufiger darauf zurück.

Lustig finde ich in der Diskussion Java als Nachfolger von C zu bezeichen. Zwar sieht der Code im ersten Blick wie C aus, aber die Verwandtschaft zu Smalltalk ist nicht zu übersehen. Die Konzeption der Klassen und Interface ist eindeutig aus Smalltalk entwendet.

Da haben auch die meiste Entwickler die aus C kommen die größten Probleme. ;)

Man sollte erst eine Sprache lernen, die auch braucht. Danach kann man immer noch welche dazu lernen. Man entdeckt immer mal wieder etwas neues.
 
Zuletzt bearbeitet:
markus.tullius schrieb:
Lustig finde ich in der Diskussion Java als Nachfolger von C zu bezeichen. Zwar sieht der Code im ersten Blick wie C aus, aber die Verwandtschaft zu Smalltalk ist nicht zu übersehen. Die Konzeption der Klassen und Interface ist eindeutig aus Smalltalk entwendet.


Ich glaube die gängige Meinung ist da, dass mehr als eine Sprache Java beeinflusst hat. So wie man durchaus Abstammungen aus Smalltalk erkennen kann, ist das natürlich aus der C Ecke genauso der Fall. Zumal C auch von Smalltalk beeinflusst wurde. Zu behaupten dass Java von Smalltalk abstammt ist genauso falsch wie die Behauptung dass es von C abstammt. Java hat viele Einflüsse mitgenommen. Als neustes ist z. B. der funktionale Aspekt rübergeschwappt. Da könnte man sich jetzt auch streiten ob von Scala oder direkt von Haskell oder einem anderen Ahnen.
 

Ähnliche Themen

M
Antworten
3
Aufrufe
163
moin
M
D
Antworten
23
Aufrufe
2.538
Data2006
D
O
  • ortech
Antworten
7
Aufrufe
695
jogimuc
J
Zurück
Oben Unten