Para o mundo exterior, programadores, cientistas da computação, engenheiros de software e desenvolvedores podem ser parecidos, mas isso está longe de ser o caso das pessoas que criam software para viver. A capacidade e o conhecimento de qualquer programador podem variar muito, assim como suas ferramentas (SO, idioma e sim, editor preferido), e essa diversidade gera muitas subculturas em software - como programadores que usam ativamente o Stack Overflow e este site, contra muitos mais que não.
Estou curioso para ouvir de outras pessoas as subculturas de software que eles encontraram, pertenceram, admiraram, não gostaram ou até criaram. Para começar, eu encontrei:
- Empresas e desenvolvedores orientados pela Microsoft : toda a sua pilha é de Redmond, WA. Email é Outlook é email. A web é IE e IIS. Eles têm grandes fichários de sua assinatura do MS Developer Network, cheios de várias versões do VB, .net, Visual Studio, etc. Evita trabalhar com um shell / linha de comando. Não veja o motivo de tanta confusão com código-fonte aberto e coisas assim. As empresas centradas em MS tendem a ser 9-5 e bastante corporativas (conduzidas por gerentes de negócios, não por pessoas de software). Atualmente (dada a ampla disponibilidade de ferramentas que não são do MS), essa é a antítese da cultura hacker.
- Pessoas da escola antiga de CS : elas conhecem o Lisp e o Unix extremamente bem; às vezes, eles podem ter escrito um Lisp semi-popular ou um utilitário de sistema. Poucas, se é que existem, coisas de "engenharia de software" são novas para elas, nem são impressionadas por elas. Conheça as referências, histórico e implicações de nível superior de linguagens de programação como Lisp, C, Prolog e Smalltalk. Pode ser amargo quanto aos resultados de IA dos anos 80 e 90. Tendem a ser usuários do Emacs. Pode digitar comandos shell de várias linhas sem piscar um olho. Seu conselho pode por enigmático, mas contém ouro, uma vez entendido.
- Desenvolvedores da web das novas escolas : jogaram com computadores e videogames crescendo, mas geralmente só começaram a programar no final dos anos 90 ou início dos anos 2000. Confortável com 1 a 1,5 scripts / linguagens dinâmicas; acho que C e idiomas fora do Ruby / Perl / Python são desnecessários / mágicos. Pode ter considerado o HTML como programação inicialmente. Tende a adquirir um Mac e é fanático / irracional quanto a isso. Use estruturas mais do que construí-las. Frequentemente excessivamente entusiasmado com o NoSQL e / ou Ruby On Rails.
- CS nas novas escolas : muito treinamento em estatística, modelos bayesianos e inferência; não diga "IA", diga "aprendizado de máquina". Mais Java que Lisp, mas também podem ser programadores Haskell especializados. Ver grandes sucessos do mundo real por especialistas em seu campo (Google, finanças / quantos) geralmente os torna (excessivamente) confiantes. Mas o big data, e o processamento distribuído desses, realmente estão mudando o mundo.
Os exemplos acima não são de forma alguma completos, corretos, ortogonais ou objetivos. :) Exatamente o que eu vi pessoalmente e forneci para desencadear uma discussão e esboço da questão mais ampla. Sinta-se livre para discordar!