Wie schwierig ist es, Python und Django für einen Java / .NET-Webentwickler zu finden? [geschlossen]


19

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.


10
Warum fragst du? Glaubst du, es wird schwer, weil .Net dich dumm gemacht hat? Es ist nur Code. Wie schwer kann es sein?
S.Lott

1
@ S.Lott, es geht nicht darum, fähig zu sein oder nicht, ich möchte einfach keinen Job annehmen, für den ich nicht qualifiziert bin, wenn die Person, die mich bezahlt, ein begrenztes Budget hat und mein direkter Manager für meine Haupteinkommensquelle ist . Ich würde es auf keinen Fall bei ihm belassen wollen.
maple_shaft

1
Müssen Sie nicht wirklich versuchen, ein Stück davon zu machen und zu sehen, ob es funktioniert? Niemand kann hier einen Wert auf Ihre Zeit legen.
JeffO

2
Ich denke, Sie tun sich selbst einen schlechten Dienst. Ich vermute, dass Ihr Manager aufgrund seiner jüngsten Erfahrungen lieber jemanden hat, dem er vertrauen kann, um ihm die Wahrheit zu sagen, auch wenn die Wahrheit lautet: "Ich kenne diesen Rahmen nicht, aber ich bin bereit, es zu versuchen". Sie sollten ihm zumindest sagen können, ob die Quelle, die er gefunden hat, überhaupt etwas wert ist.
Benjol

2
@Benjol, "Du solltest ihm wenigstens sagen können, ob die Quelle, die er gefunden hat, überhaupt etwas wert ist." Und genau davor habe ich Angst. Nur weil ich in ein paar Stunden ein Tutorial für Django Hello World entwickeln konnte, kann ich noch lange keine genauen Schätzungen vornehmen oder die Qualität des Codes beurteilen. Soweit ich weiß, sind Spaghetti-Code und 8.000 Zeilenfunktionen die Art und Weise, wie in Python vorgegangen werden soll.
maple_shaft

Antworten:


15

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

  1. Duck-Typing / mangelnde Typensicherheit.
  2. Erstklassige Funktionen.

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 NStunden pro Bono zu gewähren . (Sie entscheiden, was Nist.) 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.


Das ist ein interessanter Gedanke, um ihm Zeit für unsere beiden Vorteile zu geben. Vielleicht habe ich nur Angst vor einer Verpflichtung?
maple_shaft

Wenn es sich um grundlegende Unterschiede handelt, sollte C # -Entwickler, die JavaScript kennen, überhaupt große Schwierigkeiten haben ... bin ich richtig?
Konrad Morawski

3
C # hat erstklassige Funktionen, nur die meisten Entwickler verwenden sie nicht. #Justsaying
sa93

@ Morawski Ja, wenn Sie Java, C # oder C ++ und Perl, Ruby oder JavaScript kennen, ist das Erlernen von Python ein Kinderspiel.
Eric Wilson

Was @ sa93 gesagt hat. Außerdem (verdammt, ich und meine Kommentare außerhalb des Themas ..) bin ich nicht wirklich der Microsoft-Fan-Typ (tatsächlich bin ich viel eher ein Pythonist), aber es ist ziemlich beeindruckend, wie viele Funktionsmerkmale sie hinzugefügt haben durch die verschiedenen Veröffentlichungen. C # 5.0 ist eine ziemlich brauchbare Sprache geworden (im Vergleich zu anderen verwandten Sprachen * Husten * Java * Husten * VB * Husten *)
Nadir Sampaoli

8

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.


4

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 .


"Ansonsten riecht es ein bisschen, als ob Ihr Manager sich auf Ihr Wohlwollen verlässt, um auf Kosten Ihrer wertvollen Zeit Abhilfe zu schaffen." Ich gönne ihm das nicht, wir haben alle unsere eigenen Interessen, besonders seit ich Ich bin nicht verpflichtet, ihm irgendwie zu helfen. Wenn ich diese Entscheidung treffe und es bereue, bin ich selbst schuld.
maple_shaft

1

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 ')


0

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.pyAkte 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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.