Wahl der ersten Programmiersprache + geeigneter Lesestoff

Hallo,

ich habe mich vor kurzem entschlossen, mich mal am Programmieren zu versuchen. Habe mich frueher, in meiner Jugend (falls ich das so sagen darf, bin schliesslich immernoch _erst_ 24), relativ aufuehrlich mit PCs, Notebooks, Netzwerken, OSs etc.beschaeftigt, bin dann aber irgendwann auf andere Ideen gekommen und habe dem Kapitel EDV und alles was damit zusammen haengt eigentlich vollends den Ruecken gekehrt.

Nun arbeite ich momentan in einem Beruf, in welchem ich jede Menge Freizeit habe -und die gilt es totzuschlagen!
Deshalb habe ich mir ueberlegt, mich meinem "ehemaligen" Hobby erneut zu zuwenden.

Gesagt getan, hab auf meinem alten Notebook Arch Linux installiert und einfach mal ein bisschen rumgespielt, alles Moegliche getestet und mich ueberhaupt erstmal in das System eingefunden (komme von Win XP/7).
Soweit klappt das auch alles gut, bin super zufrieden und moechte eigentlich gar nicht mehr davon weg. :)

Jedenfalls moechte ich nun gerne anfangen Programmieren zu lernen. Habe in der Schule damals (vor etwa 6 Jahren) in Informatik ein bisschen mit Borland Delphi gelernt, aber alles auf einem sehr "Rookie-haften" Level. Zudem ist davon nicht das Allermeiste haengen geblieben, da der Lehrer nicht unbedingt der spannendste war.

Habe etwas das Web durchforstet und glaube, dass ich gerne mit Java anfangen moechte. Nebenher noch etwas HTML.
Ich denke, dass es sich fuer den Anfang gut eignet, da es vom Syntax her an C++ angelehnt ist, objektorierntiert ist und an vielen Schulen damit der Einstieg in die Informatik gewagt wird.

Habe mir dazu dieses Buch: Programmieren lernen mit Java: Aktuell zu Java 7 - Keine Vorkenntnisse erforderlich: Amazon.de: Hans-Peter Habelitz: Bücher

auf der beiliegenden DVD ist ausserdem das Buch http://www.amazon.de/Java-ist-auch-...3943&sr=8-1&keywords=Java+ist+auch+eine+Insel
enthalten.

Ich denke, damit bin ich fuer den Anfang ganz gut gewappnet.
Hat einer von euch Erfahrungen mit dem/den Bu(e)ch(ern)? Gibt es bessere? Sind sie fuer Einsteiger zu empfehlen?
Oder eventuell andere, pragmatische Tipps, wenns ums Programmieren lernen geht?

Vielen Dank im Voraus!

MfG!
 
Mit Java ist eigentlich immer gut anzufangen. Lässt einen erst mal aufs wesentliche konzentrieren und grundlegende Konzepte können erlernt werden und spart einem für Anfänger, meiner Meinung nach, zu komplizierte Sachen mit Pointern wie in C/C++.

Gelernt habe ich es ehrlich gesagt komplett ohne Buch. "Java ist auch eine Insel" findet man eben auch gratis im Netz. Subjektiv halte ich "Java ist auch eine Insel" eher für ein Nachschlagewerk für Anfänger als für ein tatsächliches Buch, dass man durcharbeiten muss/sollte.

Generell kann ich dir den Tipp geben erst mal die Grundlagen zu lernen: for-Schleifen, if, while, do-while, was sind Klassen, was Objekte, was primitive Datentypen, Vererbung und dann würde ich einfach direkt mal kleine Projekte anfangen. Einen Taschenrechner über die Konsole oder wenn du es dir zutraust direkt mit GUI.
 
Java eignet sich IMO recht gut zum anfangen. Mittlerweile würde ich allerdings python als erste Sprache empfehlen.

Für welche Sprache auch imer du dich entscheidest (vor allem wenn Java), kann ich ecllipse als IDE emfehlen (Leider recht ramfressend (ansonsten top))
 
zum einstieg ist java eine relativ gute wahl, da es eine hochsprache mit einem standardframework ist, mit dem sich viele probleme erschlagen lassen, ohne konkrete details zur implementierung wissen zu müssen, sprich schnelle erfolge, bei moderatem aufwand.

ein manko möchte ich aber anführen, auch wenn es Tsjuder schon als ein vorteil erwähnte (es ist gleichzeitig fluch und segen): pointer

java versteckt diese vor dir, sprich im normal fall wirst du weder pointer zu sehen bekommen, noch irgendwas über sie wissen müssen, was über "das ist so eine art referenz" hinausgeht... hat den vorteil der einfacheit, der jit compiler kümmert sich für dich darum -> etwas das du nicht tun musst

hat den nachteil: es wird dir eine der wesentlichen kern komponenten dessen vorenthalten, wie ein rechner intern "tickt"

von daher, sobald du in java einigermaßen fuß gefasst hast, überlege dir wie hardware nah du die dinge begreifen möchtest, und nehme dir evtl mal die zeit eines deiner java programme, oder nur einen teil davon, in c oder durchaus auch mal ASM umzusetzen...

nicht mit der absicht c oder ASM wirklich zu lernen, sondern eher um zu verstehen wie z.B. eine x86 oder x64 cpu eigentlich aus programmierer sicht arbeitet... was z.B. eine funktion in diesem sinne ausmacht ... was alles passiert wenn sie aufgerufen wird ...

so dinge wie manuelle speicherverwaltung sollte man zumindest mal gesehen haben

dann sollte man zumindest mal grob gehört haben was heutige systeme so unter einem prozess verstehen

was threads sind (und als schlussendliche folgerung der nebenläufigkeit, der umgang mit verteilten systemen)

warum es sinn macht zwischen kernel- und userspace zu unterscheiden (und warum es auf den meisten betriebssystemen kein java im kernel geben kann/sollte/gnaaaaahhhhh!)

wie man mit systemnahen APIs umgeht wenn man von einer managed umgebung wie java kommt


alles das sollen so ein paar stichworte sein, anregungen für themen zu denen man sich lesestoff besorgen kann, sobald man sich für sattelfelst hält

es müssen nicht immer bücher sein... oftmals reicht es schon wenn man einen gewissen halt in einer programmiersprache hat, also die grundlegenden konzepte sitzen (die quasi allgemeingültigkeit für alle wesentlichen programmiersprachen besitzen) und man ein paar stichworte hat was man denn mal sehen/machen will um geeignete infos suchen zu können

manchmal kommt man um bücher nicht herum, aber wenn du nicht den theoretischen einstieg wählst, sehe ich keinen grund warum es bücher sein müssen...

fange mit dem üblichen an: hello world

schau dir an was für ein hello world nötig war (nimm irgendwo ein fertig beispiel und analysier es), welche dinge da nun im code stehen... warum die da stehen ... schau dir an was variablen sind ... schau dir an was ein array ist ... schau dir an was operatoren sind... bau dir damit ein paar kleine rechenaufgaben zusammen ... schau dir an wie der programmfluss verändert werden kann (bedingte ausführung, schleifen) ... danach hast du erstmal alles was du für den anfang brauchst: du kannst einfache algorithmen mit den paar konzepten umsetzen, wirst aber schnell merken, dass es mühsam ist alles "zu fuß" zu machen, also dass es bestimmte teil probleme gibt die du immer wieder lösen musst ... herzlichen glückwunsch, ab hier hast du erkannt warum man funktionen und methoden braucht ... ab hier kann man auch sinnvoll anfangen sich mit objekt orientierter progammierung zu beschäftigen (was ist eine klasse?) ... sobald klassen als konzept da sind, schau dir an was ein namensraum ist, und du hast alles um dich im framework bewegen zu können, sprich du hast fertige klassen und funktionen zur verfügung die schonmal die wirklich immer wieder gebrauchten dinge darstellen und darüber hinaus noch einiges mehr ... collections sind ein guter einstieg... danach stell dir mal so die frage wie man z.b. kommuniziert (sockets), auf datenbanken zugreift


unterwegs wirst du auf viele stolpersteine, etc stoßen ... dinge die sich dir nicht direkt erschließen, die so keinen sinn ergeben oder einfach erstmal nicht funktionieren wollen ... wenn du mit einem buch gearbeitet hast, wirst du auf einige davon hingewiesen, und dir wird gezeigt wie du damit erstmal umgehst ... es wird dir aber in der regel wegen der linearen vorgehensweise von büchern nicht so viel bringen als wenn du dich selbst mit dem problem auseinander gesetzt hast... wieder ein zweischneidiges schwert ... zum einen kann es frustrierend sein an ecken und kanten hängen zu bleiben ... zum anderen kann man so aber auch einblicke erlangen die einem kein buch der welt vermitteln kann ... desweiteren kann es auch sein, dass man speziell am anfang an dingen hängen bleibt, die weitere grundlagen benötigen, die man aber bis dato noch nicht kennt ...

folgender vorschlag: triffst du auf solch einen stollperstein, der dich für mehr als 20-30 minuten aufhällt, bei dem du den eindruck hast trotz allem was du zur verfügung hast, nicht weiter zu kommen, stell hier eine entsprechende frage
 
  • Like
Reactions: CDW
Vielen Dank fuer die Tipps und Antworten.

Ich denke, ich werde mir erstmal mit Hilfe meines Buchs und dem Netz die Grundlagen erarbeiten und dann, peu a peu die ersten kleinen Projekte in Angriff nehmen.

Als IDE wird auch in meinem Buch Eclipse vorgeschlagen.
 
Zurück
Oben