Wie lerne ich zu programmieren?

Diskutiere Wie lerne ich zu programmieren? im Programmierung Forum im Bereich Programmierung; Da diese Frage schon ziemlich oft gestellt wurde, habe ich mich entschlossen eine kurze Anleitung zu schreiben. ;) Als Neuling wird man sicher...
#1
DiableNoir

DiableNoir

Threadstarter
Dabei seit
18.01.2004
Beiträge
6.069
Da diese Frage schon ziemlich oft gestellt wurde, habe ich mich entschlossen eine kurze Anleitung zu schreiben. ;)

Als Neuling wird man sicher von der Vielzahl an vorhandenen Sprachen bzw. Entwicklungsumgebungen erschlagen. Wichtig ist, dass man sich am Anfang nicht zu viel vornimmt. Also man sollte sich nicht gleich vornehmen Spiele, Firewalls,... zu schreiben. (Sowas schafft nicht einmal ein Profi alleine.)

Man sollte auch eine einfache Sprache wählen, mit der man schnell Erfolgserlebnisse hat. Denn die sind am Anfang sehr wichtig, sonst verlässt einem schnell der Mut.


Wieviel Arbeit kommt auf mich zu?

Kurz gesagt: Sehr viel. :D

Programmieren ist, besonders am Anfang, von vielen sehr schwer zu verstehen, weil man sich einfach angewöhnen muss analytisch und strukturiert zu denken. Diese Fähigkeit kann man sich durch viel Übung aber aneignen.

Der Zeitaufwand ist allerdings ziemlich groß. Wer also Programmieren will, muss sich auch die Zeit dafür nehmen.


Wieviel Kosten kommen auf mich zu?

Eigentlich gar keine. Zu jeder Sprache gibt es meist mindestens eine kostenlose Entwicklungsumgebung.

Bücher, in Form von eBooks sind auch in großen Mengen im Internet kostenlos erhältlich.

Lediglich beim professionellen Einsatz wird es teuer. Hobby-Programmierer die privat programmieren wollen, brauchen sich darüber aber keine Gedanken zu machen.

Am Anfang sollte man sich aber mindestens ein passendes Buch kaufen. Denn ein gedrucktes Buch ist einfacher zu lesen und wirklich gute Literatur ist nicht immer einfach kostenlos erhältlich.


Mit welcher Sprache soll ich beginnen?

Bei dieser Frage scheiden sich die Geister. Jeder Programmierer hat hier seine eigenen Ansichten. Deshalb stelle ich die Sprachen vor, die für Anfänger ziemlich oft empfohlen werden:

Pascal
In vielen Schulen wird Pascal sehr oft verwendet, da sie eigentlich ideal ist für das Lernen von Programmiersprachen. Allerdings ist die Sprache in der praktischen Anwendung nicht mehr relevant. Als Entwicklungsumgebung hat man die Wahl zwischen FreePascal (Windows, Linux), oder Borland Turbo Pascal 7.0. (Beide kostenlos.)

Beide bieten nur wenig Komfort und die erzeugten Programme laufen lediglich in der Konsole. Trotzdem kann man hiermit sehr einfach Programmieren lernen. Das liegt vor allem daran, das Pascal-Code sehr leicht lesbar ist und Anweisungen an englische Sätze erinnern.


Visual Basic.net
VB.NET (Nicht zu verwechseln mit dem alten VB6!) ist für Anfänger sehr gut geeignet. Seit dem Umstieg auf die .NET-Plattform ist sie allerdings vollständig objektorientiert und damit schwerer zu verstehen. Die Sprache hat sich also stark gewandelt und ist auch für den professionellen Einsatz sehr gut geeignet.

Der Vorteil bei Visual Basic ist - wie bei Pascal - dass der Programmcode leicht lesbar und verständlich ist. Als Entwicklungsumgebung dient Visual Studio.net, dass in der Express-Version auch kostenlos erhältlich ist: http://www.microsoft.com/germany/express/


C#
C# (gesprochen: Sii Scharp) ist eine objektorientierte .NET-Sprache, wie Visual Basic. Sie orientiert sich allerdings stark an Java. Die Sprache ist sehr jung (Erste Version 2002.) und ist trotzdem sehr ausgereift und modern.

Für Anfänger ist die Sprache auch geeignet, allerdings auch schwerer zu verstehen und nicht so komfortabel wie VB.NET. Wer mit VB.NET anfängt, kann aber später ohne Probleme auf C# umsteigen und sogar alten VB.NET-Code wiederverwenden. (Ein C#-Programm kann ohne Probleme zB VB.NET-DLLs verwenden und umgekehrt.)

Als Entwicklungsumgebung kann man wieder auf das kostenlose Visual Studio.net Express setzen: http://www.microsoft.com/germany/express/


JAVA
Der klare Vorteil von Java ist die Plattformunabhängigkeit. Java-Code ist objektorientiert und läuft - anders als .NET-Sprachen - in einer virtuellen Maschine. Ein Java-Programm läuft also theoretisch auf jeder Plattform, in der auch die VM läuft. Für Embedded-Geräte (Handy, BluRay-Player,...) gibt es eine reduzierte VM. Für große Serveranwendungen wird die erweiterte J2EE verwendet. Man kann aber bereits gesammeltes Wissen auf anderen Plattformen wieder verwenden.

Java hat aber ein paar Tücken, die besonders für Anfänger hinderlich sein können. Zum Einen gibt es in der JAVA-Welt unzählige Akronyme (zB JRE, JDK, J2EE, EJB, JDB, JDA,...) und für die Lösung von Problemen oft mehrere Technologien mit ihren eigenen Vor- und Nachteilen. (Swing und SWT für grafische Oberflächen.) Zum Anderen schleppt Java seit der ersten Version viele Kinderkrankheiten und Legacy-Klassen mit um die Kompatibilität zu älteren Versionen zu gewährleisten. Das aktuelle Java 6 ist nämlich in Wirklichkeit die Version 1.6 und kann deshalb auch Java-Programme ausführen, die mit der allerersten Version geschrieben wurden.

Ob Java für blutige Anfänger geeignet ist, sehen viele Programmierer anders. Die Syntax ist mit der von C# vergleichbar, also für Anfänger schwerer zu verstehen als zB Pascal oder VB.NET. Andererseits findet man mit einem guten Buch einen recht guten Einstieg in das Thema Java-Programmierung.

An Entwicklungsumgebungen mangelt es bei JAVA nicht. Die beiden bekanntesten sind NetBeans von dem Java-Erfinder Sun und das sehr beliebte Eclipse. Beide Entwicklungsumgebungen sind kostenlos. Wer grafische Anwendungen erstellen möchte, sollte sich vor allem NetBeans ansehen, denn dessen Dialog-Editor hat gegenüber Eclipse klar die Nase vorn. Netbeans und Eclipse unterstützen außerdem weitere Sprachen wie zB C/C++/PHP/Ruby/...



Wie lerne ich am Besten eine Sprache?

Die beste Informationsquelle sind immer noch Bücher. Deshalb sollte man sich ein Buch auswählen und dieses durcharbeiten. Dabei sollte man aber auch die dort beschriebenen Beispiel durchdenken bzw. selber ausprogrammieren um ein Gefühl für die Sprache zu erhalten. Ich empfehle auf jeden Fall ein gedrucktes Buch zu kaufen, da diese leichter lesbar sind und außerdem auf CD/DVD meist alle Quellcodes und nötigen Utensilien enthalten sind.

Bewährte Bücher sind:

VB.NET
Richtig einsteigen: Programmieren lernen mit Visual Basic 2008 (ISBN-13: 978-3866452060 / Verlag: Microsoft Press)
Einstieg in Visual Basic 2008 (ISBN-13: 978-3836211925 / Verlag: Galileo Press / kostenloses eBook)

C#
Visual C# 2005 Grundlagen und Programmiertechniken (ISBN-13: 978-3836211727 / Verlag: Addison-Wesley)
Visual C# 2008: Das umfassende Handbuch (ISBN-13: 978-3836211727 / Verlag: Galileo Press / kostenloses eBook)

JAVA
Java 6 Programmierhandbuch (ISBN-10: 3939084123 / Verlag: entwickler.press)
Handbuch der Java-Programmierung (ISBN-13: 978-3827323736 / Verlag: Addison-Wesley)
Java ist auch eine Insel (ISBN-13: 978-3836211468 / Verlag: Galileo-Press / kostenloses eBook)



Ressourcen im Internet


eBooks: Galileopress: http://www.galileocomputing.de/katalog/openbook/

Webcasts: Get the BASICs mit VB.NET für Einsteiger und Umsteiger: http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0610-01.mspx




Hinweis: Sollte jemand noch Vorschläge/Ergänzungen/Korrekturen haben, dann immer her damit. Schickt mir einfach eine PM. ;)
 
Zuletzt bearbeitet:
#2
S

Simon M.

Dabei seit
15.06.2009
Beiträge
271
Welche Programmiersprache soll ich Wählen?

Hallo alle zusammen,
bevor es solche Themen, wie z.B. "Welche Programmiersprache ist für mich am besten geeignet" gibt, erstelle ich diesen Thread.

1. Welche Programmiersprachen gibt es
Es gibt zwei Arten von Programmiersprachen, Compiler Sprachen und Scriptsprachen:

Compiler Sprachen:

- C++
- Delphi / Pascal
- Visual Basic & Visal Basic.NET (2008)
- Java
- Assembler


Scriptsprachen

- Python
- PHP
- Perl


Es gibt sicher noch mehr, aber das sind jetzt mal die wichtigsten.


2. Was ist bei der Auswahl der Programmiersprache zu beachten:

- Der Verwendungszweck
- Kompatibilität mit verschiedenen Plattformen (gehört eigentlich auch zum Verwendungszweck)
- Ob es eine Compilersprache oder eine Scriptsprache sein soll


3.1 Der Verwendungszweck
Als erstes sollte man sich im klaren sein was man mit der Programmiersprache erreichen möchte. Dazu teile ich hier die Programmiersprachen in zwei Gruppen auf:


Compiler Sprachen:

- Programme erstellen die das Tägliche leben vereinfachen
- Programme erstellen die sehr Performance lastig sind
- Programme mit hoher Plattformkompatibilität
- Spieleprogrammierung


Scriptsprachen:

- Webseiten erstellen
- Programme erstellen die das Tägliche leben vereinfachen
- Programme mit hoher Plattformkompatibilität
- Spieleprogrammierung (trifft nur bei manchen Sprachen zu und ist nur bedingt zu empfehlen)


3.2 Plattformkompatibilität
Wenn man plant ein Programm für mehrere System zu veröffentlichen dann sollte man ganz speziell auf diesen Punkt achten.
Folgende Sprachen sind komplett Plattformunabhängig und eigenen sich gut für Plattformübergreifende Anwendungen:

- C++
- Delphi / Pascal
- Assembler (Der Code sieht aber meistens komplett anderst aus)
- Java
- PHP
- Python
- Perl


3.3 Scriptsprache oder Compiler Sprache

Beide Arten haben Vor - und Nachteile:


Compiler Sprache:

+ Schell
+ Kommt meistens ohne Extra Software aus (Ausgenommen VB, denn das braucht extra Libarys und Java, das braucht die Java Runtime)
+ Der Quellcode ist nicht Lesbar und somit relativ geschützt


- Bei größeren Programmen kann das Compilieren mehrere Stunden/Tage dauern
- Programm muss jedes mal zum Testen erneut kompiliert werden
- Muss auf jedem Betriebssystem neu kompiliert werden



Interpreter Sprache:

+ Kann schnell angepasst und geändert werden ohne kompiliert zu werden
+ Kann in der Regel ohne Änderungen auf ein anderes System portiert werden
+ Optimal für kleine Scripte die einem die Tägliche Arbeit erleichtern. Aber auch für große
Projekte geeignet
+ Es wird einem meistens viel Arbeit abgenommen. So kann man z.b. sehr sehr viel einfacher auf Datenbanken zugreifen wie z.B. in C++


- Langsamer als Compiler Sprachen
- meistens nicht so mächtig
- Der Quellcode kann in der Regel von jedem gelesen werden



4. Die Eigenschaften der einzelnen Programmiersprachen


C++
C Syntax
Vorteile:

- Objektorientiert
- Inline Assembler möglich
- Plattformübergreifend
- schnell
- viele Tutorials und Hilfen im Internet
- sehr weit verbreitet

Nachteile:

- manchmal unübersichtlicher Quellcode
- schwieriger Grafische oberflächen zu schreiben
- am Anfang dauert es etwas länger bis man wirklich nützliche Programme schreiben kann
- fehleranfälliger

Gute Seite für Einsteiger: http://www.c-plusplus.de/

Delphi
Pascal Syntax
Vorteile:

- Objektorientiert
- Inline Assembler möglich
- einfache und klare Syntax
- übersichtlicher Quellcode
- man kann einfach grafische Oberflächen erstellen
- schnell
- Einsteigerfreundlich

Nachteile:

- Habe ich keine gefunden

Gute Seite für Einsteiger: http://www.delphi-treff.de/

Visual Basic
Visual Basic ist eine veraltete Programmiersprache, deswegen wird auch von manchen VB.NET (2008) benutzt.
Sonst gibt es keinen Unterschied zwischen der "Version".
Falls du VB schon kanst und jetzt VB.NET lernen möchtest ist es sehr leicht, da du schon die Grundlagen kanst.
Basic Syntax
Vorteile:

- Einsteigerfreundlich
- übersichtlicher Quellcode
- schnell Programme mit einer Grafischen Oberfläche zusammenklicken

Nachteile:

- Windows abhändig
- braucht Runtimes
- beschränkte Funktionalität
- langsam
- VB 6.0 ist nicht objektorientiert

Gute Seite für Einsteiger: http://www.activevb.de/

Java
C Syntax
Vorteile:

- Objektorientiert
- Plattformunabhängig
- Kann durch einmaliges Kompilieren auf mehreren Plattformen augeführt werden
- Kann in Webseiten eingebunden werden (Java Applets)

Nachteile:

- langsam da es in einer Virtual Machine läuft

Gute Seite für Einsteiger: http://www.galileocomputing.de/openbook/javainsel7/

Assembler
Assembler Syntax
Vorteile:

- sehr sehr schnell
- Alles was in Assembler nicht programmierbar ist muss man löten
- Plattform übergreifend (auch wenn der Code auf anderen Systemen meistens komplett anders aussieht.)

Nachteile:

- schlecht lesbare Syntax
- Schwieriger zu erlernen im Vergleich zu anderen Sprachen (Wobei manche da anderer Meinung sind)

Gute Seite für Einsteiger: http://www.robsite.de/tutorials.php?tut=assembly

Python
Python Syntax
Besonderes Merkmal:
Es werden keine Klammern zum Festlegen von Funktionen wie z.B. in C verwendet,
da diese durch einrücken gekennzeichnet werden.

Vorteile:

- Objektorientiert
- Plattform übergreifend
- gut lesbarer Code
- recht schnell für eine Scriptsprache
- Viele Module die die Sprache erweitern
- Sogar zum Spiele programmieren geeignet
- klare Fehlerausgabe vom Interpreter

Nachteile:

- Es existieren keine richtigen Compiler

Gute Seite für Einsteiger: http://www.python-forum.de

PHP
C Syntax
Vorteile:

- Objektorientiert
- Plattform übergreifend
- Perfekt zum programmieren von Webseiten
- viele Funktionen die das Programmieren erleichtern
- sehr gut Dokumentiert
- der Quellcode lässt sich verschlüsseln

Nachteile:

- langsamer Interpreter

Gute Seite für Einsteiger: http://tut.php-quake.net/ und natürlich http://php.net

Perl
C Syntax
Vorteile:

- Objektorientiert
- Plattformübergreifend
- viele Funktionen die das Programmieren erleichtern
- schneller als Visual Basic da Perl einen C Interpreter besitzt

Nachteile:

- bei größeren Programmen ist der Quellcode schlecht lesbar

Gute Seite für Einsteiger: http://fabdp.fh-potsdam.de/lv-neu/online-courses/perltutorial/perl_start.html

5. Fazit - Das war jetzt so viel auf einmal, welche Programmiersprache soll ich jetzt nehmen?

- Für Webseiten eindeutig PHP
- Für Exploits kann man auch PHP verwenden, wobei Perl da verbreiteter ist.
- Für Programme jeglicher Art wie z.B. Einem Trojaner oder anderem Delphi




Das ist nur meine Empfehlung. Letztendlich muss jeder selber entscheiden Welche Programmiersprache ihm am besten gefällt.

Ich hoffe dass ich mit diesem Beitrag etwas Licht ins Dunkle der Programmiersprachen bringen konnte.
 
Zuletzt bearbeitet:
#4
E

Erayabakan

Dabei seit
20.09.2011
Beiträge
2
an Simon M.

eines muss ich sagen, du hast es klasse erklärt, wenn ich es jetzt nur noch umsetzen könnte ;), bdu bist in dieser Branche schon länger tätig schätze ich mal??
 
#5
P

Primadonna

Dabei seit
22.05.2008
Beiträge
613
Leichenschänder :D


Ne, es gibt mittlerweile auch gute Videos dazu, ich kann Video2Brain nur empfehlen (es gibt nicht nur Programmiervideos)
 
#6
Luk
Dabei seit
12.06.2010
Beiträge
506
:sleepy

bin froh dass ich kein Informatik mehr haben ein echt trockenes und langweiliges fach...

Zum Glück hatte ich nen chilligen Lehrer und konnte mit nem freund hinten in der ecke sitzen, filme schauen und die 100.000 Leitung ausnutzen, die Lösungen von nem Freund ziehen und am ende des Jahres ne 1 abholen. Was will man mehr???

Das Fach an sich war trotzdem blöde.




OK ich weiß es ist offtopic
 
#7
Dirk

Dirk

Dabei seit
27.03.2007
Beiträge
6.205
Ort
Bonn / Germany
:sleepy

bin froh dass ich kein Informatik mehr haben ein echt trockenes und langweiliges fach...

Zum Glück hatte ich nen chilligen Lehrer und konnte mit nem freund hinten in der ecke sitzen, filme schauen und die 100.000 Leitung ausnutzen, die Lösungen von nem Freund ziehen und am ende des Jahres ne 1 abholen. Was will man mehr???

Das Fach an sich war trotzdem blöde.

OK ich weiß es ist offtopic
:offtopicein
Eine 1 bekommen, weil man das Thema versteht ? Was nützt Dir eine 1 auf dem Zeugnis oder einem anderem Papier, wenn Du das bei Bewerbungen und ähnlichen nicht verwenden kannst. Oder wie bringst Du einem möglichen Arbeitgeber bei, dass Du trotz dieser Note keinen Durchblick hast !?
:offtopicaus.

Auch wenn ich als Moderator aus vielleicht nachvollziehbaren Gründen hier auf den vorherigen Post geantwortet habe ... bitte themenbezogen posten. :danke
 
#8
E

Erayabakan

Dabei seit
20.09.2011
Beiträge
2
ich fan deinen Beitrag klasse,bin total neuanfänger, ich möchte es aber unbedingt lernen, was würdest du mir empfehlen, wenn du bei facebook bist füg mich doch bitte hinzu, musst nach Aytekin Erayabakan suchen, danke jetzt schon mal.
 
#9
Schard

Schard

Dabei seit
13.04.2007
Beiträge
717
Ort
Hannover
Hm

Perl ist objektorientiert?
Sicher kann man damit objektorientiert programmieren - muss man aber nicht.

Und warum wird "objektorientiert" als Vorteil aufgeführt?

Außerdem wird die tolle Skriptsprache "CMD / Batch" hier vergessen. ;-)
 
Thema:

Wie lerne ich zu programmieren?

Sucheingaben

wie programmieren lernen

,

privat programmieren lernen

,

kann man da einfach programmieren lernen

Wie lerne ich zu programmieren? - Ähnliche Themen

  • lernen sie bald eine großartige .....

    lernen sie bald eine großartige .....: Seit dem letzten Update habe ich im Startmenü etliche Kacheln, wie geht das weg? lernen sie bald eine großartige ….. blas bla bla
  • Wo kann ich Gitarre lernen in Münster?

    Wo kann ich Gitarre lernen in Münster?: Wo kann ich Gitarre lernen in Münster? LG Jan
  • Cloud-Learning-Plattform Qualiero.com: Die neue Art des Lernens

    Cloud-Learning-Plattform Qualiero.com: Die neue Art des Lernens: <p>Partner, die Cloud-Lösungen umsetzen und vermarkten, sehen sich einer großen Herausforderung gegenüber: Anwendungen wie Azure erfahren nicht...
  • Projekt Oxford: Sprecher und Video APIs für maschinelles Lernen verfügbar

    Projekt Oxford: Sprecher und Video APIs für maschinelles Lernen verfügbar: <p> Die APIs für Videos und zur Sprechererkennung des Machine Learning-Projekts Oxford sind ab sofort als Public Preview verfügbar. Zudem...
  • Lernen Sie Database as a Service (DBaaS) in der MVA kennen

    Lernen Sie Database as a Service (DBaaS) in der MVA kennen: Das Windows Azure Pack enthält viele nützliche Services für IT Professionals, einer davon ist Database as a Service. Wie Sie diesen Service für...
  • Ähnliche Themen

    Oben