Oi habr. Recentemente, discuti com um colega estereótipos e mitos comuns que a indústria da programação adquiriu. Esta idéia me pareceu valer a pena escrever um post aqui, apesar do material já existente sobre esse tópico. Todos os que chegam - bem-vindos ao gato.
Parece que é improvável que uma profissão tão racional e baseada na lógica seja suscetível a todo tipo de fabricação, mas a comunidade de desenvolvimento ainda encontra mitos tão difundidos que começa a penetrar na realidade. Se todos esses mitos fossem verdadeiros, o mundo da programação seria como um grupo de geeks de 20 anos usando suas habilidades matemáticas para codificar a qualquer hora do dia ou da noite. Se você trabalha nesse campo, provavelmente sabe que esse não é o caso. No entanto, até os próprios desenvolvedores tendem a acreditar em alguns preconceitos. Vamos descobrir.
1. Bons desenvolvedores trabalham dia e noite
Apesar da relutância em sucumbir ao pensamento estereotipado, a imagem de um cara com olhos sonolentos e enérgico nas mãos surge imediatamente na cabeça, como um atributo invariável de qualquer programador. Sim, há alguma verdade nisso - às vezes, um prazo próximo requer sacrificar o sono, especialmente quando se trata de startups. No entanto, esse nem sempre é o caso.
Além disso, todo mundo sabe que a falta de sono não aumenta a produtividade, mas atrasa o processo. Poucas pessoas estão satisfeitas com esse estado de coisas, porque muitos desenvolvedores têm família, amigos e assuntos pessoais, aos quais é mais provável que dediquem seu tempo livre. Em vez de cultivar essa idéia, a comunidade de programação deve procurar outras maneiras de melhorar o fluxo de trabalho e se concentrar no estabelecimento de metas, seguindo uma metodologia Agile. Poucas pessoas estão satisfeitas com o trabalho "para uso e desgaste", e isso não se aplica apenas aos programadores.
2. Quanto mais pessoas verificam o código, menos erros
Inventado por Eric S. Raymond, o aforismo "com olhos suficientes, todos os bugs estão aparecendo" implica que o código aberto tem uma vantagem em que qualquer desenvolvedor pode revisá-lo e corrigi-lo. Na realidade, isso não é totalmente verdade, porque os programas de código aberto têm mais usuários incapazes de corrigir erros no código do que pessoas dispostas a contribuir. Simplificando, sete babás têm um filho sem um olho. A melhor solução nessa situação é usar uma equipe focada no problema com um bom software de rastreamento de bugs.
3. Habilidades matemáticas determinam habilidades de desenvolvimento
Sim e não, porque é impossível dizer inequivocamente quais habilidades se tornarão o fator determinante no seu crescimento profissional. Um vício em matemática não garante cem por cento de sucesso, assim como sua ausência não leva ao fracasso. Exceto nos jogos, a maioria dos desenvolvedores usa apenas álgebra e estatísticas básicas para descobrir a eficácia de seu código, mas também há conhecimento fundamental.
4. Desenvolvedores - Gênios
Você não precisa ser um gênio para ser um programador, basta ter motivação e capacidade de aprender. Os erros são parte integrante do desenvolvimento profissional e até mesmo desenvolvedores engenhosos os cometem. A única coisa importante é poder transformá-los em lições úteis que permitirão melhorar suas habilidades.
5. Basta dominar uma coisa
O mundo da programação está mudando na velocidade da luz, o que significa que você sempre terá algo a aprender. Depois de dominar apenas um idioma, mais cedo ou mais tarde você ficará preso em uma situação sem saída que exigirá soluções flexíveis. Parando de se formar, você chegará à estagnação e deixará de ser competitivo; por isso, esteja preparado para melhorar a si mesmo ao longo de sua carreira.
6. Idioma X é melhor
A verdade é que não existe uma linguagem onipotente para todo o desenvolvimento. Cada idioma preenche um nicho especial nesse ambiente e é destinado a fins específicos. É mais provável que um desenvolvedor use JavaScript para desenvolver software interativo e C ++ para algo focado na velocidade de execução de tarefas. O debate sobre a superioridade de um idioma sobre o outro é simplesmente inadequado, porque cada um deles se concentra em tarefas específicas que nada têm a ver com preconceitos pessoais.
7. Você pode dominar o idioma em algumas semanas.
Eu odeio matar o entusiasmo dos novatos, mas algumas semanas não serão suficientes. Mesmo que você possa aprender os princípios básicos do idioma em duas a três semanas, o restante precisará de muita força, perseverança e prática. Na ausência de interesse e paciência, você não será suficiente por muito tempo e é impossível dominar um grande conjunto de habilidades em pouco tempo.
Faça um paralelo entre o trabalho de um programador e o trabalho de um médico: um cirurgião inexperiente não pode executar uma operação bem-sucedida sem boas práticas, assim como um programador não pode escrever código complexo sem gastar tempo estudando todos os aspectos. Em outras palavras, um bom desenvolvedor precisa de memória muscular tanto quanto um cirurgião.
8. Saída do produto em produção = fim do trabalho do projeto
Na realidade, o desenvolvimento de software raramente é completo. Obviamente, a gerência e os desenvolvedores querem acreditar que o grande software multinível que eles criam funcionará corretamente por muitos anos. No entanto, com o tempo, podem surgir novos problemas que precisam ser corrigidos, e os aplicativos mudam e exigem a adição de novos recursos, portanto esse processo é interminável. Lembre-se dos custos de suporte e manutenção e invista em inovação para se manter competitivo.
9. Programação é apenas escrever código
Muitas pessoas acreditam erroneamente que os desenvolvedores estão simplesmente transformando idéias em código, sem entender a essência das decisões tomadas no processo de redação. Esse é um grande equívoco, porque em cada estágio os desenvolvedores precisam formar soluções abstratas para o problema e antecipar possíveis erros antes mesmo que ocorram, o que exige conhecimento e compreensão profundos do problema. Entre outras coisas, eles precisam lidar com muitos requisitos não funcionais e falhas de design, e apenas bons desenvolvedores podem rastreá-los e comunicá-los claramente à equipe, tomando decisões menores de maneira independente.
10. Programação não é uma atividade criativa
Esse estereótipo é mais frequentemente baseado em idéias superficiais de pessoas distantes dessa esfera, porque escrever código, algoritmos e outros momentos do mundo da programação parece um homem comum na rua ser algo estranho à atividade criativa. Sim, sem dúvida, o fundamento da programação pode ser chamado de lógica e o campo científico e técnico do conhecimento, mas isso não cancela seu lado criativo. Até certo ponto, isso pode ser chamado de forma de arte, porque muitos desenvolvedores tentam projetar o código de maneira bonita, estruturar e torná-lo mais limpo. Isso não passa de um processo criativo.
11. Os desenvolvedores têm baixas habilidades sociais
Segundo muitas pessoas, os programadores são solitários, prontos para passar todo o seu tempo livre sozinhos com o computador e, no que diz respeito à comunicação social, perdem a cabeça e tendem a se fechar do mundo exterior. Este mito pode ser associado ao primeiro ponto.
No entanto, a posição de um programador, no entanto, como qualquer outro, não fará de você uma fobia social não sociável e dificilmente afetará seus traços de caráter. Ao suceder a esse estereótipo, muitos gerentes interagem com os desenvolvedores de forma que suas informações comunicativas sejam subestimadas. Todo desenvolvedor é um indivíduo com suas próprias características internas, e só porque eles gostam de escrever código não significa que têm medo das pessoas.
12. Jovens desenvolvedores se consideram os melhores especialistas
Talvez tenha tudo a ver com a idade, mas no início de uma carreira, muitos desenvolvedores tendem a pensar que são melhores que seus colegas experientes. Eles dominam as novas tecnologias, que, em sua opinião, são mais produtivas e, por sua vez, mais valiosas do que o uso de plataformas antigas. De fato, muitos desenvolvedores aprendem novas tecnologias à medida que crescem (caso contrário, é difícil competir e permanecer na demanda). E os recém-formados geralmente ignoram um fator importante: a profundidade e a amplitude da experiência que só vêm com o tempo.
13. Programação é chata
Você dedicaria sua vida ao que parece chato para você? A resposta é óbvia, todos determinam o escopo de seus interesses. A programação pode não ser menos emocionante do que qualquer outra atividade, porque é uma mistura de arquitetura, matemática e linguagem. Pessoas que consideram o desenvolvimento chato não entendem todas as sutilezas. Mas os desenvolvedores sabem que o desenvolvimento é um treinamento contínuo, a busca de soluções eficazes e a oportunidade de se sentir como o criador de algo importante e útil. Quão chato pode ser?
14. Após 35 anos, a carreira de desenvolvimento termina
O envelhecimento é uma parte muito real do mundo da programação, mas a idade não é algo que você pode desistir de sua carreira. Pessoas que estão presas no mesmo idioma ou que não foram capazes de dominar novas plataformas e tecnologias estão contribuindo para a confirmação desse mito.
Isso não significa que os desenvolvedores parem completamente de programar após os 35 anos. Muitos estão mudando para cargos de gerência ou iniciando suas próprias empresas. Outros continuam aprendendo e desenvolvendo com amor por seu trabalho ao longo de suas carreiras; é apenas uma questão de querer estar atualizados e acompanhar as mudanças.
15. Desenvolvedores são um produto
Freqüentemente, as pessoas pensam que quanto mais linhas de código um desenvolvedor escreve, mais produtivas elas são, mas o desenvolvimento não é uma novidade. É tolice contratar programadores mais baratos e esperar que o trabalho seja feito da mesma forma. Os desenvolvedores são principalmente pessoas. Cada um deles tem suas próprias habilidades especiais, características pessoais e conhecimentos. Como no caso das linguagens, em alguns projetos, os programadores podem provar que são melhores que em outros, o que, por sua vez, afetará a eficiência do processo de desenvolvimento.
Conclusão
Será interessante para mim ouvir sobre os estereótipos ridículos que você encontrou durante a sua prática (e tenho certeza de que havia alguns deles). Deixe suas opções nos comentários.