phoenix1337 schrieb:
Meine Beweggründe sind Interesse. Ich habe halt Lust ein wenig selber programmieren zu können. Konkrete Ziele habe ich eigentlich nicht, ich will einfach nur ein wenig Ahnung davon haben und vielleicht auch schon kleine Programme schreiben können (ohne einen bestimmten Zweck).
Ist ok!
Es ist nicht zwingend notwendig ein konkretes Ziel vor Augen zu haben (z.b. Spiele Programmieren).
Was du dich allerdings Fragen musst ist:
"Was kann ich mir von 5 Wochen allgemein Programmieren Lernen, ohne konkretes Ziel erwarten"
Wenn Du den klassischen Weg wählst,
also zunächst einmal nur Programme schreiben, deren Eingabe/Ausgabe nicht über ein Benutzerfenster (Buttons, Eingabefelder, ...) läuft
sondern über die Konsole (z.b. bei Windows: start/programme/zubehör/Eingbeaufforderung)
dann bist du nach 5 Wochen gegebenenfalls so weit, dass du ...
*) einfache algorithmische Probleme lösen kannst:
z.b.: Benutzereingabe wiederholen, bis eine korrekte Eingabe durchgeführt wurde,
suchen des kleinsten Elements eines Array
sortieren eines Arrays
...
...
*) eigene Funktionen/Methoden (wie auch immer das dann in der von dir gewählten Sprache heißt) schreiben und verwenden kannst
*) ein wenig in die objektorientierte Programmierung hinein geschnuppert hast:
einfache Klasen erstellen
Zugriff auf die Attribute über die Methoden der Klasse regeln
(!! keine Vererbung/Polymorphismus zunächst einmal !!)
(Ann.: Man kann in 5 Wochen sicher auch mehr schaffen. Es ist aber sinnvoll sich auf DAS zu konzentrieren und durch üben zu festigen)
Diese Themen sind in der Tat die Grundlage der moderneren Softwareentwicklung, insofern hast du dein Ziel erreicht
Ich will einfach nur ein wenig Ahnung davon haben und vielleicht auch schon kleine Programme schreiben können
Die Frage ist aber nun: Hast du dir das erwartet?
Das lösen einfacher algorithmischer Probleme kann sehr interessant sein, wenn man eine gewissen Freude an Denksportaufgaben hat. Es kann aber auch ziemlich öd sein, wenn man sich ständig fragt: "Was hat das denn nun alles mit einer grafischen Benutzeroberfläche / Computerspiel / Flash-Intro einer Webseite / .... zu tun"
Du kannst natürlich gleich mit einer Sprache / bzw. Entwicklungsumgebung anfangen, die gezielt auf die Erstellung von Windows-Anwendungen ausgerichtet ist, z.b. Delphi.
An der oben genannten Fragestellung kommst Du allerdings nicht herum:
"Was kann ich mir nach 5 Wochen erwarten?"
Du kannst dann zwar ein Windows-Fenster mit Buttons, Checkboxes, Eingabefeldern erstellen. Aber wozu? Damit du dann in zwei Eingabefeldern Zahlen eingibst, und nach einem Mausklick auf 'ok' wird die Summe dieser beiden Zahlen ausgegeben. bzw. wenn zusätzlich eine checkbox angeklickt ist, wir statt der Summe das Produkt ausgegeben (*gähn*)
Da ist das Lösen einfacher algorithmischer Probleme weit aus interessanter.
Ähnlich verhält es sich, wenn Du in weiter Folge z.b. interaktive Flashseiten mit ActionScript, oder einfache Computerspiele mit einem Authoring-Tool (z.b.: 3D Game Studio) erstellen willst:
Du gelangst früher oder später (eher früher) an den Punkt, an dem es darauf ankommt, was Du über die Grundlagen der Programmierung gelernt hast. Um die Grundlagen kommst du also nicht herum!
Jetzt aber genug geschwafelt!
Die beste Sprache für Programmieranfänger ist meiner Meinung nach 'Python', da sie
*) ein klare und verständliche Syntax besitzt
*) ein einfaches Typkonzept umsetzt
*) vollständig objektorientiert ist
(wobei man natürlich nicht objektorientiert programmieren muss, wenn man das nicht will)
Als Buch würde ich dir
"Python für Kids"
empfehlen
http://www.amazon.de/Python-für-Kid...9365340?ie=UTF8&s=books&qid=1182881012&sr=1-1
Lass dich von dem Titel nicht täuschen. Das Buch ist in erster Linie für Anfänger gedacht. Das Alter ist letztendlich zweitrangig.
Und verfall bloß nicht in falschem Stolz, und denk dir "ich hab's nicht nötig mit einem 'Pixie-Buch' zu lernen".
Programmieren lernen ist schwieriger als man glaubt, und da sollte einem jede Erleichterung willkommen sein.
Es ist ein Irrglaube zu denken, dass ein Buch ZU einfach sein könnte, und dem Programmieranfänger langfristig schadet, weil ihn die Autoren nicht "hart rannehmen". Alles Blödsinn! Beim Programmieren lernen gilt: Helfe, was helfen mag!
Das wichtigste beim Programmieren lernen ist das üben! Und zwar das üben von SINNVOLLEN Beispielen! Man kann recht schnell die Syntax der wichtigsten Sprachelemente erlernen. Das bedeutet aber nicht, dass man ein (einfaches) algorithmisches Problem lösen kann.
Melde dich halt einfach nochmal, sobald du mit
if-Anweisungen, Schleifen, Arrays
umgehen kannst.
Seby007 schrieb:
Also wenn du noch ein Win9x Rechner hast bzw. bei WinXP mit Einschränkungen leben kannst und einsteigen willst, empfehle ich dir QBasic. Der größter Nachteil ist natürliche deren veraltete Struktur; der Vorteil ist, das auf qbasic.de DAS Angebot gibt, was wirklich alles bietet, z.B. Tutorials (Lernprogramme), Bücher, Quelltexte, Beispielprogramme, Forum, Kompiler, FAQ usw.
Das gibt's zu ziemlich jeder Sprache. Kann sein, dass man bei anderen Sprachen ausgiebiger suchen muss. Aber dazu gibt es ja
https://www.computerbase.de/forum/
Seby007 schrieb:
Lern diese Programmiersprache so ca. 3 - 5 Wochen. Dann kannst du auch aufsteigen, da du die notwendigsten Begriffsinterna kennst
Gerade dieser "Aufstieg", wie du sagst, ist über Python viel eher möglich, da - wie du selbst festgestellt hast - QBasic ein sehr veraltetes Spachkonzept umsetzt, wo hingegen Python vollständig objektorientiert aufgebaut ist, somit also bereits einen "Aufstieg" darstellt.
Seby007 schrieb:
Und meine Buchempfehlung: Programmieren für Dummies ist das perfekte Einsteigerwerk für dich! Liest sich auch wirklich stellenweise sehr humorvoll und ist überhaupt nicht trocken, sondern wird rocken ^^
Geht es da allgemein um Programmierung, oder orientiert sich das Buch an einer konkreten Sprache.
Ersteres halte ich persönlich nicht für sinnvoll, obwohl ich nicht ausschließen möchte, dass auf diese Art ein gutes Buch entstehen könnte, aber als Anfänger möchte man halt wirklich das was man liest sofort, 1:1 umsetzen. Wenn man dann lediglich von den "Konzepten" liest, und diese dann auf die gewählte Sprache umlegen muss .. ich weiß nicht.
Den Dummie-Büchern stehe ich allgemein etwas kritisch gegenüber. Manche sind nicht schlecht. Viele sind aber auch Schrott!
Wenn's nicht um
"Töpfern / Nordic Walking / Pokern für Dummies"
geht, dann würde ich kein Risiko eingehen und die Finger davon lassen
excalibur1976 schrieb:
Wenn Du einfache, kleine Programme für Windows only schreiben willst, dann bietet sich Delphi an
Ja! Wenn du gleich ein Fenster mit Buttons und Eingabefeldern sehen willst, dann ist Delphi sicher das Beste.
Ich habe halt meine Einwende dagegen das Programmieren auf diese Art zu erlernen (siehe oben).
Wenn man dann irgendwann einmal von Delphi genug hat, hat es einem mehr geschadet als genutzt, da man sich nicht auf die Grundlagen, sondern nur auf das erstellen der grafischen Benutzeroberfläche konzentriert hat
excalibur1976 schrieb:
Du kannst natürlich Dich auch direkt an JAVA & Ruby on Rails oder C++ machen, was aber für den Einstieg ein wenig zu extrem wäre.
Für Java & Co. bietet sich die kostenlose IDE Eclipse an.
Buchempfehlungen:
Schaue einfach mal auf der Seite von O'Reilly vorbei oder bei
www.entwickler-press.de
Ruby ist an sich für Anfänger hervorragend geeignet. Es gibt dazu halt nicht viel gute Einsteigerliteratur.
Java ist nichts für Anfänger erst recht nicht C/C++, wird aber Anfängern in Schulen/Unis oft aufgezwängt.
Die O'Reilly - Bücher würde ich in deinem Fall nicht empfehlen. Es sind gute Bücher, jedoch nicht gezielt für Anfänger ausgerichtet.
Man muss generell fragen, was eigentlich "Anfänger"-Literatur darstellt.
Nur weil es eine gutes Buch ist UND bei 0 anfängt, heißt das noch lange nicht, dass es für Anfänger gut geeignet ist.
Darüber hinaus hängt es auch davon ab, in welcher Situation man sich befindet.
Lernt man das Programmieren z.b. im Zuge einer Lehrveranstaltung eines Studiums, dann wird einem die Thematik ja in erster Linie in der Vorlesung vermittelt. In diesem Fall braucht man eigentlich nur noch ein Referenzwerk, um gegebenenfalls einzelne Themen nachzulesen/vertiefen. In diesem Fall muss das Buch auch nicht um jeden Preis so einfach und verständlich wie möglich sein
(gerade DAFÜR sind z.b. die O'Reilly Bücher hervorragend geeignet)
excalibur1976 schrieb:
Für <XYZ> & Co. bietet sich die kostenlose IDE Eclipse an.
Für einen Anfänger ist die Verwendung einer IDE der totale Overkill!!
Man braucht lediglich einen Texteditor.
Wobei es sich natürlich auszahlt einen Editor zu verwenden, der für die gewählte Sprache
Syntax highlighting und automatisches Einrücken unterstützt.
'JEdit' ist ein sehr guter und einfacher Editor:
Man öffnet einfach die Quelldatei, der Editor erkennt die Dateiendung und aktiviert das Einrücken/Highlighting für diese Sprache.
Mit Strg + PgUP|PgDn kann man zwischen den Quelldateien wechseln.
Fertig! Mehr braucht man nicht.
(Java muss hierfür installiert sein. Wenn's damit Probleme gibt, kann geholfen werden)
Jede mehr oder weniger sinnvolle Debatte über die Verwendung von, weiß der Teufel was für IDE's und Editor, einfach ignorieren. Als ob das für einen Anfänger auch nur die geringste Rolle spielen würde!
MacroWelle schrieb:
Grundsätzlich solltest du dir überlegen, ob du eine Programmiersprache benutzen willst, die man hauptsächlich für Applikationen verwendet (Java, C(++), usw.) und bei der man den Quellcode kompiliert, oder eine Sprache wie HTML oder Skriptsprachen, die einfach so ausgeführt bzw. gerendert werden.
Diese Spracheinteilung ist in diesem Fall nicht sinnvoll, sonder nur verwirrend.
Du hast natürlich recht, dass sowohl HTMML als auch Skriptsprachen etwas gänzlich Unterschiedliches sind, wie Sprachen in denen ein Quelltext in Maschinencode übersetzt wird. Diese Unterscheidung ist für einen Anfänger aber irrelevant. Eine Skriptsprache wie Ruby ist letztendlich ähnlich aufgebaut wie Java, C++. Die Unterschiede zu diesen Sprachen kommen Anfängern sogar entgegen (z.b. einfacheres Typkonzept). Python, das ich empfohlen habe, ist übrigens auch eine Skriptsprache.
Viel wichtiger für 'phoenix1337' ist die Unterteilung in Höhere Sprachen(Java, C++, Python, Ruby, C#, .....) und Auszeichnungssprachen (HTML, XML, LaTex).
Bei einer Auszeichnungssprache wird (letztendlich) nur das Erscheinungsbild eines Dokuments festgelegt. Ein auf die Art erstelltes Dokument ist also gar kein "Programm" im eigentlichen Sinn, weshalb man diese Sprache in der Regel auch nicht als "Programmiersprachen" bezeichnet.
Ich schätze mal, dass 'phoenix1337' eher das erlernen einer höheren Sprache vorschwebt.
BMichelberger schrieb:
Gründsätzlich sollte unterschieden werden zwischen Programmiersprachen fürs Web und solchen für Anwendungen auf Windows
Wenn die Zielsetzung von 'phoenix1337' lauten würde:
"Ich möchte lernen, wie ich man den Inhalt einer Webseite von der Eingabe in einem Formular abhängig macht",
dann würde eines solche Unterscheidung sinn machen. Ist aber nicht der Fall, daher irrelevant