Quali sono i concetti più importanti da comprendere per "padronanza dell'inglese degli sviluppatori"? [chiuso]


10

Ad aprile, terrò un discorso chiamato ** English 2.0 - Capire la lingua degli sviluppatori "a un gruppo di insegnanti di inglese. Lo scopo è in due ore di fornire loro un rapido background sui concetti chiave in modo che possano comprendere meglio i blog e i podcast degli sviluppatori e essere in grado di porre domande migliori quando si parla con gli sviluppatori.

Quali pensi che siano i concetti più importanti da comprendere, concetti che gli sviluppatori danno per scontati ma il pubblico in generale non ha familiarità? Ecco alcune idee:

  • controllo della versione
  • astrazioni
  • pub / sub
  • push vs. pull
  • debug
  • modularità
  • architettura a tre livelli
  • classe / oggetto
  • "codice spaghetti" vs. OOP
  • lancio di eccezioni
  • approvvigionamento di folla
  • refactoring
  • la nuvola
  • ASCIUTTO - non ripeterti
  • client / server
  • test unitari
  • designer / developer

2
Mi chiedo se è possibile portarli attraverso diversi siti Web (progetti open source ecc.) E poi indurli a scegliere parole / terminologia che non comprendono?
Martijn Verburg,

2
@Martijn: questa pagina sarebbe perfetta per questo ;-)
Syg

9
Codice spaghetti vs. OOP? Puoi avere il codice OOP Spaghetti e un codice non OOP ben strutturato e leggibile.
Jon Hopkins,

4
Perché gli insegnanti di inglese vogliono in particolare parlare con gli sviluppatori di software invece di, per esempio, medici o fisici?
Kevin Cline,

2
Posso chiedere perché un insegnante di inglese ha bisogno di conoscere questi termini? La maggior parte di questi sono informazioni a livello di implementazione in cui se l'insegnante di inglese fosse una parte interessata si preoccuperebbe di più di termini molto diversi.
Rig

Risposte:


7

Per le definizioni di questi termini consultare il Dizionario di rete

Questo ti darà un elenco quasi completo di tutti i termini che incontrerai (questo copre tutte le frasi che potresti perdere in questa pagina). Ovviamente, ti consigliamo di cercare tra questi alla ricerca di quelli che sono rilevanti per te e il tuo pubblico previsto.

Ad esempio, considera alcune delle voci in D:

Daemon
Data Architect
Database Normalization

Tutto sembra abbastanza utile. Tuttavia, ci sono milioni di voci, quindi potresti voler applicare alcune regole (se ne hai sentito parlare, allora è dentro, altrimenti è fuori):

  1. Nessun acronimi (ad es. TCP / IP è attivo, OOD non attivo)
  2. Nessun nome di applicazione specifico (ad es. Microsoft Word è attivo, Kazaa-Lite non è attivo)
  3. Nessun nome di lingua specifico (es. Java è attivo, Haskell è fuori)

Spero che sia d'aiuto

EDIT: originariamente da: http://www.networkdictionary.com/software/dictionary.php ma il sito sembra essere stato abbandonato.

EDIT 2: sembra che Internet Archive ne abbia una copia: https://web.archive.org/web/20120507195610/http://www.networkdictionary.com/software/d.php Grazie a @locster per il link.


Daemon simpatico! +1

3
Il collegamento sembra non funzionare più.
Jan Hudec,

@JanHudec Modificato per riflettere che non c'è più. Peccato - è stata una buona fonte di materiale.
Gary Rowe,


5

Alcune parole dalla matematica:

  1. Canonico. Il distinto rappresentante di un gruppo di articoli equivalenti.
  2. Hash. Di solito non fatto da cavolo.
  3. Euristico. Una soluzione imperfetta che può andare bene date le circostanze e che non promette troppo.
  4. Lineare / esponenziale. In che modo la velocità della memoria o del processore è influenzata dalle dimensioni dell'input.

Alcune parole che sono spesso male interpretate:

  1. Proxy. Qualcosa che agisce per conto di un altro.
  2. Client / Server. Come il tuo browser vs un web server.
  3. Master / Slave. Niente a che vedere con la schiavitù umana o S&M, di solito.
  4. Demone. Un processo che di solito funziona senza interazione umana. Niente di diabolico.
  5. Procedura guidata. Un elemento dell'interfaccia utente che guida un essere umano attraverso una procedura.

Alcune parole le cui connotazioni violente sono di solito indesiderate:

  1. Uccidere. Se applicato ai processi, non ai gattini.
  2. Thrash. Un processo che non sta eseguendo nulla a causa della mancanza di memoria in cui espandersi.
  3. Bash. Un linguaggio di scripting.
  4. Crash. Sopravvissuto in modo definitivo a qualsiasi cosa in grado di riavviare.
  5. Scoppio. Un altro nome per il simbolo '!'.
  6. eccetera.

E potrebbe valere la pena includere un elenco di epiteti poiché tutti vogliono sapere quando vengono discussi: capo dai capelli a punta, ecc.


2

Vorrei aggiungere quelli:

  • agile
  • KISS (Keep It Simple Stupid)
  • refactoring
  • Interfaccia di programmazione applicazioni

Vengono gettati abbastanza spesso nei blog e nei programmatori. Abbastanza spesso. Sono stato sollevato dal KISS. (non parleremo della band ...)
Berin Loritsch,

1
  • YAGNI - Non ne avrai bisogno
  • Mischia
  • BACIO
  • Ajax
  • incapsulamento
  • Eredità
  • Servizio web
  • componenti

1

Potresti voler discutere della precisione del linguaggio. A volte scherzo sul fatto che lo sviluppo del software ci trasforma necessariamente in pedanti, non perché ci divertiamo, ma perché quando stai programmando molto spesso devi essere preciso. Questo porta quindi a una grande quantità di gergo, perché il linguaggio specifico del dominio ti consente di essere rapido e preciso.


+1 questo è molto vero. Testimone di tutte le domande qui poste che chiedono se X è "richiesto" o "necessario", quando chi chiede significa davvero "raccomandato". Se uno non può porre domande precisamente, sono in svantaggio perché il nostro campo richiede precisione.
GrandmasterB,

1

Mi piacerebbe se ti rivolgessi a usi non standard della punteggiatura tipici di alcuni programmatori, come "Rifiuto di inserire la virgola tra virgolette letterali quando l'origine non utilizzava una virgola", <----- disse Brian.

L'uso di staffe, []e baffi (o parentesi graffe, per la minor folla dell'anca) {}potrebbe essere trattato in modo simile.

3- La ricorsione potrebbe essere divertente da sottolineare. Vedi punto 3

Per una pausa divertente, potrebbe essere piacevole sottolineare alcune ispirazioni puramente culturali che sono comuni a gran parte della comunità degli sviluppatori, dai rapaci (grazie, XKCD), a Monty Python, a un puntatore indietro ad alcuni dei primi motivi comuni che ha fondato la comunità moderna: IRC, bacheche / forum e Usenet.


0

SDLC sarebbe il mio suggerimento per un altro argomento da trattare.

Alcuni altri termini che potrebbero valere la pena di coprire:

  • Applicazione
  • Sistema
  • Programma
  • Requisiti

Se esci da persone tecniche alcuni di questi termini possono assumere altri significati. Fare domanda per un lavoro può significare prendere un'applicazione, quindi alcune persone potrebbero non pensare al software in termini di applicazioni. Allo stesso modo, ci sono attività ricreative e iniziative governative che alcune persone possono vedere come programmi. Pertanto, potrebbe esserci una differenza tra i gestori di programmi di Microsoft e i gestori di programmi di YMCA, solo per fare un esempio specifico qui.

Sarei tentato di vedere se potevi sollecitare in anticipo le idee dei partecipanti e rendere parte del discorso un po 'più interattivo. Questa è solo un'idea per il discorso stesso che non so se lo hai già considerato o no.


0

Includerei una scheda di riferimento / un cheat sheet da portare a casa da tutti. Ricordare tutte queste cose sarà difficile se molte di queste sono nuove.

A proposito, aggiungerei sicuramente "modelli di design" come concetto generale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.