Код
#статьи

И что здесь смешного? 10 шуток в переводе с программерского на человеческий

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

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

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

О программировании в целом

Ходить по воде и разрабатывать по ТЗ — одинаково легко, если то и другое заморожено.

(Источник / перевод Skillbox Media)

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

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

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

Программы без ошибок можно писать двумя способами, но работает только третий.

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

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

99 ошибочек в коде, 99 ошибочек в коде. Возьми-ка одну и пофикси её. 127 ошибочек в коде…

(Источник / перевод Skillbox Media)

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

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

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

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

По секрету: механизм копипасты программисты запрограммировали для программистов.

(Источник / перевод Skillbox Media)

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

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

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

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

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

Теперь-то я понял, что такое обратная совместимость. Это когда нельзя исправлять свои старые ошибки.

(Источник / перевод Skillbox Media)

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

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

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

О языках и технологиях программирования

Языки программирования бывают двух видов: те, на которые все жалуются, и такие, на которых никто не пишет.

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

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

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

— Знаешь объектно-ориентированный способ разбогатеть?

— Наследование!

(Источник / перевод Skillbox Media)

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

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

Заходит как-то SQL-запрос в бар, подходит сразу к двум столикам и спрашивает: «Можно к вам присоединиться?»

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

Фото: cottonbro / pexels.com

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

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

Чтобы понять рекурсию, нужно сперва понять рекурсию.

(Источник / перевод Skillbox Media)

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

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

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

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

И напоследок краткий диалог программиста и его подружки (или друга):

Друг: «Так и будешь сидеть и стучать по клавишам весь день или всё же прогуляешься со мной?»

Программист: «Да».

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

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

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

Подытожим?

Не совсем. Надеемся, теперь вы чуть лучше поняли программистов. А если нет — продолжим юморIТический ликбез в следующей статье. А пока предлагаем почитать краткую историю IT-терминов и о программистских мемах.




Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Освойте топовые нейросети за три дня. Бесплатно
Знакомимся с ChatGPT-4, DALLE-3, Midjourney, Stable Diffusion, Gen-2 и нейросетями для создания музыки. Практика в реальном времени. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована