All'esterno, programmatori, informatici, ingegneri informatici e sviluppatori possono sembrare tutti uguali, ma questo è tutt'altro che vero per le persone che creano software per vivere. Le capacità e le conoscenze di ogni singolo programmatore possono variare molto, così come i loro strumenti (sistema operativo, lingua e sì, editor preferito) e tale diversità genera molte sottoculture nel software, come i programmatori che utilizzano attivamente Stack Overflow e questo sito, contro molti altri che non lo fanno.
Sono curioso di sapere dagli altri quali sotto-culture software hanno incontrato, di cui sono state ammirate, non apprezzate o addirittura create. Per cominciare, ho riscontrato:
- Aziende e sviluppatori basati su Microsoft : il loro intero stack proviene da Redmond, WA. E-mail è Outlook è e-mail. Il web è IE e IIS. Hanno raccoglitori di grandi dimensioni del loro abbonamento MS Developer Network pieno di più versioni di VB, .net, Visual Studio, ecc. Evita di lavorare con una shell / riga di comando. Non capisco di cosa si tratta con l'open-source e cose del genere. Le società incentrate sulla SM tendono ad essere 9-5 e piuttosto corporative (guidate da manager aziendali, non da software people). Oggi (data l'ampia disponibilità di strumenti non MS), questa è l'antitesi della cultura hacker.
- Persone CS della vecchia scuola : spesso conoscono Lisp e Unix molto bene; a volte, potrebbero aver scritto un semi-popolare Lisp o un'utilità di sistema. Poche, se del caso, le cose di "ingegneria del software" sono nuove per loro, né ne sono impressionate. Conoscere i riferimenti, la storia e le implicazioni di livello superiore dei linguaggi di programmazione come Lisp, C, Prolog e Smalltalk. Può essere amaro per i risultati di intelligenza artificiale degli anni '80 e '90. Tendono ad essere utenti Emacs. Può digitare comandi di shell multilinea senza batter ciglio. Il loro consiglio può essere criptico, ma contiene oro una volta capito.
- Sviluppatori web di nuova scuola : hanno giocato con computer e videogiochi crescendo, ma spesso hanno iniziato a programmare solo alla fine degli anni '90 o all'inizio degli anni '00. Comodo con scripting / linguaggi dinamici da 1 a 1,5; pensa che C e le lingue al di fuori di Ruby / Perl / Python siano inutili / magiche. Inizialmente potrebbe essere stato considerato HTML come programmazione. Tendi a prendere un Mac e ad essere fanatico / irrazionale al riguardo. Usa i framework più che crearli. Spesso troppo entusiasta di NoSQL e / o Ruby On Rails.
- CS di nuova scuola : molta formazione in statistica, modelli bayesiani e inferenza; non dire "AI", dire "machine learning". Più Java che Lisp, ma potrebbero anche essere programmatori esperti Haskell. Vedere i maggiori successi del mondo reale da parte di esperti nel loro settore (Google, finanza / quants) spesso li rende (troppo) fiduciosi. Ma i big data e il loro trattamento distribuito stanno davvero cambiando il mondo.
Gli esempi sopra riportati non sono affatto completi, corretti, ortogonali o oggettivi. :) Proprio quello che ho visto personalmente e fornito per innescare alcune discussioni e delineare la domanda più ampia. Sentiti libero di non essere d'accordo!