Joel Spolsky: O que significa ser desenvolvedor de software (prefácio de codificador a desenvolvedor)

imagem


Mike Ganderloy, livro "Coder to Developer"

Você sabe o que me deixa louco?

"Todos?" - você pergunta. Bem, alguns de vocês me conhecem muito bem.

Mas, sério, isso me irrita que a maioria dos desenvolvedores nem perceba o quão insignificantemente pouco eles realmente sabem sobre o desenvolvimento de software.

Leve-me, por exemplo.

Quando adolescente, assim que terminei de ler o famoso guia de linguagem montador de Peter Norton para IBM-PC, eu tinha certeza de que sabia tudo o que havia para saber sobre desenvolvimento de software. Sim, inferno, eu estava pronto para fundar uma empresa de software e criar um processador de texto. Eu tinha certeza absoluta de que um grande sucesso me esperava. Eu até imaginei como toda hora minha empresa de software organizava coffee breaks com donuts grátis. Bem, naqueles dias, muitos dos meus sonhos se resumiam a rosquinhas.

Depois do exército, me formei na faculdade e recebi um diploma em ciência da computação. Agora eu realmente sabia de tudo. Mas eu sabia muito mais apenas porque estudei um monte de lixo científico e computacional em álgebra linear, problema NP-completo e maldito cálculo lambda. Mas tudo isso é obviamente inútil. Decidi que eles deviam ter esgotado o suprimento de coisas úteis que precisaríamos ser treinados, por isso rasparam as migalhas nas entranhas.

Mas não. No meu primeiro emprego, percebi quantas coisas o departamento de ciência da computação não considerou necessário chamar nossa atenção. Coisas como trabalho em equipe no software. Dicas práticas de design de interface do usuário. Ferramentas profissionais como controle de versão, bancos de dados de erros de código, depuradores e criadores de perfil. Coisas eficazes. Os departamentos de ciência da computação, mesmo das universidades de maior prestígio, não ensinam o que não é de natureza puramente acadêmica; e ainda mais, para ensinar o que os alunos do ensino médio estudam em uma escola profissional local, para depois se tornar mecânico de automóveis, técnico em reparos de ar-condicionado ou "desenvolvedor de software fedorento".

Em parte, eu entendo essa atitude. No final, o objetivo de muitas universidades de prestígio é preparar o aluno para a vida toda, e não incutir nele habilidades profissionais que se tornarão obsoletas em 10 anos.

Na década seguinte, adquiri um conhecimento incrível sobre desenvolvimento de software e as nuances associadas a esse processo. Trabalhei na Microsoft na equipe de desenvolvimento do Excel, na Viacom - na equipe da web, no Juno - em seu cliente de email. E sabe de uma coisa? Em cada estágio do treinamento, eu tinha certeza absoluta de que sabia tudo sobre desenvolvimento de software.

"Então, talvez você seja apenas um idiota presunçoso?" - você pergunta, e talvez até use a palavra abruptamente "idiota". Peço desculpas, mas esta é a minha introdução; se você quiser ser malcriado - escreva sua maldita introdução, arranque a minha e insira a sua.

Há algo estranho, algum poder místico no desenvolvimento de software que faz as pessoas pensarem que sabem tudo, o que e como fazer. Trabalhei em pontocom cheias de especialistas em humanidades. Eles não tinham experiência em trabalhar com software e nunca aprenderam isso, mas mesmo assim estavam convencidos de que sabiam gerenciar equipes de desenvolvimento e desenvolver interfaces de usuário. Isso é estranho, porque ninguém acha que sabe como remover apendicite inflamada ou restaurar o motor de um carro se não tiver as habilidades apropriadas. Mas, por algum motivo desconhecido, essas mesmas pessoas têm certeza de que estão plenamente conscientes de como desenvolver software.

De uma maneira ou de outra, toda a responsabilidade recai sobre seus ombros. É possível que você precise aprender como desenvolver software por conta própria. Se você tiver sorte, é claro que trabalhará com desenvolvedores de software de primeira classe e eles o ensinarão, mas a maioria não terá essa oportunidade. Portanto, fico feliz que Mike Ganderloy tenha assumido a responsabilidade de escrever o livro que você agora está segurando em suas mãos. Aqui você encontrará uma introdução agradável e bem escrita de muitas das coisas mais importantes que você precisará saber quando passar de uma pessoa digitando código para uma pessoa que desenvolve software. Percebe a diferença? É como uma criança de seis anos que pode desenhar algumas palavras simples com um lápis e se tornar um romancista de sucesso que escreve livros, recebe ótimas críticas e vende milhões de cópias.Ser desenvolvedor de software significa assumir um conceito, criar uma equipe, configurar todos os processos, desenvolver um produto de software (o produto de software desejado) e produzi-lo. Este não deve ser apenas um produto de software, mas um produto de software de alta qualidade que resolve problemas e agrada aos usuários. Com a documentação. Página da web. Programa de instalação. Script de teste. Versão em norueguês. Conversacional e literário. Lanches, sobremesas, vinte e sete fotos coloridas brilhantes, oito por dez polegadas de tamanho, com flechas, círculos e explicações nas costas. (Peço desculpas a Arlo Guthrie.)Este não deve ser apenas um produto de software, mas um produto de software de alta qualidade que resolve problemas e agrada aos usuários. Com a documentação. Página da web. Programa de instalação. Script de teste. Versão em norueguês. Conversacional e literário. Lanches, sobremesas, vinte e sete fotos coloridas brilhantes, oito por dez polegadas de tamanho, com flechas, círculos e explicações nas costas. (Peço desculpas a Arlo Guthrie.)Este não deve ser apenas um produto de software, mas um produto de software de alta qualidade que resolve problemas e agrada aos usuários. Com a documentação. Página da web. Programa de instalação. Script de teste. Versão em norueguês. Conversacional e literário. Lanches, sobremesas, vinte e sete fotos coloridas brilhantes, oito por dez polegadas de tamanho, com flechas, círculos e explicações nas costas. (Peço desculpas a Arlo Guthrie.)círculos e explicações no outro lado. (Peço desculpas a Arlo Guthrie.)círculos e explicações no outro lado. (Peço desculpas a Arlo Guthrie.)

E então, um dia, um bom dia, você finalmente acorda e diz (embora possa ser tarde demais): “Hmm. E se eu realmente não souber o que é realmente necessário para o desenvolvimento de software ". E somente neste dia, e nem um minuto antes, ou seja, nesse dia e a partir desse dia, você receberá o direito de se chamar desenvolvedor de software. E agora, embora tudo não tenha sido perdido, aqui está minha bênção para você, se você quiser comer rosquinhas a cada hora.



imagem
Aprenda os detalhes de como obter uma profissão procurada desde o início ou suba de nível em habilidades e salário fazendo cursos on-line SkillFactory:



Consulte Mais informação



All Articles