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.
fonte
Respostas:
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
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
N
horas de graça. (Você decide o queN
é.) 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.fonte
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.
fonte
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 .
fonte
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 ')
fonte
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.py
arquivo; 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.fonte