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.