Quanto è difficile che Python e Django si accorgano di uno sviluppatore web Java / .NET? [chiuso]

19

Ho appena iniziato un nuovo lavoro un paio di mesi fa in una piccola azienda in cui attualmente sto conducendo tutti gli sforzi di sviluppo presenti e futuri. Personalmente ho anni di esperienza nella progettazione e sviluppo di software principalmente da Java, ma anche da una prospettiva .NET. Ho iniziato a lavorare su .NET più tardi nella mia carriera con grande facilità e non avevo bisogno letteralmente di allenarmi per andare a fondo, e in più mi ha aiutato a cogliere e apprezzare l'universalità di molte buone pratiche e temi comuni vedendo due diverse prospettive per risolvere lo stesso problema.

Il mio capo ha una società di startup sul lato e senza divulgare troppe informazioni, aveva bisogno di un'applicazione web moderatamente sofisticata che si integri in Google Maps per costruire percorsi.

Ha contratto l'applicazione web con la quale ha overpromised, ha ricevuto una consegna insufficiente e ha superato la scadenza, è attualmente in lotta per cercare di recuperare almeno parte dei soldi che ha investito. Ha il codice sorgente per il sito come è adesso ma ha una lista di cose che vorrebbe aggiustare e aggiungere prima che vada a vivere con esso.

Mi ha chiesto se mi piacerebbe farlo da parte per qualche soldo in più, ma il problema è che il sito è stato scritto in Python usando Django, che non ho alcuna esperienza in alcun modo. Gli ho detto che non sono davvero la persona migliore per questo perché non conosco praticamente nulla su Python o Django e dovrei imparare da zero. Ritengo che non sarebbe giusto per me fatturarlo ogni ora per il mio tempo se uso quel tempo per imparare una lingua e una piattaforma.

In base al riepilogo del mio livello di esperienza, quanto difficile o quanto tempo vorresti dedurre che dovrei raccoglierlo? Se pensi che sia una perdita di tempo qualcuno potrebbe raccomandare un suggerimento su dove trovare esperti sviluppatori web Python? Il denaro è una preoccupazione per lui in questo momento, quindi non ha più il budget più grande.

    
posta maple_shaft 19.05.2011 - 13:19
fonte

5 risposte

15

Python è facile da apprendere come potrebbe essere una lingua, che è uno dei principali punti di forza della lingua. Come qualcuno che ha molta esperienza nelle lingue OO, sei in un'ottima posizione per iniziare. Le uniche differenze fondamentali tra Python e Java / C # sono

  1. Duck-typing / mancanza di sicurezza del tipo.
  2. Funzioni di prima classe.

Capisco perché pensi di non essere l'uomo migliore per il lavoro, e potresti non fare molti progressi nella tua prima settimana come altri. D'altra parte, il tuo capo si fida di te, ed è stato appena bruciato da gente inaffidabile che conosceva Python meglio di te.

Se sei preoccupato di abusare della fiducia dei tuoi capi, offri di dargli N ore pro bono. (Decidi cosa è N .) Alla fine di quel periodo puoi decidere se valga la tariffa oraria. Nel peggiore dei casi, avrai un senso molto migliore di Python / Django alla fine di quel periodo.

    
risposta data 19.05.2011 - 13:54
fonte
8

Come programmatore C incorporato che ha finito per lavorare su un'applicazione web Python / Django come progetto skunk-works posso testimoniare che le basi sono facili da imparare.

Python generalmente è molto semplice da gestire. Personalmente non ho trovato la documentazione di Python di per sé molto utile - sembra sempre più come un manuale di aiuto per qualcuno che già conosce Python - ma il web è pieno di esempi utili. Potresti provare The Python Challenge una sera e vedere come sali.

Consiglio vivamente Django. Fa un ottimo lavoro di astrazione dell'accesso al database e fornisce un'utilità sufficiente che ho anche successivamente utilizzato per progetti Web senza componenti di database. Generalmente, se pensi a qualcosa che vuoi raggiungere, ci sarà un metodo con un nome ovvio già fornito. Anche la documentazione è molto buona.

Django è molto semplice da install quindi ti suggerisco caldamente di provarlo e vedi come sali. Un paio di serate che giocano con Python e Django dovrebbero darti abbastanza confidenza per decidere se ti piacerebbe intraprendere il lavoro richiesto.

    
risposta data 19.05.2011 - 14:16
fonte
4

Il paradigma Python / Django è sicuramente diverso da stack .NET o Java. Se sei a tuo agio con diversi paradigmi di programmazione (e con questo intendo funzionale vs OO e statico vs dinamico), probabilmente sarai in grado di farlo. Come per @EricWilson, Python non è troppo difficile da imparare (sii pronto a fare il balistico del rientro == scope, p).

È il vecchio adagio che "Smart e ottiene risultati" batte "x quantità di familiarità con una lingua".

Se hai una buona conoscenza dello stack web sottostante (HTTP, cicli richiesta / risposta, ecc.) e delle API di terze parti (Google), allora sarà anche un po 'più semplice.

Avrai anche bisogno di aiuto per quei momenti del WTF. Assicurati di essere unito a una comunità di sviluppatori Python / Django, che si tratti del tuo gruppo di utenti locali, di un forum online o di un piccolo sito chiamato StackExchange:)

Oh, pensavo a qualcos'altro. Fatti prendere la cartina di tornasole. In una sera o nel pomeriggio del fine settimana, scarica e installa Python e Django e guarda con quanta facilità fai le esercitazioni. Un test di base che mi sono dato è la creazione di uno schermo CRUD per un oggetto dominio fittizio. Se non posso farlo (e non c'è vergogna in questo senso), allora non sono la persona giusta o lo stack fa schifo;)

Infine, farei attenzione al lato $ delle cose qui. Se hai sempre desiderato raccogliere questo stack tecnologico, forse ti stai facendo entrambi un favore, altrimenti odora un po 'come il tuo manager che si affida alla tua buona volontà per sistemare le cose a buon mercato a spese del tuo tempo prezioso .

    
risposta data 19.05.2011 - 14:01
fonte
1

Non posso commentare il valore di Django, ma penso che imparare Python potrebbe essere un buon investimento del tuo tempo. Non solo per questo progetto però ...

Come sviluppatore java, trovo Jython inestimabile, e vorrei sapere di IronPython quando stavo sviluppando con C # (sono passato a C # > Java piuttosto che a Java a C #).

Il fatto che tu abbia tutta la libreria java disponibile per il tuo script Jython è eccellente, e ho spesso usato i test di unità Jython per testare POJO classi che utilizzano oggetti Mock.

Forniamo anche una console Jython nella nostra applicazione in modo che gli utenti possano creare script delle loro routine, con pieno accesso sia alle librerie java che alle nostre. È così bello poter mostrare agli utenti come scrivere script semplici e farli automatizzare ogni sorta di cose senza dover fare tutta quella automazione per loro.

Certo, Jython non è perfetto - è piuttosto in ritardo (2.5) dietro a CPython (3.2) e persino a IronPython (2.7), ma ciò lo rende semplicemente contemporaneo con Il libro di Guido . * 8' )

    
risposta data 27.07.2011 - 18:20
fonte
0

Ho trascorso una settimana o due a raccogliere le basi di Python e Django (alla fine ho deciso di andare con Rails per altri motivi) dopo aver fatto solo il lavoro in C #. All'inizio era un po 'difficile, ma Django è relativamente semplice; la parte più difficile che ho trovato è stata capire esattamente come scrivere il codice necessario in Python. Django stesso è piuttosto semplice; Non l'ho toccato da più di un anno, ma probabilmente potrei comunque fare qualcosa di banale. Diventa un po 'più complicato con l'utilizzo di oggetti generici e alcuni modelli e viste più coinvolti, però.

Una cosa che ho trovato strano è che l'idea che tutti i tuoi modelli Django siano nel file models.py ; Sono sicuro che potresti creare diversi file e importarli tutti (non l'ho provato, però) ma da solo sentivo "sbagliato" essere usato in C # dove il suo molto cattivo per avere più classi nello stesso file a meno che uno non sia una sorta di classe privata utilizzata solo dall'altra classe. Il resto non è stato affatto difficile, anche se non hai familiarità con MVC (o MTV nel linguaggio di Django) è una piccola curva di apprendimento in sé.

    
risposta data 19.05.2011 - 14:17
fonte

Leggi altre domande sui tag