Não programa no meu tempo livre. Isso me torna um desenvolvedor ruim?


387

Muitos blogs e conselhos na Web parecem sugerir que, para se tornar um ótimo desenvolvedor, fazer apenas o seu trabalho diário não é suficiente. Por exemplo, você deve contribuir para projetos de código aberto no seu tempo livre, escrever aplicativos para smartphone etc. De fato, muitos desses conselhos parecem sugerir que, se você não gosta de programar o suficiente para fazê-lo o dia inteiro, então está provavelmente na carreira errada.

Isso não soa verdadeiro para mim. Gosto do meu trabalho, mas quando chego em casa do escritório não estou com vontade de pular direto para o computador e começar a codificar até a hora de dormir. Só tenho um certo número de horas de folga por dia e prefiro gastá-las em outros hobbies, vendo amigos ou saindo do que na frente do computador.

Eu recebo um pontapé de programação e, ocasionalmente, ando fora do trabalho. Estou comprometido com meu desenvolvimento pessoal e passo tempo lendo blogs e livros de tecnologia como uma maneira de continuar aprendendo e melhorando. Mas isso não se estende ao meu desejo de usar todo o meu tempo livre para codificação.

Isso significa que não sou um desenvolvedor de software 'verdadeiro' no coração? É possível se tornar um bom desenvolvedor de software sem fazer extra fora do seu trabalho? Eu ficaria muito interessado em ouvir o que você pensa.

Atualização: obrigado a todos por seus comentários e respostas. Muitos bons pensamentos e conselhos!


133
Eu acho que isso apenas o torna mais normal, você provavelmente tem mais conexão com o que os nerds chamam de "vida real". Valorize isso.
Orbling

146
@Orbling Como é essa "vida real" de que você está falando? É semelhante ao WoW? Ele roda em um sistema operacional de 64 bits?
biziclop

18
@biziclop - É como o WOW, com melhores gráficos e jogabilidade, que é muito mais entediante.
ChaosPandion

39
@ChaosPandion: Missões sugam r / l, longo, sem graça e o saque definitivamente não é épico.
Orbling 17/02

4
Por uma questão de eficiência, recomendo experimentar coisas novas e trabalhar em projetos pessoais quando você deveria estar trabalhando. Dessa forma, você ainda tem seu tempo livre limitado. :-)
Carson63000 17/02

Respostas:


446

Na OMI, essa atitude vem de pessoas que têm empregos horríveis e sugadores de almas, combinadas com habilidades de gerenciamento de tempo com pouca atenção. Se você está basicamente digitando formulários da Web o dia inteiro, faça um trabalho mais desafiador ou comece o seu.

Aqui está a coisa. Um músico de concerto (violoncelista / pianista / o que for) irá praticar no máximo 6 horas por dia. A maioria pratica apenas algumas horas por dia. nos níveis mais altos

As pessoas dizem que programa mais porque você aprende mais, mas isso é uma cortina de fumaça. 8 horas por dia são suficientes .

O progresso NÃO é linear. É logarítmico:

insira a descrição da imagem aqui

A única razão pela qual um músico pode praticar por mais de 3 horas é que eles precisam extrair 1% extra que essas horas lhes dão. Se você acha que isso se aplica a você, resolvendo um problema resolvido pela CS há duas décadas, então você tem um complexo prima-donna para inicializar.

Já trabalhei em empresas de panelas de pressão e, confie em mim, a quantidade real de trabalho que esses caras realizam não é melhor do que uma empresa como a 37signals, que impõe restrições à quantidade de trabalho: http://37signals.com / svn / posts / 996-por que eu amo trabalhar com pessoas da família

O que acaba acontecendo é que, com certeza, você pode ficar na frente de um computador por 10 a 12 horas e no escritório por mais 2, mas isso não inclui o almoço de 90 minutos que você levou, as 2 horas que você passou navegando nas discussões fóruns e o intervalo de horas em que você teve que jogar um dos muitos jogos previstos no escritório (pebolim, sinuca, yada ...).

Olhe para trás naquele gráfico. Agora de volta para mim.

Sua mente realmente tem a oportunidade de expandir muito mais se você a envolver em alguma outra atividade: Aprenda a tocar um instrumento . Aprenda uma língua estrangeira . Melhor ainda sair e fazer algum exercício, e se conectar com pessoas reais .

Sobre a natureza logarítmica da produtividade:

No renomado estudo de 1993 de jovens violinistas, o pesquisador de performance Anders Ericsson descobriu que todos os melhores praticavam da mesma maneira: de manhã, em três incrementos de não mais de 90 minutos cada, com uma pausa entre cada um. Ericcson encontrou o mesmo padrão entre outros músicos, atletas, jogadores de xadrez e escritores.

Para produtividade real, menos é realmente mais

Este é realmente um princípio bem conhecido no mundo dos negócios. Estou surpreso que mais programadores não tenham ouvido falar dele.

Atualização: Mais informações sobre o estudo da Ericsson.

Toda a noção de que ele leva 10.000 horas / 10 anos para se tornar proficiente vem dos estudos feitos pela Ericsson, não da Malcom Gladwell.

Como todos sabemos, você pode repetir 1 ano de experiência 10 vezes ... então, apenas manter o seu rabo no banco por 10 anos não se qualifica. O que qualifica é o que a Ericsson chama de prática deliberada .

Ele descobriu que esse princípio é válido no atletismo, na música, na escrita, no xadrez e na matemática. Ele define ainda a prática deliberada como sendo tão trabalhosa que, mesmo nos níveis mais altos, você só pode praticar cerca de 4 horas por dia . Caso contrário, você sofrerá overtraining ou burnout. Mais uma vez, ele reconhece que há retornos decrescentes para a prática deliberada, até cerca de 4 horas.

Sobre o assunto de não ter um emprego bom / desafiador:

Hogwash. Ou arranje um emprego melhor ou aqui está uma idéia: transforme seu emprego atual em algo que não é , pelo menos agora.

Um dos melhores programadores que conheci entrou em um trabalho como programador de manutenção em um sistema legado que consistia em dezenas de programas e centenas de milhares de linhas de código. A maioria dos quais foi hackeada ao longo dos anos tanto que você teria que dizer que não havia mais nenhum design coerente.

Era praticamente um trabalho sem saída, sem saída. A gerência queria que você ficasse de cabeça baixa e apenas consertasse os malditos bugs. Os bons desenvolvedores estavam trabalhando no projeto greenfield. As pessoas vieram para cá para passar os dias restantes até se aposentarem, ou ganhar alguns anos de experiência antes de iniciar o desenvolvimento de novos aplicativos. Enquanto a maioria dos programadores se queixava da falta de desenvolvimento de carreira, da oportunidade de aprender coisas novas, de não ter projetos interessantes para trabalhar, ou de um modo mais geral reclamar que ninguém os permitia , esse cara simplesmente sentou-se e continuou fazendo o trabalho que precisava ser feito.

E, ao longo de 2 anos, ele transformou esse sistema de um inferno de códigos de espaguete para algo que era uma coisa de beleza e funcionava como um relógio suíço. A transformação foi tão completa que o vice-presidente da divisão começou a prestar cada vez mais atenção ao projeto existente e a questionar o valor do projeto greenfield. Embora ele não tivesse um título, o pessoal de operações o procurou como líder de fato do grupo. Quando saí, o vice-presidente estava falando sobre a criação de uma nova função para ele como arquiteto de sistemas ...

Não sei ao certo o que aconteceu com ele depois disso, mas ele me ensinou algumas lições muito importantes:

  1. Seu trabalho é o que você faz, e há problemas interessantes a serem resolvidos em todos os lugares . Se você odeia escrever telas CRUD, resolva o problema gerando-as automaticamente.

  2. Não fique esperando as oportunidades chegarem até você. As chances são de que nunca serão.


Comentaristas : os comentários destinam-se a buscar esclarecimentos, não a discussões prolongadas. Se você tiver uma solução, deixe uma resposta. Se sua solução já estiver publicada, faça um voto positivo. Se você quiser discutir esta questão com outras pessoas, use o bate-papo . Veja o FAQ para mais informações.

30
Isso e muitas outras respostas colocam muita ênfase na programação como "prática". Para continuar na comparação entre músicos, acredite ou não, mas eles também tocam por prazer. O que os entrevistadores procuram por alguém que programa em seu tempo livre procura não é aquele que sente a necessidade constante de praticar o tempo todo. Eles estão procurando alguém que seja apaixonado e realmente goste do que faz. Se você é apaixonado pelo seu trabalho, muitas vezes o transforma em um hobby, e é difícil se afastar dele. Não é diferente de pegar outro hobby.

7
O exemplo do músico não é realmente bom. Quando um músico atinge um alto nível de habilidade, quando aprende toda a teoria, quando compõe músicas com os olhos fechados, quando toca mais de 9000 instrumentos ao mesmo tempo, ele não tem mais nada a fazer. O programador ou engenheiro de computação precisa aprender sobre novas tecnologias por toda a vida. Sempre há algo novo para aprender. Então, respondendo à pergunta, um cara que programa o dia inteiro e não tem vida social é muito melhor do que um cara que não programa no seu tempo livre.

2
@GabrielLlamas As teorias da música são coisas básicas, como fundamentos de algoritmos, computação distribuída e sistemas operacionais que aprendemos na faculdade. Esses princípios não mudam muito as horas extras. Em cerca de 20 anos, já tínhamos o modelo de cliente e servidor e agora ainda temos o modelo de cliente e servidor. Portanto, o básico do cliente e do servidor ainda se aplica; são apenas as coisas de alto nível que estão mudando rapidamente. Você pode pensar em diferentes instrumentos como tecnologias diferentes, como HTML, Javascript. Mas se você puder aplicar os fundamentos, as coisas serão semelhantes.
David Gao

1
Outro exemplo é como quando você sabe programar em c, aprender c ++ não será difícil. Lembro que resolvi as questões de programação do meu colega de quarto usando o Scheme sem conhecer nenhum esquema. Esquema de aprendizado não foi difícil para mim porque eu sei em alto nível o que era uma linguagem funcional.
David Gao

150

Há mais informações ocultas nesta mensagem.

Muitos programadores entusiasmados gostam de explorar as coisas, experimentar, seguir suas idéias, é assim que aprendemos e obtemos nossas habilidades e visão.

Normalmente você não segue seus interesses durante o horário de trabalho. Você apenas faz as coisas que lhe dizem para fazer e é isso. Apenas alguns de nós têm a sorte de fazer no trabalho o que faríamos pessoalmente, mesmo que não fossem pagos.

Portanto, se você não estiver fazendo nada extra, não estará desenvolvendo seu potencial. E esse é exatamente o problema.


2
uau, isso é um grande alívio, pois às vezes sinto que estou interessado em aprender sobre outro aspecto da programação, mas o trabalho faz com que tudo pareça uma rotina.
Melaos

3
Verdadeiro. Uma coisa a ter em atenção é qualquer Contrato de Invenção que você possa ter assinado durante a admissão. Não os usamos, mas eu tinha um acordo verbal com meus programadores: se estiver fora do horário de trabalho e não estiver competindo diretamente com a empresa, divirta-se. Eu nem me importava se eles usavam equipamentos da empresa, embora houvesse um acordo geral de que era "mais limpo" mantê-lo em casa.
quer

3
É bom seguir sua curiosidade fora de horas. Isso pode estar em como implantar a próxima versão do Windows automaticamente em toda a empresa durante a noite (Mwah hah hah). Ou pode ser fotografia, cerveja ou remo. Interesses externos fazem de você uma pessoa mais completa. Não precisa estar relacionado ao seu trabalho diário.
quickly_now

5
-1 Como outros observaram em outras respostas e comentários, isso implica que você não pode realisticamente conseguir um emprego bom, divertido e desafiador. Na minha experiência pessoal, isso não é verdade. Até agora, aprendi muitas coisas novas na maioria dos meus trabalhos. IMHO é uma questão de atitude pessoal, pelo menos tanto quanto a cultura da empresa.
Péter Török

26
Se você gosta de programar e não gosta de seu trabalho, deve passar seu tempo livre procurando um emprego melhor.
Nikie

70

Isso não faz de você um desenvolvedor ruim, mas, infelizmente, você ainda precisa competir com os que o fazem.

Leia isto, no Blog de Seth Godin :


Irrazoável

Não é razoável sair da cama em um dia de neve, quando a escola foi cancelada, e transformar o tempo de inatividade em seis horas de trabalho em um laboratório de física de crédito extra.

Não é razoável lançar um produto de tecnologia que salte a curva de desenvolvimento em nove meses, trazendo a próxima geração muito mais cedo do que os concorrentes mais razoáveis.

Não é razoável que uma empresa de caminhões atenda o telefone no primeiro toque.

Não é razoável iniciar uma nova empresa sem o risco que o dinheiro pode trazer.

Não é razoável esperar que um consultório médico tenha uma equipe agradável e prestativa na recepção.

Não é razoável abandonar um bom show na economia de hoje, mesmo que você queira fazer algo corajoso e original.

Não é razoável que os professores esperem que possamos permitir que as crianças desfavorecidas do centro da cidade tenham um bom desempenho no ensino médio.

Não é razoável tratar seus colegas e concorrentes com respeito, dada a pressão que você sofre.

Não é razoável esperar que qualquer pessoa, exceto uma grande mulher, alguém com tanto entusiasmo quanto vantagens, possa fazer algo importante em um mundo em que o baralho esteja contra pessoas comuns.

Não é razoável dedicar anos de sua vida fabricando um produto que a maioria das pessoas nunca apreciará.

Felizmente, o mundo está cheio de pessoas irracionais. Infelizmente, você precisa competir com eles.


13
Sim, também não é razoável trabalhar 8 horas por dia e depois voltar para casa para trabalhar um pouco mais. Para quem você está trabalhando? E porque? Você precisa responder a essas perguntas (quem está pagando? Por quê? Para receber o quê?) Se você estiver mentalmente esgotado até o final do dia, a melhor coisa que você pode fazer por si mesmo é - outra coisa!
quickly_now

37
Você assume que os desenvolvedores não são desafiados no trabalho e não gostam do trabalho deles. Não é verdade. As pessoas que só programa no trabalho não programar em casa porque eles estão totalmente satisfeitos já
Ninguém

8
-1 porque a) as citações não estão diretamente relacionadas a essa questão; b) na OMI (a maioria), essas coisas não são irracionais. Muitas pessoas razoáveis ​​podem pensar tanto a longo quanto a curto prazo. OTOH a maioria de nós são experientes em inventar agradáveis (e falsos) explicações racionais para a nossa preguiça / incompetência / descuido :-(
Péter Török

13
-1 Não é razoável chamar muitas coisas razoáveis ​​de irracionais. Isso não acrescenta nada à pergunta e apenas soa bem, principalmente como muitas coisas que Seth Godin escreve.
Vitor Py

5
"Não é razoável esperar que um consultório médico tenha uma equipe agradável e prestativa na recepção". Não, não é. O que é irracional são os médicos cobrando o que fazem e, em seguida, nos submetendo a funcionários rudes do escritório, longas esperas em suas salas de espera e sendo desrespeitosos pessoalmente.
GreenMatt 17/02

57

Para responder à pergunta: Não programar no seu tempo livre não o torna um desenvolvedor ruim; no entanto, programar no seu tempo livre pode torná-lo um desenvolvedor melhor.

Programar no seu tempo livre certamente não prejudicará suas habilidades, mas você não deve se sentir obrigado a fazê-lo. A programação parece ser um campo relativamente único, porque, para muitas pessoas, é o trabalho e o hobby deles; portanto, eles gostam de programar no tempo livre.


8
A programação não é única em tê-lo como uma carreira e um hobby. Alguns exemplos: uma vez eu sabia que vários pilotos de companhias aéreas têm seus próprios pequenos aviões, dos quais voam por diversão. Conheço astrônomos profissionais que olham de lado.
GreenMatt

4
Por " relativamente único", quis dizer que é um entre poucos, mas certamente não é o único. Conheço muito mais pessoas que, embora possam desfrutar de seu trabalho, não passariam tempo fazendo isso quando não fossem remuneradas. Muitas vezes, é difícil conseguir um emprego fazendo o que você gosta.
shortkaik

1: Tecnologia, idiomas e técnicas mudam com tanta frequência e rapidez. Os programadores devem passar algum tempo fora do relógio aprimorando suas habilidades. // Pergunta relacionada: Você se sentiria confortável com um PCP que não lia revistas médicas?
Jim G.

Penso que esta resposta resume melhor a situação. Mas isso depende inteiramente da situação. Se o seu trabalho atende a todas as suas necessidades de programação, em termos de se esforçar, manter-se atualizado com a tecnologia etc., há muito menos necessidade de trabalhar no seu próprio tempo. No entanto, se seu trabalho for razoavelmente fácil, usando tecnologia mais antiga, dedique algum tempo para melhorar suas habilidades e conhecimentos em seu próprio tempo.
Nellius

@shortkaik "programar em seu tempo livre pode fazer de você um desenvolvedor melhor" - Isso nem sempre é verdade. Se você é desafiado em seu trabalho, se também está programando em casa, isso contribuirá para sua exaustão e esgotamento mais do que para suas habilidades, mas isso também poderá prejudicar sua produtividade no trabalho. Por outro lado, se você não estiver satisfeito com o que seu trabalho lhe dá (e tira de você), uma codificação adicional depois pode ser uma boa decisão.

23

Não, isso não faz de você um programador ruim. Dependendo do que você faz, pode torná-lo um programador melhor a longo prazo. No início de sua carreira, isso pode influenciar a rapidez com que você aprende a variedade de habilidades necessárias. No entanto, você pode estar adquirindo habilidades e informações que ajudarão a longo prazo. Fazer exercícios também não faria mal.

Há uma quantidade razoável de pesquisas que mostram picos de desempenho em torno de 40 semanas de trabalho. Embora possamos produzir por um período de tempo trabalhando mais horas, a longo prazo perdemos eficiência. A pesquisa que eu vi mostra que as pessoas que trabalham 80 semanas são tão produtivas quanto aquelas que trabalham 40 horas por semana.

Existem algumas coisas que você pode refletir nas horas de folga que podem ajudá-lo a ter um melhor desempenho:

  • O que você está fazendo? Você pode fazer melhor? Você precisa fazer isso?
  • O que você está aprendendo? O que você precisa aprender?
  • Quais problemas você está enfrentando? Quem é o melhor para resolvê-los? O que você pode fazer?

Programar como hobby não significa trabalhar após horas no trabalho de negócios - isso definitivamente não aumenta. Mas programar um jogo no iPhone no ObjC como hobby pode melhorar suas habilidades e produtividade total no trabalho (se o trabalho for, por exemplo, escrever aplicativos financeiros no Java EE).
Heiko Rupp

@ Heiko True, mas existem muitas outras habilidades além da programação que podem torná-lo um programador melhor. Um bom desenvolvedor tem muitas habilidades além da programação.
BillThor

Claro :) Eu estava me referindo especialmente à "produtividade máxima às 40h" - que soava como se você fizesse 5h de programação de hobby, você só pode fazer 35h no trabalho. O que eu não acho certo
Heiko Rupp

1
@ Heiko Se o trabalho for suficientemente diferente, você poderá fazer as duas coisas. Nos meus primeiros dois anos após a formatura, excedi regularmente 40 horas por semana, mas apliquei uma grande variedade de habilidades. Aprendeu muito e não pareceu bater no muro do desempenho. Felizmente, eu tinha um amigo que me arrastaria para fora do escritório em algum momento da noite. Em outro projeto, fui para casa às 14h quando percebi que não havia realizado nada desde as 10h. Ainda cobrado as 4 horas.
BillThor

15

É possível se tornar um bom desenvolvedor de software sem fazer extra fora do seu trabalho?

Definitivamente.

Pode levar mais tempo do que se você gastasse horas extras aprimorando sua habilidade. Também achei difícil dedicar tempo suficiente ao auto-aperfeiçoamento se eu estivesse empregado em período integral e fazendo pouca programação fora do horário de trabalho.

Quando eu era mais jovem, dediquei muito mais tempo ao aprendizado do que agora. Os conceitos que uso no dia a dia estão profundamente arraigados neste momento, e parece mais fácil adquirir conhecimentos adicionais com essa experiência.

Os programadores "bons" parecem dedicar mais horas extras porque são obsessivos por natureza, tendem para o extremo anti-social do espectro e gostam genuinamente de programação e todo o ciclo de solução de problemas.


13

No grande esquema das coisas, trata-se de encontrar o equilíbrio certo na vida.

O importante é se você gosta de programar e se continua aprendendo, não importa em que nível esteja. Se você programa ou não fora do trabalho, não o torna automaticamente um programador "bom" ou "ruim".

Para dar uma perspectiva pessoal, eu programa há 25 anos (primeiro quando criança, depois profissionalmente). Eu absolutamente amo isso.

No entanto, quase nunca programa fora do trabalho. Isso tem a ver com várias coisas:

  • Tenho muita sorte de que, no trabalho, faço o que amo, todos os dias, durante todo o dia.
  • Muito simplesmente, existem outras coisas na vida e há apenas tantas horas no dia.

-1: Sim, existem outras coisas na vida, mas isso não responde à pergunta; você está simplesmente tentando se convencer de que está escolhendo o melhor caminho.
Jim G.

9

Você pode se tornar um bom programador apenas codificando durante o trabalho, especialmente se você administra bem sua carreira. No entanto, os melhores programadores também codificam durante o horário de folga. Dito isto, uma pessoa que escolhe bons empregos com muitas oportunidades de aprendizado, usa bem seu tempo no trabalho, e assim por diante será um programador melhor do que alguém que codifica em casa porque não consegue encontrar empregos que apresentem desafios interessantes durante o processo. Dia De Trabalho.

Embora a codificação em casa seja valiosa, eu diria que maximizar o valor do seu ambiente de trabalho (aprendendo com colegas de trabalho, escolhendo bons empregos, gerenciando sua carreira de forma agressiva) costuma ser ainda mais valioso. Os maiores programadores fazem as duas coisas, além de terem ótimas atitudes em relação à aprendizagem e orientação de outras pessoas.


"No entanto, os melhores programadores também codificam durante o horário de folga". Você não tem nenhuma evidência disso.
djechlin

7

A verdadeira questão é se um novo desenvolvedor está codificando o suficiente (para desafiar problemas suficientes) para passar por algumas centenas de milhares de linhas de código de prática e se tornar um programador decente.

Em teoria, isso pode ser feito no trabalho, no seu próprio tempo, ou em ambos. A prática precisa ser um pouco autodirigida, para que você possa aprender o que precisa aprender. Isso significa um trabalho um pouco flexível.

Muitas vezes os trabalhos iniciantes são um monte de correção de bugs ou outro trabalho que não vai ensinar você a ser bom. O que você precisa fazer é escrever muito código do zero, e esse código provavelmente será ruim. É difícil para os empregadores pagar por isso. É por isso que as pessoas acabam fazendo um projeto de código aberto ao lado ou lançando uma startup ou qualquer outra coisa.

Quando as pessoas dizem que você precisa programar no seu tempo livre, acho que isso realmente significa que você precisa se dedicar a anos de prática significativa desde cedo. Você precisa fazer o que for necessário para obter a prática e aprender a escrever e manter uma grande base de código do zero. Se ninguém está pagando para você escrever uma série de projetos provavelmente desastrosa do zero, o tempo livre é a única opção.

Se você já praticou a prática quando era mais jovem e se tornou um bom programador, acho que não perderá as habilidades básicas se continuar com as 9 às 5 mais tarde. Mais tarde, é mais uma questão de acompanhar as novas tecnologias, que não consomem muito tempo.

No entanto, é um trabalho raro de nível básico que daria a você a quantidade e a qualidade da prática por si só para se tornar um bom programador em primeiro lugar. Um novo desenvolvedor precisa tomar a iniciativa de aprender, e não apenas participar de um trabalho de nível básico, executando tarefas de nível básico.

Seria muito difícil se tornar um bom programador do zero se você já tivesse uma família e estivesse enfatizando fortemente o equilíbrio entre vida profissional e pessoal. Assim como seria muito difícil se tornar médico ou se tornar um músico virtuoso ou qualquer outra coisa nessa situação. Há uma razão pela qual as pessoas tendem a passar por milhares de horas de prática quando são mais jovens do que quando são mais velhos.


5

Se eu passasse algum tempo nos próximos seis meses desenvolvendo um jogo básico no meu tempo livre e você não, e supondo que todas as outras coisas sejam iguais (elas nunca são), qual de nós saberia mais? Qual de nós teria mais habilidades e experiência?

Esse efeito seria cumulativo, uma vez que o conhecimento fora do horário comercial anterior iria alimentar novos trabalhos e novos conhecimentos fora do horário comercial.

E é por isso que as pessoas aconselham a programar em seu tempo livre, na medida em que posso dizer.


5

Entre grande e ruim, existem muitos níveis no meio. Você não pode se tornar um grande desenvolvedor fazendo isso apenas 8 horas por dia, possivelmente trabalhando em problemas de um campo muito limitado.

Se o seu trabalho é variado o suficiente, você pode se tornar "decente" ou "realizado" ou qualquer adjetivo que preferir, mas, para ser um ótimo desenvolvedor, você precisa ser um pouco mental, receio.

Outro motivo para executar a programação de hobby é que, em um trabalho, você geralmente precisa aderir a padrões abaixo do ideal e fazer compromissos em geral e, mesmo que aprenda algo novo, talvez não seja permitido usá-lo.

E ainda outro, ainda mais prosaico, é que qualquer código que você escreve no trabalho pertence ao seu empregador. Você não pode voltar a aprender e aprender com seus erros antigos anos depois, quando estiver trabalhando para outra pessoa.


5

São necessários 10.000 horas de esforço para se tornar um especialista em qualquer coisa. [Michael Gladwell, "Outliers"]

Portanto, fazer um trabalho extra antes de chegar a esse nível o acelerará no caminho para o status de especialista real.

Quando você passar desse nível, gastar mais tempo terá retornos pequenos / decrescentes.


3
Mas o que é uma "coisa" em alguma coisa? "Programação" é uma "coisa" única ou são as coisas "haskell", "lisp", "java", "python", etc? Ou "programação funcional", "programação GUI", "programação de baixo nível", etc? Por si só, isso não nos diz nada.
André Paramés

4

Você não deve encará-lo como "Isso me torna um mau programador" porque, como toda habilidade, mais prática só a torna melhor.

Portanto, se você deseja ser melhor do que é atualmente e aprender novas tecnologias e domínios que seu trabalho não permite, é aí que o esforço e o tempo gastos são úteis.

Mas gastar tempo extra com codificação (apenas para provar a alguém que você codifica extra) não significa necessariamente que você se torna um bom programador, a menos que aprenda o que faz e faça algo diferente ou melhore o que já sabe, em vez de cortar / copiar / colar cegamente e montando hacks. Colocar horas extras e fazer a mesma coisa repetidamente, de nenhuma maneira, acho que ajudará você a melhorar.


Acho que o ponto do OP é que alguns programadores espalham a idéia de que, se você não programar fora do trabalho, será um péssimo programador. Eu perdi a conta do número de vezes que vi postagens no SO, aqui e em outros lugares em que alguém diz que, ao entrevistar um possível novo contratado, pergunta o tipo de projeto que o entrevistado está fazendo e se a resposta é "Nenhum" ", o entrevistado não é visto como apaixonado por programação o bastante para não ser considerado para o trabalho.
GreenMatt

+1 - Não faz muito bem se tudo o que você faz é o que já está fazendo no trabalho.
Dunk

Apenas praticar sozinho não o torna melhor, você precisa praticar as coisas certas para poder, de fato, adotar hábitos ruins ainda mais e piorar.
HLGEM

4

Durante o dia, sua programação é apostas curtas. Há dinheiro a ser ganho, você sabe exatamente quanto e para quê e não tem muito mais a ganhar do que um salário.

À noite, você trabalha em apostas longas - idéias malucas que nem sempre funcionam. Estes são os projetos que o catapultarão para fora do ranking. É assim que você se torna o inventor do PHP, e não o macaco de código que o usa.

Eu entrevisto muitos programadores, e se eles fizeram coisas estranhas interessantes fora do horário de trabalho é uma luz verde instantânea. É surpreendentemente raro.

Embora eu diga o seguinte: houve uma vez que um cara que fazia muitas coisas legais fora do horário de trabalho era um fracasso total em contratar. Ainda estou perplexo com esse cara.


3

Ser um bom desenvolvedor de software no coração depende realmente do seu coração. Você pode tentar ser um ótimo músico e dedicar muito tempo à música, mas isso ainda não o torna um bom músico. Você precisa aproveitar o que faz para ser bom nisso. Inicialmente, eu estava tendo as mesmas perguntas que você Mas agora, por causa dos meus gostos, comecei a fazer coisas extras em software além do trabalho normal. Melhorou meu desempenho no trabalho normal e também me proporcionou muito tempo para me envolver em outras atividades não relacionadas ao software. Portanto, a linha de base é aproveitar o que você faz e, eventualmente, fará o que for necessário.


3

A verdadeira questão é o que você está fazendo o dia todo. As analogias com atletas e músicos geralmente não são aplicadas corretamente. Seu trabalho diário não é prática, é desempenho, a menos que você tenha a capacidade explícita de passar parte do seu dia de trabalho em uma "prática" genuína. Como você sabe? Se você nunca tiver tempo para fazer algo "certo" ou aprender um novo idioma / tecnologia / estrutura / etc completamente, não estará praticando, mas sim executando. Atletas e músicos profissionais não melhoram durante o jogo ou o show, eles melhoram durante a prática focada. Portanto, se você é como a maioria, o único tempo que você tem para "prática" de codificação genuína é fora do trabalho. Dito isto, só vale a pena se estiver focado. Se você invadir o dia inteiro e invadir a noite toda, você fica cansado, e não melhor.

Por exemplo, você precisa otimizar um pedaço de código no trabalho e jogar nele as ferramentas usuais de criação de perfis, acelerar talvez 50% e passar para a próxima tarefa, mas acha que existem outras coisas que você pode fazer que ajudariam mesmo mais, mas você não tem tempo para experimentá-los. Se você levar esse pedaço de código para casa com você e passar algumas horas extras realmente torcendo-o, estará aprendendo técnicas que o farão melhorar na próxima vez que otimizar alguma coisa. Você não está fazendo a mesma coisa em casa e no trabalho.

A prática consiste em adicionar habilidades e aprimorar as atividades, e essas atividades são necessariamente realizadas de maneira artificial (é como isolar um grupo muscular na academia, ninguém faz isso na atividade física normal). Criar aplicativos em casa não é uma prática automática. O trabalho em casa deve se concentrar nas técnicas e no processo, não no produto final. Se um produto final é o que você precisa para se motivar, ótimo. Apenas não caia na armadilha de desenvolvê-lo da mesma maneira que no trabalho.

O movimento de codificação kata é um exemplo do que é a prática.


3

Para responder à sua pergunta: Não, isso não faz de você um desenvolvedor ruim.

No entanto , isso pode dificultar sua vida profissional no futuro. Se você tem um emprego em que está constantemente aprendendo novas tecnologias que o ajudarão a progredir em sua carreira (sejam promoções no seu emprego atual ou novos empregos em diferentes empresas), então está pronto.

Mas se você estiver trabalhando atualmente em uma empresa onde a tecnologia usada raramente muda, em 2 ou 5 ou 10 anos, talvez seja difícil conseguir o próximo emprego. Se você está codificando em casa com novas tecnologias e tem algo a mostrar para ela (aplicativo, site, projeto de código aberto etc.), será muito mais fácil conseguir o próximo emprego.

É claro que você pode ficar completamente feliz fazendo exatamente a mesma coisa pelos próximos 40 anos, e enquanto sua empresa e as tecnologias continuarem a existir, estará pronto!


1

Houve momentos em minha vida em que codifiquei muito fora do trabalho e outras em que não fiz porque estava trabalhando em outras coisas. Você deve sempre aprender, mas isso não significa que você sempre precise aprender sobre programação no seu tempo livre. Se você quiser trabalhar em alguma outra habilidade, seja carpintaria, bordado, jardinagem etc. no seu tempo livre, isso ajudará você a crescer como pessoa.

Apenas não caia na armadilha de pensar que sabe tudo o que precisa saber sobre programação para poder parar de aprender.


1

Este é realmente um post interessante. Estou desenvolvendo software há dez anos e adoro o meu trabalho! Eu também tenho muitos hobbies e tento gerenciá-los adequadamente. Mas eu gosto de experimentar coisas novas passando uma ou duas horas na frente do computador antes de ir para a cama. No meu caso, sou viciado em estudar e escrever código de jogo. Nem sempre tenho tempo jogando, mas adoro ler códigos sobre jogos. Para ser sincero, acho que o melhor código que já vi veio dos jogos e aplico essas habilidades ao meu código no trabalho. Eu sempre aprendo TODOS OS DIAS ÚNICOS, então IMO, se você é um desenvolvedor, nunca alcançará seu auge, sempre haverá uma maneira melhor de fazer algo ....


1

Este é um ótimo post.

Eu diria que não, isso não faz de você um programador ruim. Se suas críticas foram boas e você conclui suas tarefas com pontualidade e pontualidade, é o contrário. Com toda a honestidade, tenho inveja de você que você obtém o preenchimento do código enquanto trabalha.

A principal razão pela qual programo no meu tempo livre é que realmente não me importo com o que faço no trabalho e uso meu tempo livre para fazer o que gosto. O que eu gosto de fazer é a programação de videogames. Não há uma empresa de jogos válida para trabalhar onde eu moro (eu tenho uma família aqui agora), então eu ajudo nos jogos independentes quando posso. É a única maneira de curar a coceira. Se eu fizesse o que amava o dia todo, seria muito provável que não o fizesse no meu tempo livre.


1

Meu conselho será: use seu tempo de viagem para aprender coisas, para mantê-lo informado: leia livros de TI, ouça o podcast do Dev, etc. Quanto às suas atividades pós-trabalho: não muda nada. Caso contrário, você se tornará uma pessoa chata.


1

Isso não faz de você um desenvolvedor ruim, pode até não torná-lo um tipo de desenvolvedor "ok", apenas faz de você o que você é. Penso, porém, que você encontrará a maioria das pessoas realmente excelentes hackers que gostam de tentar coisas novas. A qualquer momento, estarei investigando muitas linguagens, bancos de dados, estruturas da web, robótica etc. Tenho dois filhos pequenos e uma esposa, hipoteca, tudo isso - mas estou ansioso pelos momentos em que posso obter 2 ou 3 horas para mexer com coisas. Claro, C # e .NET são ótimos para ganhar um salário e eu realmente gosto do meu trabalho, mas mexer com Scala e Lift tem sido uma verdadeira explosão para mim nos últimos meses. Existem desenvolvedores que se classificariam como "apaixonados" e aqueles que estão apenas "passando".


1

Isso significa que não sou um desenvolvedor de software 'verdadeiro' no coração?

Absolutamente não. Significa apenas que você gosta de fazer outras coisas além da codificação. Não há nada de errado nisso, e isso não o torna melhor ou pior do que ninguém, desenvolvedor ou não.

É possível se tornar um bom desenvolvedor de software sem fazer extra fora do seu trabalho?

Claro. Parte disso depende de como é o seu ambiente de trabalho. Se você tem um trabalho chato, sugador de almas, que consome todo o seu tempo e, em seguida, alguns fazem trabalhos de manutenção chatos, a capacidade de usar o tempo de trabalho para desenvolver suas habilidades será muito limitada. Se você tem o tipo de ambiente em que tem alguma liberdade para fazer o que deseja explorar e aprender, aproveite essa oportunidade para desenvolver novas habilidades que também ajudem seu empregador ou colegas de trabalho.

Se você encontrar algo interessante sobre o qual deseja aprender mais e não tiver tempo ou possibilidade de usá-lo no trabalho, pesa isso em relação às outras demandas do seu tempo, sejam elas familiares, amigos ou hobbies.


+1. Sim, isso realmente depende do ambiente de trabalho. Em um lugar com pessoas inteligentes (de preferência mais inteligentes que você ) que, em equipe, se preocupam com o que fazem e se esforçam constantemente para melhorar tudo (produto final, código subjacente, ferramentas, condições do local de trabalho etc.), você tem uma boa chance de se tornar um ótimo desenvolvedor, mesmo se você preferir gastar seu tempo livre em outro lugar do que na frente de um computador.
Jonik 17/02/11

1

Estive em várias entrevistas para contratar programadores recentemente. Descobri que os candidatos que mais me impressionam, tanto como programadores quanto como pessoas com as quais não me importaria de trabalhar, são os que passam uma quantidade significativa de tempo em atividades que não são de programação (principalmente música, mas também matemática pura, filosofia e literatura). Certamente, a maioria também faz alguma programação de hobby, mas também tem interesses em equilíbrio.


Agora, se eu puder convencer os músicos disso ... eles parecem pensar que você não pode ser bom em mais de uma coisa. Música e programação são muito parecidas.
Michael K

Você respondeu a uma pergunta totalmente diferente. O tipo de pessoa com quem você prefere trabalhar provavelmente será bem diferente do que o tipo de pessoa faz para um ótimo programador. Se você quer aproveitar as pessoas com quem trabalha e se divertir socialmente, talvez o programador não seja o melhor. No entanto, se sua carga de trabalho típica é de 2 a 3 meses para a conclusão de projetos de 12 meses, a personalidade não importa tanto quando você descobrir que o super programador permitirá que você tenha uma vida fora do trabalho, mesmo que essa vida seja fazendo mais programação.
Dunk

Apenas como uma observação lateral: descobri que as pessoas que mais me impressionam na entrevista são as que mais me preocupam. No início de minha carreira, as únicas pessoas que eu recomendei para contratação que eram menos tecnicamente capazes também eram as mais socialmente capazes e convincentes na entrevista.
Dunk

1

Se você tem um emprego que lhe proporciona uma experiência intelectual completamente envolvente, é provável que essa seja sua vida mental - o trabalho externo é para desabafar. Se seu trabalho não envolver você, é muito mais provável que você encontre satisfação intelectual após o expediente. Isso é verdade em qualquer negócio, não apenas na codificação.

A codificação em um escritório consome sua criatividade, ponto final. Pelo menos 8 horas por dia, sua mente está fazendo um sprint contínuo em nome de outra pessoa. É normal sair disso e não querer voltar ao computador. Quando eu trabalhava em um escritório, era o mesmo para mim - eu chegava em casa e só queria cozinhar, ou assistir a um filme, passear com os amigos ou simplesmente ficar na frente da TV. Então, de 2001 a 2004, mais ou menos, depois que a empresa em que trabalhei me afundou e desisti, desisti e dirigi um táxi e esperei mesas. Foi quando eu realmente comecei a codificar nas minhas horas de folga.

A verdade é que acho que ninguém tem mais de 8 horas por dia em tempo de codificação de alta qualidade. Muitos codificadores têm apenas 2-3, mas podem ser as pessoas mais eficientes por aí. É exatamente como você o usa, como o espalha.


1
Você nunca esteve muito com desenvolvedores de OSS, não é? Quando a codificação se torna uma paixão, às vezes você quer fazer isso por 24 horas seguidas.
Martijn Pieters

1

É possível se tornar um bom desenvolvedor de software sem fazer extra fora do seu trabalho?

Depende do setor em que você está trabalhando. Alguns são mais competitivos que outros.

Se você não gosta de aprender coisas novas por conta própria, provavelmente permanecerá no seu nível de habilidade atual. Isso pode ser suficiente ... ou não.

Não é sobre o tempo dedicado, é sobre curiosidade e sede de conhecimento e domínio. Obviamente, isso não tem nada a ver com manter -se atualizado , trata-se de coisas fundamentais - muitas vezes difíceis: compiladores, mônadas, arquiteturas de memória, etc.

Desejar codificar em casa é apenas um importante efeito colateral. Mas não o subestime, sem fazer, o aprendizado geralmente é superficial.

Todos os melhores desenvolvedores que conheço têm essas características.


1

Não, isso não o torna menos programador do que qualquer outra pessoa. Você é apenas mais social. Tenho inveja de ser honesto.

Você não precisa usar todo o seu tempo livre para escrever código. Meu trabalho é bem simples: gerenciamento de servidores. Eu escrevo muito código porque não preciso fazer muito no trabalho. Isso não me faz melhor ou pior do que ninguém. Se você é apaixonado por programação, por que não trabalhar como freelancer? Costumo colocar anúncios do Craigslist para meus serviços e ganhar uma boa quantia de dinheiro com isso. Também é uma ótima experiência de aprendizado, pois você estará trabalhando com startups e, às vezes, até com sites grandes. Espero que isto ajude. :)


A programação de hobby torna você "mais social" inerentemente. Você pode programar sozinho sozinho perfeitamente.
Mufasa 12/10

0

Fiz uma pergunta semelhante alguns dias depois. Parece que as pessoas parecem ser mais apaixonadas por nosso trabalho se dedicarmos não apenas todo o dia, mas também todo o tempo que temos disponível para nossas vidas pessoais.

Ocasionalmente, escrevo algum código no meu tempo livre, mas faço isso por diversão, não porque pretendo obter algum crescimento ou reconhecimento profissional. Aplaudo as pessoas que têm energia para isso, mas você gosta mais de se cansar trabalhando mais horas e em projetos extras do que se tornar mais especialista em qualquer coisa.

No final do dia, tudo o que importa é sua capacidade de aprender coisas novas (especialmente no trabalho), sua capacidade de se comunicar bem e ter boas habilidades de gerenciamento de tempo. Que você se transforma em um bom profissional.


1
Eu acho que você atingiu o ponto-chave. Se programar em casa é como fazer um trabalho extra, isso não vai ajudar muito e provavelmente é até prejudicial. No entanto, a maioria (se não todas) as pessoas que conheço esse programa em casa o faz porque é divertido para elas. Acontece que essas são as mesmas pessoas que eu quero nos meus projetos porque são muito mais qualificadas do que aquelas que não. Está programando em casa o motivo pelo qual eles são mais habilidosos, talvez, talvez não, mas eu costumava pensar assim porque eles estão fazendo o que gostam. Além disso, é muito difícil manter-se atualizado em suas habilidades, se você não dedicar tempo.
Dunk

0

É possível se tornar um bom desenvolvedor de software sem fazer extra fora do seu trabalho?

Para mim, é tudo uma questão de equilíbrio.

Embora eu adore programar, é apenas um lado de mim, tenho outros interesses. Pelo que vejo, se estou feliz (fazendo outras coisas que gosto) e acho o meu trabalho interessante e gratificante (o que faço) do que, a longo prazo, estou a caminho de me tornar um desenvolvedor de software melhor.

PS Admito que não li todas as postagens anteriores nesta página.


Por que o -1? É uma resposta perfeitamente razoável. + 1
zzzzz
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.