Hier statemente ich mal meine Meinung, daß Einsteiger am besten mit einem guten Buch einsteigen. Ansonsten könnten sie geneigt sein, sich durch viele Fragen in Foren ein Halbwissen zusammenzustoppeln. Das ist auf kurze Sicht befriedigender, weil es das aktuelle Problem evtl. schnell löst.
Aber man behält doch enorme Wissenslücken, wenn man sich nur problem-orientiert weiterbildet. Insbesondere, wenn man sich eine Wurstel-Lösung angeeignet hat, erfährt man niemals eine Korrektur, weil funktioniert ja, und die besseren Konzepte lernt man niemals kennen, weil man nicht weiß, dasses die überhaupt gibt.
Und ist natürlich auch eine andere Befriedigung, wenn man ein Problem selbst lösen kann, weil man (Überblicks-Wissen) weiß, wo und wie suchen.
Kostenlose Download-Programmier-Bücher gibts einige, besonders bekannt sind die
Galileo Openbooks.
Letztere sind aber IMO nicht besonders gut, ich komme noch dazu.
Zu einem VB-OpenBook habich sogar mal eine Mini-Rezension verzapft, weils mir besonders gut gefiel. Das Herausragende an dem Buch ist, dass die Entwicklungsumgebung durchgenommen wird.
Dadurch lernt der Leser die zT. mächtigen Tools ein wenig kennen, v.a. MSDN und ObjectBrowser, und wird so instand gesetzt, selbst effektiv nach Problemlösungen zu recherchieren. Aber ich gebe meine "Rezension" einfach mal wieder, weil da steht gewissermaßen, was ganz allgemein in ein gutes Lehrbuch über .Net-Sprachen hineingehört (betrifft also auch C#):
Scheint mir ein hervorragendes Buch.
Ich hab nicht alle 1063 Seiten gelesen, tatsächlich nur die 13 Seiten Inhaltsverzeichnis durchgesehen, und was mich interessierte, nachgeguckt. Das Nachgucken war aber in jedem einzelnen Fall erfreulich.
Schon am Inhaltsverzeichnis fällt auf: Klaus Löffelmann fängt am richtigen Anfang an.
z.B. ein Projekt mit dem Pflichtenheft (also, daß man nicht drauflos-proggt, sondern erstmal richtig kräftig Man-Power investiert in die Eruierung und Festlegung der Projekt-Ziele).
Und dann geht er die IDE durch, und beleuchtet viele (alle ist wohl nicht möglich) Facetten, wie die IDE den Programmierer unterstützen kann.
Das ist auch meine Meinung, nämlich das das das Wichtigste ist, und das Erste, was ein Einsteiger lernen sollte, und möglichst gründlich.
Nach 2 Kapiteln, zugeschnitten auf Umsteiger von VB6, und von VB2003 steigter in OOP ein, und auch hier wieder am richtigen Anfang: Überlegungen zur Namensgebung und weiteren Programmier-Konventionen, die einen einheitlichen Stil gewährleisten, und damit Wartbarkeit (und "Teamfähigkeit").
OOP – Vererbungslehre rauf und runter, Polymorphie, Ressourcenbereinigung, benutzerdefinierte Operatoren, Generika, Delegaten und Ereignisse, Auflistungen, sogar Regex ( = mächtiges Instrument für Suchen/Ersetzen in Text ) machter durch!
Dann kommt Windows.Forms, und wieder – sagte ich das schon, daß mir das ausgezeichnet gefällt? - fängter mit Grundsätzlichkeiten an, Überlegungen zu Datenhaltung, Validierung, Bedien-Ergonomie und dergleichen.
Dann gibts die Schwerpunkte Listview, und DatagridView. Kannich nur zu nicken, das sind die wichtigsten. (Na, Treeview wäre auch noch schön gewesen.)
Die 125 Control-Ereignisse hatter schön in 13 Kategorien geordnet.
Und dann kommt "Controls selber zeichnen" und Controls selbst entwickeln – Klasse!
Noch ein draufsetzen - Threading
"Nur" 50 Seiten Datenbanking, aber es langt, um eine Beispiel-Datenbank aufzubauen.
Inzwischen gibts ein Update, genauso umsonst: Microsoft Visual Basic 2008 - Das Entwicklerbuch
Ich bin bei so Updates ja eher skeptisch. Bei Galileo-Computing sieht man, dasses das Update eines Updates eines Updates ist, und wie sich da die Altleichen so durchschleppen.
Ich habe "2008 - Das Entwicklerbuch" nicht durchgeguckt - das Inhaltsverzeichnis sieht ähnlich ok aus, allerdings sind noch WPF und einige 2008er-Features dazugekommen, sicherlich auf Kosten anderer Themen, und da fürchte ich, vlt. auf Kosten grundlegender Themen, sowie auf Kosten des Themas Windows.Forms
Die Pdf-Form des Buches ist ein bischen lästig, im Vergleich zu einem OpenBook, was man direkt im Browser lesen kann.
Insbesondere, wenn man einen Begriff sucht, oder auch nur ein Kapitel, da wird man in einem Html-Openbook einfach vom Inhaltsverzeichnis aus verlinkt.
Ich habe mir den Foxit PDF Reader (Freeware) installiert, der lädt schneller und ist auch sonst besser als der Adope-pdf-Reader - insbesondere liebe ich dessen Suche-Funktion (Taste: strg - shift - f).
Damit findet man alle Fundstellen eines Begriffes, und wählt vorzugsweise die Fundstelle im Inhaltsverzeichnis. Von dort sucht man dann nach der Seitenzahl.
Das ist eben der Mist mit pdf, dass die Seiten-Numerierung nicht mit der Anzahl der Seiten im Pdf-Dokument korelliert, und man deswegen mit Goto-Page immer auf einer zu niedrigen Seite herauskommt.
Denn die SeitenAngaben des Inhaltsverzeichnis' beziehen sich auf die "papierene" Seiten-Numerierung, bei der Leerseiten ja nicht numeriert sind - die aber im Pdf natürlich auch Seiten darstellen.
Ich gucke mal Galileo-"Einstieg in VB2010" so durch, und notiere, was mir auffällt:
Button1_Click() - Methode zu sehen - dirty code, denn ein Button hat eine Aufgabe, und die soll an seinem Namen erkennbar sein, diese 5 Sekunden Arbeit sollte man immer investieren, und sei es, um ihn einfach als "btTest" zu benennen.Option Strict On verloren wurde. Ein Programmieren mit Strict Off ist immer dirty, daher ist das das erste, was noch vor dem ersten Einstieg klargestellt werden muß.String mit Convert.ToDouble() in einen Double konvertiert. Hier wird die Möglichkeit verschenkt, den Double-Typ gescheit vorzustellen, denn um Strings in einen Double zu parsen, ist die Methode Double.Parse() vorzuziehen. Die Convert-Klasse als Sammelsurium aller möglichen Konvertierungen sollte bei Konvertierungs-Aufgaben immer nachrangig gegenüber spezifischeren Optionen in Betracht gezogen werden.IIF(expr, truePart, falsePart) - Anweisung.IIF ist veraltet, und sollte nie mehr Anwendung finden, da sie Werte untypisiert zurückgibt. In jedem Fall sollte das 2005er IF(expr, truePart, falsePart) Anwendung finden, welches strenge Typisierung unterstützt.Strict Off programmiert, und an diesem Punkt sollte man das Buch zur Seite legen (das ist keine Rethorik).Dim x As Integer Dim y As Integer x = 5 y = 3 lblAnzeige.Text = IIf(x > y, x, y)Ein "Lehrbuch", wo
Integer durch IIf nach Object konvertieren, und Object an eine String-Property zugewiesen wird, hat sich disqualifiziert. Korrekt musses heißen:
Dim x = 5 Dim y = 3 lblAnzeige.Text = If(x > y, x, y).ToString()
Private Sub cmdSchleife1_Click(...) Handles ... Dim i As Integer lblA1.Text = "" For i = 3 To 7 lblA1.Text &= i & vbCrLf Next End SubDirty Code: der Zähler i sollte innerhalb der For-Schleife deklariert sein, denn außerhalb wird er nicht benötigt, und fördert nur Unübersichtlichkeit und unerwünschte Seiteneffekte.
Private Sub cmdSchleife1_Click(...) Handles ... lblA1.Text = "" For i As Integer = 3 To 7 lblA1.Text &= i & vbCrLf Next End SubAuch gehörte seit 2008
Option Infer On empfohlen, sodaß der Compiler lokale Datentypen selbst erkennt. Das verkürzt den Code, und erleichtert nachträgliche Änderungen von Datentypen:
Private Sub cmdSchleife1_Click(...) Handles ... lblA1.Text = "" For i = 3 To 7 lblA1.Text &= i & vbCrLf Next End SubDer Compiler "sieht", dass 3 ein
Integer ist, die Deklaration ist also redundant.ElseIf optAuswahl.Checked And lstSpeisen.SelectedIndex <> –1 ThenHier sehen wir den veralteten
And - Operator, der ebenso wie IIF in die Mottenkiste gehört. Seit glaub 2005 gibt es den AndAlso - Operator, der den 2. Ausdruck gar nicht erst auswertet, wenn der erste Ausdruck schon False ergibt.AndAlso und sein Brüderchen OrElse aber überhaupt keine Erwähnung - bin ich hier richtig, in einem Buch über VB2010?ArrayList, eine Klasse, die 2005 als allererste in die Mottenkiste flog! Weil seither die List(Of T) verfügbar ist, bei der über den Typ-Parameter der Typ der Elemente festgelegt wird. ArrayList mit ihrem untypisierten Inhalt können nur Autoren besprechen, die auch Strict Off programmieren, also Anfänger und Dilletanten. (Sorry, dassich so deutlich werde, aber es ist erforderlich)
Ich breche hier meine Besprechung ab (Das ganze Buch durchgehen führt sicherlich zu weit), und spreche die Vermutung aus: Es geht immer so weiter.
Klar erkennbar ist: das Buch wurde ursprünglich für VB2003 geschrieben, und die fundamentalen Konzept-Änderungen, die 2005 Einzug gehalten haben, wurden nicht eingearbeitet, sondern es wurden nur weitere Kapitel drangepatcht.
2005 wurde mit den Generica eine neue Ära typsicheren Programmierens eröffnet - danach Einsteigern Strict-Off-2003er Code vorzusetzen - Das geht doch nicht!