Per il mondo esterno, programmatori, informatici, ingegneri software e sviluppatori possono sembrare tutti uguali, ma questo è lontano dal caso 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, linguaggio 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 sottoculture software hanno incontrato, appartenuto, ammirato, non gradito o addirittura creato. Per i principianti, ho riscontrato:
- Aziende e sviluppatori guidati da Microsoft : il loro intero stack proviene da Redmond, WA. L'e-mail è Outlook è e-mail. Il web è IE e IIS. Hanno grandi raccoglitori dell'abbonamento MS Developer Network completo di più versioni di VB, .net, Visual Studio, ecc. Evita di lavorare con una shell / riga di comando. Non vedere quali sono i problemi con l'open-source e questo è tutto. Le aziende MS-centric tendono ad essere 9-5 e piuttosto corporate (guidate da manager aziendali, non da persone del software). Al giorno d'oggi (data l'ampia disponibilità di strumenti non MS), questa è l'antitesi della cultura hacker.
- Persone CS della vecchia scuola : spesso conoscono molto bene Lisp e Unix; a volte, possono aver scritto un Lisp semi-popolare o un'utilità di sistema. Pochi, se del caso, le cose di "ingegneria del software" sono nuove per loro, né sono impressionate da tali. Conoscere i riferimenti, la storia e le implicazioni di livello superiore dei linguaggi di programmazione come Lisp, C, Prolog e Smalltalk. Può essere aspro per i risultati di AI degli anni '80 e '90. Tendono ad essere gli utenti di Emacs. Può digitare comandi di shell su più righe senza battere ciglio. Il loro consiglio può essere criptico, ma contiene l'oro una volta compreso.
- Sviluppatori web di nuove scuole : hanno giocato con computer e videogiochi in crescita, ma spesso hanno iniziato a programmare solo alla fine degli anni '90 o all'inizio degli anni '00. Constrongvole con linguaggi di scripting / dinamici da 1 a 1,5; penso che C e le lingue al di fuori di Ruby / Perl / Python non siano necessarie / magiche. Potrebbe aver considerato inizialmente HTML come programmazione. Tendi ad avere un Mac e ad essere fanatico / irrazionale. Utilizzare i framework più che costruirli. Spesso eccessivamente entusiasta di NoSQL e / o Ruby On Rails.
- CS della nuova scuola : molto allenamento in statistica, modelli bayesiani e inferenza; non dire "AI", dì "machine learning". Più Java di Lisp, ma potrebbe anche essere esperto di programmatori Haskell. Vedere i principali successi del mondo reale da parte di esperti nel loro campo (Google, finance / quants) li rende spesso (oltre) sicuri. Ma i big data e l'elaborazione distribuita di questi stanno davvero cambiando il mondo.
Gli esempi sopra non sono affatto completi, corretti, ortogonali o oggettivi. :) Proprio quello che ho visto personalmente, e fornito di suscitare qualche discussione e delineare la domanda più ampia. Sentiti libero di non essere d'accordo!