Zuhause arbeite ich an einem großen persönlichen Projekt, das in Java geschrieben wurde. Ich habe kürzlich eine Anstellung als C # Entwickler gefunden.
Nach einem 8-stündigen Arbeitstag beim Lesen von C # -Code fällt es mir sehr schwer, zu Hause nach Java zu wechseln. Tatsächlich ist mein Projekt zu Hause fast völlig zum Erliegen gekommen, seit ich angestellt bin.
Zuerst dachte ich, ich müsste auf den Urlaub warten, um tatsächlich zurück nach Java zu wechseln, aber selbst nach einer Woche, in der ich kein C # im Kopf hatte, schaffte ich es nicht, wieder in Java-Stimmung zu kommen. Ich möchte nicht zugeben, dass mein Heimprojekt gestorben ist, aber ich sehe keinen Weg, dieses Problem zu überwinden.
Wenn es so schlimm ist, können Sie das Projekt in C # erneut starten? Es kann schneller sein als warten auf Ihre Java-Stimmung zurückzukehren. Es sollte schneller sein als von Grund auf neu zu starten, da Sie bereits die Logik und die Domäne programmiert haben, so dass Sie in der Lage sind, sich durch dieses Bit zu übersetzen und zu schreiben.
Verwenden Sie in beiden eine gute (und vergleichbare) IDE. Ich wechsle zwischen C # und Java und finde die Kombination von Visual Studio mit JetBrains ReSharper für C # und IntelliJ Idea für Java macht dies einfach.
Feiern Sie die Unterschiede - ich finde einen Zauberspruch in C # hilft meinem Java und umgekehrt. Unterschiede in beispielsweise den Sammlungs-Frameworks helfen Ihnen dabei, die Implementierungen in den einzelnen Sprachen genauer zu verstehen.
Nutzen Sie die Ähnlichkeiten zu Ihrem Vorteil. Syntaktisch sind die Unterschiede nicht groß. Sie sollten Code schreiben, nicht C # schreiben oder Java schreiben. Wie Steve McConnell es ausdrückte, "code in die Sprache und nicht in der Sprache" (oder so ähnlich - denke, dass es von Code Complete ist ).
Lesen Sie Code Complete , wenn Sie es noch nicht getan haben - großartige Übung zum Umblättern zwischen Sprachen.
Ich nehme an, Sie könnten dies die gewohnheitsmäßige Zeit bis zur Genesung nennen .
Es kann helfen, auf Folgendes zu verallgemeinern: Programmierlogikwissen + Syntax und API = Sprachkenntnisse ... weil ...
Menschen sind Gewohnheitstiere und bauen effiziente Arbeitsmethoden, Erinnerungen und Psychologie auf der Grundlage von Umgebungen und Aufgaben, die wir am häufigsten durchführen. Das ist eine gute Sache.
Ich habe vor kurzem viel Zeit mit der Programmierung in Python verbracht, nachdem ich lange Zeit fast 100% C hatte. Ich habe Python ganz leicht aufgenommen und wechsle jetzt wieder zu C. Zu meiner
Ich kam zu dem Schluss, dass:
Ich denke, der Trick besteht darin, neue Fertigkeiten mit alten Fertigkeiten in Verbindung zu bringen , damit Sie bei der Ausführung neuer Aufgaben Ihre Gedanken über die alten Fähigkeiten und deren Zusammenhänge nachdenken. Viele theoretisieren, dass Lernen auf dieser relationalen Grundlage in Ihrem Verstand basiert, und das Wissen darüber kann Ihnen helfen, die Lernkurve und die Zeit bis zur Genesung zu reduzieren.
Stellen Sie sich das wie eine relationale Datenbank vor. Wenn Sie etwas Neues machen, erstellen Sie einen Forging-Schlüssel und normalisieren Sie die Dinge. Erstellen Sie keine neue Tabelle oder Datenbank.
Lernen Sie eine Generalisierung der Programmierlogik und bauen Sie darauf nur mit den Änderungen zwischen den Sprachen auf. Sie werden schneller lernen / wechseln.
Entschuldigung für die schlechte RDBMS-Analogie
Dein Gehirn ist voll.
Volles Gehirn http://img146.imageshack.us/img146/2469/brainfull.gif
Erstens, wenn Sie eine 8-Stunden-Tag-Programmierung in einer beliebigen Sprache durchgeführt haben, wechselt die Sprache möglicherweise nicht so sehr, als wäre nur eine Pause von der Programmierung erforderlich. Ich kann nur für mich selbst sprechen, und ich weiß, dass einige SO's vielleicht anders fühlen, aber ich brauche oft eine Pause vom Programmieren nach einem vollen Arbeitstag.
Momentan bevorzuge ich es, in Python zu programmieren, aber mein Job verlangt, dass ich Shell-Skripting, Java, JavaScript, PHP und IDL (das ist Interaktive Datensprache, nicht Interface Description Language) mache. Also versuche ich zu Hause etwas Python zu machen, um diese Fähigkeiten vor dem Atrophieren zu bewahren. Was ich finde (abgesehen davon, dass ich oft eine Pause brauche, wie oben erwähnt), ist, dass ich meine Sprachen sehr verwirrt bekomme, wenn ich zum ersten Mal von einem zum anderen wechsele. Es ist einfach, an dieser Stelle aufzugeben, aber ich finde, dass ich, wenn ich mental tiefer in die Programmierung mit einer bestimmten Sprache eintrete, weniger Fehler in der Sprachverwirrung mache. Wenn Sie also die erste Abneigung gegen Java überwinden können, werden Sie Erfolg haben. YMMV, natürlich, und viel Glück!
Dies liegt an etwas in der Psychologie genannt Interferenz-Effekt oder Stroop-Effekt. Die beiden Aufgaben hängen eng miteinander zusammen (Programmierung), so dass das von einer Sprache in den Kopf gebrachte Wissen in das Wissen eingreift, das die andere Sprache Ihnen in den Sinn bringt.
Hier ist ein nettes Beispiel für eine einfache Aufgabe, die aufgrund dieses Effekts schwer zu tun ist:
Es ist sehr schwierig, zwischen zwei verschiedenen Frameworks zu wechseln. Es ist noch schwieriger, wenn du sie nicht lange gemacht hast.
Die Frage, glaube ich, muss zu dir zurückkommen, indem du dich fragst, was du jetzt bevorzugst. Wenn Sie Java immer noch mögen und Ihre Fähigkeiten in Java beibehalten möchten, müssen Sie wahrscheinlich mehr Zeit damit verbringen, halb-täglich. Nachts und am Wochenende damit arbeiten und dafür sorgen, dass es keine langen Pausen dazwischen gibt.
Wenn Sie jetzt C # bevorzugen und wirklich kein Interesse daran haben, Java zu verfolgen, würde ich das Projekt zu Hause in C # umwandeln, da dies Sie nur zu einem besseren C # -Programmierer macht und Sie bei Ihrer täglichen Arbeit besser macht.
Ich frage mich, ob es mit den Ähnlichkeiten zwischen diesen bestimmten Sprachen zusammenhängt. Zugegeben, ich habe C # nicht wirklich benutzt, aber es scheint Java ziemlich ähnlich zu sein. Die Ähnlichkeiten können den Kontextwechsel von Arbeit zu Hobby erschweren. Vielleicht könntest du lernen und zu Python wechseln , Haskell , Lisp usw. für Ihr persönliches Projekt.
Sie könnten versuchen, in Ihrer Freizeit etwas Zeit in einer völlig anderen Sprache zu verbringen. Schreiben Sie zum Beispiel etwas in Haskell , Prolog , Quecksilber , Oz oder Faktor .
Wenn (wenn?) Sie nach Java zurückkommen, werden seine Ähnlichkeiten mit C # viel auffälliger sein als seine Unterschiede.
Das ist normal. Es kann ein Problem der kognitiven Flexibilität und Inflexibilität sein. Es passiert auch mit der menschlichen Sprache.
Überprüfe dich selbst. Wenn du zu müde bist, um zu Hause zu arbeiten, nachdem dein normaler 8 Stunden Arbeitstag den C # -Code gelesen hat, und du willst auch so viel, um dein Projekt zu beenden, und jetzt findest du es schwierig, in Java zu programmieren an Angst leiden. Wenn Sie etwas Energie trinken, Kaffee, Cola nehmen, dann befürworten Sie Angst.
Es gibt Übungen, um sich selbst flexibel zu halten. Einer von ihnen ist, für eine Weile (ein paar Minuten) nach Java zu wechseln, anstatt so viel Zeit in C # zu verbringen. Es ist wie wenn Sie in Java programmieren und zu SQL und dann zu HTML wechseln müssen. Sie sind flexibel und wechseln.
Viel Glück.
Wenn ich das beantworte, muss ich nach eigenen Erfahrungen einige Annahmen treffen. Ich schreibe Code in C ++ oder c # auf Nebenprojekten, während ich bei der Arbeit gezwungen bin zwischen php und python zu hängen Es gab eine Zeit, in der ich keinen festen Job hatte und bei Nebenprojekten ziemlich beschäftigt war.
Als ich meinen Tagesjob bekam, war der Enthusiasmus, den ich für meine Nebenprojekte hatte, aufgrund zweier wichtiger Faktoren geringer ... Wie du, war ich 8 bis 9 Stunden am Tag bei meinem Job.
Zweitens hatte ich eine erhöhte stetige Quelle an zusätzlichen Einnahmen, so dass die Motivation, nur um meinen Lebensunterhalt zu verdienen, drastisch reduziert wurde und ich mich mehr und mehr entschied, keine neuen Projekte nach der Arbeit anzunehmen, weil ich nicht mehr in der Stimmung war .
Ich entdeckte auch, dass ich mit dieser neuen Einstellung anfing, Rookie-Fehler zu machen, wenn ich in C ++ im Gegensatz zu früher schrieb. Nachdem ich meine Einstellung geändert hatte, nahmen die Dinge wieder zu.
Meine beste Vermutung ist, dass du dasselbe durchmachst, das ich durchgemacht habe. Ich schlage vor, dass Sie neue Wege finden, um motiviert zu werden, sobald Sie die Arbeit verlassen, und es wird Ihnen leichter fallen, mit der Programmierung in Java fortzufahren.
Ich habe eine ähnliche Sache bei der Arbeit. Ich schreibe Code in JavaScript und c #, aber zu Hause schreibe ich Code in Python und JavaScript.
Ich habe mich manchmal dabei erwischt, wie ich in c # Code im Python-Stil geschrieben habe und dann meine Tests fehlgeschlagen habe. Ich stimme Nat zu, dass das Arbeiten in einer Sprache, die sich von Ihrer Arbeitssprache völlig unterscheidet, Ihnen helfen wird, die Ähnlichkeiten zu erkennen, und dass es nur Unterschiede geben wird, wo die Bibliotheken existieren!
Ich denke, Java ist für die Fleißigen, und .net ist für die Faulen. Vielleicht würde sich jemand dafür ärgern, aber ich möchte sagen, dass ich eine .Neter bin. Die .net-Syntax ist weniger streng als die Java's. Tatsächlich gibt es im Quellcode von .net einige Vereinfachungen. Zum Beispiel können wir Convert.toDateTime (string) verwenden, um einen String direkt in DateTime umzuwandeln. Aber in Java sollten wir das Format des Strings wie "yyyy-dd-mm" definieren, dann können wir es konvertieren.
Tags und Links programming-languages