Quão difícil é Python e Django para um desenvolvedor web Java / .NET? [fechadas]


19

Acabei de começar um novo emprego há alguns meses, em uma pequena empresa onde atualmente lidero todos os esforços de desenvolvimento, presentes e futuros. Pessoalmente, tenho anos de experiência em design e desenvolvimento de software principalmente de Java, mas também de uma perspectiva .NET. Peguei o .NET mais tarde em minha carreira com muita facilidade e não precisei literalmente de treinamento para começar a correr; além disso, isso me ajudou a entender e apreciar a universalidade de muitas práticas recomendadas e temas comuns, vendo duas perspectivas diferentes. para resolver o mesmo problema.

Meu chefe tem uma empresa iniciante ao lado e, sem divulgar muita informação, precisava de um aplicativo da Web moderadamente sofisticado que se integrasse ao Google Maps para criar rotas.

Ele contratou o aplicativo da Web no qual eles se comprometeram em excesso, subforneceram em grande parte e ultrapassou o prazo. Atualmente, ele está lutando para tentar recuperar pelo menos parte do dinheiro que investiu. Ele tem o código-fonte do site como está agora, mas tem uma lista de coisas que ele gostaria de corrigir e adicionar antes de começar a usá-lo.

Ele me perguntou se eu gostaria de fazer isso de lado por algum dinheiro extra, mas o problema é que o site foi escrito em Python usando Django, que não tenho experiência nenhuma. Eu disse a ele que realmente não sou a melhor pessoa para isso, porque não sei praticamente nada sobre Python ou Django e precisaria aprender do zero. Eu acho que não seria justo cobrar uma hora por ele pelo meu tempo se eu estiver usando esse tempo aprendendo um idioma e uma plataforma.

Com base no resumo do meu nível de experiência, quão difícil ou quanto tempo você acha que levaria para eu pegar isso? Se você acha que é uma perda de tempo, alguém poderia recomendar uma sugestão de onde encontrar desenvolvedores web experientes em Python? O dinheiro é uma preocupação para ele agora, para que ele não tenha mais o maior orçamento.


10
Porque perguntar? Você acha que vai ser difícil porque .Net fez você ser estúpido? É apenas código. Quão difícil isso pode ser?
S.Lott

1
@ S.Lott, não se trata de ser capaz ou não, só não quero aceitar um emprego, pois não sou qualificado para quando a pessoa que me paga tem um orçamento limitado e é meu gerente direto da minha fonte de renda PRIMÁRIA . Eu certamente não gostaria de cumpri-lo.
maple_shaft

1
Você realmente não terá que tentar fazer um pedaço disso e ver se funciona? Ninguém aqui pode dar valor ao seu tempo.
JeffO 19/05

2
Acho que você está fazendo um desserviço. Suspeito que, dada sua experiência recente, seu gerente prefira alguém em quem possa confiar para lhe dizer a verdade, mesmo que a verdade seja "Não estou familiarizado com essa estrutura, mas estou disposto a tentar". Você deve pelo menos poder dizer a ele se a fonte que ele recuperou vale alguma coisa.
Benjol

2
@ Benjol, "Você deveria pelo menos poder dizer a ele se a fonte que ele recuperou vale alguma coisa" E é exatamente disso que eu tenho medo. Só porque eu poderia descobrir um tutorial do Django Hello World em algumas horas, não significa que eu tenho a experiência e o conhecimento para fazer estimativas precisas ou até julgar a qualidade do código. Pelo que sei, código espaguete e 8.000 funções de linha são a maneira como as coisas devem ser feitas no Python.
Maple_shaft

Respostas:


15

O Python é tão fácil de aprender quanto um idioma, que é um dos principais pontos de venda do idioma. Como alguém com muita experiência em idiomas OO, você está em uma ótima posição para começar. As únicas diferenças fundamentais entre Python e Java / C # são

  1. Digitação de pato / falta de segurança do tipo.
  2. Funções de primeira classe.

Entendo por que você acha que não é o melhor homem para o trabalho e pode não progredir tanto em sua primeira semana quanto os outros. Por outro lado, seu chefe confia em você e acaba de ser queimado por algumas pessoas não confiáveis ​​que conheciam Python melhor que você.

Se você está preocupado em abusar da confiança de seus chefes, ofereça-lhe Nhoras de graça. (Você decide o que Né.) No final desse período, você pode decidir se vale a taxa horária. Na pior das hipóteses, você terá uma noção muito melhor do Python / Django no final desse período.


Esse é um pensamento interessante para dar a ele algum tempo livre para ambos os nossos benefícios. Talvez eu só tenha medo de um compromisso?
Maple_shaft

Se essas são diferenças fundamentais, o C # dev saber que o JavaScript deve ter muita dificuldade ... estou correto?
precisa saber é o seguinte

3
C # tem funções de primeira classe apenas a maioria devs não usá-los #justsaying
sa93

@Morawski Sim, se você conhece Java, C # ou C ++ E um de Perl, Ruby ou JavaScript, então aprender Python é muito fácil.
Eric Wilson

O que @ sa93 disse. Além disso (caramba, eu e meus comentários fora de tópico ...), eu não sou do tipo fã de Microsoft (na verdade, sou muito mais um Pythonista), mas é impressionante o número de recursos funcionais que eles adicionaram através dos vários lançamentos. C # 5.0 tornou-se uma linguagem bastante útil (em comparação com outras línguas relacionadas * tosse * java * tosse * VB * tosse *)
Nadir Sampaoli

8

Como programador C incorporado, que acabou trabalhando em um aplicativo Web Python / Django como um projeto skunk-works, posso testemunhar que o básico é fácil de entender.

Geralmente, o Python é muito simples de entender. Eu pessoalmente não achei a documentação do python muito útil - sempre parece mais um livro de memórias para alguém que já conhece o python - mas a web está cheia de exemplos úteis. Você pode tentar o Python Challenge uma noite e ver como se sai.

Eu recomendaria muito o Django. Ele faz um bom trabalho de abstrair o acesso ao banco de dados e fornece utilidade suficiente para que eu também o tenha usado posteriormente em projetos da Web sem nenhum componente de banco de dados. Geralmente, se você pensa em algo que deseja alcançar, haverá um método com um nome óbvio já fornecido. A documentação também é muito boa.

O Django é muito simples de instalar, então eu sugiro fortemente que você experimente e veja como se dá. Algumas noites jogando com Python e Django devem lhe dar confiança suficiente para decidir se você ficaria feliz em realizar o trabalho necessário.


4

O paradigma Python / Django é certamente diferente das pilhas .NET ou Java. Se você se sentir confortável com vários paradigmas de programação (e com isso quero dizer funcional versus OO e estático versus dinâmico), provavelmente será capaz de fazer isso. De acordo com @EricWilson, Python não é muito difícil de aprender (apenas esteja preparado para ficar irônico com a indentação == escopo; p).

É o velho ditado de que "esperto e faz as coisas" bate "x quantidade de familiaridade com um idioma".

Se você entender bem a pilha da Web subjacente (HTTP, ciclos de solicitação / resposta etc.) e as APIs de terceiros (Google), também será um pouco mais fácil.

Você também precisará de ajuda para aqueles momentos da WTF. Certifique-se de ingressar na comunidade de desenvolvedores do Python / Django, seja o grupo de usuários local, um fórum on-line ou um pequeno site chamado StackExchange :)

Oh, apenas pensei em outra coisa. Faça o teste decisivo. Em uma noite ou tarde de fim de semana, faça o download e instale o Python e o Django e veja com que facilidade você aprende os tutoriais. Um teste básico que dou a mim mesmo é a construção de uma tela CRUD para um objeto de domínio fictício. Se eu não posso fazer isso (e não há vergonha nisso), então eu não sou a pessoa certa ou a pilha é péssima;)

Por fim, eu teria cuidado com o lado $ das coisas aqui. Se você sempre quis juntar essa pilha de tecnologia, então talvez vocês dois estejam fazendo um favor um ao outro, caso contrário, cheira um pouco como o seu gerente confiando na sua boa vontade para consertar as coisas do jeito barato, às custas do seu precioso tempo .


"caso contrário, cheira um pouco como o seu gerente, confiando na sua boa vontade para consertar as coisas de baixo custo às custas de seu precioso tempo." não tenho obrigação de ajudá-lo de qualquer maneira. Se eu fizer essa escolha e me arrepender, então eu tenho apenas a culpa.
Maple_shaft

1

Não posso comentar sobre o valor do Django, mas acho que aprender Python pode ser um bom investimento para o seu tempo. Não apenas para este projeto ...

Como desenvolvedor de Java, acho o Jython inestimável e gostaria de saber sobre o IronPython quando desenvolvi com C # (fui C #> Java em vez de Java para C #).

O fato de você ter toda a biblioteca java disponível para o seu script Jython é excelente, e eu frequentemente uso testes de unidade Jython para testar classes POJO usando objetos Mock.

Até fornecemos um console Jython em nosso aplicativo para que os usuários possam criar scripts de suas próprias rotinas, com acesso total às bibliotecas java e às nossas. É muito bom poder mostrar aos usuários como escrever scripts simples e automatizar todo tipo de coisa sem precisar fazer toda essa automação para eles.

Claro, o Jython não é perfeito - fica um pouco atrás do CPython (3.2) e até do IronPython (2.7), mas isso apenas o torna contemporâneo com o livro de Guido . * 8 ')


0

Passei uma semana ou duas aprendendo o básico sobre Python e Django (acabei decidindo usar o Rails por outras razões) depois de fazer apenas o trabalho em C #. No começo foi um pouco difícil, mas o Django é relativamente direto; a parte mais difícil que encontrei foi descobrir exatamente como escrever o código necessário em Python. O próprio Django é bem simples; Eu não o toquei há mais de um ano, mas provavelmente ainda poderia fazer algo trivial. No entanto, fica um pouco mais complicado usar objetos genéricos e alguns modelos e visualizações mais envolvidos.

Uma coisa que eu achei estranha foi a idéia de que todos os seus modelos de Django estão no models.pyarquivo; Eu tenho certeza que você pode criar arquivos diferentes e importar todos eles (eu não tentei isso, no entanto), mas isso por si só parecia "errado" sendo usado para C #, onde é muito ruim ter várias classes no mesmo arquivo, a menos que seja algum tipo de classe privada usada apenas pela outra classe. O resto não foi muito difícil, embora, se você não conhece bem o MVC (ou a MTV na linguagem do Django), essa é uma pequena curva de aprendizado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.