Quali sotto-culture di programmazione / software esistono? Cosa li definisce? A quale appartiene? [chiuso]

13

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!

    
posta limist 21.09.2010 - 19:04
fonte

10 risposte

12

Mi considero parte del gruppo Sistemi in tempo reale . Ci sono alcune caratteristiche di "Old School" ma con meno attenzione a CS, più su hardware.

L'archetipo:

  • Ha una conoscenza approfondita di "C"
    • Ha una copia originale di K & R
    • Scrive in altre lingue come se fossero solo una sintassi alternativa per "C"
  • Può prevedere l'output dell'assembler dal codice.
  • Può leggere uno schema circuitale
  • Non sa come scrivere codice senza fare 'ottimizzazione prematura'.
  • È abbastanza comodo con la riga di comando.
risposta data 21.09.2010 - 21:30
fonte
6

Non dimenticare i programmatori mainframe. Sono anche una sub-cultura.

    
risposta data 21.09.2010 - 22:36
fonte
5

Rappresento il contingente solitario di Delphi Devs under 30. Il nostro caucus è piccolo, ma i nostri cuori sono grandi.

    
risposta data 21.09.2010 - 21:24
fonte
4

Immagino che esistano diverse culture che in qualche modo vivono al fianco piuttosto che combattere e sono in qualche modo trascendenti:

  • Cultura hacker / open source : condivisione del codice, utilizza il vero nome o meno. Concentrato probabilmente su piccoli strumenti che risolvono un problema. Permette gli hack in programma. Lingue: C , Lisp , C ++ , Python . Probabilmente si sovrappone alle tue persone CS della vecchia scuola .
  • Academia : concentrazione sugli algoritmi e azione nel modo giusto. Il vero nome è obbligatorio (appare comunque sulla carta). Lingue: Java , Haskell , ( F # ?)
  • Corportate : concentrazione sulle soluzioni (probabilmente su tutto). Se open source è che fornisce il nome non è necessario . Lingue: Java , C # , VB.net , Ruby .
  • " High School ": funziona se funziona ma non è necessario. Concentrazione su nomi come "SuperProgram 1.0 per Windows XP". (scusa, non ho trovato un buon nome, ma intendo i programmatori che hanno iniziato a padroneggiare CS e non sono bravi a farlo - almeno ancora). Lingue: PHP , VB , Ruby
  • Sviluppatori web di New School : come sopra.

Si prega di notare che:

  • è possibile mescolare le culture nelle organizzazioni e in una sola persona. In effetti lo fa spesso.
  • Le lingue sono ESEMPI ed è ad esempio un gruppo piuttosto ampio di "hacker" che lavorano su C #. È più di un gioco di associazioni il vero studio quindi per favore non essere offeso (sì - so che ci sono grandi programmi scritti in PHP con buone pratiche di ingegneria ecc., Ma tendono ad essere la prima lingua per molte persone che don ' so cosa sia XSS ad esempio)
  • Non volevo offendere nessuno per nome High School. Intendevo dire che spesso è il primo passo nella programmazione attraverso questa cultura (e si spera non sia l'ultima)
  • Modifica: Academia non significa che la persona sia accademica, così come essere accademica non significa che qualcuno appartenga a academia (nonostante sia uno scienziato / ricercatore brillante ecc.). Denota che preferisce gli strumenti che forniscono una soluzione chiara, ovviamente corretta anche se manca di prestazioni / richiede più tempo / ... La cultura aziendale non è equivoca alle società.

Penso di essere attualmente per lo più Open Source con una leggera influenza di Academia (passiva).

    
risposta data 21.09.2010 - 21:33
fonte
2

Sono un po 'nel campo CS di Alt.NET/old-school. Lavoro con Microsoft tech (C #, ecc.), Ma sono consapevole del fatto che c'è un intero mondo intorno a me, altri linguaggi, algoritmi, framework, "roba sotto il cofano", ecc. Non perfetto, ovviamente, ma è un lavoro in corso.

    
risposta data 21.09.2010 - 20:29
fonte
2

Non sono del tutto d'accordo con questa affermazione sulla sottocultura della SM: "Non capite quale sia il problema con open-source e questo è tutto - inoltre, chi ha bisogno di conoscere un'altra lingua? In generale, ho trovato tale luoghi da 9 a 5 e piuttosto aziendali (guidati da manager aziendali, non da gente del software). L'antitesi della cultura hacker ". Ho lavorato in due negozi .Net ormai e l'ambiente era in realtà molto simile a un hacker. Abbiamo impiegato molti progetti open source nel nostro lavoro. Secondo la mia opinione, tutto dipende dal tipo di persone con cui si lavora. Se sono veri sviluppatori, cercheranno costantemente modi per migliorare, espandersi. Quali tecnologie usano è irrilevante.

Non dimenticare la sottocultura della metodologia Agile che incorpora sviluppatori di background diversi.

    
risposta data 21.09.2010 - 21:05
fonte
2

Penso che ci sarebbe una via di mezzo tra CS Scuola Vecchia e Sviluppatori Web Nuova Scuola .

Tradizionalmente mi considero un "Web Developer". PHP e Java e cittadini di prima classe per me, insieme a un vero e proprio, simpatico valido HTML / CSS. Getta in SQL e hai un set di abilità robusto e ben arrotondato.

Sposta Nuova scuola in Script Kiddies e rinomina lo sviluppatore web .

Script Kiddies - Le persone con poca o nessuna conoscenza "sotto il cofano" della lingua. Tende a google per esercitazioni prima di copiare / incollare il codice alla cieca. In genere non comprende appieno la sintassi di più di una lingua.

    
risposta data 21.09.2010 - 21:40
fonte
2

Gli accademici che fanno ricerche usando i computer, non le ricerche sui computer.

Si:
   - sta scrivendo un software che può consumare quantità illimitate di tempo di CPU, memoria e spazio su disco in modo che si preoccupino (o almeno tenti di occuparsi) delle prestazioni, o usando roba come -O3 , time , profiler, memcheck, e impiegano ore a modificare più o meno a caso il codice per raccogliere un po 'di velocità o che applicano senza scrupoli alcuni trucchi mitici ai propri script.
 - usa numeri reali e sappi che è abbastanza difficile da poter esistere una scienza separata chiamata "numerici".
 - usano spesso linguaggi / librerie / programmi di programmazione molto specifici e sono molto fanatici al riguardo; le guerre di fiamma sono comuni, soprattutto per quanto riguarda le prestazioni.
 - chiama i loro "codici" dei programmi per evidenziare che hanno un'interfaccia utente così offuscata in modo che solo i loro creatori sappiano come usarli.
 - Di solito funziona su Linux o almeno usa PuTTY per ssh su qualche workstation / cluster Linux.

    
risposta data 21.09.2010 - 23:34
fonte
1

Probabilmente sono una combinazione di persone CS della vecchia scuola e sviluppatori web della nuova scuola : ho imparato la programmazione scrivendo siti Web con PHP, Javascript e SQL e Ora sto frequentando l'università dove tutto è fatto in prompt dei comandi ed Emacs sotto UNIX.

    
risposta data 21.09.2010 - 19:38
fonte
0

Fammi vedere come il ragazzo della "vecchia scuola". Non ho mai fatto bene il LISP, però. Emacs? Nah, vi e set -o vi nella mia shell per me grazie.

    
risposta data 21.09.2010 - 19:38
fonte

Leggi altre domande sui tag