Каковы наиболее важные понятия для «свободного владения английским языком разработчика»? [закрыто]

10

В апреле я собираюсь выступить с докладом под названием ** English 2.0 - Понимание языка разработчиков "для группы учителей английского языка. Цель состоит в том, чтобы в течение двух часов дать им краткий обзор основных понятий, чтобы они могли лучше понимать блоги разработчиков и подкасты, а также лучше задавать вопросы при общении с разработчиками.

Как вы думаете, какие концепции наиболее важны для понимания, концепции, которые разработчики считают само собой разумеющимся, но широкая публика не знакома с ними? Вот несколько идей:

  • управление версиями
  • абстракциями
  • Паб / суб
  • толчок против тяги
  • отладка
  • модульность
  • трехуровневая архитектура
  • класс / объект
  • "код спагетти" против ООП
  • исключение
  • краудсорсинг
  • рефакторинг
  • облако
  • СУХОЙ - не повторяйся
  • клиент / сервер
  • модульное тестирование
  • дизайнер / разработчик
Эдвард Тангей
источник
2
Интересно, возможно ли провести их через несколько веб-сайтов (проекты с открытым исходным кодом и т. Д.), А затем заставить их выбирать слова / терминологию, которую они не понимают?
Мартейн Вербург
2
@Martijn: эта страница была бы идеальной для этого ;-)
Syg
9
Код спагетти против ООП? Вы можете иметь спагетти-ООП-код и хорошо структурированный, читаемый не-ООП-код.
Джон Хопкинс
4
Почему учителя английского особенно хотят общаться с разработчиками программного обеспечения, а не, скажем, с врачами или физиками?
Кевин Клайн
2
Могу я спросить, почему учитель английского языка должен знать эти термины? Большинство из них - информация об уровне реализации, где, если бы преподаватель английского языка был заинтересованным лицом, их больше волновали бы некоторые совершенно другие термины.
Буровая установка

Ответы:

7

Для определения этих терминов см. Сетевой словарь

Это даст вам почти полный список всех терминов, с которыми вы когда-либо сталкивались (сюда входят любые фразы, которые могут быть пропущены на этой странице). Очевидно, вы захотите пройтись по ним в поисках тех, которые имеют отношение к вам и вашей целевой аудитории.

В качестве примера рассмотрим некоторые записи в разделе D:

Daemon
Data Architect
Database Normalization

Все кажется довольно полезным. Тем не менее, есть миллионы записей, поэтому вы можете применить некоторые правила (если вы слышали об этом, то он есть, иначе он отсутствует):

  1. Нет сокращений (например, TCP / IP включен, OOD отсутствует)
  2. Нет конкретных названий приложений (например, Microsoft Word включен, Kazaa-Lite отсутствует)
  3. Нет конкретных названий языков (например, Java включен, Haskell отсутствует)

Надеюсь, поможет

РЕДАКТИРОВАТЬ: Первоначально получены из: http://www.networkdictionary.com/software/dictionary.php, но сайт, похоже, был заброшен.

РЕДАКТИРОВАТЬ 2: Кажется, что интернет-архив есть копия: https://web.archive.org/web/20120507195610/http://www.networkdictionary.com/software/d.php Спасибо @locster за ссылку.

Гэри Роу
источник
Демон приятный! +1
3
Похоже, ссылка больше не работает.
Ян Худек
@JanHudec Отредактировано, чтобы отразить, что это ушло. Стыд - это был хороший источник материала.
Гари Роу
5

Несколько слов из математики:

  1. Canonical. Уважаемый представитель группы эквивалентных предметов.
  2. Hash. Обычно не из капусты.
  3. Эвристический. Несовершенное решение, которое может быть хорошим с учетом обстоятельств, и которое не переоценивает.
  4. Линейный / экспоненциальный. Как скорость памяти или процессора зависит от размера ввода.

Несколько слов, которые часто неверно истолковывают:

  1. Proxy. То, что действует от имени другого.
  2. Client / Server. Как ваш браузер против веб-сервера.
  3. Master / Slave. Обычно это не имеет ничего общего с человеческим рабством или S & M.
  4. Daemon. Процесс, который обычно проходит без взаимодействия с человеком. Ничего дьявольского.
  5. Мастер. Элемент пользовательского интерфейса, который ведет человека через процедуру.

Несколько слов, насильственные коннотации которых обычно непреднамеренны:

  1. Убийство. Применительно к процессам, а не к котятам.
  2. Thrash. Процесс, который ничего не делает из-за нехватки памяти для расширения.
  3. Bash. Скриптовый язык.
  4. Краш. Превосходно выживаемый для всего, что способно перезагрузиться.
  5. Взрыва. Другое название для символа «!».
  6. и т.п.

И, может быть, стоит включить список эпитетов, так как каждый хочет знать, когда о нем говорят: заостренный босс и т. Д.

Майк Самуэль
источник
2

Я бы добавил эти:

  • проворный
  • ПОЦЕЛУЙ (Делай это просто глупо)
  • рефакторинг
  • интерфейс прикладного программирования

источник
Их достаточно часто разбрасывают в блогах и programers.se достаточно часто. Я был воспитан от KISS. (мы не будем говорить о группе ...)
Берин Лорич
1
  • ЯГНИ - Тебе это не понадобится
  • Scrum
  • ПОЦЕЛУЙ
  • Ajax
  • Инкапсуляция
  • наследование
  • Веб-сервис
  • Компоненты
Sorantis
источник
1

Возможно, вы захотите обсудить точность языка. Иногда я шучу, что разработка программного обеспечения обязательно превращает нас в педантов, не потому, что нам это нравится, а потому, что когда вы программируете, вам очень часто нужно быть точным. Это приводит к большому количеству жаргона, потому что предметно-ориентированный язык позволяет вам быть быстрым и точным.

Рори Хантер
источник
+1 это очень верно. Посмотрите здесь все вопросы, которые спрашивают, является ли X «обязательным» или «необходимым», когда спрашивающий действительно означает «рекомендованный». Если нельзя точно задавать вопросы, они находятся в невыгодном положении, потому что наша сфера требует точности.
GrandmasterB
1

Я был бы рад, если бы вы обратились к нестандартному использованию знаков препинания, типичному для некоторых программистов, например: «Я отказываюсь ставить запятую в строковой литеральной цитате, когда источник не использует запятую», <----- сказал Брайан.

Использование скобок []и усов (или фигурных скобок, для меньшей толпы тазобедренного сустава) {}может быть аналогично предоставлено лечение.

3- Рекурсия может быть забавно указать. Смотри пункт 3.

Для забавного перерыва, возможно, было бы приятно указать на некоторые чисто культурные мотивы, которые являются общими для большей части сообщества разработчиков, от хищников (спасибо XKCD) до Монти Пайтона, на указатель на некоторые из ранних общих оснований, которые основал современное сообщество: IRC, доски объявлений / форумы и Usenet.

BrianH
источник
0

SDLC был бы моим предложением для другой темы, чтобы покрыть.

Несколько других терминов, на которые стоит обратить внимание:

  • заявка
  • система
  • программа
  • Требования

Если вы выходите за пределы технических специалистов, некоторые из этих терминов могут иметь другое значение. Подача заявки на работу может означать принятие заявки, поэтому некоторые люди могут не думать о программном обеспечении с точки зрения приложений. Точно так же существуют развлекательные мероприятия и правительственные инициативы, которые некоторые люди могут рассматривать как программы. Таким образом, между менеджерами программ в Microsoft и менеджерами программ в YMCA может быть разница, просто чтобы привести конкретный пример.

Я хотел бы посмотреть, не могли бы вы заранее попросить участников и сделать часть беседы более интерактивной. Это просто идея для самой беседы, я не знаю, рассматривали ли вы это уже или нет.

JB King
источник
0

Я бы включил справочную карточку / шпаргалку, чтобы каждый мог забрать домой. Запоминать все эти вещи будет сложно, если многое из этого будет новым.

По этому вопросу я бы определенно добавил «шаблоны проектирования» в качестве общей концепции.

SYG
источник