Estou programando C # profissionalmente há mais de 4 anos. Nos últimos 4 anos, trabalhei para algumas pequenas / médias empresas, que variam de "agências de publicidade / web", pequenas lojas de software específicas do setor a uma pequena startup. Eu tenho feito principalmente "aplicativos de negócios" que envolvem o uso de linguagens de programação de alto nível (coleta de lixo) e minha experiência geral foi que todos os trabalhos que fiz poderiam ter sido mais profissionais. Muitas coisas foram feitas incorretamente (com pressa), principalmente devido ao fator de custo que as pessoas sempre queriam algo "agora" e com a menor quantidade de dinheiro gastável. Continuei pensando, talvez, se eu poderia trabalhar para empresas maiores ou para uma empresa mais adequada para programadores ou para algum lugar que ' s tenho dinheiro e tempo para realmente construir algo a longo prazo e mais sustentável que eu possa ter desfrutado mais em minha carreira. Eu nunca tive um "mentor" que me guiou através dos meus 4 anos de carreira. Eu sou praticamente programador de blog / google / autodidata que não seja meu diploma de bacharel em TI.
Também observei outro problema que a maioria dos chamados programadores "seniores" em "meu ambiente de trabalho" não são realmente tão habilidosos quanto as habilidades seniores. Eles são "seniores" apenas porque são programadores há muito tempo, mas o código que escrevem ou as decisões que tomam são absolutamente inúteis! Eles não querem aprender, não querem ser melhores, apenas querem receber o pagamento e fazer o que mandaram fazer, o que faz sentido e a maioria de nós é assim. Talvez seja por isso que eles estão onde estão agora. Mas não quero me tornar como eles, quero ser melhor. Corri para um estado mental que não pretendo mais ser programador para minha futura carreira. Comecei a pensar que talvez haja coisas melhores por aí para trabalhar. Quanto mais blogs eu leio, mais “melhores práticas” eu tentei, mais eu sinto que estou me afastando da “minha realidade”. Mas não sou um grande programador, caso contrário, não acho que estou onde estou agora. Eu acho que 4-5 anos é um estágio que pode ser um passo à frente na carreira ou um passo fora de onde você está.
Eu só queria ouvir o que os outros têm a dizer sobre o que eu mencionei acima e se você passou por uma situação semelhante em sua carreira de programação passada e como lidou com isso. Obrigado.
fonte
Respostas:
Você abre uma pergunta muito interessante. Concordo plenamente com você. Eu fiz observações semelhantes.
Estou programando profissionalmente há vários anos e o que tenho observado é que a quantidade de bons programadores por aí, de grandes desenvolvedores que amam seu trabalho e podem fazê-lo com qualidade e paixão, é praticamente próxima de zero. Eu provavelmente conheci apenas uma pessoa que poderia me ensinar alguma coisa. Aprendi muito do que sei, lendo livros e fóruns, perguntando em fóruns e pesquisando no Google pensamentos de revelação.
Depois de um tempo, não me arrependo tanto.
As opções para aprender em um ambiente de trabalho geralmente podem ser limitadas. Você não começa as coisas. Você não os termina. Você não projeta, não melhora, não refatora, não pensa em arquitetura, apenas codifica e corta as coisas. É assim que a maioria das lojas funciona. Não apenas você não aprende nada, é mais provável que você aprenda principalmente coisas erradas como NÃO desenvolver software. Eu tenho visto continuamente coisas assustadoras ao meu redor, todos aqueles anti-padrões que você já ouviu falar. O que é pior, sou forçado a fazê-los eu mesmo.
Não sei como aconteceu, mas consegui de alguma forma criar uma barreira de entrada. Fico aberto, ouço e, se vejo algum potencial de auto-aperfeiçoamento, pesquiso e talvez adote alguma técnica ou idéia. Mas nenhuma BS pode passar. Trabalho em projetos mal executados há muito tempo, mas não adotei nenhuma dessas técnicas ruins para mim.
Logo entendi que, se você deseja satisfação com a programação, esqueça o trabalho e tenha seu próprio projeto pessoal. É onde você pode aplicar todo o seu amor, paixão e conhecimento para fazer as coisas corretamente com o alto nível de qualidade. Você aprenderá muitas coisas, uma infinidade de coisas às quais nunca teria sido exposto e desafiado ao invadir uma equipe corporativa chata. Só faço meu trabalho como contracheque e fico satisfeito com meus próprios projetos pessoais.
Uma coisa que eu realmente não entendo é como essa situação é possível hoje em dia. O desenvolvimento de software amadureceu muito. Ele teve boa e má experiência. Muitos projetos de sucesso e muitos fracassados. Há experiência em projetos de longo prazo e no entendimento de quais efeitos a longo prazo uma ou outra organização trará sobre o projeto. Existem inúmeros estudos disponíveis e bons livros escritos. "Programador Pragmático", "Código Completo", "Mês do Homem Mítico", "Design das coisas cotidianas" e outros. Por que ninguém além de nós, os programadores as lêem? Como é possível que, mesmo após 20 anos trabalhando em TI, a maioria dos desenvolvedores e gerentes nunca tenha encontrado tempo para ler um ou outro livro de metodologia. Eles são escritos para, mas dificilmente lidos por aqueles que mais precisam deste medicamento.
Em relação às perspectivas de carreira. O que eu também notei em geral no mercado de trabalho para os funcionários é que os empregadores perdem cada vez mais o interesse em um trabalho de qualidade (imagine que já o tenham feito uma vez), comprando cada vez mais o artesanato mais barato disponível. Você acha difícil vender seu conhecimento, experiência e compreensão do universo para qualquer pessoa. Não está em demanda. O que está em demanda é ter seus projetos arruinados pelos juniores que não têm experiência e desejam fazer um trabalho profissional. Pessoas baratas são usadas e abusadas e depois jogadas fora para que a próxima rodada comece. Os projetos também são terceirizados para destinos de baixos salários, onde são realizados por pessoas que aparentemente começam a aprender programação apenas com o seu projeto. Essa é uma coisa que eu realmente não entendo.
Estou entretendo cada vez mais a idéia de abandonar o trabalho de programação empregado em algum momento no futuro. Eu gostaria muito de trabalhar em minha própria start-up com meu próprio projeto. Caso contrário, estou pensando em tentar trabalhar como freelancer ou provavelmente mudar a natureza do trabalho remunerado. Afinal, quase não aprendo nada durante o horário de trabalho e não sinto nenhuma satisfação. Eu posso fazer qualquer coisa 9-5 e sempre ter satisfação com meus próprios projetos pessoais. Eu aprendo muito com as comunidades online. Recebo aqui atenção, apoio para minhas idéias e, em algumas ocasiões, até reconhecimento que nunca consegui com meu trabalho e com meus colegas de trabalho. Vai ver onde eu vou estar no futuro.
fonte
;)
Houve um post de Jeff Atwood sobre Coding Horror que dizia que isso deveria ser divertido. E parte da descrição do cargo de desenvolvedor de software está gostando do seu trabalho. Caso contrário, isso se tornará uma profissão realmente chata e complicada para você.
O fato de você procurar continuamente maneiras de melhorar seu trabalho e se manter informado das novidades e das melhores práticas mostra que você gosta do seu trabalho na natureza. Então, meu conselho para você seria começar a procurar um novo emprego.
No entanto, não acho que trabalhar para uma grande empresa necessariamente melhore as condições de trabalho. Eu acho que os melhores ambientes para desenvolvedores de software são pequenas e médias empresas, onde as pessoas gostam do que estão fazendo. A melhor coisa a fazer seria procurar e fazer check-out de qualquer empresa antes de tomar uma decisão. Tente e verifique se a nova empresa vale a pena.
fonte
Primeira coisa: um grande aviso: se você está desenvolvendo há 10 anos (como eu), não há nada que possa fazer melhor do que desenvolver. Portanto, se você quiser fazer outra coisa, algo novo, faça-o rapidamente, caso contrário pode ser tarde demais e você não será bom em fazer outra coisa.
Apenas para compartilhar meu próprio ponto de vista: sou uma pessoa auto-motivada, autodidata. Aprendi sozinho C, C #, Amiga C desenvolvendo, Windows, COM, Delphi, PHP, Cinema4D e agora Blender e Python. Eu quase sempre trabalhei sozinho . Aqui está o maior problema que encontrei até agora: pequenas empresas tentam sobreviver e você é uma das que a mantém viva: é muito estressante, mas também recompensador: você trabalha mais, aprende mais rápido e muitas outras coisas rapidamente, você torna os produtos mais rápidos (apesar de muitas vezes você não conseguir fazer seu trabalho corretamente). Enfim: muito estresse. Pelo contrário, grandesas empresas sempre sobreviverão, mas o problema é sobre pessoas: muitas pessoas. É uma selva, mas muito pior: nada está claro: se as pessoas com quem você trabalha se sentirem melhores que elas, farão o possível para não ajudá-lo a subir, mas apenas para matá-lo porque temem por própria carreira. É assim que funciona na França (não sei para outros países).
Para resumir: tente encontrar uma empresa de tamanho médio onde você sinta que é o seu lugar . Não importa quanto tempo você esteja programando, não importa quanto tempo esteja trabalhando, o dia em que você entra no seu carro para ir ao trabalho e pensa que "estou feliz em ir ao meu trabalho" será o dia em que você encontrou seu lugar .
Não é uma questão de 4-5 anos ou o que quer.
NB: há uma enorme diferença entre "estou feliz em ir ao meu trabalho" e "estou feliz em ir ao meu trabalho, porque eu vou fazer isso e aquilo" / ou / "estou feliz em ir ao meu trabalho porque eu vou aprender isso e aquilo ". Se você pensa "porque eu vou fazer isso e aquilo", isso significa "isso e aquilo" terminará um dia e você poderá não ser feliz depois. Esta é a minha experiência de programação de 12 anos. E sou formado, sou bem remunerado, mas percebo que 20 a 25 pessoas pensam mais rápido do que eu. Eles simplesmente não têm minha experiência, então eu acabei de admitir que posso ajudá-los a fazer as coisas, eles fazem isso mais rapidamente, mas eu os ajudo a fazê-las corretamente (o que quase nunca acontece quando você começa a desenvolver).
Desculpe pelo meu inglês que não é perfeito, não hesite em corrigir minha postagem para torná-la adequada.
fonte
Sou desenvolvedor de software há 21 anos - entre outras coisas, isso significa que estou fazendo isso o suficiente para beber! ;-) Mas, falando sério, não consigo imaginar fazer outra coisa tão bem ou com tanta alegria quanto programar. Eu sou aparentemente um daqueles pássaros raros que realmente amam este trabalho.
Recentemente, eu estava atualizando meu currículo e notei que tive muitos empregos nas últimas duas décadas - principalmente contratos. Mas o que eu percebi ao examinar essa longa lista é que os trabalhos que eu mais amava (e os que eu mais permaneci) eram em empresas de software, ou seja, empresas cujo modelo de negócios envolvia a venda de software para os clientes. As seguintes teorias provavelmente não são universalmente aplicáveis, mas vão longe para explicar minha experiência.
A meu ver, a diferença entre uma loja de software e sua loja de TI típica é surpreendentemente óbvia. É apenas uma questão do que aqueles da alta gerência entendem. Se a empresa obtiver a maior parte de sua receita com software, os principais executivos realmente irão impressionar o software e como ele é produzido. Mas se a receita advém da venda de widgets, eles geralmente não têm a menor idéia do que é necessário para manter a infraestrutura de TI em funcionamento, sem falar nos processos por trás do desenvolvimento de software. Pior, apesar de delegar a tarefa à equipe de TI, eles tentam mapear os processos de TI para o que sabem, com resultados que geralmente variam de decepcionantes a desastrosos.
Um dos motivos é que existe uma grande variedade de talentos por aí, do meramente competente ao virtuoso do software. Isso contraria completamente a mentalidade de cortar um biscoito que serve tão bem para posições não qualificadas e semi-qualificadas. A expectativa de que um desenvolvedor possa ser substituído por outro com um "conjunto de habilidades" semelhante pode parecer ridícula para nós, mas muitas vezes parece perfeitamente razoável para uma estrutura de gerenciamento focada em números brutos. Se isso parece incrível, basta ver quantas lojas ainda estão tentando fazer o modelo Waterfall funcionar.
Você não precisa necessariamente de todos os virtuosos de sua equipe, mas precisa de pelo menos um ou dois. E parte de seu papel deve ser o de orientar as pessoas mais novas para que elas cresçam no papel (ou desbotam - acontece). Caso contrário, o código júnior ruim a medíocre prevalecerá, com seus erros de interpretação e inchaço. Uma vez que o câncer se instala, o código rapidamente se torna insustentável, a produtividade em toda a equipe cai acentuadamente e as pessoas começam a se esgotar.
Isso cria rotatividade, até que finalmente alguém diz: "Não podemos mais continuar com isso! Vamos parar com isso e começar de novo!" O investimento na base de código herdada sai pela janela e o processo começa novamente. "Mas desta vez será diferente", você promete a si mesmo. E por um tempo é. Então alguém contrata seu astro do rock e você fica com os juniores sem direção, destruindo sua nova e brilhante base de código novamente.
Espuma. Rant. Arrepender-se.
Mas discordo ... Então, para responder à sua pergunta original: não, meia década não é a meia-idade de uma carreira de software. É mais uma Era da Razão, talvez - o lugar da sua carreira em que as escalas caem dos seus olhos e você começa a ver o negócio como ele é. As realizações vêm em uma ordem diferente para todos, e isso colore as conclusões que você pode tirar ao longo do caminho. Mas espere aí - se você sair do outro lado da sanidade, terá uma perspectiva muito mais saudável e, em última análise, encontrará esse negócio louco em que estamos mais gratificantes do que nunca.
fonte
Eu acho que você precisa de mais cinco anos de experiência. Então você poderá aceitar os compromissos e ficará feliz em consertar o que puder.
Pelo menos essa foi a minha experiência. Em cerca de 5 anos (aproximadamente o tempo necessário para se tornar um especialista), acho que realmente "entendi". Percebi que meu código era uma porcaria. Percebi que meus hacks brilhantes que fizeram os aplicativos funcionarem eram apenas isso, hacks. Cheguei a entender que estava criando um código abaixo do normal apenas para deixar meus chefes felizes e manter os salários em dia.
Ao mesmo tempo, percebi que os desejos dos chefes não iam mudar. Eles sempre o desejariam ontem, sem gastar nenhum dinheiro em boas ferramentas. Eles nunca se importariam se eu usasse um padrão de design específico. Eles nunca ficariam admirados, porque eu aumentava a capacidade de manutenção aplicando criteriosamente o Princípio da Responsabilidade Única.
Eu também percebi que estaria lutando contra o meu eu mais jovem encarnado por programadores inexperientes. O programador que invadiu o programa para fazê-lo funcionar rapidamente. O jovem programador que resistiu a todas as coisas tolas que levei anos para entender. O jovem programador que acha que ter 5 aulas é mais confuso do que ter uma classe enorme que faz tudo.
Mas agora que tenho 10 anos, cheguei à conclusão de que essas frustrações são exatamente como as que experimentei nos meus primeiros cinco anos. É a frustração associada ao aprendizado de uma nova habilidade. Mas desta vez as habilidades são interpessoais. As habilidades estão fazendo com que os não programadores entendam as limitações de seguir o caminho dos caubóis. E essas habilidades são talvez mais importantes no grande esquema das coisas do que as habilidades de codificador que adquiri durante os primeiros cinco anos.
Mas o que é realmente incrível nesse trabalho é que eu posso continuar, e na verdade devo continuar, desenvolvendo habilidades técnicas enquanto também trabalho com gerenciamento.
Então eu digo para você continuar! Como você se acostumou com a tecnologia, pode começar a trabalhar em suas habilidades para lidar com as coisas piegas chamadas seres humanos.
fonte
Descobri que existem 2 segredos de relativa felicidade:
não procure ter tudo o que deseja, mas procure querer tudo o que você tem
a vida é dura - não importa o quão duro você possa atingir (você é bom, pessoal e profissionalmente); sempre revidará com mais força. é importante o quanto você pode ser atingido e ainda conseguir seguir em frente.
Afinal, é tudo uma caminhada no parque e há coisas mais importantes que bits e bytes, práticas e outras coisas. Apenas aproveite todas as experiências como elas são e lute contra o máximo que puder.
fonte
Talvez dê uma olhada no The Passionate Programmer, de Chad Fowler ... citando a partir da página da web:
fonte
Na OMI, a insatisfação que você obviamente sente não é uma crise, mas um sinal de que você atingiu um certo nível. Você superou o slot "Eu sou apenas um programador". Você tem compreensão suficiente agora para ver as falhas no estado atual das coisas e como elas podem ser corrigidas.
O próximo passo é encontrar uma conexão entre o que você vê como potencial melhoria e o que a empresa em que trabalha vê como tal. Então você precisa convencer seus chefes de que esse é o caminho a seguir.
Não é suficiente entender as coisas e saber como fazê-las. Você também deve convencer as pessoas de que sabe o que está fazendo. E se isso soa como vendas, é porque é. Mas isso é absolutamente necessário para se tornar "ótimo". Você não está trabalhando com computadores, está trabalhando para pessoas e com pessoas, precisa poder vender suas idéias.
É claro que algumas empresas seriam muito conservadoras para aceitar suas idéias, e seu chefe pode rejeitá-las por causa da cor da gravata que você está vestindo. Lembre-se de que vender idéias não é mais fácil do que gerar idéias, e a venda malsucedida não é necessariamente o resultado dos segundas intenções de seu chefe; pode ser uma apresentação ruim da sua parte.
fonte
Eu concordo completamente com a Nikos. Acho que talvez você precise encontrar uma empresa focada em tecnologia e produto. Existem empresas em que os desenvolvedores de software consideram o desenvolvimento apenas o seu trabalho e nunca pensam sobre isso no seu próprio tempo. O ambiente de trabalho geralmente é muito mais voltado para gerentes que trabalham no escritório, em vez de desenvolvedores que trabalham na mente. O padrão médio dos desenvolvedores geralmente é baixo (embora você ocasionalmente consiga um "guru"). Eles tendem a abrir mão (ou até evitar) de coisas como controle de versão, teste, processo etc. A empresa geralmente envia software que faz o trabalho, mas geralmente é feio e com bugs, e ninguém parece particularmente incomodado.
Por outro lado, existem empresas em que os desenvolvedores estão apenas fazendo o que estariam fazendo em casa de qualquer maneira; eles vão para casa à noite e trabalham em seus próprios projetos de desenvolvimento doméstico e aprendem novos idiomas / tecnologia em seu tempo livre. O ambiente de trabalho geralmente é bastante centrado no desenvolvedor, com bons monitores, boas ferramentas, boa atmosfera propícia ao pensamento. Os desenvolvedores geralmente são de alto padrão e você se aprende diariamente com todos os seus colegas. Eles geralmente levam a sério coisas como controle de versão, teste e processo. A empresa geralmente envia software de qualidade decente, porque os desenvolvedores o levam para o lado pessoal se houver bugs ou imperfeições.
Não acho que encontrar uma empresa maior necessariamente melhore as coisas; de fato, em muitos casos, as empresas maiores são piores e os problemas são mais profundamente arraigados e mais institucionais.
Obviamente, estou polarizando um pouco as coisas .... mas se você é um engenheiro de software (e não apenas no seu currículo), precisa tentar encontrar um dos últimos tipos de empresa. Pense em algumas boas perguntas da entrevista que você pode perguntar -lhes , para saber se uma empresa é que tipo de lugar.
fonte
Algo que eu descobri que muitos programadores não entendem é que nem todas as decisões são técnicas. Por mais triste que seja, fazer algo "certo" nem sempre é uma opção. Isso leva muitos desenvolvedores a pensar que seus chefes são estúpidos, ou tomam decisões ruins ... e sim, geralmente esse é o caso, mas igualmente frequentemente o fato é que a empresa pode estar fora do negócio ou perder uma empresa. trabalho inteiramente se permitissem aos programadores definir o cronograma e tomar todas as decisões técnicas.
Infelizmente, às vezes é nosso trabalho trabalhar dentro das restrições políticas ou financeiras do trabalho e fazer o melhor que pudermos.
Uma coisa que você aprende com a experiência é ser conservador. As técnicas mais recentes podem não ser comprovadas e você pode não ter uma forte compreensão delas, mesmo que sejam. Os gerentes não gostam de gastar tempo em permitir que você se familiarize com uma nova tecnologia apenas porque deseja aprender algo novo.
Os programadores esquecem que muitas empresas não são empresas de software. São empresas <insira o setor de negócios aqui> que também fazem software. Seu trabalho como programador é facilitar os processos críticos da missão, não escrever um software perfeito. Às vezes, descobre que essas são a mesma coisa, mas na verdade é bastante raro.
fonte
Na minha opinião, não é uma crise de meia idade - eu diria que a lua de mel acabou.
fonte
Eu posso relacionar em termos do código escrito que poderia ser melhor, mas tem que haver uma linha em que alguém pode ser muito perfeccionista, como se algo funcionasse 99,999999% do tempo, não é tão próximo de 100% para a maioria das pessoas ? Às vezes, parte de minhas lutas com padrões de pensamentos negativos é o perfeccionismo, a autocrítica e o julgamento intensos, para que eu possa me identificar demais com isso.
4-5 anos é tempo suficiente, IMO, para descobrir algumas coisas:
Existem outras perguntas como " Roteiro para um programador melhor " e " Como se tornar um programador 'mais rápido' " "que podem ter sugestões para você, se você quiser melhorar suas habilidades.
Também experimentei onde o título sênior é dado a alguém apenas por sobreviver no campo por tanto tempo, em vez de alcançar um nível de habilidade. Você pode aceitar isso como parte de como o mundo funciona ou tentar encontrar lugares que funcionam de maneira diferente. Quantos realmente existem eu não sei, mas posso dizer que, às vezes, você pode encontrar um bom lugar em termos de como gosta de trabalhar e de que empresa e colegas de trabalho usam para realizar o trabalho.
" Sources of Insight " é um dos meus blogs favoritos e eu gosto de lê-lo quase o tempo todo. O material é um pouco pesado em termos de haver muitos elementos intelectuais no que está escrito, mas há pepitas que podemos tirar e tornar sua vida um pouco melhor ou pelo menos essa foi a minha experiência.
Lembro-me na escola, quando criança, de que havia muitas transições após 4-5 anos, enquanto na minha primeira escola frequentava 8 anos (jardim de infância júnior até a 6ª série), então eram 2 anos (7 e 8) , 4 anos (ensino médio, de 9 a 13 anos, onde 11/12 foi realizado em um ano no meu caso) e 4 anos (bacharelado).
Posso aceitar a ideia de que a crise ocorre em vários momentos da vida, por exemplo, terminar a universidade pode fazer com que alguém se pergunte quem eles são ou depois de trabalhar por um tempo se perguntando se tudo vale a pena.
Alguns lugares podem parecer lugares incríveis para se trabalhar e outros podem levar ao esgotamento, já que há uma pergunta aqui algumas vezes: " O que causa o esgotamento do desenvolvedor " e " Histórias de esgotamento do desenvolvedor ", enquanto outras perguntas são o inverso disso, " Qual é a sua motivação " e " Programação (des) motivação e outros planos ... "
Apenas por uma questão de experiência na minha resposta aqui, venho desenvolvendo sites / aplicativos há quase 12 anos, quando consegui meu primeiro emprego na universidade em fevereiro de 1998 e além de uma seca de 8 meses em que não estava trabalhando. faz isso o tempo todo em alguns ambientes diferentes: algumas pontocom, um provedor de serviços de aplicativos e agora dentro da equipe de desenvolvimento web do departamento de Sistemas de Informação de uma empresa de tecnologia local. Sei que essa é uma resposta longa, mas acho que as perguntas feitas não têm respostas curtas para minha mente.
fonte
Descobri coisas semelhantes nos meus 10 anos de programação e suponho que essas sejam ocorrências bastante comuns. No mundo dos negócios (em oposição à academia), dinheiro (ou falta de dinheiro) e tempo orientam a programação, os recursos e a qualidade da programação. Freqüentemente, faltam esses recursos para fazer as coisas totalmente corretamente. Esse é o principal motivador para encontrar os métodos mais eficientes para resolver problemas. Essa situação também me levou a ter em mente que minha programação deveria resolver apenas o problema em questão (com alguma consideração futura) em vez de criar algo que contenha muito mais recursos do que o necessário. Esta é uma lição crucial a aprender, na minha opinião.
Seus comentários sobre "programadores seniores" também são, infelizmente, comuns em minha experiência. Eu acho que a razão disso é dupla: primeiro, muitos programadores experientes ficam preguiçosos, usando apenas as ferramentas e métodos que eles usaram em suas carreiras. A tecnologia continua avançando, no entanto, e isso leva esses programadores experientes a se tornarem "dinossauros". Segundo, depois de programar por um tempo, pode ser fácil ser vítima de um pouco de arrogância ("meus talentos me levaram até aqui, então devo ser um bom programador"). Eu tento combater esses dois problemas, tentando continuamente aprender novos métodos ou tecnologias para resolver meus problemas. Às vezes, isso contradiz o estado da lição "crie apenas o que é necessário" acima, mas o objetivo é buscar um equilíbrio saudável entre os dois.
Eu sugeriria usar as experiências que você tem como motivador para melhorar continuamente a si mesmo. Saí da indústria de programação depois de cinco anos porque perdi a paixão de criar código. Mas não consegui me livrar do desejo de criar programas e voltei à indústria vários meses depois. Aprendi que você precisa se envolver fazendo o que gosta de fazer - se quiser gerenciar um projeto, encontre uma posição que permita gerenciar projetos. Se você deseja codificar o dia inteiro, encontre uma posição para fazer isso. Encontrar um emprego que o desafie e realize seus desejos é uma parte maravilhosa e necessária de uma existência feliz - desejo-lhe sorte em encontrar isso.
fonte
Ei amigo, foi muito bom ler sua pergunta. Estou feliz que você escreveu isso. Você sabe o que, você não percebe que entendimento você tem agora. As coisas que você escreveu me fazem entender que experiência você teve e, acredite, essa experiência é algo que nem todos os programadores podem ter na vida. Você é uma pessoa auto-motivada, auto-aprendizagem. No momento, você está em um estado de espírito muito maduro, depois de trabalhar quatro anos em pequenas empresas. Se você tivesse participado de grandes empresas, não teria nada para ser considerado uma experiência. Agora você tem um entendimento de como esse setor funciona, como as coisas são feitas e como devem ser feitas. Qual o nível desses chamados "idosos". Eu tenho uma sugestão para você, se você é um bom aprendiz e pratica o aprendizado por mais de 4 anos, por que não você tenta trabalhar como freelancer? Acredite, você estaria trabalhando para si mesmo e desfrutando muito mais.
Como nota final, não se arrependa do que fez nos últimos 4 anos. É uma experiência maravilhosa e apenas alguns têm isso em suas vidas :)
fonte
A diferença entre programadores seniores e juniores, quando se fala em pessoas com experiência, geralmente é apenas uma remuneração. Há muita variabilidade no que as organizações valorizam para mudar o título e, muitas vezes, é determinado pelo que você exige quando é contratado.
Se houver algum consolo, estou passando por uma crise de 10 anos na meia-vida da programação, embora tenha começado a programar em uma Apple] [+ portanto, pode ser um ponto de 24 anos; Eu não sei. Eu só queria que as pessoas não esperassem mágica dos programadores.
fonte
Acho que o fio vermelho que vi na minha carreira foi que, quando me sinto envolvida em uma situação em que não tenho controle do meu ambiente, é quando começo a me sentir entediada. Apenas fazendo o que todo mundo está lhe dizendo. É importante ter uma área própria (IMHO) para ter total responsabilidade - talvez isso também esteja faltando no seu trabalho?
Nesse caso, você deve falar com seu gerente, talvez haja alguma solução em seu trabalho atual? Pedir mais responsabilidade é sempre uma boa jogada.
fonte
Na minha experiência, as primeiras semanas (no máximo meses) são cruciais para a qualidade geral de um projeto. Se você começar a trabalhar em um local onde outros programadores já criaram uma bagunça (padrões de codificação ruins, sem controle de versão etc.), é muito difícil para um gerente, e principalmente impossível para um novo colega, estabelecer melhorias. Posteriormente, os prazos e as questões limitadas causarão alguma feiura em quase todos os projetos, mas se a fundação for bem-sucedida, os danos serão limitados e gerenciáveis.
Por esse motivo, se você se encontra em uma situação em que precisa trabalhar com colegas ruins em um projeto ruim, tente ser designado para um novo projeto (se isso for possível na sua empresa) ou encontre um novo emprego. Não espere muito, pois os maus hábitos são contagiosos.
fonte
Eu tive as mesmas perguntas e possivelmente observei as mesmas coisas que você tem (ótimas startups, conselhos inspiradores, pessoas motivadas criando coisas incríveis, processos, algoritmos que fazem sua cabeça se animar) apenas para não encontrar nada disso em meus colegas de trabalho, atuais ou antigos , nem nas pessoas que conheço que estão no negócio. Portanto, esse dilema de combinar esse profundo interesse com um emprego remunerado significou muitas noites mal dormidas e uma pesquisa por um projeto tão engenhoso que pudesse ser deixado de lado e, no entanto, se transformar rapidamente em algo próprio para fornecer uma saída. Como muitas pessoas, eu tenho uma família para sustentar e, pessoalmente, acho que a energia necessária para construir algo em uma startup voltada para o mercado brasileiro não é bem gasta, se não for completamente IT-ish e chata. E a sério? Eu faço coisas de TI e chatas o dia todo.
Então, para mim, a resposta foi manter a vontade de aprender e melhorar em um lugar e trabalhar em outro. Adotei o processing.org e continuo tentando desenhar, escrever e cozinhar mais. Para mim, tem sido ótimo, para ser sincero: às vezes, você é tão empolgado em combinar as pessoas que admira e ser levado ao panteão de grandes realizadores que ignora fatos sérios sobre quem você é e o que faz você sentir que a vida vale a pena. vivo. E enquanto o trabalho é algo que leva uma parte considerável do seu dia, no minuto em que você parar de se preocupar com o que tudo significa e para onde está indo, no momento em que percebe que não precisa dele para chegar lá. Continue codificando se é o que você mais gosta, escreva software em casa, contribua para projetos pelos quais você é apaixonado. Esse tipo de satisfação quase nunca vem de um salário para a maioria das pessoas,
fonte
Como programador, você sempre terá que equilibrar seu desejo de perfeição e o desejo de seu empregador por um produto que funcione. Em algumas empresas, esses dois desejos estarão mais próximos, na maioria das empresas os dois desejos estarão distantes.
Minha melhor sugestão para lidar com o esgotamento do seu trabalho diário é iniciar um projeto pessoal ao lado, onde não haja prazo, onde você possa trabalhar em áreas que normalmente não trabalha, e onde você fará todo o possível. decisões. O código mais gratificante que eu escrevi foi enquanto trabalhava como desenvolvedor do Wii, posso sugerir que você escreva um jogo. Você será capaz de abordar todos os aspectos diferentes de programação, 3D, redes, IA, etc ... e como você já está trabalhando com o .Net, sugiro que pegue o XNA ou o Unity
Tanto quanto os programadores seniores não sabem muito, você provavelmente está certo. A maioria dos programadores seniores de grandes empresas foi promovida em um momento que sabia muito ou quando era capaz de realizar o trabalho. Agora que são idosos, têm responsabilidades diferentes, principalmente como gerentes. Espera-se que suas habilidades de codificação caiam um pouco. Alguns são melhores que outros, e alguns provavelmente acabaram de ser promovidos por causa de quem eles conhecem, mas a maioria dos programadores seniores com quem trabalhei no passado tinha um sólido conjunto de habilidades (embora às vezes desatualizado).
Então, para finalizar, faça um projeto pessoal para aliviar o tédio do dia-a-dia e relaxe com os idosos, faça o melhor trabalho possível no tempo previsto e você ficará bem.
fonte
Acho que é hora de ser Sr, desenvolvedor para você, sou novo neste mercado e estou aprendendo e melhorando, mas os empregadores não estão procurando seres humanos, estão procurando monstros como o desenvolvedor Jr. com mais de 6 anos de experiência e é realmente frustrante.
fonte
Boa pergunta, Jeffrey. Você ainda gosta de programar? Você é apaixonado por isso, faz isso no seu tempo livre? Ou você está cansado de alguns dos terríveis trabalhos de programação que teve.
Se você sente que a programação não é para você, existem muitas outras disciplinas que você pode ramificar e realizar neste momento de sua carreira - gerenciamento de projetos, vendas, pré-vendas, analista. Essas oportunidades não teriam existido quando você era do primeiro ano do ensino médio; portanto, você pode não ter começado a pensar além do código de corte. Talvez você possa abordar seu empregador para patrociná-lo para os exames de certificação ou se desejar explorar uma nova tecnologia (Azure / Silverlight / WPF?)
Por outro lado, se você sente que seu local de trabalho se parece com uma história em quadrinhos real de Dilbert, talvez seja apenas a hora de seguir em frente. Se você trabalha em uma grande empresa, que tal entrevistar algumas startups ou vice-versa. Você não precisa informar a ninguém que está se candidatando a empregos e, mesmo quando recebe uma oferta, está em uma ótima posição de negociação, pois já tem um emprego, pode simplesmente decidir se a oferta é melhor do que sua situação atual, e se não, então continue procurando. As empresas maiores geralmente oferecem melhores oportunidades de desenvolvimento de carreira e treinamento, enquanto que em uma empresa pequena você obtém mais intangíveis, como responsabilidade pelo sucesso da empresa, horários flexíveis de trabalho, opções de ações e antiguidade / respeito posteriormente, se / quando a empresa atinge grande.
fonte
Se há algum consolo, eu me sinto exatamente da mesma maneira com os idosos no meu local de trabalho. Na semana passada, enviei um relatório com base em evidências e, nesta semana, tive uma reunião de uma hora com o pessoal para registrar oficialmente uma reclamação sobre os gerentes (considerando que eu sou um júnior). Era crescer bolas ou ser infeliz no meu trabalho. Não são reclamações maliciosas, são reclamações construtivas. Há uma diferença, e certamente pode ter um enorme impacto na sua felicidade no trabalho.
EDITAR
Eu diria também que não desista porque você tem um problema com as pessoas. Parece que muitas pessoas aqui dizem apenas "abandone o seu emprego", a verdade é que você pode fazer a diferença no local de trabalho. Parece cafona, eu sei, mas acho que você faria a mudança acontecer e ganharia mais respeito se for proativo para que as coisas mudem. Não tenha medo de deixar seu chefe de lado e fazer uma reclamação. Eu tenho, e já fez uma grande diferença. Estamos adotando novas tecnologias, alterando nossos procedimentos de trabalho e abordando tarefas mais formalmente tudo por causa do que eu disse (e sou desenvolvedor júnior)
fonte
Bem, você deve aprender outro domínio (matemática, IA, mineração de dados, BI, integração qualquer que seja). Depois de dominar esse novo domínio, é provável que você tenha novas idéias que respondam às necessidades reais dos negócios.
Nesta fase, se você é um ótimo programador, basta fazer uma inicialização. Bem, é arriscado, mas muito mais divertido.
Aprenda diferentes habilidades e competências, não apenas em programação, e combine-as para criar uma coisa nova que ninguém pensou. Isso é fácil, você já tem o melhor martelo de todos os tempos: programação.
fonte
Minha experiência pessoal é a mesma que você mencionou. Principalmente todos os projetos em que tenho trabalhado ultimamente, todos são feitos com pressa e todos podem ser melhores. Sou desenvolvedor de programas há aproximadamente 7 anos e faço parte da mesma empresa de médio porte. A gerência não tem idéia e está executando todos os projetos como "não projetos". Há muito pouca ordem no caos.
O que mais temo é que eu caia no poço de que você está falando e comece a fazer uma programação "ruim" e uma decisão estúpida apenas para avançar na minha carreira. Espero que haja alguém lá para me bater na cabeça, se isso acontecer.
fonte
Uau! Eu gosto do quanto essa conversa é valiosa. Sou desenvolvedor web com mais de 5,5 anos de experiência e adoro isso. Não posso votar, mas citarei as palavras de AZ. Eu concordo com isso!
O livro que eu recomendaria é: http://www.amazon.com/Software-Measurement-Estimation-Quantitative-Engineering/dp/0471676225
fonte
Meus dois pontos:
Eu bati no meu depois de apenas 2 anos na indústria. Eu superei superando a mim mesmo e aprendendo.
Na maioria das vezes, isso acontece porque você está fazendo a mesma coisa repetidamente. E se você está fazendo a mesma coisa repetidamente ... bem ... você está fazendo errado.
Sempre melhore. Sempre aprenda. E, diabos, se a sua empresa atual não está lhe dando essa atmosfera, encontre uma que o faça. Eu fiz e os últimos 2 anos foram o melhor momento da minha vida (eu também sou provavelmente 100x melhor no meu trabalho do que há 2 anos também)
fonte
Existem muitos programadores, mas apenas uma pequena fração deles é engenheira de software de qualidade. Suponho que isso seja verdade em qualquer profissão.
fonte
Bem-vindo ao mundo real ... infelizmente, o que você descreve acontece na maioria das carreiras com pessoas que não têm paixão suficiente pelo que estão fazendo. Há apenas uma opção (ou seja, se você ama o seu trabalho): você deve encontrar uma loja melhor para trabalhar, embora isso não seja fácil nos dias atuais ...
fonte
... Seguido por ...
Então é hora de começar a procurar e agir. Porque se você permanecer um programador com essa atitude, acabará exatamente como aquelas pessoas "seniores" que você claramente despreza. A palavra operativa é "presa": você ganhará dinheiro suficiente para não justificar a mudança para outra coisa, e suas habilidades serão tão limitadas que você não poderá se deslocar dentro da indústria.
fonte
Talvez considere ir para a faculdade? Isso pode abrir oportunidades para um tipo de trabalho diferente e mais orientado a longo prazo.
fonte