Quels sont les concepts les plus importants à comprendre pour «maîtriser l'anglais développeur»? [fermé]

10

En avril, je vais donner une conférence intitulée ** English 2.0 - Understanding the Language of Developers "à un groupe d'enseignants d'anglais. Le but est dans deux heures de leur donner un bref aperçu des concepts clés afin qu'ils puissent mieux comprendre les blogs et podcasts des développeurs et être en mesure de poser de meilleures questions lorsque vous parlez aux développeurs.

Selon vous, quels sont les concepts les plus importants à comprendre, des concepts que les développeurs tiennent pour acquis mais que le grand public ne connaît pas? Voici quelques idées:

  • contrôle de version
  • abstractions
  • pub / sous
  • pousser contre tirer
  • débogage
  • modularité
  • architecture à trois niveaux
  • classe / objet
  • "code spaghetti" vs OOP
  • lancement d'exception
  • l'approvisionnement de la foule
  • refactoring
  • le nuage
  • SEC - ne vous répétez pas
  • serveur client
  • tests unitaires
  • concepteur / développeur
Edward Tanguay
la source
2
Je me demande s'il est possible de les parcourir à travers plusieurs sites Web (projets open source, etc.) et ensuite de leur faire choisir des mots / une terminologie qu'ils ne comprennent pas?
Martijn Verburg
2
@Martijn: cette page serait parfaite pour ça ;-)
Syg
9
Code spaghetti vs OOP? Vous pouvez avoir du code Spaghetti OOP et du code non OOP bien structuré et lisible.
Jon Hopkins
4
Pourquoi les professeurs d'anglais veulent-ils particulièrement parler aux développeurs de logiciels plutôt qu'aux médecins ou aux physiciens, par exemple?
kevin cline
2
Puis-je demander pourquoi un professeur d'anglais a besoin de connaître ces termes? La plupart d'entre elles sont des informations au niveau de la mise en œuvre où, si le professeur d'anglais était partie prenante, il se soucierait davantage de termes très différents.
Rig

Réponses:

7

Pour les définitions de ces termes, voir le Network Dictionary

Cela vous donnera une liste presque complète de tous les termes que vous rencontrerez jamais (cela couvre toutes les phrases qui peuvent être manquées sur cette page). De toute évidence, vous aurez envie de parcourir ces derniers à la recherche de ceux qui sont pertinents pour vous et votre public cible.

À titre d'exemple, considérons certaines des entrées sous D:

Daemon
Data Architect
Database Normalization

Tous semblent assez utiles. Cependant, il y a des millions d'entrées, vous pouvez donc appliquer certaines règles (si vous en avez entendu parler, elles sont entrées, sinon elles sont supprimées):

  1. Aucun acronyme (par exemple, TCP / IP est activé, OOD est désactivé)
  2. Aucun nom d'application spécifique (par exemple, Microsoft Word est disponible, Kazaa-Lite est désactivé)
  3. Aucun nom de langage spécifique (par exemple, Java est entré, Haskell est sorti)

J'espère que cela aide

EDIT: originellement provenant de: http://www.networkdictionary.com/software/dictionary.php mais le site semble avoir été abandonné.

EDIT 2: Il semble que les archives Internet aient une copie: https://web.archive.org/web/20120507195610/http://www.networkdictionary.com/software/d.php Merci à @locster pour le lien.

Gary Rowe
la source
Démon gentil! +1
3
Le lien ne semble plus fonctionner.
Jan Hudec
@JanHudec Modifié pour refléter qu'il a disparu. Dommage - c'était une bonne source de matériel.
Gary Rowe
5

Quelques mots de mathématiques:

  1. Canonique. Le distingué représentant d'un groupe d'articles équivalents.
  2. Hacher. Pas habituellement à base de chou.
  3. Heuristique. Une solution imparfaite qui peut être bonne compte tenu des circonstances et qui ne promet pas trop.
  4. Linéaire / exponentielle. Comment le taux de mémoire ou de processeur est affecté par la taille de l'entrée.

Quelques mots souvent mal interprétés:

  1. Procuration. Quelque chose qui agit au nom d'un autre.
  2. Serveur client. Comme votre navigateur contre un serveur Web.
  3. Maître d'esclave. Rien à voir avec l'esclavage humain ou le S&M, généralement.
  4. Démon. Un processus qui s'exécute généralement sans interaction humaine. Rien de diabolique.
  5. Sorcier. Un élément d'interface utilisateur qui guide un humain à travers une procédure.

Quelques mots dont les connotations violentes sont généralement involontaires:

  1. Tuer. Appliqué aux processus, pas aux chatons.
  2. Débattre. Un processus qui ne fait rien en raison du manque de mémoire pour se développer.
  3. Frapper. Un langage de script.
  4. Crash. Eminemment survivant pour tout ce qui est capable de redémarrer.
  5. Coup. Un autre nom pour le symbole «!».
  6. etc.

Et cela peut valoir la peine d'inclure une liste d'épithètes car tout le monde veut savoir quand on en parle: patron aux cheveux pointus, etc.

Mike Samuel
la source
2

J'ajouterais ceux-ci:

  • agile
  • KISS (Keep It Simple Stupid)
  • refactoring
  • Interface de programmation d'applications

la source
Ils sont jetés assez souvent dans les blogs et les programmeurs. J'ai été élevé hors de KISS. (on ne parlera pas du groupe ...)
Berin Loritsch
1
  • YAGNI - Tu n'en auras pas besoin
  • Scrum
  • BAISER
  • Ajax
  • Encapsulation
  • Héritage
  • Service Web
  • Composants
Sorantis
la source
1

Vous voudrez peut-être discuter de la précision de la langue. Je plaisante parfois que le développement de logiciels nous transforme nécessairement en pédants, non pas parce que nous l'apprécions, mais parce que lorsque vous programmez, vous devez très souvent être précis. Cela conduit alors à une grande quantité de jargon, car le langage spécifique au domaine vous permet d'être à la fois rapide et précis.

Rory Hunter
la source
+1 c'est très vrai. Soyez témoin de toutes les questions ici qui demandent si X est «requis» ou «nécessaire», alors que le demandeur signifie vraiment «recommandé». Si on ne peut pas poser de questions précisément, elles sont désavantagées car notre domaine demande de la précision.
GrandmasterB
1

Je serais ravi que vous abordiez les utilisations non standard de la ponctuation typiques avec certains programmeurs, comme "Je refuse de mettre la virgule dans une citation littérale de chaîne lorsque la source n'a pas utilisé de virgule", <----- dit Brian.

L'utilisation de supports, []et de moustaches (ou d'appareils orthopédiques, pour la foule moins hanche) {}pourrait être traitée de manière similaire.

3- La récursivité peut être amusante à souligner. Voir point 3.

Pour une pause amusante, il pourrait être agréable de souligner quelques inspirations purement culturelles qui sont communes à une grande partie de la communauté des développeurs, des rapaces (merci, XKCD), à Monty Python, en passant par un pointeur vers certains des premiers motifs communs a fondé la communauté moderne: IRC, babillards / forums et Usenet.

BrianH
la source
0

SDLC serait ma suggestion pour un autre sujet à couvrir.

Quelques autres termes qui méritent d'être couverts:

  • Application
  • Système
  • Programme
  • Exigences

Si vous sortez des gens techniques, certains de ces termes peuvent prendre d'autres significations. Postuler pour un emploi peut signifier prendre une application, de sorte que certaines personnes peuvent ne pas penser au logiciel en termes d'applications. De même, il existe des activités récréatives et des initiatives gouvernementales que certaines personnes peuvent considérer comme des programmes. Ainsi, il peut y avoir une différence entre les gestionnaires de programme chez Microsoft et les gestionnaires de programme au YMCA, juste pour donner un exemple spécifique ici.

Je serais tenté de voir si vous pouviez solliciter à l'avance les idées des participants et faire en sorte qu'une partie de la conférence soit un peu plus interactive. C'est juste une idée pour le discours lui-même que je ne sais pas si vous y avez déjà pensé ou non.

JB King
la source
0

Je voudrais inclure une carte de référence / feuille de triche pour que tout le monde puisse ramener à la maison. Se souvenir de tout ça sera difficile si beaucoup est nouveau.

Sur le sujet, j'ajouterais certainement des "modèles de conception" comme concept général.

Syg
la source