Então, eu estou programando há cerca de 9 meses e agora aprendi Python, PHP e Javascript.
Eu quero me tornar melhor nesses idiomas - posso descobrir algo, mas muitas coisas como OOP, usando listas da maneira mais eficaz, etc, estão perdidas para mim.
Quais são as melhores maneiras de se tornar um programador "especialista"? Depende das nuances da língua ou é mais geral? Existe alguma matemática que eu deveria estudar junto? Obviamente, depende muito do que você quer fazer com isso - até agora, eu fiz principalmente aplicativos internos de pequena escala, além de programação na web. Como descubro um bom design de programa?
php
javascript
python
Jack Seskatchi
fonte
fonte
Respostas:
A única solução é a experiência . Você se tornará um especialista quando tiver codificado muito (como realmente muito ) nesses idiomas. O desenvolvimento de projetos fará com que você enfrente problemas, assim você terá que encontrar as soluções e um dia verá soluções suficientes para os problemas que chamará de especialista .
Codificação, leitura de código, revisão de código, tudo isso ajudará você a saber como codificar com um bom design. Você não pode confiar apenas em um trecho de código que vê na Internet para dizer que sabe qual é o bom design para o que está tentando alcançar. Você precisa examinar muitos deles para saber qual seria a melhor solução para o seu problema.
fonte
A experiência, como a amizade, é um produto do tempo. Minha citação favorita sobre o assunto (eu esqueço a fonte):
"O bom senso é o resultado da experiência. A experiência é o resultado do mau julgamento."
Coloque as horas, estude seu ofício. Busque não apenas soluções imediatas, mas também beleza e eficiência.
fonte
Antes de tudo, é importante entender a programação em um nível agnóstico. Conhecer os princípios, conceitos, metodologias e outros irá ajudá-lo a longo prazo. Aqui estão alguns links para alguns bons livros para ajudá-lo:
Livros:
Código Limpo: Um Manual de Artesanato em Software Ágil
Code Complete (2nd Ed) de Steve McConnell
O Mítico Homem-Mês
Padrões de Design: Elementos de Software Orientado a Objetos Reutilizáveis
Lembre-se de que quando você beija , também fica mais seco se você quer um relacionamento mais sólido com a programação. :)
fonte
1) Você está no lugar certo. Fóruns da comunidade, como troca de pilhas, são uma excelente maneira de encontrar informações.
2) Descubra o POO antes de prosseguir. É uma necessidade antes de passar do script para o desenvolvimento mais avançado. O net.tutsplus.com é um bom site para referência e eu encontrei este guia aqui: http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/
3) Depois de aprender o POO e praticá-lo, faça o download de uma estrutura com boa documentação e siga um guia "Introdução" (uma estrutura é uma coleção de ferramentas que ajudam a desenvolver mais rapidamente em um idioma). O Symfony é bom para PHP e você pode seguir o guia aqui: http://www.symfony-project.org/getting-started/1_4/en/ . Eles também têm um tutorial "Jobeet" para você acompanhar
4) Juntamente com o nº 3, aprenda o padrão MVC (Model View Controller). Esse é um padrão de programação popular usado em várias estruturas. É uma obrigação se você deseja passar de iniciante para intermediário.
Boa sorte!
fonte
Trabalhe em um projeto de código com programadores melhores que você
Protip: isso parece funcionar para qualquer coisa que você queira melhorar, não apenas para o código!
Mas, sério, se você puder encontrar pessoas talentosas que estejam dispostas a lhe dizer quando estiver fazendo algo errado, tente trabalhar em um projeto com elas.
Leia coisas escritas por programadores melhores que você
Daveo vinculado a alguns bons livros. Você também pode encontrar muitos blogs escritos por pessoas que se preocupam em se tornar melhores programadores (e geralmente são eles mesmos programadores incríveis).
fonte
Ser um programador especialista provavelmente é uma capacidade geral de raciocinar e resolver problemas de programação, tarefas comuns e incomuns. Isso provavelmente é independente da linguagem, mas eu diria que você também deve ser muito fluente com pelo menos algumas linguagens de programação e suas ferramentas.
Não há receita mágica para se tornar um especialista, exceto com muito trabalho: leia tutoriais, pesquise bastante no Google, ouça especialistas, trabalhe com problemas, codifique bastante, trabalhe em projetos existentes com outras pessoas e, geralmente, adquira muita experiência no mundo real .
Tudo isso é um conselho independente da linguagem.
fonte
É claro que existem várias abordagens que levarão ao sucesso. Como já foi dito, a experiência é a mais importante, mas depende de quanto tempo você precisa para se considerar um especialista. No entanto, o período será medido em anos ou até décadas.
Comecei a aprender programação há 15 anos e acho que as melhores melhorias em minhas habilidades se devem aos seguintes motivos:
A pressão está ruim. Mantenha um bom humor e esqueça os problemas insolúveis hoje apenas para retornar a eles amanhã (e se perguntando por que parecia tão complicado no dia anterior).
Comecei a programar quando era criança e ninguém me forçou a aprender nada. Não me entenda mal: você não precisa começar de criança para dominar uma linguagem de programação. Sua própria motivação - sem forçar-se a alcançar uma meta irreal em um curto espaço de tempo - será a chave para o sucesso.
Você também não precisará escrever seu próprio sistema operacional, como Linus fez. Ninguém espera que você tenha um site de sucesso visitado por centenas de usuários por dia. Trechos simples de seus projetos mostrarão (seu chefe, seu cliente, seus colegas ...) que você sabe o que faz.
Atenha-se a um tópico até que você (quase) o domine. Aprenda o básico.
Maestria é algo que não é viável. É improvável que saiba tudo. Mas não deixe de aprender o básico e não subestime os conceitos de linguagens de programação, paradigmas ou certas regras sintáticas ou melhores práticas.
Mas, por favor: não aceite se você ouvir ou ler NUNCA ou SEMPRE. Sempre que alguém fala sobre nunca fazer algo, não hesite em perguntar por quê. Há uma razão pela qual existem regras. Mas apenas o motivo dirá se é bom para a sua situação ou não. O que é bom em um idioma pode ser problemático em outro.
Siga em Frente.
Não permaneça no mesmo tópico por décadas. Após 10 anos de Javascript, haverá muito poucas pessoas que poderão lhe ensinar algo novo. Mas daqui a 10 anos ninguém estará falando sobre Javascript ... por quê? ah agora você me pegou. As previsões sobre o futuro são sempre propensas a erros;)
No entanto, após alguns meses ou anos de experiência em um campo, você verá que o que aprendeu não será tanto quanto no início de sua "missão". Haverá um momento em que as pessoas começarão a pedir ajuda quando tiverem problemas (problemas reais, não os itens de dever de casa).
Este é um bom indicador de que você se tornou algum tipo de especialista. Nesse ponto, pergunte a si mesmo se ainda há potencial para se desenvolver. Ou talvez exista algo novo em que você queira pôr as mãos, mas ninguém permite, porque você é a galinha perfeita para esta gaiola.
Sair com seus amigos, esposa, cachorro ...
Isso dará à sua mente um descanso. Problemas como Android x Iphone, Flash x Silverlight, App x Programa ... se tornarão uma questão do que é melhor para as suas necessidades e não o centro da sua existência.
Ter uma vida social (embora não confunda com o Facebook) também ajudará a manter ou até melhorar suas habilidades sociais. Se você sabe como fazer com que seus colegas concordem com a melhor solução (não necessariamente a sua), pode valer mais do que conhecer centenas de linguagens de programação.
Use seu cérebro
Não me escreva uma carta em 10 anos dizendo que eu errei sua vida. Se você está satisfeito com uma estratégia totalmente diferente ou descobre que é agricultor ou presidente dos EUA, vale a pena gastar o resto do tempo: faça-o.
fonte
Sugiro se tornar um membro de sites como Topcoder ou Usacogate , onde você pode aprender passo a passo e resolver problemas algorítmicos. Por exemplo, concluir o treinamento em Usacogate não o tornará um profissional de ciência da computação, mas oferece muita habilidade para lidar com muitos problemas da vida real. Ele ensina você a testar e exige que você forneça soluções eficientes.
Ainda outra opção para obter mais experiência é aprender uma linguagem de um paradigma diferente. Por exemplo, Haskell é uma linguagem de programação funcional. Aprender pode ajudá-lo a abordar problemas de um ponto de vista diferente, mesmo em outros idiomas. Por exemplo, o Python pode ser programado em um estilo muito funcional.
fonte
Ao contrário de algumas das respostas, a experiência não é o único requisito para se tornar um "especialista". Eu acho que a maioria das pessoas em todos os setores (não apenas na programação) não se torna especialista em seu campo. Eles se tornam competentes e eficientes, mas não se tornam nem de longe tão bons quanto poderiam ser.
A razão é que a experiência não é suficiente. Você precisa de consultoria especializada. Você precisa aprender como fazer as coisas de alguém que é especialista.
Felizmente para nós, existem muitos recursos para os programadores se tornarem especialistas. Provavelmente o melhor são os livros. Outro recurso excelente é programmers.StackExchange.
Gaste a maior parte do tempo escrevendo código, mas também gaste parte dele lendo e integrando o conhecimento de livros como o Clean Code http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 . Você pode encontrar os melhores livros analisando as resenhas na Amazon, verificando este site e Stack Overflow.
Se você investir tempo suficiente para aprender e usar as informações em 2 ou 3 livros por ano, isso aumentará bastante sua habilidade. Além disso, descubra uma maneira de gravar e se lembrar de tudo o que aprender. Caso contrário, será difícil realmente conhecer e usar as informações.
Preste atenção nos tópicos em que os programadores especializados estão interessados: padrões de projeto, testes de unidade, escolha de carreira etc. Veja o mundo (ou pelo menos o seu trabalho) da perspectiva de um programador especialista.
Quando você receber uma tarefa para codificar, pare e pense um pouco. Faça a si mesmo algumas perguntas. O que aprendi que pode me ajudar? Quais são os riscos? Qual é a melhor abordagem? Quais são alguns algoritmos diferentes que posso usar? Quanto tempo levará para a execução do programa? Qual é o provável gargalo da CPU? Que funcionalidade pode mudar ou ser adicionada?
Espero que isto ajude.
fonte