Bearbeiten:
Wie verwalten Sie einzelne Aufgaben, wenn Sie an mehreren Sprachen arbeiten?
Mit wie vielen verschiedenen Programmiersprachen arbeiten Sie bei der täglichen Aufgabenbearbeitung?
- Machen Sie eine mentale Veränderung, wenn Sie an jeder Sprache arbeiten?
- Priorisieren Sie sie und behalten Sie jede Aufgabe pro Sprache separat.
- Codieren Sie in Schritten, basierend auf dem Fortschritt jeder Aufgabe, die nahtlos zwischen Sprachen / IDE / Umgebung wechselt?
- Wenden Sie auf alle Sprachen den gleichen Codierungsstil / die gleichen Codierungskonventionen an (nicht die Syntax)?
Verbunden:
Ist es normal, dass Programmierer gleichzeitig an mehreren Projekten arbeiten?
.equals
in Javascript zu vergleichen . Zumindest irre ich mich immer so, anstatt es==
in Java zu benutzen .Antworten:
Heute habe ich Java, Python, C ++ und SQL geschrieben (wenn es darauf ankommt). Und ich bin seit weniger als 2 Stunden auf der Arbeit.
Wenn Sie dies regelmäßig tun, wird die mentale Verschiebung vernachlässigbar. Es hat nichts mit Multitasking zu tun. Es ist so, als würde man eine Weile laufen, dann ein Auto fahren, dann ein Fahrrad fahren und dann schwimmen. Kein Problem, denn es sind sequentielle Dinge.
Unabhängig davon ist es wichtig, eine Aufgabe zu erledigen, bevor Sie zur nächsten übergehen. Ich neige dazu, Aufgaben in Bezug auf eine konkrete Funktionalität, einen Fix oder dergleichen zu definieren. Oft wird diese Aufgabe mit nur einer Sprache erledigt, aber es können mehrere von ihnen erforderlich sein. Wenn Sie beispielsweise mit JNI arbeiten , nehmen Sie in der Regel Änderungen parallel sowohl an der Java-Seite als auch an der nativen Seite vor.
Einige Antworten:
Es ist wichtig, nahtlos zwischen IDEs, Editoren und Umgebungen wechseln zu können. Normalerweise halte ich sie alle die ganze Zeit offen.
Wenn es sich um eine Schnittstelle handelt, über die zwei Sprachen sprechen, müssen ja - Variablennamen und dergleichen ähnlich sein. Ansonsten versuche ich, den typischen Codierungsstil dieser Sprache anzuwenden.
quelle
Hier bildet sich ein Muster:
Also für mich ist es: Javascript, HTML und CSS, C #, Transact-SQL und Windows Powershell.
Wenden Sie denselben Codierungsstil / dieselben Konventionen für alle Sprachen an (keine Syntax)?
Nein, ich lege Wert darauf, nach der Konvention der Sprache zu programmieren. Ein einfaches Beispiel:
Wenn ich visuell unterschiedliche Kodierungskonventionen verwende, kann ich den mentalen Wechsel zwischen den Sprachen einfacher gestalten. Umgekehrt, wenn mein Code in jeder Sprache gleich aussieht, werde ich syntaktische Fehler machen, wenn ich vergesse, in welcher Sprache ich programmiere.
quelle
Wie von SK-logic angegeben, sollte die mentale Verschiebung kein Problem sein, wenn Sie gut ausgewählte domänenspezifische Sprachen verwenden. Aber oft kann man die Sprache nicht auswählen, so dass es manchmal einen Moment dauert, um zu wechseln. Nach meiner Erfahrung liegt die Schwierigkeit eher in der Umschaltsyntax als im Umschalten des Programmierstils. Die einzige ärgerliche Verschiebung, die ich immer erlebe, ist die Verschiebung des Kommentarstils : Wenn ich nur eine Datei öffne, um schnell eine Codezeile zu ändern, passiert Folgendes häufig:
quelle
In meinem letzten Job: Java, C ++, C #, JavaScript und VBScript.
Aber zum Glück befanden sich alle oben genannten Themen in sehr unterschiedlichen Kontexten (und in einigen Produkten). Wenn Sie also jede Codebasis gut genug kannten, war der mentale Wechsel zu verschiedenen Kontexten eigentlich recht einfach und logisch.
In Wahrheit störte mich mehr die Unterbrechung durch Probleme mit dem Kundensupport. Der interne Wechsel zu einer Aufgabe in einer anderen Sprache war an sich nie ein Problem.
quelle
Ich arbeite mit 2 Sprachen: C # und Python.
Ich benutze sie beide im selben Projekt, aber offensichtlich für verschiedene Aufgaben.
Wenn ich an einer Aufgabe arbeite, arbeite ich an dieser Aufgabe, bis sie vollständig ist oder bis ich mich nicht mehr darauf konzentrieren kann. Das heißt, wenn ich zwischen den Sprachen wechseln muss, gibt es kaum oder gar keine kognitiven Dissonanzen, da ich bei der letzten Aufgabe bereits aus dem Denken in beiden Sprachen herausgekommen bin.
Zugegeben, ich mache eine kurze Pause, wenn ich aus einer Aufgabe herauskomme, was wahrscheinlich sehr hilfreich ist.
quelle
So wenig wie möglich. In der Regel handelt es sich dabei um 1. Python plus 2. HTML-Templating, 3. HTML + CSS und manchmal 4. Javascript. Der Wechsel von Python zu JS erfordert definitiv eine mentale Veränderung, auch weil ich verschiedene Tools verwenden muss.
Ich füge HTML + CSS getrennt von HTML-Vorlagen hinzu, auch wenn es sich möglicherweise nicht um Sprachen an sich handelt (oder diese abhängig von Ihrer Religion sind), da dies auch eine mentale Verschiebung und die Verwendung anderer Tools erfordert, obwohl es nicht so schlimm ist, zu wechseln Javascript. Aus der Sicht des Designs mit HTML + CSS zu fummeln, damit die Seite wie das erforderliche Modell aussieht, ist eine andere Einstellung als das Erstellen von HTML-Vorlagen. Aber es ist orthogonaler zu Python als Javascript, was bedeutet, dass ich meine Programmier-Denkweise für eine andere ändern muss. :)
quelle
Täglich benutze ich:
Ich verwende gelegentlich auch Python, Java und XML (zählt das?). Meine Aufgabe besteht darin, verschiedene Websites zu bearbeiten, die in einer beliebigen Web-Sprache erstellt werden können (sogar eine Perl-Sprache) und ganz andere Paradigmen / Vorlagen (prozedural, MVC, OOP usw.) verwenden.
Zur Beantwortung der Frage: Ich verwende hauptsächlich Notepad ++ als meine IDE für die ersten 5 aufgelisteten, dann Visual Studio für Asp.Net.
Es kann schmerzhaft sein, schnell zwischen den einzelnen Sprachen zu wechseln - wenn Sie sich daran erinnern, ob Sie Semikolons am Zeilenende benötigen oder ob Schleifen geschweifte Klammern haben oder nicht. Der Wechsel von VBScript zu JScript ist das absolut Schlimmste - beide Dateien enden mit .asp und sehen auf den ersten Blick ziemlich ähnlich aus. Daher dauert es eine Weile, bis ich herausgefunden habe, warum ich Fehler erhalte.
quelle
Momentan schreibe ich Ruby, PHP, Java, C und JavaScript und werde jeden Tag mindestens 1 Stunde schreiben. Das Hauptproblem ist wirklich, die Zeit zu finden, da sie alle für nicht verwandte Projekte sind.
Mentale Verschiebung
Mein Arbeitsstil ist so, dass ich gerne lange arbeite. Leider bedeutet dies, wenn ich nur eine einzige Sache anhabe und auf eine mentale Blockade mit einem Stück Code stoße, wird es lange dauern, bis ich darüber hinweg bin. Ich finde es auch nicht hilfreich, eine Pause zu machen. Indem ich andere Projekte und insbesondere andere Sprachen habe, zu denen ich wechseln kann, wenn ich stecken bleibe, bis ich wieder in der Originalsprache bin, habe ich sofort eine Lösung.
Daher gibt es ja eine mentale Verschiebung und ich denke, das macht mich viel produktiver.
Aufgaben priorisieren
Ich verwende einen Task-Manager (gTasks für Android) und habe für jedes Projekt eine eigene Aufgabenliste. Wenn ein Projekt mehrere Sprachen erfordert, trenne ich sie nicht. Dies liegt normalerweise daran, dass sie in irgendeiner Weise stark miteinander verwandt sind. Zum Beispiel JavaScript und Ruby für einige AJAX-Sachen. Wenn die Sprachen technisch für dasselbe Projekt sind, das Projekt jedoch so umfangreich ist, dass sie im Wesentlichen nichts miteinander zu tun haben, zähle ich sie wahrscheinlich als separate Projekte.
Im Allgemeinen ist meine Priorität "Welche Liste die meisten Aufgaben hat", aber ich werde immer wechseln, wenn ich bei einem Problem stecken bleibe.
Kodierungskonventionen
Es ist eine Mischung aus:
Nebenbei: Die größte Herausforderung für mich ist eigentlich der Wechsel zwischen den Stilsprachen. Es ist sehr schwierig mitzufahren, wenn man SASS neben Ruby programmiert und dann für alles andere wieder zu CSS wechseln muss. In geringerem Maße habe ich das gleiche Problem mit HAML / HTML und JSON / XML.
quelle
Ich schreibe Anwendungen für die ISP-Seite der Dinge, es gibt auch eine Kultur des "Machens, womit du dich wohl fühlst", die oft von vielen Netzwerktechnikern geschrieben wird, die sich mit Programmierung beschäftigen. Ich muss mich wöchentlich mit Programmen auseinandersetzen, die recht gut geschrieben sind, um die wirklich schrecklichen. Was ich oft begegnen werde und an dem ich arbeite ...
Es gibt auch andere Sprachen (.net, VB, Phyton, Rails usw.) in der Firma, aber ich musste noch nicht daran arbeiten.
Bearbeiten, zum Bearbeiten ...
Sie müssen sich mental verändern, wenn Sie zwischen Sprachen arbeiten. Am häufigsten verliere ich den Überblick über die Syntax. Ich halte eine Sammlung von Nachschlagewerken bereit. Ich werde feststellen, dass es ungefähr eine halbe Stunde dauert, um wieder in die Denkweise der anderen Sprache zurückzukehren. Je stumpfer die Syntax für die Sprache ist, desto länger dauert die Verschiebung. Ich finde, dass die Umstellung von Java auf Perl wahrscheinlich am längsten dauert, wenn ich Perl eine Zeit lang nicht berührt habe. Je mehr Sie dies tun, desto einfacher wird es.
quelle
Ich verwende oft sechs oder mehr Sprachen in einem Projekt. Die meisten von ihnen sind normalerweise nur für dieses Projekt spezifisch.
Mental Shift ist nur erforderlich, wenn Sie eine Sprache verwenden, die für eine Aufgabe nicht geeignet ist. Ansonsten ist es selbstverständlich, die beste Passform zu verwenden. Für verschiedene Phasen eines Projekts werden unterschiedliche Sprachensätze verwendet.
quelle
Ich benutze häufig C (eingebettet), C ++ (Desktop), Python, Matlab und VHDL (eine Art Hardware-Programmiersprache), oft alle am selben Tag. In meiner Umgebung ist diese Art von Sprachgeschicklichkeit aus meiner Sicht von wesentlicher Bedeutung.
Ich kann oft nicht alles, was ich für ein bestimmtes Projekt benötige, effizient in einer Sprache erledigen. Zum Beispiel sind sowohl Embedded C als auch VHDL ziemlich niedrig, so dass ich häufig Python verwende, um ihre Ergebnisse zu analysieren (oder sogar Code zu generieren).
Ein schneller Wechsel ist nach einer Weile kein Problem mehr, sondern der Wechsel von einem Hammer zu einem Schraubendreher - das richtige Werkzeug für den Job.
quelle
Es hängt wirklich davon ab, wie das Arbeiten definiert ist ... Ich verwende C # jeden Tag zum Entwickeln von Microsoft Surface-Anwendungen. Java benutze ich auch jeden Tag für meine Android-Anwendungen. Aber ich versuche mich weiterzubilden und benutze R, Ruby und Objective-C. Manchmal brauche ich auch etwas SQL und wenn Sie Skriptsprachen und andere Sprachen in Ihre Frage aufnehmen, dann auch JavaScipt, SPARQL und BeanShell.
Wenden Sie auf alle Sprachen den gleichen Codierungsstil / die gleichen Codierungskonventionen an (keine Syntax)?
Ich versuche, die Codierungskonventionen der einzelnen Sprachen zu befolgen, aber insbesondere zwischen Java und C # habe ich einige Schwierigkeiten, weil die geschweiften Klammern und die Methode in Großbuchstaben in C # lauten:
gegen
quelle
Ich baue Web-Apps. Also momentan ist es:
Editoren: Sublime Text (keine Auswahl), Visual Studio 2010 (keine andere Auswahlmöglichkeit, wenn es um ASP.Net geht)
quelle
Bei meiner Arbeit benutze ich Java, C, Python, Django und ein bisschen PHP. Ich habe auch an einem sehr kleinen Projekt in Microsoft C ++ gearbeitet.
Ich benutze sie nicht alle jeden Tag, aber an manchen Tagen benutze ich sie alle ohne Probleme. An einem typischen Tag verwende ich nur ein oder zwei. Bei der Programmierung zu Hause arbeite ich normalerweise mit anderen Technologien als bei der Arbeit mit Qt oder Ruby on Rails.
quelle