Ich habe gerade vor ein paar Monaten einen neuen Job in einem kleinen Unternehmen angefangen, in dem ich derzeit alle gegenwärtigen und zukünftigen Entwicklungsbemühungen führe. Ich persönlich habe jahrelange Erfahrung im Bereich Softwaredesign und -entwicklung, hauptsächlich aus Java-, aber auch aus .NET-Sicht. Ich habe .NET später in meiner Karriere mühelos aufgenommen und brauchte buchstäblich keine Schulung, um den ersten Eindruck zu hinterlassen. Darüber hinaus konnte ich die Universalität vieler bewährter Verfahren und gemeinsamer Themen anhand zweier verschiedener Perspektiven wirklich erfassen und würdigen das gleiche Problem zu lösen.
Mein Chef hat ein Startup-Unternehmen an der Seite, und ohne zu viele Informationen preiszugeben, brauchte er eine mäßig ausgefeilte Webanwendung, die sich in Google Maps integrieren lässt, um Routen zu erstellen.
Er beauftragte die Webanwendung, für die sie zu viel versprochen, zu wenig geliefert und die Frist überschritten hatten. Derzeit kämpft er darum, zumindest einen Teil des von ihm investierten Geldes zurückzugewinnen. Er hat den Quellcode für die Site, wie er gerade ist, hat aber eine Wäscheliste mit Dingen, die er reparieren und hinzufügen möchte, bevor er damit live geht.
Er fragte mich, ob ich das nebenbei für zusätzliches Geld tun möchte, aber das Problem ist, dass die Seite in Python mit Django geschrieben wurde, mit dem ich überhaupt keine Erfahrung habe. Ich sagte ihm, dass ich wirklich nicht der beste Mensch dafür bin, weil ich so gut wie nichts über Python oder Django weiß und es von Grund auf lernen müsste. Ich glaube, es wäre nicht fair für mich, ihm meine Zeit stündlich in Rechnung zu stellen, wenn ich diese Zeit zum Erlernen einer Sprache und Plattform nutze.
Basierend auf der Zusammenfassung meines Erfahrungslevels, wie schwierig oder wie lange würde es wohl dauern, bis ich das aufgreife? Wenn Sie der Meinung sind, dass es Zeitverschwendung ist, kann Ihnen jemand einen Vorschlag empfehlen, wo Sie erfahrene Python-Webentwickler finden können? Geld ist für ihn momentan ein Problem, deshalb hat er nicht mehr das größte Budget.
quelle
Antworten:
Python ist so einfach zu erlernen wie eine Sprache, was eines der Hauptverkaufsargumente der Sprache ist. Als jemand, der sehr erfahren in OO-Sprachen ist, sind Sie in einer großartigen Position, um anzufangen. Die einzigen grundlegenden Unterschiede zwischen Python und Java / C # sind
Ich verstehe, warum Sie das Gefühl haben, nicht der beste Mann für diesen Job zu sein, und vielleicht machen Sie in Ihrer ersten Woche nicht so große Fortschritte wie andere. Auf der anderen Seite vertraut Ihr Chef Ihnen und er wurde gerade von einigen nicht vertrauenswürdigen Leuten verbrannt, die Python besser kannten als Sie.
Wenn Sie Bedenken haben, das Vertrauen Ihres Chefs zu missbrauchen, bieten Sie ihm an, ihm
N
Stunden pro Bono zu gewähren . (Sie entscheiden, wasN
ist.) Am Ende dieser Zeit können Sie entscheiden, ob Sie den Stundensatz wert sind. Im schlimmsten Fall haben Sie am Ende dieser Zeit ein viel besseres Gespür für Python / Django.quelle
Als eingebetteter C-Programmierer, der als Skunk-Works-Projekt an einer Python / Django-Web-App gearbeitet hat, kann ich bezeugen, dass die Grundlagen leicht zu erlernen sind.
Python ist im Allgemeinen sehr einfach in den Griff zu bekommen. Ich persönlich fand die Python-Dokumentation selbst nicht sehr nützlich - es scheint immer eher eine Hilfestellung für jemanden zu sein, der Python bereits kennt -, aber das Web steckt voller nützlicher Beispiele. Vielleicht möchten Sie eines Abends die Python-Herausforderung ausprobieren und sehen, wie Sie vorankommen.
Ich kann Django nur empfehlen. Es kann den Datenbankzugriff sehr gut abstrahieren und bietet genug Dienstprogramm, das ich später auch für Webprojekte ohne Datenbankkomponente verwendet habe. Wenn Sie an etwas denken, das Sie erreichen möchten, wird im Allgemeinen bereits eine Methode mit einem offensichtlichen Namen bereitgestellt. Die Dokumentation ist auch sehr gut.
Die Installation von Django ist sehr einfach. Ich empfehle daher dringend, dass Sie es einfach ausprobieren und sehen, wie Sie vorankommen. Ein paar Abende, an denen Sie mit Python und Django spielen, sollten Ihnen genügend Sicherheit geben, um zu entscheiden, ob Sie die erforderliche Arbeit gerne übernehmen würden.
quelle
Das Python / Django-Paradigma unterscheidet sich sicherlich von .NET- oder Java-Stacks. Wenn Sie mit mehreren Programmierparadigmen vertraut sind (und damit funktional im Gegensatz zu OO und statisch im Gegensatz zu dynamisch), werden Sie dies wahrscheinlich schaffen. Laut @EricWilson ist Python nicht allzu schwer zu erlernen (seien Sie nur darauf vorbereitet, bei der Sache mit dem Einrückungsumfang == ballistisch vorzugehen; p).
Es ist das alte Sprichwort, dass "Smart and gets stuff done" x Vertrautheit mit einer Sprache schlägt.
Wenn Sie den zugrunde liegenden Webstack (HTTP, Anforderungs- / Antwortzyklen usw.) und die APIs von Drittanbietern (Google) gut kennen, ist dies ebenfalls ein wenig einfacher.
Sie benötigen auch Hilfe für diese WTF-Momente. Stellen Sie sicher, dass Sie einer Community von Python / Django-Entwicklern angehören, egal ob es sich um Ihre lokale Benutzergruppe, ein Online-Forum oder eine kleine Site namens StackExchange handelt :)
Oh, ich dachte nur an etwas anderes. Machen Sie den Lackmustest. Laden Sie an einem Abend oder einem Wochenendnachmittag Python und Django herunter und installieren Sie sie. Ein grundlegender Test, den ich selbst durchführe, besteht darin, einen CRUD-Bildschirm für ein Dummy-Domänenobjekt zu erstellen. Wenn ich das nicht kann (und es ist auch keine Schande), dann bin ich nicht die richtige Person oder der Stack ist scheiße;)
Zuletzt würde ich vorsichtig sein mit der $ Seite der Dinge hier. Wenn Sie schon immer diesen Tech-Stack aufgreifen wollten, tun Sie sich vielleicht gegenseitig einen Gefallen. Andernfalls riecht es ein wenig nach Manager, der sich auf Ihr Wohlwollen verlässt, um auf Kosten Ihrer wertvollen Zeit die billigen Probleme zu beheben .
quelle
Ich kann den Wert von Django nicht beurteilen, aber ich denke, Python zu lernen könnte eine gute Investition Ihrer Zeit sein. Nicht nur für dieses Projekt ...
Als Java-Entwickler finde ich Jython von unschätzbarem Wert, und ich wünschte, ich hätte etwas über IronPython gewusst, als ich mit C # entwickelte (ich habe C #> Java anstatt Java zu C #).
Die Tatsache, dass Ihnen die gesamte Java-Bibliothek für Ihr Jython-Skript zur Verfügung steht, ist ausgezeichnet, und ich verwende häufig Jython-Komponententests, um POJO- Klassen mit Mock-Objekten zu testen .
Wir stellen in unserer Anwendung sogar eine Jython-Konsole zur Verfügung, damit Benutzer ihre eigenen Routinen mit vollem Zugriff auf die Java-Bibliotheken und unsere eigenen schreiben können. Es ist so schön, den Benutzern zeigen zu können, wie einfache Skripte geschrieben werden, und sie alle möglichen Dinge selbst automatisieren zu lassen, ohne diese ganze Automatisierung für sie durchführen zu müssen.
Sicher, Jython ist nicht perfekt - es bleibt etwas hinter CPython (3.2) und sogar IronPython (2.7) zurück (2.5), aber das macht es mit Guidos Buch nur zeitgemäß . * 8 ')
quelle
Ich habe ein oder zwei Wochen damit verbracht, die Grundlagen von Python und Django zu erlernen (schließlich habe ich mich aus anderen Gründen für Rails entschieden), nachdem ich nur mit C # gearbeitet hatte. Anfangs war es etwas schwierig zu grillen, aber Django ist relativ unkompliziert. Das Schwierigste, was ich fand, war herauszufinden, wie man den notwendigen Code in Python schreibt. Django selbst ist ziemlich einfach; Ich habe es seit über einem Jahr nicht mehr angefasst, aber ich könnte wahrscheinlich noch etwas Triviales tun. Die Verwendung von generischen Objekten und einigen komplexeren Vorlagen und Ansichten ist jedoch etwas komplizierter.
Eine Sache, die ich seltsam fand, ist die Idee, dass alle deine Django-Modelle in der
models.py
Akte sind. Ich bin sicher, Sie können verschiedene Dateien erstellen und alle importieren (ich habe dies jedoch nicht ausprobiert), aber das allein fühlte sich "falsch" an, wenn man C # verwendet, wo es sehr schlecht ist , mehrere Klassen in derselben Datei zu haben, es sei denn, es ist eine eine Art Privatklasse, die nur von der anderen Klasse verwendet wird. Der Rest war überhaupt nicht allzu schwierig, auch wenn Sie mit MVC (oder MTV in Django-Sprache) nicht so vertraut sind, ist das eine kleine Lernkurve für sich.quelle