Vor einiger Zeit habe ich beschlossen, mit dem Programmieren zu beginnen. Ich bin wirklich einfach in eine Sprache (Perl) gesprungen und von dort aus weitergegangen. Was ich bedauere ist, dass ich gerade reingesprungen bin:
Ich habe die Grundlagen nicht gelernt (wenn Sie sie als Grundlagen bezeichnen würden).
Ich habe nichts über Informatik gelernt.
Ich glaube, dieses Problem hält mich von meinem wahren Potenzial ab. Wo soll ich "neu starten"? Gibt es Bücher, Artikel usw., die ich lesen sollte? Gibt es Themen, die ein erfahrener Programmierer kennen sollte? Was raten Sie?
education
computer-science
experience
Dynamisch
quelle
quelle
Antworten:
Ich würde das machen:
Weg A: Die semi-typische Methode
Lernen Sie eine Sprache mit einer stärker regulierten Syntax wie Java, C # oder Python. Perl ist ein unglaublich nützliches Tool, aber es ist auch sehr, sehr frei in Bezug auf die Art und Weise, wie Sie Dinge tun können. Die anderen Sprachen, die ich aufgelistet habe, sind sehr viel weniger.
Holen Sie sich ein Buch über Datenstrukturen in dieser Sprache.
Holen Sie sich ein Buch über Algorithmen in dieser Sprache.
Holen Sie sich Code vollständig und effektiv Java / C # / Was auch immer Pythons Version ist.
Pfad B: Joel Spolskys Pfad der Erleuchtung (oder Tod, treffen Sie Ihre Wahl)
Holen Sie sich das Buch "Code"
Holen Sie sich "The C Programming Language" von K & R
Holen Sie sich die Struktur und Interpretation der Computerprogrammierung
Was die Methode anbelangt, wird Sie Methode 1 in einer regulierteren Art und Weise in die Programmierung einweisen. Informatikkonzepte bis zu einem gewissen Grad (noch keine Komplexitätstheorie, vertrauen Sie mir) und bieten Ihnen eine Sprache, die besser für die Arbeit in Projekten mit anderen Menschen und für die Erstellung größerer Anwendungen geeignet ist.
Methode 2 ist härter, es handelt sich vielmehr um einen fundamentalen Ansatz, bei dem "Code" die Grundlagen erklärt, K & R das Material auf Maschinenebene einführt und die SICP die Konzepte auf höherer Ebene einführt. Es ist ein viel härterer, aber fokussierterer Weg.
Nehmen Sie sich in jedem Fall Zeit. Rom wurde nicht an einem Tag erbaut und auch Programmierkenntnisse sind nicht vorhanden, selbst wenn Sie ein Genie darin sind. Peter Norvigs Programmierung in 10 Jahren ist der übliche Aufsatz, auf den ich die Leute hinweise.
Nachtrag:
Soweit verfügbares kostenloses Material: Python the Hard Way (siehe unten) ist ein guter Anfang. Wie man so denkt, als wäre ein Informatiker eine vernünftige Fortsetzung.
Es gibt eine Reihe von Ressourcen zu Algorithmen, und ehrlich gesagt könnten Sie wahrscheinlich die Schritte 3 und 4 ohne Probleme wechseln. Denken Sie daran, hier beginnt die Mathematik wirklich aufzutauchen. Haben Sie also keine Angst, in dieser Phase um Hilfe zu bitten. Dies scheint eine vernünftige kostenlose Anleitung zu sein .
Es gibt wirklich kein zusammenhängendes freies Äquivalent zu Code Complete, obwohl Code wie ein Pythonista ziemlich solide zu sein scheint. Das Wichtigste ist, dass Sie sich darauf konzentrieren, Ihren Code lesbar zu machen, sobald Sie die Grundlagen verstanden haben. Es ist nicht "notwendig", wie es der Fall ist, wenn Ihre gesamte Codesyntax korrekt ist, aber es macht das Leben viel einfacher, wenn Sie über kleine Programme hinausgehen oder über einen längeren Zeitraum an etwas arbeiten.
Sie werden feststellen, dass ich mich hauptsächlich auf Python konzentriert habe, weil es am einfachsten ist, gut geschriebene freie Inhalte zu finden. Ich denke, Javas Tutorials von Oracle sind in Ordnung, aber sie sind ein wenig trocken und nicht besonders für Anfänger geeignet. C # befindet sich in einer ähnlichen Situation, obwohl beide nicht dokumentiert sind.
Auch dein erster CS-Witz: Du willst deine Ausbildung "umgestalten", nicht den Backtrack.
quelle
Ich würde sagen, ziele darauf ab, Python auf die harte Tour zu lernen . Es ist ein guter Ansatz. Geh von dort; Es wird lange genug dauern, bis Sie Zeit haben, andere Ressourcen zu finden.
Meiner Meinung nach ist der in einer anderen Antwort erwähnte "Pfad B" zu diesem Zeitpunkt nicht angemessen.
quelle
Nun, ich habe aus demselben Grund angefangen, aus dem ich einige Kenntnisse auf der Hardwareseite hatte, und war fasziniert von der Programmierung. Ich mag neue Dinge lernen.
Ich begann mit DOS-Batch-Dateien, dann mit QuickBasic, dann mit Visual Basic, VBA, MASM und mit Access für die Datenbankarbeit, bevor ich meinen ersten Job bekam. Für mich war das der beste Weg, einfach anzufangen und dann von dort aus zu bauen.
Ich würde sagen, entscheide, was dir am besten am Programmieren gefällt, und gehe auf diese Weise, wie Skripten, Webentwicklung, Windows-Programmierung usw. Wenn du es nicht weißt, dann beginne mit einigen Sprachen, um zu sehen, was dir gefällt. Sie werden allerdings Zeit brauchen. Es dauert ungefähr 5 Jahre, um mit einer Sprache wie Java oder vielleicht C ++, IMHO, richtig gut zu werden.
Als eine Sprache zum Erlernen der Webentwicklung ist JavaScript definitiv beliebt, PHP und Python, aber das ist IMHO. Es wird davon ausgegangen, dass Sie HTML / CSS kennen oder lernen werden. Ich habe Javascript wirklich unterschätzt, obwohl ich es seit 2001 verwende. Ich habe dasselbe mit CSS gemacht und fand es nicht wichtig. Auch hier habe ich meine Meinung geändert.
Wenn ich versuche, einen Trend zu ermitteln, gehe ich zu http://www.indeed.com und klicke auf den Link Trends oben links auf der Seite. Dann gebe ich Keywords wie PHP und Python ein und sehe, welche für aktuelle Stellenangebote im Internet ausgeschrieben werden.
Dies ist jedoch aus beruflicher Sicht und basiert auf dem, was mir den größten Wert für die Kunden (Arbeitgeber) bringt. Nicht nur aus Lernperspektive.
quelle
Erfahren Sie mehr über Algorithmen in ihrer einfachsten Form, vergessen Sie die Sprachen für eine Weile. Sortieren von Vektoren, Wörtern usw. Freepascal ist eine schöne Sprache, um mit diesen Dingen zu beginnen. Ich liebe Perl, aber mit all seinen Abkürzungen und coolen Dingen werden Sie oft den Algorithmus des Programms vernachlässigen.
quelle