Sou estudante (ainda não fui para a universidade) e estou programando há cerca de 5 anos. Durante esse tempo, passei de um idioma para outro, de API para API e de projeto em projeto. Tentei me fixar em uma coisa, mas perco o interesse. Todo o meu PC está cheio de projetos parcialmente concluídos (e pelo menos quatro vezes mais foram formatados do meu disco).
Começo a me perguntar se minha menor motivação para programar por diversão (é uma atividade que eu realmente gosto) é porque nunca recebo um projeto finalizado no final. Não sei dizer se tenho objetivos muito abertos ou apenas um pouco de atenção. Tentei fazer alguns projetos menores apenas para finalizá-los, mas eles não me interessam.
Isso poderia ser uma causa da minha queda na motivação? Além disso, quando eu me candidato a ir para a uni (e, no futuro, espero, um trabalho de software), é provável que seja um problema?
Em suma:
Qual a importância de concluir projetos paralelos / hobby, seja para carreira, motivação ou educação?
fonte
Respostas:
Obviamente, concluir um projeto é importante no "mundo real", pois, a menos que o projeto seja concluído e entregue, você não é pago (ou seu empregador) não recebe.
No entanto, para projetos de hobby e aprendizado, é um pouco mais complicado. A conclusão de projetos demonstra aos possíveis empregadores que você pode entregar o que se propõe a entregar, mas isso depende do que você entende por "projeto".
Se você estiver executando o projeto com o objetivo de ter um produto completo que mostre todas as suas habilidades e que possa eventualmente ser algo que você deseja ganhar dinheiro, sim, você deve finalizá-lo ou, pelo menos, mostrar que ele está sendo trabalhado ativamente .
Se você está realizando o projeto para aprender coisas específicas (como transmitir vídeo, criptografia de senha, o que for), depois de ter esse aspecto funcionando, é menos vital ter um produto totalmente funcional à medida que você efetivamente conclui o projeto. O que você deve ter é algo que possa mostrar aos potenciais empregadores para demonstrar suas habilidades.
Por exemplo, este pode ser apenas um site que diz "Bem-vindo, Joe", depois de fazer login com êxito e nada mais - mas tudo bem, pois você está exibindo o código por trás do site que demonstra que você entende a criptografia de senha, conexões seguras etc.
fonte
Aceite isso de alguém que tenha o mesmo problema; terminar pelo menos alguns de seus projetos é muito importante. Não há problema em fazer alguns projetos experimentais e abandoná-los quando você aprender o que precisa ou simplesmente não era uma boa ideia para começar.
No entanto, as pessoas criativas tendem a gostar da primeira parte desafiadora de qualquer projeto mais do que a fase chata de "arrumar, empacotar e sair pela porta" no final. Você precisa apresentar alguma estratégia para superar isso ou
1) Nunca receba nenhum crédito público por qualquer coisa que faça (se é isso que você deseja)
2) Nunca consiga ganhar dinheiro com o que você fez (se é isso que você quer)
Mas o pior de tudo é que os outros e você começarão a identificá-lo como alguém que não termina as coisas, e isso é um rótulo muito ruim para você e ruim para sua própria mentalidade.
Portanto, encontre um parceiro, motivo ou disciplina para, pelo menos, começar a finalizar alguns de seus projetos.
Estratégias úteis para procrastinar programadores
Faça uma lista de todas as coisas boas que podem acontecer se você terminar o projeto e de todas as coisas ruins se não terminar. Em seguida, cole-o no seu monitor :)
Defina uma agenda! Os projetos ocupam o tempo alocado a eles; portanto, um projeto sem prazos levará uma eternidade. Defina uma programação com marcos mensais e semanais
Defina uma meta diária: "Hoje eu vou conseguir isso"
Se você estiver fazendo um aplicativo ou algo semelhante, concentre-se em torná-lo executável e utilizável para poder começar a comer sua própria comida de cachorro. Você provavelmente está trabalhando em algo em que está interessado; portanto, usá-lo regularmente o motivará a melhorar.
Cuidado com as grandes excursões de refatoração, quebrei meu aplicativo por quatro meses por causa da extensa refatoração e o desenvolvimento diminuiu para um rastreamento simplesmente porque eu não podia executá-lo e estava desmotivado para trabalhar nele. Faça refatoração, mas tente não fazer tudo de uma vez :)
Faça uma lista de tudo o que precisa ser feito para terminar (recomendo a lista de resumos da abstractspoon). Se não soubermos quanto resta, saberemos quando terminarmos? Trabalhar em direção a um objetivo desconhecido pode ser bastante desmotivador
Percorra a lista e corte tudo o que não for absolutamente necessário (coloque-o em uma categoria agradável de ter). A finalização do produto lhe dará um impulso e essas coisas podem ser feitas então. É melhor lançar algo do que nada . Nem o iPhone tinha tudo no começo.
Não se distraia com coisas novas e brilhantes. A principal razão pela qual não concluo os projetos é que encontro um novo desafio. Se você absolutamente positivamente não consegue resistir ao início de um novo projeto antes que o antigo termine, continue trabalhando no antigo em paralelo ou ele desaparecerá completamente. Veja também o próximo ponto.
Defina um tempo de trabalho mínimo. Se você está realmente cansado de um projeto, defina um tempo mínimo para trabalhar no projeto todos os dias, mesmo que seja apenas 15 minutos ou uma hora. As chances são de que, se você começar, trabalhará mais que isso.
/ me sai para terminar sua próxima grande aplicação / linguagem de programação / facebook killer;)
fonte
Tem certeza de que eles estão pela metade? O valor de realmente terminar algo é que só então você realmente aprecia a grande tarefa de terminar qualquer coisa. Os programadores têm um otimismo inerente ao considerar quase tudo o que 80% é feito na maioria das vezes, mas sempre acontece que os 20% restantes levarão pelo menos o mesmo tempo e esforço que os primeiros 80%.
Então, eu realmente recomendo terminar pelo menos um projeto. Os clientes pagantes não se importam se um projeto foi concluído em 50%, 80% ou 99%. Apenas 100% feito conta.
fonte
Tenho inúmeros projetos dos meus dias de estudante que permanecem inacabados. Não acho importante terminá-los. Eu nunca terminei a maioria dos meus. Alguns deles tinham cabelos completamente perfeitos, como criar uma classe de cordas melhor ou manipular bitmaps com matrizes de classe Pixel.
Talvez você esteja escolhendo projetos grandes demais. Escolha algo realmente pequeno. Algo que não levará mais de uma tarde de sábado para ser concluído. Você ficará satisfeito ao concluir. Talvez você se sinta energizado para fazer outro.
Uma coisa importante a lembrar é que, quando você chega ao mundo do trabalho, passa 8 horas por dia resolvendo problemas. Isso lhe dá muito mais tempo para lidar com grandes projetos do que no ambiente esporádico do estilo de vida dos alunos.
fonte
Orgulhe-se da sua pasta de projetos inacabados e não se importe com isso! Se você estivesse em outra disciplina, por exemplo, arte, então os projetos inacabados não importariam realmente, o ponto é que você está tentando e que por si só é admirável. Você poderia ficar sentado em casa assistindo televisão em vez disso? Ou desperdiçando todo o seu tempo em sites do Stack Exchange (oops!)
A Microsoft nunca lançou a API 3D 'Fahrenheit' que eu esperava, nunca enviou o sistema de arquivos 'database' que substituía o NTFS e matou o projeto DeepZoom 'Seadragon' que poderia ter sido incrível. Provavelmente não conseguiram concluir e finalizar centenas de outros produtos, não necessariamente por motivação para 'abraçar, estender e extinguir'. Eles também enviaram sistemas operacionais inteiros que eram muito menos do que '98% completos '. Isso os torna pobres finalizadores completos?
'Completador-finalizador' é na verdade uma frase do modelo de equipe de Belbin . Talvez você seja um 'Especialista' ou um 'Investigador de Recursos' e seja adequado para uma equipe em que outras pessoas executam as tarefas de finalizador e finalizador. Ver as coisas dessa maneira permite que você veja sua situação de maneira mais positiva.
fonte
Se há algum consolo, apesar de ser um desenvolvedor profissional de software há mais de 8 anos, ainda acho difícil concluir projetos pessoais. Eu sempre senti que é uma combinação de objetivos abertos, um desejo de 'fazer o que é legal primeiro' e uma falta de pressão real para concluí-lo ... para responder às suas duas perguntas:
Acho que tratar os projetos como fracassos, porque não foram 100% completos, afetará sua motivação e poderá impedir que você realmente entre em um maravilhoso campo de trabalho. Em vez de encará-las como falhas, tente pensar sobre o que você aprendeu com elas - quais novas linguagens / estruturas você conhece agora, quais lições de programação você aprendeu, quais ferramentas você tem habilidades e quais pessoas / comunidades com as quais você interagiu enquanto fazia isso. Sob essa perspectiva, é raro encontrar um projeto pessoal que não tenha contribuído de alguma forma para o seu conhecimento.
Você encontrará na Universidade ou no emprego que existem duas grandes diferenças que garantem a conclusão de seus projetos. Em primeiro lugar, seus objetivos geralmente são bem definidos - principalmente durante os dois primeiros anos de universidade. Em segundo lugar, você tem uma pressão real para concluir um projeto - você precisa fazer isso para passar em uma classe / módulo ou seu gerente está lhe dizendo que o projeto XYZ precisa ser entregue à equipe de teste para uma data específica. Isso fornece um foco que eu nunca fui capaz de replicar em projetos pessoais.
fonte
Em primeiro lugar, é importante para a auto-satisfação. Você conseguiu algo do zero para um estado final claro. Você pode exibir um item da sua "pilha de projetos em mente" e, para mim, sempre foi um alívio.
Para sua carreira, e mais precisamente para entrevistas de emprego, até que você termine seu projeto, você não tem nada para mostrar ou falar ... Mostrar um meio projeto nunca é bom. Pode ser um carrinho, feio ou simplesmente não está funcionando. Você nem pode mencioná-los para os entrevistadores, caso contrário, eles perguntarão "Por que você não terminou?" ... Se você responder "Não tenho tempo", significa que não poderá agendar corretamente suas tarefas, você não é perseverante. Além disso, você teve tempo de iniciar outros projetos para que seu argumento estivesse errado. Você teria que encontrar uma resposta inteligente ...
fonte
Eu estava em uma situação semelhante a Jon Malcolm, mas estava perdendo tempo nos lugares errados. Para projetos pessoais, decidi baixar meus padrões em favor da funcionalidade completa. Isso significava sem ajax, sem localização, sem muita validação, sem autenticação, sem paginação, UI de barebones, sem testes de unidade e assim por diante. Basta fazer a parte comercial funcionar ... eu chamo de 'linha reta'. A solução seria completa e deve funcionar em condições ideais. Feito isso, se o projeto ainda fosse interessante, eu continuaria as iterações de refatoração até perder o interesse.
fonte
Eu tenho uma experiência semelhante e que os últimos 5-10% até mesmo de um projeto pequeno para animais de estimação podem ser um assassino .
Meu conselho, se você quiser terminar? Diga a amigos, colegas de trabalho, família ou quem quer que esteja interessado sobre essa novidade interessante em que você está trabalhando. Envolva-os, faça perguntas. Espero que você ganhe alguns seguidores que perguntarão sobre seu progresso. A pressão de saber que o motivará a seguir as etapas mundanas, mas necessárias, para enviar seu projeto.
fonte
Projetos de acabamento é o que separa as crianças dos adultos, o trigo do joio, os homens / mulheres dos meninos / meninas.
"Programadores de verdade são enviados."
fonte
Para saber se você deve terminar um projeto ou não, você deve avaliar o valor que receberá dele em comparação com o tempo que deve investir nele para concluí-lo.
Se o valor que você pode extrair for menor que o investimento , considere-o em Sunk Costs .
Muitos projetos inacabados levam ao desperdício . O desperdício é um dos inimigos mais poderosos do lean .
Dito isto, às vezes, é melhor abandonar um projeto para concentrar seus esforços em um que proporcionará muito mais ROI. Muitas pessoas terminam tudo com obstinação e não conseguem aproveitar realmente boas oportunidades .
fonte
Puro e simples: se você quiser terminar, termine! Se você não quiser, não! Você não tem ninguém esperando a entrega, então por que agonizar tanto? Fazer projetos de hobby não é o mesmo que projetos da indústria. Eles são muito diferentes. Ninguém perguntará por que você não concluiu seus projetos de passatempo se não lhes disser que os deixou inacabados. Há um bilhão de códigos de projetos de hobby flutuando na rede. Você acha que alguém realmente se importa com eles? (exceto estudantes preguiçosos da univ que procuram um projeto de final de ano rápido e pronto)
fonte
Seth Godin escreveu muito sobre o hábito de enviar:
http://the99percent.com/tips/6249/seth-godin-the-truth-about-shipping
Eu acho que é importante, e aqui está o porquê: não basta fazer um projeto para si mesmo, mesmo que possa ter algum valor educacional para você. Se você nunca compartilha seu presente com o mundo, é como um artista que nunca mostra suas pinturas a ninguém.
É algo com que luto também. Se eu tivesse que analisar o porquê, diria que tenho a tendência de projetar demais e pensar demais em meus projetos pessoais. Farei muitas suposições sobre o problema, muitas das quais são inválidas, e depois colocarei muito trabalho antes de chegar a essa conclusão. Isso é desmotivador e, nesse ponto, perco o momento. Há uma ideia em que eu tenho repetido nos últimos dois anos e repeti esse padrão várias vezes.
Meu plano para todos os projetos pessoais é focar em um pequeno subconjunto da visão geral, implementá-la e divulgá-la (seja um projeto de código aberto do github, um site, um artigo em uma série de artigos).
Então, se eu ainda estiver suficientemente motivado, repetirei novamente. Espero que a satisfação que recebo com o transporte me sustente por meio de iterações adicionais.
fonte
Isso é muito importante.
Entendo criar algo como uma prova de conceito e depois deixá-lo lá. Isso é bom. No entanto, os clientes não pagarão por nada menos que um projeto concluído.A linha inferior é esta ... Vendas impulsionam tudo . Sem vendas, não há salários. Sem vendas, não há melhorias de capital. Sem vendas, não há empresa. As vendas vêm dos clientes. Os clientes pagam apenas quando estão satisfeitos. Satisfação significa que o projeto finalizado funciona e funciona bem.
Para usar uma analogia do futebol: A zona vermelha são os últimos 20 jardas na frente da linha do gol. É a parte mais cansativa de marcar um touchdown. O mesmo se aplica a um projeto de programação. Os últimos 20% costumam ser os mais difíceis de terminar, mas precisam ser concluídos.
fonte