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!
Respostas:
Eu me consideraria parte do grupo de sistemas em tempo real . Existem algumas características da "velha escola", mas com menos foco no CS, mais no hardware.
O arquétipo:
fonte
Não se esqueça dos programadores de mainframe. Eles também são uma subcultura.
fonte
Eu represento o contingente solitário de Delphi Devs com menos de 30 anos. Nosso caucus é pequeno, mas nosso coração é grande.
fonte
Eu acho que existem várias culturas que de alguma forma vivem ao lado, em vez de lutar, e são de alguma forma transcendentes:
Observe que:
Eu acho que atualmente sou principalmente Open Source com uma leve influência da Academia (passiva).
fonte
Eu meio que estou no campo de Alt.NET/old-school CS. Eu trabalho com a tecnologia da Microsoft (C #, etc.), mas sei que há um mundo inteiro à minha volta, outras linguagens, algoritmos, estruturas, "coisas escondidas" etc. Não é perfeito, obviamente, mas é um trabalho em progresso.
fonte
Eu não concordo inteiramente com esta afirmação sobre a subcultura MS: "Não vejo de que se trata o barulho com código aberto e coisas assim - além disso, quem precisa conhecer outro idioma? Geralmente, eu encontrei esses lugares 9-5 e bastante corporativo (dirigido por gerentes de negócios, não por pessoas de software). A antese da cultura hacker ". Eu já trabalhei em duas lojas .Net e o ambiente era muito parecido com um hacker. Empregamos muitos projetos de código aberto em nosso trabalho. Na minha opção, tudo depende do tipo de pessoa com quem se trabalha. Se eles são verdadeiros desenvolvedores, procurarão constantemente maneiras de melhorar e se ramificar. Quais tecnologias eles usam é irrelevante.
Não se esqueça da subcultura da Metodologia Ágil, que incorpora desenvolvedores de diferentes origens.
fonte
Acho que haveria meio termo entre o Old School CS e o New School Web Developers .
Tradicionalmente, eu me considerava um "desenvolvedor da Web". PHP e Java e cidadãos de primeira classe para mim, juntamente com HTML / CSS adequado, simétrico e válido . Jogue no SQL e você terá um conjunto de habilidades robusto e bem arredondado.
Mova New School para Script Kiddies e renomeie o desenvolvedor da Web .
Kiddies de script - Pessoas com pouco ou nenhum conhecimento "oculto" sobre o idioma. Tende ao google para tutoriais antes de copiar / colar cegamente o código no lugar. Normalmente, não entende completamente a sintaxe de mais de um idioma.
fonte
Acadêmicos que fazem pesquisas usando computadores, não pesquisas sobre computadores.
Eles:
- está escrevendo software que pode consumir quantidades ilimitadas de tempo de CPU, memória e disco espaço para que eles se preocupam (ou pelo menos tentar cuidado) de desempenho, quer usando o material como
-O3
,time
, profilers, memcheck, e passar horas mais ou menos alterar aleatoriamente o código para aumentar a velocidade ou aplicar, sem pensar, alguns truques míticos em seus scripts.- use números reais e saiba que é complicado o suficiente para que uma ciência separada chamada "numérica" possa existir.
- costuma usar algumas linguagens de programação / bibliotecas / programas muito específicos e é muito fanático por isso; guerras de chamas são comuns, principalmente sobre desempenho.
- chame seus programas de "códigos" para destacar que eles têm uma interface de usuário tão ofuscada que apenas seus criadores sabem como usá-la.
- normalmente trabalham no Linux ou pelo menos usam o PuTTY para ssh em algumas estações de trabalho / cluster do Linux.
fonte
Provavelmente sou uma combinação de pessoal da velha escola de CS e desenvolvedores da web da nova escola : aprendi programação escrevendo sites com PHP, Javascript e SQL e agora estou frequentando uma universidade onde tudo é feito em prompt de comando e Emacs no UNIX.
fonte
Conte-me como o cara da velha escola. Eu nunca fiz o LISP bem, no entanto. Emacs? Nah,
vi
eset -o vi
na minha concha para mim obrigado.fonte