И что здесь смешного? 10 шуток в переводе с программерского на человеческий
2026-02-21 00:56 Diff

#статьи

  • 7 май 2021
  • 0

Программисты, приглашаем улыбнуться знакомым темам. А всех сочувствующих зовём для ликбеза, чтобы лучше понимать программистов.

Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.

Со стороны программисты кажутся странными. Работа у них непонятная, и говорят они тоже чудно: бывает даже слова все знакомые, а в чём общий смысл, не разберёшь. А уж если программист решил пошутить — вообще тушите свет.

Шутим по-программистски и объясняем, после каких слов смеяться.

С гуляниями по воде всё ясно: вода после замерзания становится льдом, по нему можно ходить — спасибо, Кэп! А вот заморозка спецификации — камень в огород модных ныне Agile-методик.

До них было так: сперва собираем требования, потом пишем ТЗ, согласовываем его и только после этого начинаем кодить — ровно по тем докам, которые подписали клиенты. Шаг вправо или влево от спецификации — доработка за отдельные деньги.

При Agile-подходе разрабатывать продукт начинают почти сразу, опираясь на минимальные рамочные требования. Эти требования потом уточняются, изменяются… короче, ходить по воде и то проще, чем в гибкой команде написать программу по ТЗ 🙈

(Отсюда / перевод Skillbox Media)

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

Чтобы прочувствовать эти слова, стоит их пропеть — да не как придётся, а на особый лад.

Есть такая старая песенка, популярная в США и Канаде, — правда, она не про баги, а про бутылки пива. У неё длиннющий текст с кучей повторов и особым ритмом, так что её часто напевают в дороге или во время монотонной работы. Суть песни в том, что 99 бутылок поочерёдно разбивают, пока не останется ни одной.

С багами не так. При их исправлении часто возникают другие. А коллеги разработчика за это время успеют понаписать кода с новыми, ещё не найденными ошибками. Такой вот программистский ад: баги плодятся как кролики, и кажется, что никогда не закончатся.

Но обычно всё же заканчиваются — не баги, конечно (смотрите вторую шутку), а время или деньги клиентов 😁

А вот ещё вариант:

Скриншот: @tproger / twitter.com

Давным-давно первые великие программисты тщательно продумывали алгоритмы, а весь код набирали вручную. А потом пришло поколение копипаст-кодеров — и код сегодня гораздо чаще копируют, чем пишут с нуля.

На проблемы такого подхода намекает сама шутка выше: только в ней повторы намеренные, а вот при дублировании кода громоздкость результата, сложность его восприятия и размножение ошибок — эффекты вполне себе побочные.

Многие разработчики попросту находят готовые решения на сайтах вроде Stack Overflow и слизывают целые куски, лишь слегка подкручивая код под свои задачи. И это не говоря о том, что мы вошли в эру Low-code и No-code, где программы генерируют другие программы 😲

Это шутка «со слезами на глазах»: технологии развиваются, железо становится мощнее, программисты в отдельно взятой компании (в теории) набираются опыта — значит, можно взять и переписать всё с новыми знаниями, опираясь на новые технологии.

Но нет — пользователям нужно работать со старыми форматами данных в привычном интерфейсе. Поэтому в новых версиях продукта приходится поддерживать совместимость с возможностями прежних. А старые функции содержат в себе и старые ошибки, и свои костыли.

В общем, никакой вам жизни с чистого листа 🙄

(Отсюда / перевод Skillbox Media)

Это правда: у каждого более-менее популярного языка программирования есть фанаты и хейтеры. Java ругают за медлительность; Perl — за странный синтаксис, похожий на шифровки; PHP — за отсутствие встроенных средств отладки.

Идеального языка не существует. Впрочем, в мире вообще нет ничего идеального 😔

В объектно-ориентированном программировании (ООП) программа состоит из множества объектов. Каждый — экземпляр какого-то класса. Классы при этом могут быть наследниками других классов. Так что наследование — один из столпов ООП, путь к разнообразию классов.

А в обычном мире наследование — способ прийти к изобилию другого рода — попросту разбогатеть. И на какие «объекты» ориентируются здесь — тоже вполне ясно. На недвижимость богатых родственников, например 👑

(Отсюда / перевод Skillbox Media)

Фото: cottonbro / pexels.com

Здесь соль в игре слов: table в английском языке обозначает как стол, так и таблицу. Join переводится как «присоединиться» или «объединить»/«соединить».

А оператор JOIN в SQL служит как раз для соединения данных, когда они выбираются из двух таблиц базы данных.

Это так же просто, как разобраться, что было раньше: курица или яйцо. Рекурсия — это когда подпрограмма вызывает себя рекурсивно, а рекурсивно — значит с помощью рекурсии. Так, стоп, какая-то рекурсия получилась 😅

Если серьёзно, рекурсия — это вызов функции из этой же функции, но с другими параметрами. И функция может вызывать себя из себя же самой много раз.

Например, с помощью рекурсивной функции можно вычислить факториал — произведение всех целых чисел от 1 до N. Вот так:

если N = 0, то факториал = 1 иначе факториал = N * факториал(N-1)

(Отсюда / перевод Skillbox Media)

Программист вовсе не сумасшедший. Дело здесь в логике, в математической логике. Вопрос включает слово ИЛИ. А результат логического высказывания с этим словом правдив, если хотя бы одно из условий (слева или справа от ИЛИ) выполняется.

Так как программист знает, что какое-то условие точно выполнится (он продолжит кодить либо позволит вытащить себя на прогулку), то и отвечает «да». Пожалуйста, не повторяйте это со своими близкими 😀

Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу