Zum Inhalt der Seite

Einzelposting: Programmieren?


Links hierher: http://www.animexx.de/forum/thread_38077/-1/11417147815012/
http://desu.de/99Pjvb2




Von:   abgemeldet 07.03.2006 08:54
Betreff: Programmieren? [Antworten]
Avatar
 
Ich würd jedem Anfänger folgende Sprachreihenfolge empfehlen:

TurboPascal (ja, das alte für dos), weil es einen dazu zwingt, sauber zu arbeiten. Datentypen casten ist nicht und Variablen/Konstanten werden zu Beginn einer Funktion/Prozedur festgelegt. Das erhöht die Übersicht enorm, was für einen Anfänger durchaus hilfreich ist.
Mit programmweiten und funktionsweiten Gültigkeitsräumen für Variablen ist das Prinzip globale & lokale Variable eigentlich auch schon vorhanden und sogar besser verständlich als in der C-Sprachfamilie, wo lokale Variablen bis zum Ende des Anweisungsblocks gültig sind.
Außerdem zwingt das textbasierte Interface von TurboPascal (Dos) einen dazu, sich mit der ausarbeitung von Algorithmen zu befassen und nicht mit Oberflächendesign, wodurch das strukturierte Denken von Anfang an gefördert wird.
Ich kenne leider viele Leute, die mit php, java oder Delphi angefangen haben und bis heute meineserachtens keinen blassen schimmer vom eigentlichen Programmieren haben. Wahrscheinlich hat ihnen aber auch noch niemand erklärt, dass man bei einem Projekt nicht 50% der zeit in das Oberflächendesign (nur Design, keine Implementation von Funktionen) stecken sollte.

Nichtsdestotrotz würde ich mit Delphi fortsetzen. Eine Sprache, die man dank Turbopascal eigentlich schon beherrscht und die es dank RAD (rapid application developement) ermöglicht, in kürzester Zeit und intuitiv eigene Oberflächen zu entwickeln. Außerdem brauch man vorerst keinen Schimemr von der Funktionsweise der Windows-API zu haben (Stichwort Event-Handling), um auf Ereignisse wie Klicks zu reagieren.
Dank der ausführlichen Onlinehilfe ist man auch ohne Buch eigentlich nie allein gelassen und lernt nebenbei unbewusst auch noch die grundzüge von OOP.

Jetzt wäre natürlich erstmal ein ausführlicher theoretischer Kurs über OOP und Klassen angebracht, um dann an praktischen Übungen den vollen Funktionsumfang Delphi auf diesem Gebiet zu nutzen. D.h. leere Units in das Projekt einbinden und dort Klassen einbauen, die 'reale Objekte' wiederspiegeln. Wenn das halbwegs klappt, geht es mit den Beziehungen zwischen Klassen weiter. Assoziationen, Vererbungen etc.

Damit dürfte in Punkto objektorientierte Programmierung eigentlich alles wesentliche gelernt sein. Wer bis hierher alles verstanden hat, darf sich eindeutig schon zu den fähigeren Hobbyprogrammierern zählen.
Aber ein essentielles Thema haben wir bisher ausgelassen. Die Datenbanken.

Natürlich könten wir Datenbanken auch über Delphi erlernen. Mit Paradox und Ado stehen im Standard-Delphi ja schon zwei brauchbare Schnittstellen zur Verfügung. Aber ehrlich gesagt sind die nicht grade schick und verleiten mit vorgefertigten Komponenten dazu, rumzupfuschen.

Also würde ich vorschlagen, entfernen wir uns zunächsteinmal von der Pascal-Familie und wenden uns HTML zu. Denn Welcher Informatiker hat bitte keine eigene Homepage?
HTML lernen heißt aber auch HTML selber zu schreiben. Also benutzen wir als Editor Notepad oder der übersicht einen Editor mit Syntax-Highlighting wie Ultraedit oder Proton.
Auch wenn es sich hier um eine Markup-Language handelt und nicht um eine Programmiersprache im eigentlichen Sinn, ist es der Übersicht halber von Vorteil, die üblichen Formatierungsregeln (Einrücken etc) zu berücksichtigen.
Beherrscht man HTML dann halbwegs, darf man schon wieder alles über den Haufen werfen, was man grade gelernt hat. Wir ergänzen das ganze jetzt nämlich durch folgenden Grundsatz: HTML beschreibt den Inhalt einer Seite (Was zu sehen ist) und CSS beschreibt das Design (Wie es angezeigt wird).
Mit der Einführung von CSS haben dann auch HTML-Tags wie "font" und "center" ihre Daseinsberechtigung verloren. Ebenso sind Tabellen kein Mittel, um Inhalte zu positionieren. Dafür gibt es Positionsangaben in CSS. Tabellen haben einzig und allein den Sinn, Daten tabellarisch darzustellen. Sollte irgendwo gegen diesen Grundsatz verstoßen werden, ist der InternetExplorer Schuld, der es wahrscheinlich auch nicht in der Version 7 schaffen wird, CSS fehlerfrei darzustellen.

Egal, wer mit html und css umgehen kann, hat all das Wissen, das er benötigt, um Oberflächen für Webbasierte Scriptsprachen zu erstellen. Also müssten wir uns jetzt für eine davon entscheiden.
Standard hierbei ist natürlich PHP in verbindung mit einer MySQL-Datenbank, aber falls sich jemand bisher nicht ausreichend gefordert sah, kann ich nur zu PERL raten. Die beiden Sprachen haben an sich viele Gemeinsamkeiten und wer in PERL programmieren kann, sollte mit PHP keine schwierigkeiten haben. Andersrum ist es da schon nicht so leicht. PERL ist an vielen Stellen genauer; unterscheidet zum Beispiel zwischen numerischen und assoziativen Arrays und legt mehr Wert auf die Objektorienterite Programmierung sowie den Umganz mit Zeigern. PHP ist da tollerantr und vereinheitlicht halt vieles der Einfachheit halber. Man könnte aber auch einfach sagen, PERL ist Linux-bezogener. PHP leichter und schneller zu erlernen und damit massentauglich.

Nichtsdestotrotz sind Datenbanken das Mittel, um bei Webseiten Daten zu speichern. Deswegen ist unser nächster Schwerpunkt eine sogenannte "relationale Datenbank". Zum Beispiel das populäre MySQL. Ob wir nun über die MySQL-Extensions von PHP oder das PERL-eigende DBI (DataBaseInterface) darauf zugreifen, ändert aber nichts daran, dass wir etwas Datenbanktheorie machen müssen. Die Prinzipien einer relationalen Datenbank, das Schlüsselkonzept, die Definitionen der 'Normalformen' sowie das Wissen um das Erstellen und Verstehen eines ERM's (Entity-Relationship-Models) sollten da mindestens dazugehören.
Wer das beherrscht, kann wahrscheinlich auch schon die Grundzüge von SQL. Ansonsten wäre jetzt Zeit, das nachzuholen. Eigentlich sollte vorerst ein "Wortschatz" reichen, der die Schlüsselwörter "create","drop","insert","update","delete","select","where" und "join" umfasst.

Wer bis hierhin erfolgreich vorgedrungen ist, sollte eigentlich auch in der Lage sein, eine IHK-Abschlussprüfung als Fachinformatiker für Anwendungsentwicklung ohne große Probleme zu überstehen. ^-^

Wem das ned reicht, dem sei nahegelegt, zwar die C-Sprachfamilie wegen ihres hohen Bekanntheitsgrades zu lernen, sich aber auch mal mit den 'veralteten' (Fortran, Cobol, C) bzw 'exotischeren' (Prolog, LISP) Sprachen zu befassen, da hier immer wieder Experten für gut bezahlte Jobs fehlen.

Und ja, ich weiss dass ich die Java-Familie vollständig ausgelassen habe. Aber zum einen halte ich ehrlich gesagt nichts davon, weil eine echte, nativ kompilierte Software immernoch schneller ist und mehr Möglichkeiten bietet als Java-Pseudocode-Mist mit dieser Semi-Compiler-Semi-Interpreter-Lösung und man außerdem in keiner Informatik-Ausbildung um Java herumkommen wird.

Zurück zum Thread