É possível que um amador se torne um bom programador? [fechadas]

46

Um programador profissional em tempo integral pode fazer um ótimo trabalho aprendendo continuamente com seu trabalho. Como um programador amador pode treinar para se tornar um bom programador?

** Se você gosta de tocar música ou cantar, você pode fazê-lo porque é seu hobby e você está interessado, e você pode se tornar um bom cantor ou tocador de música. Mas você não precisa se tornar um cantor profissional ou cantar para viver. Isso também é verdade para programadores? Qualquer programador amador que seja famoso?

    
por Ted Wong 24.10.2011 / 10:33
fonte

15 respostas

84

A chave para se tornar realmente bom é trabalhar em uma boa equipe. Muitos amadores trabalham sozinhos, então eles só chegam tão longe. Em uma equipe, você aprende com os outros e se torna disciplinado porque seus colegas vão te acertar com qualquer coisa que seja útil.

Por esse motivo, proponho que você participe de uma equipe, por exemplo, um projeto de código aberto, ou faça um projeto de hobby com alguns amigos.

    
por 24.10.2011 / 10:53
fonte
53

O caminho para se tornar bom em programação é o mesmo que cantar ou tocar música: praticar, praticar, praticar. Se você gasta tempo suficiente desenvolvendo software regularmente por vários anos, é provável que você se torne bom nisso - seja dentro ou fora do horário de trabalho.

Agora, além de passar mais tempo praticando, há uma outra razão pela qual os profissionais geralmente se tornam melhores que os amadores em um certo sentido (tanto na música quanto na programação). Se você é um profissional, você tem que fazer tarefas que você não necessariamente gosta, mas pertencem ao trabalho mais amplo de desenvolvimento de software (por exemplo, testes, discussões com clientes, escrever documentação, configurar ambiente de desenvolvimento, escrever scripts de construção etc. ). E de vez em quando você também é pressionado a entrar em áreas desconhecidas, aprender novas linguagens ou plataformas. Como um amador, você não é forçado a fazer nada que não queira, o que torna provável que você fique na sua zona de conforto durante a maior parte de sua vida. Em outras palavras, você pode facilmente se limitar a uma ou a algumas áreas específicas de que gosta mais e perder muitas oportunidades para aprender e crescer.

OTOH muitos desenvolvedores profissionais se enquadram nisso também, permanecendo na mesma empresa fazendo o mesmo trabalho de rotina dificilmente aprendendo algo novo por décadas ... Então a chave para se tornar melhor é a sua atitude. Se você continuar aprendendo e conscientemente procurar oportunidades de sair da sua zona de conforto para um território novo e desconhecido, você acabará superando os enxames de "profissionais" que lentamente se fossilizam. Uma boa maneira para isso pode estar contribuindo para alguns projetos de código aberto.

Uma leitura recomendada é O Programador Pragmático: Do Viajante ao Mestre , com muitos conselhos ótimos e muito práticos sobre como se tornar melhor.

    
por 24.10.2011 / 10:37
fonte
18

But for an amateur programmer, how can train to become a good programmer?

Você se torna melhor aprendendo, o que faz parte, refletindo sobre o que foi feito.

Então, basicamente, não há diferença entre amadores e profissionais, mas as "armadilhas" são organizadas de forma um pouco diferente.

armadilhas amadoras são, imho

  • a necessidade de concluir seu projeto, não importa o que seja, não é tão strong quando você não é profissional . Isso pode ser uma coisa boa, porque você não vai acostumar-se a isso quando se trata de qualidade, mas terminar (ao todo! Na hora certa é ainda melhor) é uma habilidade muito importante, que é mais difícil de treinar como amador, porque é fácil deixar um projeto morrer e começar outro.

  • A necessidade de se comunicar bem não é tão strong. Em um projeto profissional, há um strong incentivo para realmente entender os clientes, mesmo que eles sejam completamente incapazes de formar apenas um projeto coerente. frase do que o problema é que eles querem que você resolva. Se você entendeu mal, ou (o caso usual) não percebe, que eles não falam sobre algo que você precisa entender, isso se tornará seu problema, mais cedo ou mais tarde. Um projeto amador pode facilmente perder todos os usuários em potencial, devido a não resolver seus problemas, e ser "finalizado" de uma maneira técnica.

Armadilhas profissionais são

  • muitas vezes há pouca motivação para melhorar . Você está lá 40h / semana, não importa se você encontra a cura para o câncer ou apenas toma café de uma forma que pareça produtiva. Aprender é algo que você faz principalmente por si mesmo, e muitas vezes, se você tentar aplicar as coisas que aprendeu, existem forças que trabalham contra isso (pensamento de grupo conservador, hierarquias e até guias de estilo podem ser usados como armas contra melhorias). É preciso muito amor para que a profissão não apenas desista, diminua suas horas e procure propósitos alternativos na vida.

  • muitas vezes há pouco a aprender com . Sim, pode-se tentar levar tudo como um desafio, mas temos que ser honestos: depois de 1 ano do código do Spaghetti você não pode refatorar ("você está complicando isso!") Em um idioma que você tem mais anos da experiência do que provavelmente durará, a única coisa que se aprende é construir uma tolerância contra a frustração e a política corporativa.

If you play music, or singing, you can play it for interest, you can still become a good singer or music player, but not need to become a professional singer, or do singing for living.

Você, claro, não precisa, mas quantos músicos recusariam uma oportunidade de realmente largar o trabalho e ganhar dinheiro com a música deles?

Na TI, essas oportunidades são um pouco mais prováveis do que na música, portanto, não é impossível tornar-se um famoso amador, mas muitas vezes os amadores fazem da sua paixão o seu trabalho (com problemas semelhantes que os músicos têm quando eles têm que descobrir sua linha entre comércio e arte)

    
por 24.10.2011 / 11:11
fonte
8

Eu tenho medo que haja mais possibilidades de aprendizado para os amadores do que para os drones corporativos em tempo integral. Como um amador, você não está confinado a nenhuma tecnologia, ambiente, design e metodologia de desenvolvimento. Você pode fazer o que achar útil para o seu desenvolvimento pessoal. Como desenvolvedor em tempo integral, você provavelmente estará trabalhando em um mesmo produto por anos, seguindo a mesma rotina, limitada pelas mesmas diretrizes corporativas. Para a maioria de nós, não é nada além de uma estagnação. Um pouco pode ser aprendido em um ambiente corporativo, uma vez que você esteja familiarizado com os princípios básicos comuns.

Essa é a razão pela qual muitos desenvolvedores em tempo integral também são amadores, eles continuam codificando depois do trabalho, eles estão jogando com seus próprios projetos de brinquedos - é um pouco de liberdade necessária para um crescimento.

    
por 24.10.2011 / 11:23
fonte
6

Como um programador amador, você tem hoje muitas possibilidades para melhorar suas habilidades. Eu fiz o seguinte para melhorar minhas habilidades enquanto estudava engenharia de software.

  • Ler livros, por exemplo UML destilada , O Programador Pragmático , Introdução aos Algoritmos .
  • Leia sites como o link . Eu tenho feito isso nos últimos meses enquanto estava sentado no metrô / trem. Isso certamente ajuda a ler as perguntas e opiniões de outras pessoas.
  • Participe de palestras gratuitas, cursos ou seminários. Por exemplo, você poderia participar de grupos de usuários Java. Às vezes também há seminários gratuitos para estudantes.
  • Inscrever-se em uma revista de software.
  • Inscreva-se em feeds RSS interessantes, como o Joel on Software , Blog do Google-Code , Martin Fowler .
  • Ouça podcasts enquanto estiver dirigindo para o trabalho ou para a escola, por exemplo SE-Radio .
  • Confira OpenCourseWare e faça algumas das atribuições práticas da universidade!

É claro que você também precisa aplicar seu conhecimento. Faça isso através de um estágio, um projeto com amigos ou curso de estudo. Há muitas maneiras de melhorar a si mesmo, basta estar disposto a investir seu tempo livre. Além disso, divirta-se aprendendo algo novo !

    
por 24.10.2011 / 11:01
fonte
4

Is it possible for an amateur to become a good programmer?

Sim, é possível , no entanto, leva muito tempo:

it takes about ten years to develop expertise in any of a wide variety of areas, including chess playing, music composition, telegraph operation, painting, piano playing, swimming, tennis, and research in neuropsychology and topology. The key is deliberative practice: not just doing it again and again, but challenging yourself with a task that is just beyond your current ability, trying it, analyzing your performance while and after doing it, and correcting any mistakes. Then repeat. And repeat again.

How can an amateur programmer train to become a good programmer?

Novamente a partir da mesma fonte :

  • Fique interessado em programar
  • Programa
  • Converse com outros programadores
  • Se você quiser, coloque em quatro anos em uma faculdade
  • Trabalhe em projetos com outros programadores
  • Trabalhe em projetos depois de outros programadores
  • Aprenda pelo menos meia dúzia de linguagens de programação
por 24.10.2011 / 21:38
fonte
3

Como amador, você tem mais opções para buscar melhores práticas do que muitos profissionais. Os profissionais muitas vezes estão sob pressão para "apenas fazer isso".

Eu não vi nenhum curso como o que aprendi sobre programação, mas aprendi com alguns cursos gratuitos (de 1 a 3 horas) apresentados pela Universidade que eu frequentava. Eles tinham como objetivo permitir que pessoas de negócios entendessem o código sendo escrito para eles. Os cursos apresentavam um código muito bem escrito (comentários incluídos) que resolvia um problema comum da vida real. O código foi então revisado com uma explicação dos recursos do idioma e por que eles foram usados da maneira como estavam. Nenhum dos cursos de idiomas completos que vi resultam em código em qualquer lugar perto da qualidade do que aprendi com esse curso. Foi um par de anos antes de eu mudar para estudar Ciência da Computação.

A Internet e a biblioteca fornecem muitos recursos e exemplos. Eu acho que muitos dos exemplos não são muito bons para nada além de fazê-lo. Ao analisar exemplos, observe primeiro o código. Você consegue entender o propósito e a estrutura sem a explicação? Se assim for, você pode ter encontrado um bom exemplo.

Algumas práticas importantes que você deve aprender e aplicar:

  • DRY (não se repita).
  • DRO (não repetir outro); Use as bibliotecas de idiomas padrão, use outras bibliotecas.
  • Mantenha o código simples. Código elegante tende a ser mais difícil de manter. Pior ainda, os otimizadores geralmente produzem código de máquina mais lento do que o código mais simples.
  • Os módulos devem ter apenas um propósito. (É melhor que esse propósito seja para trabalhar ou tomar decisões.)
  • Use bons nomes. Não use nomes curtos para evitar digitar, use um IDE com preenchimento automático. Entenda as convenções de nomenclatura do seu idioma.
  • Não otimize seu código. Espere até que você possa medir seu desempenho e saiba que otimizar isso terá um efeito notável.
  • Continue aprendendo. Aprenda a identificar recursos que fornecerão informações úteis que você pode usar agora.
por 24.10.2011 / 16:03
fonte
2

If you like to play music or sing, you can do it because it is your hobby and you are interested, and you can become a good singer or music player. But you do not need to become a professional singer or do singing for a living. Is this also true for programmers ? Any amateur programmer who is famous?

Nada disso. É o software engineering . Não é baseado em "talento natural". Ser um ótimo programador é baseado em anos de educação e anos de experiência . Você só consegue trabalhar em projetos reais .

    
por 24.10.2011 / 13:20
fonte
2

Em entrevistas de emprego que fiz (do lado do empregador), eu sempre pedi coisas que o entrevistado tem programado como amador (exceto as tarefas da escola) - ter feito isso é um sinal claro de interesse genuíno no trabalho. campo e ter paixão para aprender por conta própria. Não é apenas possível, é quase um requisito para se tornar bom.

    
por 24.10.2011 / 13:59
fonte
2

É possível? Sim. No entanto, quanto mais tempo você passar na programação, mais tempo terá para melhorar. Tem sido dito que leva 10 anos / 10.000 horas de prática deliberativa para desenvolver experiência em uma habilidade técnica. Não são 10.000 horas de fazer o mesmo tipo de codificação na sua zona de conforto (por exemplo, escrever código jQuery simples para sites diferentes), mas 10.000 horas de aprendizado / leitura sobre programação / leitura de código fonte / código fonte / aprender outras linguagens Trabalhando com os outros, etc.

Se você vai dedicar esse nível de tempo a isso; você também pode conseguir um emprego como programador e deixar o status de amador. (A menos que você seja rico independentemente).

    
por 24.10.2011 / 16:54
fonte
1

Todo mundo é um amador em tudo em um ponto. Se você quer se tornar um bom programador e é algo que você gosta de fazer, você vai. A chave é programar por conta própria. A escola vai te ensinar quase nada. A maior parte do seu aprendizado será feito por conta própria e no trabalho. Se você quer ser bom, seja bom.

    
por 24.10.2011 / 17:55
fonte
1

dado o significado original real da palavra (francês amador "amante de", do francês antigo e finalmente do latim amatorem nom. amator , "lover" - Wikipedia), gostaríamos de acreditar que um grande número de profissionais também são amadores. Se você não ama seu ofício, você estaria praticando?

É claro que é possível - se você gosta de programação, você a praticará e, com o tempo, você se tornará bom nisso. (Talvez nunca grande, dado talentos pessoais ou falta dela), mas pelo menos bom

    
por 24.10.2011 / 19:49
fonte
0

Eu não sei o que define um bom programador. Mas aprender algo próprio e trabalhar com um grupo de pessoas é algo diferente. Os programadores amadores apaixonados realmente aprendem coisas novas e hackers. Eles acharam as coisas mais interessantes. Mas trabalhar com um grupo de pessoas é um ato um pouco disciplinado, no qual você colabora, comunica, compartilha / obtém informações dos especialistas nessa área.

Mas ganhar conhecimento é apenas questão de paixão. Há pessoas que passam noites aprendendo coisas e finalmente acabam trazendo algo novo para o mundo como Bill G Mark Zuck, etc. Não se compara facilmente. mas se você quer ser um engenheiro de software melhor (não vou chamar Programador), junte-se a uma empresa ou trabalhe para alguns bons produtos que são usados por outros.

Finalmente leia muito para melhorar suas habilidades, atitude, atualizações do setor, desenvolver um gosto e seguir com uma paixão. As coisas seguirão você facilmente!

    
por 24.10.2011 / 11:30
fonte
0

À pergunta: "algum programador amador se tornou famoso?" A resposta é "sim, mas a maioria não ficou assim". O exemplo mais famoso em que posso pensar é o de Roy Fielding, que fez alguns de seus trabalhos mais importantes enquanto (acredito) não remunerados na Universidade (amadores significam remuneração não paga por definição).

O truque para ser de qualidade profissional é ter um mentor ou um conjunto de mentores (como uma equipe em um projeto de código aberto) e dedicação séria ao tema. Como ex-músico profissional, minha experiência é que ambos são necessários para ser bom, seja como profissional ou como amador. Alguns podem ser aprendidos por livros, mas sem uma crítica externa consistente, torna-se muito difícil passar por maus hábitos adquiridos como novatos.

Dito isto, no caso do programador, é substancialmente mais fácil aprender do que o do músico - foi minha experiência que, como músico, é muito mais difícil, como músico, ver seus erros pedagógicos do que ver código que simplesmente não funciona. Por outro lado, também requer um investimento de tempo substancialmente maior para ser um bom desenvolvedor.

    
por 24.10.2011 / 17:33
fonte
0

Como qualquer outra coisa, a melhor maneira de melhorar em algo é mergulhar no ambiente em que você deseja se tornar bom e cercar-se de pessoas muito superiores a você que estão dispostas a tolerar e ensinar-lhe. Não é fácil de fazer, mas é o que descobri ser a melhor maneira de aprender a ser bom em algo mais rápido.

Mas quando se trata de ser um programador verdadeiramente talentoso, você tem que ser apenas isso, talentoso. Se você não é um violinista naturalmente talentoso, você nunca será tão bom quanto os mestres, não importa o quanto você tente ou o instrumento que você compra. Da mesma forma, se você não tem esse dom que faz dos programadores um verdadeiro gênio, você nunca os será.

    
por 24.10.2011 / 22:52
fonte

Tags