ti-enxame.com

Quais subculturas de programação / software existem? O que os define? Qual você pertence?

Para o mundo exterior, programadores, cientistas de computadores, engenheiros de software e desenvolvedores podem todos parecer parecidos, mas isso está longe do caso das pessoas que criam software para viver. Qualquer habilidade e conhecimento do programador único pode variar muito amplamente, assim como suas ferramentas (sistema operacional, linguagem e sim, o editor preferencial), e que a diversidade gera muitas subculturas em programadores semelhantes a software que usam ativamente o estouro de pilha e este site, Versus muito mais que não.

Estou curioso para ouvir de outros quais subculturas de software eles encontraram, pertenciam a, admiradas, não gostaram ou até mesmo criadas. Para começar, encontrei:

  • Empresas e desenvolvedores orientados pela Microsoft: Toda a sua pilha é de Redmond, WA. E-mail é o Outlook é e-mail. A Web é IE e IIS. Eles têm grandes ligantes de sua assinatura de rede do MS Developer cheio de várias versões de VB, .NET, Visual Studio, etc. Evita trabalhar com uma linha de concha/linha de comando . Não vejo o que o barulho com código aberto e tal é tudo. Empresas centradas da MS tendem a ser 9-5 e bastante corporativas (impulsionadas por gerentes de negócios, não pessoas de software). Hoje em dia (dada a ampla disponibilidade de não -Ms Tools), esta é a antítese da cultura de hackers.
  • Old-School CS People: Eles costumam conhecer lisp e unix extremamente bem; Às vezes, eles podem ter escrito um próprio lisp semi-popular ou um utilitário de sistema. Poucos, se alguma, "engenharia de software" as coisas são novas para elas, nem impressionaram por tal. Conheça as referências, a história e as implicações de nível superior das linguagens de programação, como Lisp, C, Prolog e SmallTalk. Pode ser amargo sobre os resultados da AI dos anos 80 e 90. Tendem a ser usuários do Emacs. Pode digitar comandos de shell multi-line sem piscar de olhos. Seu conselho pode por enigmático, mas contém ouro uma vez entendido.
  • New-School Web Developers: Jogado com computadores e videogames crescendo, mas muitas vezes só começou a programar no final dos anos 90 ou início dos anos. Confortável com 1 a 1,5 scripts/idiomas dinâmicos; Pense C e Línguas fora do Ruby/Perl/Python são desnecessários/mágicos. Pode ter considerado html como programação inicialmente. Tendem a conseguir um mac e ser fanático/irracional sobre isso. Use estruturas mais do que construí-las. Muitas vezes excessivamente entusiasmado sobre Nosql e/ou Ruby em trilhos.
  • New-School CS: Muita formação em estatísticas, modelos Bayesianos e inferência; Não diga "ai", diga "aprendizagem de máquina". Mais Java do que Lisp, mas também poderia ser especialista Haskell programadores. Vendo os principais sucessos do mundo real por especialistas em seu campo (Google, Finanças/Quants) muitas vezes as torna (sobre) confiante. Mas grande dados, e o processamento distribuído de tal, realmente está mudando o mundo.

Os exemplos acima não são de modo algum completo, corretos, ortogonais ou objetivos. :) Apenas o que eu vi pessoalmente e fornecido para spark Alguma discussão e esboço da questão mais ampla. Sinta-se livre para discordar!

13
limist

Eu me consideraria parte dos sistemas sistemas em tempo real grupo. Há algumas características "da velha escola", mas com menos foco no CS, mais no hardware.

O arquétipo:

  • Tem conhecimento especializado de 'c' [.____]
    • Tem uma cópia original do K & R
    • Escreve em outros idiomas como se fossem apenas uma sintaxe alternativa para 'C'
  • Pode prever a saída montadora do seu código.
  • Pode ler um diagrama de circuito
  • Não sabe escrever código sem fazer "otimização precoce".
  • É bastante confortável com a linha de comando.
12
AShelly

Não esqueça os programadores de mainframe. Eles são uma sub cultura também.

6
Toon Krijthe

Eu represento o contingente solitário de Delphi Devs menores de 30 anos. Nosso caucus é pequeno, mas nossos corações são grandes.

5
Peter Turner

Eu acho que existe várias culturas que de alguma forma vivem ao lado, em vez de lutar e são de alguma forma transcendentes:

  • Hacker/Cultura de código aberto : código de compartilhamento, usa nome real ou não. Concentrado provavelmente em pequenas ferramentas que resolvem um problema. Permite hacks no programa. Idiomas: [~ # ~] c [~ # ~] , [~ # ~] lisp [~ # ~] , C++ , python . Provavelmente se sobrepõe com o seu Old-School CS Pessoas .
  • Academia : concentração em algoritmos e fazer as coisas no caminho certo. O nome real é necessário (ele aparece no papel de qualquer maneira). Idiomas: java , haskell , ( f # ?)
  • corporate : concentração em soluções (provavelmente de tudo). Se o código aberto que dando o nome não é necessário . Idiomas: java , c # , vb.net , (= //------), Rubi .
  • " High School ": bens se funcionarem, mas não precisa. Concentração em nomes como "superprograma 1.0 para Windows XP". (desculpe - eu não encontrei bom nome, mas quero dizer os programadores que começaram a determinar CS e não são bons nisso - pelo menos ainda). Idiomas: [~ # ~] php [~ # ~] , [~ # ~] vb [~ # ~] , rubi
  • New School Web Developers : Como acima.

Por favor, note que:

  • é possível misturar as culturas nas organizações e em pessoa solteira. Na verdade, muitas vezes acontece.
  • Os idiomas são [~ # ~] exemplos [~ # ~] e é por exemplo grande grupo de "hackers" trabalhando em C #. É mais do jogo de associações do estudo real, então por favor, não seja ofendido (sim - eu sei que há grandes programas escritos em PHP com boa prática de engenharia etc. Mas tendem a Seja primeira língua para muitas pessoas que não sabem o que, por exemplo, XSS é)
  • Eu não queria ofender ninguém pelo nome do ensino médio. Eu quis dizer que muitas vezes é primeiro passo em programação através desta cultura (e espero que não durasse)
  • EDIT: Academia Não significa que essa pessoa esteja na academia, além de estar na academia, não significa que alguém pertença a academia (apesar de ser brilhante cientista/pesquisador etc. ). Denota que ele prefere as ferramentas que fornecem uma solução clara, obviamente correta, mesmo que ele não tenha desempenho/demora mais tempo/... similary Corporate A cultura não é equivindir às corporações.

Acho que estou atualmente open source com leve influência da academia (passiva).

4
Maciej Piechotka

Estou meio que no acampamento Alt.net/old-school cs. Eu trabalho com a Microsoft Tech (C #, etc.), mas estou ciente de que há um mundo inteiro ao meu redor, outros idiomas, algoritmos, estruturas, "coisas sob o capô", etc. Não é perfeito, obviamente, mas é um trabalho em progresso.

2
Adam Lear

Eu não concordo inteiramente com esta declaração sobre a subcultura MS: "Não vejo o que o barulho com código aberto e tal é tudo sobre - além disso, quem precisa conhecer outra língua? Geralmente, eu encontrei tais lugares para ser 9-5 e bastante corporativo (impulsionado por gerentes de negócios, não pessoas de software). A anti-tese da cultura hacker ". Eu trabalhei em duas lojas .NET agora e o ambiente foi realmente muito hacker. Nós empregamos muitos projetos de código aberto em nosso trabalho. Na minha opção, tudo depende do tipo de pessoas que se trabalha. Se eles são verdadeiros desenvolvedores, eles vão procurar constantemente maneiras de melhorar, ramificar. Quais tecnologias eles usam é irrelevante.

Não se esqueça da subcultura da metodologia ágil que incorpora desenvolvedores de diferentes origens.

2
ysolik

Acho que haveria algum terreno médio entre Old School CS e New School Web Developers.

Eu tradicionalmente me consideraria um "desenvolvedor web". PHP e Java e cidadãos de primeira classe para mim, junto com adequado, systic, válido HTML/CSS. Jogue no SQL e você tem um conjunto de habilidades robusto e bem arredondado.

Mover nova escola to kiddies de script e rebrand the desenvolvedor web.

kiddies de script - pessoas com pouco, se houver, "sob o capô" conhecimento sobre a linguagem. Tende ao Google para tutoriais antes de copiar cegamente/colando código no lugar. Normalmente não entende completamente a sintaxe de mais de uma língua.

2
Josh K

acadêmicos que fazem pesquisas usando computadores, não pesquisando sobre computadores.

Elas:
- Estão escrevendo software que pode consumir quantidades ilimitadas de tempo de CPU, memória e espaço de disco para que se importam (ou pelo menos tente se importar) de desempenho, usando coisas como -O3, time, profilers, memcheck e passar horas mais ou menos alterando aleatoriamente o código para reunir alguns speedup ou aplicando-se sem pensar alguns truques míticos para seus scrips.
- Use números reais e saiba que é complicado o suficiente para que uma ciência separada chamada "numérica" ​​possa existir.
[.____] - Muitas vezes use algumas linguagens/bibliotecas/programas de programação muito específicos e são muito fanáticas sobre isso; Guerras de chama são comuns, principalmente sobre o desempenho.
- Chame seus programas "códigos" para destacar que eles têm uma interface de usuário tão ofuscada, então apenas seus criadores sabem como usá-lo.
- Geralmente funciona no Linux ou pelo menos use Putty para SSH para alguma estação de trabalho/cluster Linux.

2
mbq

Eu provavelmente sou uma combinação de pessoas CS da Old School e New-School Web Developers: Eu aprendi a programação escrevendo sites com PHP, JavaScript e SQL, e estou agora presentes Universidade, onde tudo é feito em prompts de comando e emacs sob o Unix.

1
gablin

Conte comigo como o cara do "velho-escola". Eu nunca fiz bem, no entanto. Emacs? Nah, vi e set -o vi Na minha concha para mim Obrigado.

0
Jé Queue