it-swarm.com.de

Lerne rückwärts programmieren oder "also habe ich den FizzBuzz-Test nicht bestanden. Was nun?"

Ein kleiner Hintergrund

Ich bin heute 28 Jahre alt und hatte noch nie eine formelle Ausbildung in Softwareentwicklung, aber ich habe zwei Hochschulabschlüsse, die einem B.A. in Public Relations und einem Executive MBA mit Schwerpunkt Projektmanagement entsprechen. Ich habe insgesamt ungefähr 6 Jahre auf diesen Feldern gearbeitet und vor 2,5 Jahren habe ich meinen Job gekündigt/verloren und beschlossen, die Richtung zu ändern.

Nachdem ich einen Monat lang nachgedacht hatte, beschloss ich, freiberuflich kleine Websites in WordPress zu entwickeln. Ich habe meinen Weg selbst gelernt und kann heute sagen, dass ich eine bescheidene, aber erfolgreiche Karriere in der Entwicklung von Themen und Plugins für meine Kunden habe - hauptsächlich Agenturen, die einen Teil ihrer Entwicklungsarbeit für mittlere und große Websites auslagern.

Aber manchmal habe ich einfach das Gefühl, dass es mich wirklich zurückhält, wenn ich nicht genug Mathematik studiert habe oder kein formelles Verständnis der Dinge habe, wenn ich mit erfahreneren Entwicklern konkurrieren oder arbeiten muss. Ich bin ständig auf der Suche nach Möglichkeiten, mehr zu lernen, aber mir scheinen die Grundlagen zu fehlen.

Leider ist es derzeit keine Option, weitere 4 Jahre in der Informatik zu verbringen. Deshalb versuche ich, alles, was ich kann, aus Büchern und Online-Ressourcen zu lernen. Diese Methode wird mich niemals von der NASA beschäftigen lassen, aber es ist mir im Moment wirklich egal. Mein Ziel ist es, zuerst die Bar zu passieren und mich als echten Programmierer bezeichnen zu können.

Momentan verbringe ich meine Freizeit damit, Java für Programmierer (um eine Sprache in den Griff zu bekommen, von der jeder sagt, dass sie schwierig/anspruchsvoll ist) zu lesen und Auszüge von Code Complete (um sie zu bekommen) zu lesen Best Practices) und auch Code: Die verborgene Sprache von Computerhardware und -software (um das Innenleben von Computern zu erfassen).

TL; DR

Meine aktuelle Situation ist also folgende: Ich bin grundsätzlich in der Lage, jedes komplette System in PHP (mit Hilfe von Google und einigen Büchern) zu schreiben und Ajax, SQL und so weiter zu integrieren, und vielleicht auch etwas langsamer als ein erfahrener Entwickler aufgrund all der damit verbundenen Forschung erwarten würde.

Aber ich war gestern gestrandet und habe versucht (nicht Google), eine Lösung für den FizzBuzz-Test zu finden, weil ich die if($n1 % $n2 == 0) nicht hatte methode  Moduloperator gespeichert.

Was würden Sie vorschlagen, um dieses Dilemma zu lösen? Welche Fächer/Bücher sollte ich studieren, damit ich Probleme schneller und vielleicht "programmiererischer" lösen kann?

[~ # ~] edit [~ # ~] - Es scheint einige Verwirrung darüber zu geben, was ich nicht wusste, um FizzBuzz zu lösen.

Vielleicht habe ich mich nicht richtig ausgedrückt: Ich kannte die Schritte, die zur Lösung des Problems erforderlich waren. Was ich nicht auswendig gelernt habe, war der Moduloperator. Das Problem bestand darin, grundlegende Mathematik in das Programm zu übertragen, nicht darin, grundlegende Mathematik zu kennen.

Ich habe den Test zum Spaß gemacht, nachdem ich ihn auf CodingHorror gelesen hatte. Ich habe gerade entschieden, dass es eine gute Basisvergleichslinie zwischen mir und formal ausgebildeten Entwicklern ist.

Ich habe dies nur als Beispiel dafür verwendet, wie ich Zeit verloren habe, wenn ich mich vorher nicht mit Mathematik in einer Computerumgebung befasst habe, um grundlegende Dinge wie Moduloperatoren nachzuschlagen, um einfache Probleme lösen zu können.

94
moraleida

In Ihrem Fall, da Sie Autodidakt sind und bereits einen guten, gesunden und No-BS-Lernansatz haben. Noch einige Vorschläge ...

Übung macht den Meister

Ich denke, Sie sollten in Programmierübungen eintauchen, wie die:

Nehmen Sie sogar die früheren Prüfungsfragen bekannter Universitäten in Ihrer Nähe oder lokaler (oder entfernter) Programmierwettbewerbe auf. Zum Beispiel haben wir in Frankreich ein Nettes für angehende High-School-Programmierer namens Prologin , das jedes Jahr eine gute Reihe von Puzzles bietet (wahrscheinlich nur Französisch, sorry, aber das ist die Art von Dingen, die ich meine).

Für mehr: Wo finde ich Programmierpuzzles und Herausforderungen?

Klassische Bücher und Referenzen

Wir könnten auch eine sehr lange Liste von erstaunlichBüchern empfehlen, aber ich würde sagen, die Zen-Antwort lautet, dass es keinen einzigen richtigen Weg zur Erleuchtung gibt.

Es ist schwer zu sagen, welche ganz oben auf der Liste stehen. Lesen Sie also eine Menge Dinge, um allgemeine Fallstricke zu lernen und Best Practices zu befolgen, wie Sie es jetzt richtig machen.

Für mehr :

Die Grenzen ausreizen

Suchen Sie auch nach Kopfkratzmaterial wie:

Nicht unbedingt als Beispiel für Dinge, die heutzutage zu tun sind, aber es lohnt sich herauszufinden, was zum Teufel dort passiert.

Peer-Systeme sind motivierend

Möglicherweise möchten Sie auch in den folgenden Communities herum lauern (und sich daran beteiligen), um Ihre Fähigkeiten schrittweise zu verbessern, indem Sie mit anderen konfrontiert werden.

Teilzeitausbildung

Wenn Sie nicht die Zeit oder Motivation haben, sich für einen weiteren 4-Jahres-Kurs oder ähnliches zu engagieren (was möglicherweise nicht einmal notwendig oder lohnend und teuer ist), können Sie online nach Lehrmaterial suchen. Diese sind natürlich nicht auf die Informatik beschränkt.

Dank der ursprünglichen Bemühungen von MIT OpenCourseWare gibt es jetzt Tonnen von Universitäten, die diesem Beispiel gefolgt sind , und Sie können eine Menge Kursmaterial auf Universitätsniveau kostenlos finden. Es ist nicht immer einfach, selbst zu navigieren und zu lesen, aber einige sind ziemlich gut gemacht. Um von Grund auf zu beginnen und ziemlich hoch zu gehen, sollten Sie auch die Khan Academy betrachten.

Einige gehen noch einen Schritt weiter und bieten kostenlose Online-Kurse an, bei denen Sie ebenfalls Zugriff auf das Kursmaterial haben, aber auch schnelle Vorlesungen und regelmäßige Selbsteinschätzungen anbieten. Besuchen Sie zum Beispiel Coursera oder dacity .

Die meisten der oben genannten veröffentlichen ihre Vorträge häufig auf Youtube oder iTunesU, sodass Sie viel Material finden, wenn Ihr Wissensdurst nicht bereits durch alle vorherigen Links gestillt wurde.

Wenn Sie etwas wollen, das der "echten" Universität näher kommt, können Sie entfernte Universitäten in Betracht ziehen, die es Ihnen auch ermöglichen, Teilzeit zu arbeiten, aber Sie müssen das Tempo einhalten und sowohl Selbsteinschätzungen als auch das Ende der Universität haben Jahresprüfungen (manchmal vor Ort), wie bei der OpenUniversity und ihren internationalen Varianten.

Leidenschaft hält dich am Laufen

  • Finden Sie ein Haustierprojekt: Erstellen Sie Ihr eigenes oder schließen Sie sich einem oder mehreren vorhandenen Softwareprojekten an und tragen Sie dazu bei.
  • Code, Code, Code. Und dann noch etwas codieren.

(und genug Augäpfel auf deinen Code werfen, um dich zu kritisieren und verschiedene Perspektiven zu haben)

Die Franzosen sagen:

C'est en Forgeant Que l'on Devient Forgeron.

Machen Sie weiter, was Sie tun, und schließlich werden Sie ein Experte. Nimmt Zeit und Arbeit.

Siehe auch Ich habe Probleme beim Lernen für weitere Vorschläge.


PS: Obwohl es ein sehr kontroverses Tool für Interviews ist und nicht dazu beiträgt, gute Kandidaten zu identifizieren, verwende ich häufig FizzBuzz, um an am wenigsten die unglaublich "schlechten" ausmerzen. Also los geht's mit dieser Übungssache! :)

144
haylem
I didn't have the if($n1 % $n2 == 0) method memorized.

Ich habe nicht lange programmiert (habe vor ungefähr 27 Monaten angefangen, mir SQL beizubringen, und vor ungefähr 20 Monaten angefangen, in Perl zu codieren), aber das obige Zitat klingt wie einige Dinge, die ich von ehemaligen Studenten gehört habe:

Wie soll ich mir merken, welche Integrationstechnik für jedes Problem verwendet werden soll?

Ich habe mir nicht gemerkt, ob ich Wahrscheinlichkeiten addieren oder multiplizieren oder "n wähle k" oder Fakultäten verwenden soll.

Warte eine Minute! Du hast gesagt, dass x gestern gleich 2 war! Jetzt ist es gleich Null?!

Okay, das letzte war wahrscheinlich ein bisschen hart ... aber der Punkt, den ich versuche, ist, dass Problemlösung ist kein Auswendiglernen. Wenn es so wäre, könnte ein Genie einen Computer programmieren, um jedes Problem zu lösen, und keiner von uns würde jemals wieder darüber nachdenken müssen (was für eine höllische Welt das wäre ...).

Nun ist es wahr, dass jedes intellektuelle Unterfangen zumindest aus ein wenig Auswendiglernen besteht. Insbesondere wenn Sie in PHP codieren möchten, sollten Sie die grundlegenden Datentypen (Zahlen, Zeichenfolgen, Arrays) und die grundlegenden Dinge verstehen, die Sie damit tun können (für Zahlen: Addition, Subtraktion, Multiplikation, Division und Modul: für Zeichenfolgen: Verkettung, Teilzeichenfolgen, Ersetzen und zumindest einige Kenntnisse über reguläre Ausdrücke; für Arrays: Verkettung, Anheften von Elementen, Ausspleißen von Elementen, Schleifen, Zählen von Elementen usw.) und die grundlegenden logischen Strukturen, die verwendet werden können (if/then/else-Anweisungen, foreach-Schleifen, while-Schleifen usw.).

Wenn Sie dann auf ein Problem stoßen, verwenden Sie das Problem, um den Kontext für die von Ihnen benötigten Tools bereitzustellen. Bei FizzBuzz müssen Sie feststellen, wann eine Zahl durch 3, 5 oder 15 teilbar ist. Okay, es handelt sich also um Zahlen. Mit welchen grundlegenden Tools können wir feststellen, wann eine Ganzzahl durch eine andere teilbar ist? Nun, der Moduloperator. Also benutze das. (Wenn Ihre Nummer $n Ist, können Sie sich vorstellen, ob die letzte Ziffer von $n 0 oder 5 ist und/oder ob die Ziffern von $n Addiere etwas, das durch 3 teilbar ist, aber ich schweife ab ...) Du musst dies für jede Zahl zwischen 1 und 100 tun. Um zu vermeiden, dass ein Karpeltunnel entsteht, benutze eine foreach Schleife.

Die Moral der Geschichte ist, dass wenn Sie einerseits sagen "Ich bin grundsätzlich in der Lage, jedes komplette System in PHP zu schreiben" und andererseits FizzBuzz nicht codieren können, die erste Behauptung falsch ist. Einige meiner ehemaligen Kalkülschüler schworen auf und ab, dass sie die Konzepte verstanden, aber sie konnten die Probleme bei der Prüfung einfach nicht lösen ... oder die Hausaufgabenprobleme ... oder die Quizprobleme. Sie haben sich auch in Bezug auf ihr Verständnis geirrt.

Hören Sie auf, sich zu entschuldigen, und lernen Sie die Grundlagen.

60
user11946

Sie können denken, dass FizzBuzz ein Spielzeugproblem ist; Wann muss ich jemals den Modul-Operator in einem echten Programm verwenden? Aber du benutzt es wirklich die ganze Zeit. Drei gängige Beispiele:

  1. Sie zeigen eine Tabelle an und möchten abwechselnde Hintergrundfarben für verschiedene Zeilen. Sie prüfen, ob eine Zeile gerade ist (row_number % 2 == 0) und zeigen eine Farbe für gerade Zeilen und eine für ungerade Zeilen an.
  2. Sie haben eine Sammlung von Objekten, die Sie durchlaufen, und möchten eine Tabelle mit N Objekten pro Zeile ausdrucken. dann ist das Kriterium für das Hinzufügen eines Zeilenumbruchs (item_number% N == 0). Ich hatte tatsächlich eine SO Frage zu diesem genaues Verhalten obwohl in dieser Vorlagensprache die Bedingung if item_number % N == 0 wurde als Äquivalent geschrieben (if item_number|divisbleby: N).
  3. Sie führen mehrere Vorgänge aus, die Sie zu einer Transaktion gruppieren möchten, die erst festgeschrieben wird, wenn die Gruppe aus Effizienzgründen eine bestimmte Größe erreicht. Möglicherweise verwenden Sie die Google-Daten-API und möchten nicht, dass der HTTP-Header-/Authentifizierungsaufwand für die Erstellung einer neuen Transaktion für jeden Vorgang verwendet wird. Sie stapeln sie daher in Gruppen von 50 Vorgängen. Oder Sie speichern Datensätze in Ihrer Datenbank und möchten die Transaktion festschreiben, wenn sie eine angemessene Größe hat. Etwas wie if cur_item_number % 50 == 0 then commit_data.

Sicher gibt es andere Möglichkeiten, all diese Dinge zu tun. Sie können jedoch Fizz Buzz ausführen, ohne den Moduloperator zu verwenden oder die Float-Division mit der Integer-Division zu vergleichen. Für FizzBuzz könnten Sie beispielsweise den folgenden Pseudocode ausführen.

div_by_3_rem = 0
div_by_5_rem = 0
for(i = 0; i< 50; i++) {
    if(div_by_3_rem == 0 && div_by_5_rem == 0) {
       print "FizzBuzz"
    } Elif(div_by_3_rem == 0) {
       print "Fizz"
    } Elif(div_by_5_rem == 0) {
       print "Buzz"
    } else {
       print i
    }
    div_by_3_rem += 1
    div_by_5_rem += 1
    if(div_by_3_rem == 3) {
       div_by_3_rem = 0
    }
    if(div_by_5_rem == 5) {
       div_by_5_rem = 0
    }
}

Wenn Sie eines Tages ein großartiger Programmierer sein möchten, sollten Sie nicht in ein Sprachbuch einsteigen. Ja, in einem PHP/Java-Buch erhalten Sie Antworten von Google/Stackoverflow und halb funktionierenden Programmen viel schneller als alles andere. Aber um tatsächlich wissen zu können, wie man qualitativ optimale Programme schreibt und wie ein Programmierer denkt, muss man sich mit echten CS-Büchern auseinandersetzen.

Beginnen Sie mit einem CS-Buch, das eine Programmiersprache und den CS-Hintergrund einführt, mit dem berühmten Beispiel Struktur und Interpretation von Computerprogrammen (das Schema lehrt - ein LISP-Dialekt) oder möglicherweise etwas anderem wie - Think Python Wie man wie ein Informatiker denkt (was ich nicht gelesen habe). Beide sind online kostenlos.

Sie müssen schließlich ein gutes Algorithmusbuch lesen, das beste ist CLRS-Algorithmen (nicht kostenlos), obwohl dieses kostenlose Online Algorithmusbuch ein kostengünstiger Ersatz sein könnte (obwohl wenn Sie können nur CLRS kaufen). Das Algorithmusbuch zeigt Ihnen, wie Sie Computerprobleme lösen können, und führt Sie in eine Vielzahl von Datenstrukturen (Arrays/verknüpfte Listen/Heaps/Binärbäume/B-Bäume/HashTables) und wichtige Algorithmen ein, die Sie für eine optimale Verwendung benötigen . Sie müssen sich nicht jeden Beweis merken oder wissen, wie man jeden Algorithmus perfekt schreibt (wer jemals einen Fibonacci-Haufen verwendet). Sie sollten jedoch intuitiv wissen, dass zwei verschachtelte for-Schleifen O (N ^ 2) sind. Vergleichssorten sind bestenfalls O (N lg N), die binäre Suche ist O (lg N), kann den Median in O (N) finden, warum Festplattendatenbanken B-Bäume verwenden usw.). Mit fundierten Kenntnissen des Algorithmus-Buches können Sie zumindest technische Programmierinterviews der Sorte Google/Facebook erstellen. Überfliegen/lesen Sie beim Lesen von Programmierbüchern nicht nur. Sie werden viel besser lernen, wenn Sie anhand von Beispielen und Problemen arbeiten/programmieren und die Logik aktiv durchdenken.

Ich würde auch ein Buch über Software-Engineering (entweder Code Complete oder Pragmatic Programmer) empfehlen, nachdem Sie das CS- und Algorithmus-Buch durchgearbeitet haben, in dem bewährte Methoden zum Schreiben von wartungsfähigem Code (klare Namen; Kommentare nur bei Bedarf) vermittelt werden ; Code zusammenhalten; bei Bedarf umgestalten; Versionskontrolle verwenden; etc).

27
dr jimbob

Aber ich war gestern gestrandet und habe versucht, eine Lösung für den FizzBuzz-Test zu finden (nicht bei Google), weil ich die if-Methode ($ n1% $ n2 == 0) nicht gespeichert hatte.

Niemand merkt sich dieses Ding. Du solltest es dir selbst einfallen lassen. Wenn Sie den Moduloperator kennen und wissen, was er tut, passt er trivial zum FizzBuzz-Problem.

Ich werde hier auf die Nerven gehen und generell vorschlagen, dass das Problem PHP ist. Ich möchte sagen, dass Java ist die schlechteste Sprache, die jemals entwickelt wurde, und PHP ist die schlechteste Sprache, die jemals entwickelt wurde , weil selbst seine Entwickler zugeben, dass es nie entworfen wurde. Es ist schwer Gute Software-Engineering-Praktiken zu erlernen, wenn Ihre Umgebung praktisch die Definition dafür ist, wie nicht zu tun ist. Und abhängig von einem Framework, um alles zu erledigen, heißt das nicht viel.

Momentan verbringe ich meine Freizeit mit Lernen Java Für Programmierer (eine Sprache in den Griff zu bekommen, von der jeder sagt, dass sie schwierig/anspruchsvoll ist)

Java ist eine der einfachsten und schlechtesten Sprachen, die es gibt. Es gibt nur eines: die durch Müll gesammelte manuelle Vererbung. Wenn Ihre Freunde oder Berater sagen, dass Java ist schwierig, dann finden Sie neue Freunde. C++ ist eine schwierige Sprache, die viele Konzepte enthält, und dass niemand wird bestreiten. Sie könnten auch C # machen, das zumindest einige Generika und Lambdas enthält.

Wie werden Sie das Codieren lernen, wenn Ihre Sprachen von Leuten entworfen und implementiert wurden, die nicht codieren können, und Sie für alles, was Sie tun, auf Frameworks angewiesen sind?

22
DeadMG

Ich denke, Sie müssen sich genau ansehen, warum Sie gestrandet waren, um FizzBuzz herauszufinden. Angenommen, Sie haben sich daran erinnert, dass es einen Operator gibt, der $n sag dir, ob es durch eine Zahl teilbar ist. Und Sie haben Pech zu vergessen, was es ist. Gut, warum versuchst du nicht, es auf andere Weise zu tun? Wenn Sie etwas über Code wissen, sollten Sie in der Lage sein, ein Dutzend anderer Möglichkeiten zu finden. Einige von ihnen sehen vielleicht komisch aus - wie zum Beispiel, wenn Sie jedes Vielfache von 5 in ein Array einfügen und dann prüfen, ob $n ist unter ihnen - und es ist eine schlechte Lösung, aber es wäre immer noch eine Lösung. Sie sagen jedoch, Sie hatten keine, Sie steckten einfach fest. Dies kann ein Symptom für ein größeres Problem sein.

Es gibt zwei Dinge in der Programmierung, die Sie lernen müssen.

  1. Trickkiste. Wie man Dateien in PHP liest, wie man XML in Java analysiert, wie man eine Verbindung zur Datenbank in Python herstellt. Einige Leute merken es sich, aber tatsächlich sind diese Dinge nur dann auswendig zu lernen, wenn Sie sie jeden Tag benutzen. Andernfalls gehen Sie einfach zu den Dokumenten und schlagen nach. Diese Dinge haben keine Substanz außer ihrer wörtlichen Form - Sie müssen nur wissen, wie die bestimmte magische Beschwörung klingt und was das Ergebnis sein wird.
  2. Denkweise. Das ist das Wichtigste. So programmieren Sie, und das hat nichts mit Auswendiglernen zu tun. Sie müssen verstehen, wie Sie dem Computer erklären, was Sie tun möchten, welche Möglichkeiten es gibt und welche davon in einem bestimmten Fall verwendet werden müssen. Angesichts moderner Tools und moderner Dokumentation ist es plausibel, dass man ein ganzes CMS in PHP mit dem "Bag of Tricks" -Ansatz schreiben könnte, aber sobald Sie auf eine Aufgabe stoßen, die noch nicht fertig ist Lösung, Sie sind "stecken".

Aus Ihrer Beschreibung geht hervor, dass Sie mit dem ersten Teil begonnen haben, aber im zweiten Teil etwas fehlen. Ein guter CS-Kurs hilft normalerweise viel dabei, ist aber nicht der einzige Weg. Der Versuch, verschiedene Probleme zu lösen und darüber zu lesen, wie diese Probleme gelöst werden müssen, ist das Lesen der hier zitierten grundlegenden Bücher - all das würde helfen. Sobald Sie die Einstellung des Programmierers verstanden haben, werden Sie feststellen, dass die Verwendung einer neuen Trickkiste kein großes Problem darstellt. Sie müssten hier und da natürlich googeln, aber Sie werden nie gestrandet sein.

11
StasM

Sie werden gut in der Entwicklung, so wie Sie in allem anderen gut werden: üben. In der Programmierwelt gibt es ein schönes Konzept namens Code kata . Dies ist im Wesentlichen eine Übung, bei der Sie eine Lösung für ein relativ kleines Problem codieren, analysieren, was gut und was schlecht ist, alles verschrotten und erneut ausführen. FizBuzz ist eine eigenständige Kata. Also mach es und mach mehr. Wenn Sie Dinge finden, die nicht sehr gut zu sein scheinen oder einfach nicht funktionieren, recherchieren Sie und gehen Sie gründlich damit um. Stellen Sie Fragen auf Q & A-Websites, lesen Sie Artikel und Blogs, sehen Sie, wie andere damit umgehen, und üben Sie dann , was Sie gelernt haben.

Während dieser Übung erfahren Sie, wie viel zusätzlichen mathematischen/theoretischen Hintergrund Sie möglicherweise benötigen. Wenn Sie auf Konzepte stoßen, mit denen Sie sich einfach nicht auseinandersetzen können, lesen Sie diese und ihre vorausgesetzten Kenntnisse und entscheiden Sie von Fall zu Fall, ob Sie einen Kurs belegen möchten oder was Sie haben, um Ihr Wissen zu erweitern theoretischer Hintergrund.

9
Erik Dietrich

... weil ich die if-Methode ($ n1% $ n2 == 0) nicht gespeichert hatte.

Ich interpretiere das so, dass Sie den Moduloperator nicht kannten und/oder sich nicht daran erinnerten. In diesem Fall müssen Sie zunächst die Sprachkonstrukte in der von Ihnen verwendeten Sprache überprüfen. Überprüfen Sie alles, was Sie nicht kalt kennen, und lernen Sie alles, was Sie einfach nicht wissen.

8
John MacIntyre

Codieren Sie weiter, lernen Sie weiter. Mit genügend Engagement werden Sie sich schließlich FizzBuzz ansehen und sich fragen, warum Sie überhaupt darüber nachdenken mussten. Viele Unternehmen stellen zu Beginn ihrer Interviews eine Frage im FizzBuzz-Stil. Wenn Sie dies einmal nicht tun, haben Sie zumindest etwas über den Einstellungsprozess gelernt.

Schreiben Sie einfach weiter Code, lassen Sie sich Projektideen einfallen und recherchieren Sie.

5
joshin4colours

Darf ich empfehlen, JavaScript vor Java, C++ zu lernen? Gründe für Sie:

  1. Wird im Front-End-Design verwendet (jQuery, einige Ihrer WordPress Plugins, Twitter-Feeds, Laden von Datenbanken in Ihren Browser über JSON mit wenig bis gar keiner Back-End-Arbeit, Formularvalidierung usw.)
  2. Kann serverseitig über Node.js verwendet werden
  3. Kann verwendet werden, um Hybrid-Apps für iOS, Android, Win8 usw. Zu erstellen
  4. Wenn Sie JS studieren, können Sie die Leistung von Webseiten in verschiedenen Browsern und Geräten besser verstehen
  5. JS wurde entwickelt, um für Neulinge freundlicher zu sein
  6. Sie kennen HTML & CSS bereits (ich hoffe;), das hilft also bei JS

Kostenlose Ressourcen für Neulinge

http://www.codecademy.com/tracks/code-year
https://stackoverflow.com/tags/javascript/info
Ich hatte ungefähr 10 weitere Links, aber SE lässt mich diese nicht posten, bis ich 10 Wiederholungen erreicht habe.

Das Erlernen von C++, Java usw. ist ebenfalls hilfreich, aber IMHO hat nicht die allgemeinen Auswirkungen auf die Webprogrammierung wie JS, da Sie es sowohl im Front- als auch im Back-End verwenden können. Habe Spaß!

4
tomByrer

Sie könnten andere finden und ihnen helfen, z. Geben von Code (Offenlegung: meine Website) oder Code für Amerika oder was auch immer. Dies ist eine hervorragende Möglichkeit, um mehr Probleme mit der Erstellung von Nicht-PHP-Webseiten zu lösen und sich auch gut zu fühlen.

Wenn Sie ein Problem zu lösen haben - oder helfen, es zu lösen oder einfach nur zu verstehen -, ist das Aufnehmen des Codes eine Selbstverständlichkeit. Ein Ziel zu haben ist der beste Weg, etwas zu lernen.

3
Will

Ich glaube nicht, dass ich mich weigern würde, jemanden zum Mieten zu empfehlen, weil er nicht wusste, dass es der Moduloperator ist, vorausgesetzt:

  1. Sie wussten, dass es sich um eine Art Betreiber handelte.
  2. Sie konnten mir sagen, was "Modul" war, als ich sie dazu aufforderte.

Es ist nicht immer (obwohl normalerweise)%, und einige Sprachen sind seltsam. Und zum Teufel, nach einem Jahrzehnt kann ich nicht ehrlich sagen, dass ich alle Perl-Operatoren kenne (und was macht das Raumschiff noch einmal?), Noch kann ich mich immer perfekt an die bitweisen Operatoren erinnern. Es ist ein paar Jahre her, seit ich alles getan habe, was diese überhaupt erfordern würde.

Was mich zögern lassen könnte, jemanden zu empfehlen, wäre, wenn er eine Panikattacke bekommt, weil er diese Frage/diesen Test verpasst hat. Das könnte mir den Eindruck vermitteln, dass sie etwas zu grün waren (es sei denn, es war eine sehr Einstiegsposition). Niemand braucht jemanden, der diese Dinge auswendig lernt (oder für nötig hält). Sie brauchen jemanden, der weitaus umfassendere Konzepte versteht. Es wird niemanden interessieren, ob Sie das bei Google nachschlagen, aber Sie müssen im Interview sicher sein, dass das Wissen um% keine große Sache ist und dass Sie wissen, dass Sie "Operator" als Schlüsselwort verwenden, wenn Sie schnell googeln Suche.

Auch dies ist nur eine Idee ... aber wenn Ihr örtliches Community College ein Compsci-Programm hat, würden Ihre anderen Credits alle übertragen, und Sie würden wahrscheinlich nur etwa 20 Credits für den 2-Jahres-Abschluss benötigen. Könnte das in einem Semester fast beenden. Sie würden Sie einen Datenstrukturkurs machen lassen, hoffentlich auch Algorithmen ... könnten Sie ein bisschen stärker machen.

0
John O

Sie konnten das FizzBuzz-Problem also nicht lösen. Große Sache. Jetzt können Sie, und ich wette, Sie werden nie all die unzähligen Möglichkeiten vergessen, wie. Versuchen Sie, nicht so eifrig zu sein, sich als schlechten Programmierer zu brandmarken, nur weil Sie ein dummes Problem nicht auf Anhieb lösen konnten.

Das ist ein Problem. Das andere ist, dass Sie sich ein bisschen hinter der Programmier-Lernkurve zu fühlen scheinen. Wie andere gesagt haben, codieren Sie weiter und lesen Sie weiter. Je mehr Sie tun, desto besser werden Sie. So einfach ist das. Beginnen Sie mit dem, was Sie für das größte Loch in Ihrem Hintergrund halten, und fahren Sie von dort aus fort.

0
Nick Spreitzer