In April, I'm going to be giving a talk called **English 2.0 - Understanding the Language of Developers to a group of English teachers. The purpose is in two hours to give them a quick background in key concepts so that they can better understand developer blogs and podcasts and are able to ask better questions when talking to developers. What do you think are the most important concepts to understand, concepts that developers take for granted but the general public is not familiar with? Here are a few ideas:version controlabstractionspub/subpush vs. pulldebuggingmodularitythree-tier architectureclass/objectspaghetti code vs. OOPexception throwingcrowd sourcingrefactoringthe cloudDRY - don't repeat yourselfclient/serverunit testingdesigner/developer
What are the most important concepts to understand for fluency in developer English?
spoken languages
For definitions of these terms see the Network DictionaryThis will give you an almost complete list of all terms that you'll ever encounter (this covers any phrases that may be missed on this page). Obviously, you'll want to trawl through these looking for those that are relevant to you and your intended audience. As an example, consider some of the entries under D:DaemonData ArchitectDatabase NormalizationAll seem quite useful. However, there are millions of entries so you may want to apply some rules (if you've heard of it, then it's in, otherwise it's out):No acronyms (e.g. TCP/IP is in, OOD is out)No specific application names (e.g. Microsoft Word is in, Kazaa-Lite is out)No specific language names (e.g. Java is in, Haskell is out)Hope it helpsEDIT:Originally sourced from: http://www.networkdictionary.com/software/dictionary.php but the site appears to have been abandoned.EDIT 2:It appears that the Internet Archive have a copy: https://web.archive.org/web/20120507195610/http://www.networkdictionary.com/software/d.phpThanks to @locster for the link.