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 ou cantar, pode fazê-lo porque é seu hobby e está interessado, e 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? Algum programador amador que é famoso?
Respostas:
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 o acertam com o que for conveniente.
Por esse motivo, proponho que você faça parte de uma equipe, por exemplo, um projeto de código aberto ou faça um projeto de hobby com alguns amigos.
fonte
O caminho para se tornar bom em programação é o mesmo que para cantar ou tocar música: praticar, praticar, praticar. Se você gastar tempo suficiente desenvolvendo regularmente o software por vários anos, é provável que se torne bom nisso - seja dentro ou fora do horário de trabalho.
Agora, além de gastar mais tempo praticando, há outra razão pela qual os profissionais geralmente se tornam melhores que os amadores em certo sentido (tanto na música quanto na programação). Se você é um profissional, precisa executar tarefas que não necessariamente gosta, mas que pertencem ao trabalho mais amplo de desenvolver software (por exemplo, testes, discussões com clientes, escrever documentação, configurar ambiente de desenvolvimento / desenvolvimento, escrever scripts de compilação etc.) ) E de vez em quando você também é pressionado a entrar em áreas desconhecidas, a aprender novos idiomas ou plataformas. Como amador, você não é forçado a fazer o que não quer, o que faz com que você fique na sua zona de conforto a maior parte da sua vida. Em outras palavras, você pode se limitar facilmente a uma ou algumas áreas específicas das quais gosta mais,
OTOH muitos desenvolvedores profissionais também se enquadram nisso, permanecer na mesma empresa fazendo o mesmo trabalho de rotina dificilmente aprendendo algo novo por décadas ... Portanto, 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 desconhecido, acabará superando os enxames de "profissionais" lentamente fossilizados. Uma boa maneira de fazer isso pode estar contribuindo para alguns projetos de código aberto.
Uma leitura recomendada é The Pragmatic Programmer: From Journeyman to Master , com muitos conselhos ótimos e muito práticos sobre como continuar melhorando.
fonte
Você se torna melhor aprendendo, o que é parte que faz, parte que reflete sobre o que foi feito.
Então, basicamente, não há diferença entre amadores e profissionais, mas as 'armadilhas' estão dispostas um pouco diferente.
Armadilhas amadores são, imho
a necessidade de terminar seu projeto, não importa o que aconteça, não é tão forte quando você não é profissional . Isso pode ser uma coisa boa, porque você não vai se acostumar com isso quando se trata de qualidade, mas o acabamento (o tempo é ainda melhor) é uma habilidade muito importante, 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 forte. Em um projeto profissional, há um forte incentivo para realmente entender os clientes, mesmo que eles sejam completamente incapazes de formar apenas uma frase coerente do problema que eles querem que você resolva. Se você os entender mal, ou (no caso usual) não perceber, 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 à não solução de seus problemas, e ser 'finalizado' de uma maneira técnica.
As armadilhas profissionais são
geralmente há pouca motivação para melhorar . Você está lá 40h / semana, independentemente de encontrar a cura para o câncer ou apenas tomar café de uma maneira que pareça produtiva. Aprender é algo que você faz principalmente por si mesmo e, muitas vezes, se você tentar aplicar as coisas que aprendeu, há forças que trabalham contra isso (pensamento conservador do grupo, hierarquias e até guias de estilo podem ser usados como armas contra melhorias). É preciso muito amor pela profissão para não desistir, cortar o horário e procurar objetivos alternativos na vida.
geralmente há pouco a aprender . Sim, pode-se tentar aceitar tudo como um desafio, mas temos que ser honestos: após 1 ano do código Spaghetti, você não pode refatorar ("você está complicando isso!") Em um idioma em que você tem mais anos Com uma experiência que provavelmente durará, a única coisa que se aprende é construir uma tolerância contra a frustração e a política corporativa.
Claro que você não precisa, mas quantos músicos recusariam uma oportunidade de realmente deixar o emprego e ganhar dinheiro com a música?
Na área de TI, essas oportunidades são um pouco mais prováveis do que na música; portanto, acho que não é impossível se tornar um amador famoso, mas muitas vezes os amadores fazem de sua paixão seu trabalho (com problemas semelhantes que os músicos têm quando precisam fazê-lo). descobrir sua linha entre comércio e arte)
fonte
Receio que haja mais possibilidades de aprendizado para os amadores do que para os drones corporativos em tempo integral. Como amador, você não está confinado a nenhuma metodologia, tecnologia, ambiente, design e desenvolvimento. Você pode fazer o que achar útil para o seu desenvolvimento pessoal. Como desenvolvedor em período integral, você provavelmente trabalha no mesmo produto há anos, seguindo a mesma rotina, limitada pelas mesmas diretrizes corporativas. Para a maioria de nós, não passa de uma estagnação. Um pouco pode ser aprendido em um ambiente corporativo, quando você estiver familiarizado com o básico comum.
Essa é a razão pela qual muitos desenvolvedores em tempo integral também são amadores, continuam codificando depois do trabalho, estão brincando com seus próprios projetos de brinquedos - é um pouco de liberdade necessária para o crescimento.
fonte
Como programador amador, você tem muitas possibilidades hoje em dia para melhorar suas habilidades. Fiz o seguinte para melhorar minhas habilidades enquanto estudava engenharia de software.
Claro que você também precisa aplicar seu conhecimento. Faça isso através de um estágio, um projeto com amigos ou um curso de estudo. Existem muitas maneiras de melhorar a si mesmo, você apenas está disposto a investir seu tempo livre. Além disso, divirta-se aprendendo algo novo !
fonte
Sim, é possível , porém leva muito tempo:
Novamente da mesma fonte :
fonte
Como amador, você tem mais opções para buscar melhores práticas do que muitos profissionais. Os profissionais geralmente estão sob pressão para "simplesmente fazê-lo".
Não assisti a nenhum curso do qual aprendi programação, mas aprendi com alguns cursos gratuitos (de 1 a 3 horas) apresentados pela Universidade em que participava. Eles tinham como objetivo permitir que os empresários entendessem o código sendo escrito para eles. Os cursos apresentaram um código muito bem escrito (comentários incluídos) que resolveu um problema comum da vida real. O código foi revisado com uma explicação dos recursos do idioma e por que eles foram usados da maneira que estavam. Nenhum dos cursos de idiomas completos que eu vi resultou em código nem de perto com a qualidade do que aprendi nesse curso. Passaram-se alguns anos antes de eu começar a estudar Ciência da Computação.
A Internet e a biblioteca fornecem muitos recursos e exemplos. Acho que muitos dos exemplos não são bons para nada, mas para fazê-lo. Ao examinar exemplos, observe primeiro o código. Você consegue entender o propósito e a estrutura sem a explicação? Nesse caso, você pode ter encontrado um bom exemplo.
Algumas práticas importantes que você deve aprender e aplicar:
fonte
De modo nenhum. É engenharia de software . Não é baseado em "talento natural". Ser um grande programador é baseado em anos de educação e anos de experiência . Você só consegue isso trabalhando em projetos reais .
fonte
Nas entrevistas de emprego em que estive (no lado do empregador), sempre pedi coisas que o entrevistado programava como amador (exceto tarefas escolares) - fazer isso é um sinal claro de interesse genuíno no campo e ter paixão por aprender por conta própria. Não é apenas possível, é quase um requisito para se tornar bom.
fonte
É possível? Sim. No entanto, quanto mais tempo você gasta programando, mais tempo precisa para melhorar. Dizem que são necessários 10 anos / 10.000 horas de prática deliberativa para desenvolver o conhecimento de uma habilidade técnica. Isso não significa 10.000 horas de codificação na sua zona de conforto (por exemplo, escrevendo código jQuery simples para sites diferentes), mas 10.000 horas de aprendizado / leitura sobre programação / leitura de código-fonte / gravação de código-fonte / aprendizagem de outros idiomas / trabalhando com outras pessoas etc.
Se você vai dedicar esse nível de tempo a ele; você também pode conseguir um emprego como programador e abandonar o status de amador. (A menos que você seja rico independentemente).
fonte
Todo mundo é amador em tudo em um ponto. Se você quer se tornar um bom programador e é algo que gosta de fazer, você o fará. A chave é programar por conta própria. A escola ensinará quase nada. A maior parte do seu aprendizado será realizada por conta própria e no trabalho. Se você quer ser bom, vá ser bom.
fonte
dado o
verdadeirosignificado original da palavra (francês amador "amante de", do francês antigo e, finalmente, do latim amatorem nom. amator , "amante" - Wikipedia), alguém gostaria de acreditar que um grande número de profissionais também são amadores. Se você não ama o seu ofício, você o pratica?É claro que é possível - se você gosta de programar, praticará e, com o tempo, se tornará bom nisso. (Talvez nunca seja ótimo, dado talento pessoal ou falta dele), mas pelo menos bom
fonte
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 achavam as coisas mais interessantes. Mas trabalhar com um grupo de pessoas é um ato disciplinado, no qual você colabora, comunica, compartilha / obtém informações de especialistas nessa área.
Mas adquirir conhecimento é apenas uma questão de paixão. Há pessoas que passaram noites aprendendo coisas e acabam trazendo algo novo para o mundo como Bill G Mark Zuck, etc. Não é possível comparar facilmente. mas se você quiser ser um engenheiro de software melhor (não vou ligar para programador), entre em uma empresa ou trabalhe para obter bons produtos usados por outras pessoas.
Por fim, leia muito para melhorar suas habilidades, atitudes, atualizações do setor, desenvolver um gosto e seguir com paixão. As coisas vão segui-lo facilmente!
fonte
Para a pergunta, "algum programador amador se tornou famoso?" A resposta é "Sim, mas a maioria não ficou assim". O exemplo mais famoso que consigo pensar é Roy Fielding, que realizou alguns de seus trabalhos mais importantes enquanto (acredito) não remunerado na Universidade (amador significa não remunerado por definição).
O truque para ter qualidade profissional é ter um mentor ou um conjunto de mentores (como uma equipe em um projeto de código aberto) e uma dedicação séria ao assunto. Como músico anteriormente profissional, minha experiência é que ambos são necessários para ser bons como profissional ou como amador. Alguns podem ser aprendidos pelos livros, mas sem críticas externas consistentes, torna-se muito difícil superar os maus hábitos adquiridos como iniciantes.
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 apenas não funciona Por outro lado, também exige um investimento de tempo substancialmente maior para ser um bom desenvolvedor.
fonte
Como qualquer outra coisa, a melhor maneira de melhorar algo é mergulhar no ambiente em que você deseja se tornar bom e cercar-se de pessoas muito superiores a você, dispostas a tolerá-lo e ensiná-lo. Não é fácil de fazer, mas foi o que descobri que é a melhor maneira de aprender a ser bom em algo mais rápido.
Mas quando se trata de ser um programador verdadeiramente talentoso, você precisa ser apenas isso, talentoso. Se você não é um violinista de talento natural, nunca será tão bom quanto os mestres, por mais que tente ou que instrumento compre. Da mesma forma, se você não tem esse dom que torna os programadores realmente geniais, você também nunca será.
fonte