Eu me considero um desenvolvedor de software de alto nível. Gosto muito de ler e isso me ajudou ao longo da minha carreira. Eu acho que estou indo bem.
Neste momento, passo muito tempo aprendendo coisas novas. Eu não sou péssimo quando se trata de escrever código agora, mas estou prestes a começar uma família, e vejo regularmente muitos idosos com 14 a 15 anos de experiência que - por reduzirem o aprendizado de coisas novas - agora são péssimos. na programação. Eles eram figuras inspiradoras em algum momento, mas não são mais.
Você pode argumentar que o básico nunca muda, mas parece fazer a diferença quando você está codificando no Delphi por 10 anos e de repente todo mundo está usando o .NET framework. É verdade que um desenvolvedor experiente levará menos tempo quando aprender um novo quadro, mas ainda faz tempo demanda e esforço.
Como um desenvolvedor de software gerencia as demandas do trabalho e ainda consegue se concentrar em coisas que necessariamente o afastam do trabalho, como iniciar uma família?
Respostas:
Algo que você disse se destacou: "Eu vejo regularmente muitos idosos com uma experiência de 14 a 15 anos ... eles agora são péssimos em programação". Essa é uma pincelada bastante ampla que você está usando para pintar pessoas com experiência. Eu gostaria de destacar algumas coisas a considerar:
Talvez as pessoas a quem você está se referindo nunca tenham sido boas. É possível que eles estejam olhando para você pensando: por que você insiste em fazer as coisas da maneira mais difícil?
É verdade, no entanto, que quando você inicia uma família, tem muito menos tempo para acompanhar os novos brinquedos. Na verdade, você tem menos tempo à medida que seus filhos ficam mais velhos do que quando são mais jovens. Os brinquedos não fazem de você um programador melhor. Nem ferramentas. O que o torna bom é a capacidade de resolver problemas e criar uma solução funcional. O que o torna ótimo é a capacidade de ensinar os outros a serem bons. É aí que a experiência começa a brilhar.
fonte
É difícil prever o futuro. Mas uma coisa é a mais valiosa, com certeza, independentemente da tecnologia.
É a capacidade de um desenvolvedor para resolver problemas .
Muitos de uma qualidade de desenvolvedor são independentes da tecnologia. Por exemplo, a capacidade analítica é a qualidade mais importante que conheço. É como aprender matemática. É simplesmente atemporal.
fonte
Eu gostaria de ter um pensamento positivo ou concreto - mas acho que como um programador se mantém atualizado e equilibra trabalho / família varia tremendamente de programador para programador.
Pensamentos aleatórios:
fonte
Primeiro, a Microsoft está vendendo ferramentas e plataformas de desenvolvimento de software nas quais executar esse software. Isso os incentiva a fazer alterações, sejam elas necessárias ou não. Isso não quer dizer que todas as mudanças sejam inúteis, apenas que há muitas áreas em nossa profissão que são muito mais estáveis. Com a experiência, você pode discernir melhor em quais bandas vale a pena pular imediatamente e quais você pode esperar para amadurecer.
Segundo, a experiência requer apenas tempo. A maioria dos desenvolvedores com 15 anos de experiência ruins agora era ruim há 15 anos. Não atribua à idade o que pode ser adequadamente explicado pela incompetência.
Terceiro, não confunda ter conhecimento desatualizado com ser incapaz de usar o melhor e o mais recente quando necessário. Normalmente, basta saber o que está por aí. Por exemplo, até recentemente, meu conhecimento de programação da web era antigo no final dos anos 90, mas quando eu queria criar um site para meu irmão, sabia o suficiente para verificar tecnologias "novas", como CSS, jQuery e sistemas de gerenciamento de conteúdo, e era bastante até a velocidade em algumas semanas. Em outras palavras, se você não precisou de algo nos últimos 10 anos, é improvável que tenha uma emergência em que gostaria de estar no momento.
Finalmente, ser pai ou mãe é realmente um grande compromisso, mas menos tempo do que muitas pessoas sem filhos parecem pensar. Os pais ainda conseguem ler livros, assistir TV, jogar jogos, navegar na web e até fazer aulas de vez em quando. Chocante, eu sei. Você apenas faz isso em pequenas porções e faz prioridades. A única coisa que desisti completamente é assistir a reprises.
fonte
Posso garantir que as pessoas que apresentam poucas habilidades de programação depois de dez a quinze anos nunca internalizam realmente o desenvolvimento de software. Dominar um conjunto de ferramentas não é o mesmo que dominar a arte do desenvolvimento de software.
Escrevo código há mais de trinta anos. Passei por vários períodos em que tive que colocar minha carreira no piloto automático devido a obrigações e / ou interesses externos. O que é preciso aprender a fazer à medida que envelhece é evitar pular em um movimento de tecnologia cedo. A maioria das tecnologias deixa de cumprir o seu hype. Como um praticante mais velho, com obrigações fora do trabalho, é preciso ser mesquinho com o tempo. Um profissional experiente pode dar ao luxo de esperar alguns anos para que uma nova tecnologia amadureça porque ele / ela já dominou a arte do desenvolvimento de software.
fonte
Ao longo dos meus anos de experiência:
flavor of the day
(às vezes bom, geralmente ruim).Como observado em uma discussão sobre padrões, a quadrilha de quatro não inventou padrões. Eles criaram terminologia e modelos para soluções que já estavam sendo aplicadas.
Ao contrário de muitos outros campos, ainda há muita coisa que não é prática comum. Eu já vi muitas coisas de ponta indo e vindo. Muitos deles estavam reformulando as técnicas já em prática, e essas geralmente eram bem-sucedidas até certo ponto. Outros foram embora mais ou menos, e a maioria vem de novas abordagens. (Alguém viu um idioma de quinta geração ultimamente?)
Os programadores que eu vi que são mais eficazes podem selecionar e montar componentes comprovados em uma solução funcional. Isso raramente envolve algo de ponta, o que geralmente aumentaria o risco do projeto. A capacidade de desenvolver o trabalho que já foi realizado nos permite aumentar o escopo do que é possível.
Linguagens de programação tendem a cair em relativamente poucas famílias. A familiaridade com um idioma em uma família facilita o trabalho com idiomas semelhantes. Compreender as bibliotecas disponíveis no idioma e aproveitá-las pode aumentar bastante a produtividade e a confiabilidade. Em geral, eu escolheria um idioma antigo com bibliotecas apropriadas em vez de um idioma mais novo sem bibliotecas apropriadas.
Ao aplicar novas tecnologias é importante evitar a
Because We Can
síndrome. A adição de uma nova tecnologia, por ser o sabor do ano, tende a causar mais problemas do que resolve. Saber quando a tecnologia resolverá um problema real e quando apenas adicionará complexidade é uma habilidade útil.Um programador realmente bom resolverá os novos problemas e usará as soluções existentes para o resto. Poucas empresas precisam de tecnologia de ponta, todas precisam de soluções sólidas.
Eu geralmente me arrependo de deslizar pela lâmina de barbear. Não me lembro de ter me arrependido de usar uma tecnologia comprovada. No entanto, muito do que é descrito
new
é reembalagem de algo existente. Geralmente, essa reembalagem facilita as coisas para entender e aplicar adequadamente.fonte
Ninguém pode acompanhar tudo. Você provavelmente esteve muito ocupado acompanhando a oferta da Microsoft. Você já viu o Ruby nos bancos de dados RAILS e Python e NoSQL, Hadoop e criação de aplicativos móveis e CSS e HTML5 e jQuery e ExtJS e ...?
Eu trabalho com software há bastante tempo. Eu tento acompanhar a tecnologia realmente nova, como as novas idéias para bancos de dados massivamente paralelos, e ignorar os feios (por exemplo, MFC, WinForms, SOAP, XML, EJBs) e os triviais o máximo possível. Principalmente, vemos grandes idéias antigas reembaladas e finalmente adotadas. Programação funcional? Eu estava usando o INTERLISP em 1977. Aplicativos para celular? É a mesma interface do usuário orientada a eventos e gráficos 2D que fazemos há pelo menos 30 anos. Claro, existe uma arte em projetar um aplicativo utilizável para uma pequena tela sensível ao toque, mas a programação não é nova.
fonte
Concordo com a @Amir que sua habilidade é resolver o problema não do seu domínio de idioma, mas aprecio sua preocupação, portanto:
Se você tem a liberdade de escolher seu idioma atual, escolha um que seja o mais próximo possível dos primeiros princípios (por exemplo, um idioma do tipo C ++) para que, quando você trabalhe em um novo domínio, a curva de aprendizado seja menor - já que é apenas abstrações acima de você. Se você atualmente investe apenas em idiomas de alto nível, descer uma abstração é muito mais difícil (mesmo que apenas na percepção).
Se você não tiver esse feedom, basta fazer uso total das suas 8 horas de trabalho. Se sua paixão for alta, você não ficará "preso" e sempre encontrará problemas interessantes para resolver, que naturalmente o levarão a aprender mais. .
fonte
Vai depender do seu trabalho e dos empregos que você deseja. Há posições em que os desenvolvedores ainda estão usando tecnologias mais antigas. Ainda há muito COBOL para continuar (tenho certeza de que algo mudou).
Trabalhar em uma empresa que faz uma grande mudança como você descreveu pode deixar algumas pessoas desempregadas. Às vezes, a empresa investe na obtenção de treinamento, exigindo que você o aprenda no seu próprio tempo.
Ter uma família pode limitar suas opções de trabalho. Pode torná-lo menos móvel. Você pode trabalhar em um arranque com metade do seu salário na esperança de um grande dia de pagamento - talvez não com crianças e hipotecas.
Os mais novos nem sempre são melhores e muitos não duram.
fonte
Eu não estou no campo da medicina, mas que tal uma analogia entre um desenvolvedor e um médico? Ambos os campos sofreram mudanças tremendas nos últimos 20 anos e o ritmo da mudança é cada vez mais rápido. Todos os médicos acompanham? Não. Todos os desenvolvedores acompanham? Não. Você pode fazer alguma generalização sobre desenvolvedores ou médicos com 14 a 15 anos de experiência? Mais experiência significa que você tem um conjunto maior de respostas para problemas semelhantes. A experiência supera o interesse? Não a longo prazo.
Pense como um tubarão que precisa nadar ou morrer. Continue aprendendo ou morra (ou mude para a gerência, que é aonde a maioria vai, à medida que a linha de carreira em desenvolvimento atinge seu pico em cerca de 10 a 15 anos).
fonte
Tenho as mesmas preocupações no fundo, mas meu pensamento recente sobre isso é parar de tentar prever sua própria capacidade de se adaptar e apenas se adaptar. Acho que, se suponho que posso acompanhar, geralmente faço. Se eu me preocupar em ficar desatualizado, isso pode torná-la uma profecia auto-realizável.
Como você disse, fique na ponta dos pés. E se você não consegue acompanhar, não se preocupe demais. A tecnologia tem uma maneira engraçada de dar a volta no círculo completo, e você pode se encontrar de volta ao mainstream se apresentando de maneira excelente.
fonte