0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>7 май 2021</li>
2
<ul><li>7 май 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Программисты, приглашаем улыбнуться знакомым темам. А всех сочувствующих зовём для ликбеза, чтобы лучше понимать программистов.</p>
4
</ul><p>Программисты, приглашаем улыбнуться знакомым темам. А всех сочувствующих зовём для ликбеза, чтобы лучше понимать программистов.</p>
5
<p>Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.</p>
5
<p>Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.</p>
6
<p>Со стороны программисты кажутся странными. Работа у них непонятная, и говорят они тоже чудно: бывает даже слова все знакомые, а в чём общий смысл, не разберёшь. А уж если программист решил пошутить - вообще тушите свет.</p>
6
<p>Со стороны программисты кажутся странными. Работа у них непонятная, и говорят они тоже чудно: бывает даже слова все знакомые, а в чём общий смысл, не разберёшь. А уж если программист решил пошутить - вообще тушите свет.</p>
7
<p>Шутим по-программистски и объясняем, после каких слов смеяться.</p>
7
<p>Шутим по-программистски и объясняем, после каких слов смеяться.</p>
8
<p>С гуляниями по воде всё ясно: вода после замерзания становится льдом, по нему можно ходить - спасибо, Кэп! А вот заморозка спецификации - камень в огород модных ныне<a>Agile-методик</a>.</p>
8
<p>С гуляниями по воде всё ясно: вода после замерзания становится льдом, по нему можно ходить - спасибо, Кэп! А вот заморозка спецификации - камень в огород модных ныне<a>Agile-методик</a>.</p>
9
<p>До них было так: сперва собираем требования, потом пишем ТЗ, согласовываем его и только после этого начинаем кодить - ровно по тем докам, которые подписали клиенты. Шаг вправо или влево от спецификации - доработка за отдельные деньги.</p>
9
<p>До них было так: сперва собираем требования, потом пишем ТЗ, согласовываем его и только после этого начинаем кодить - ровно по тем докам, которые подписали клиенты. Шаг вправо или влево от спецификации - доработка за отдельные деньги.</p>
10
<p>При Agile-подходе разрабатывать продукт начинают почти сразу, опираясь на минимальные рамочные требования. Эти требования потом уточняются, изменяются… короче, ходить по воде и то проще, чем в гибкой команде написать программу по ТЗ 🙈</p>
10
<p>При Agile-подходе разрабатывать продукт начинают почти сразу, опираясь на минимальные рамочные требования. Эти требования потом уточняются, изменяются… короче, ходить по воде и то проще, чем в гибкой команде написать программу по ТЗ 🙈</p>
11
<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
11
<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
12
<p>Это вольная, программистская трактовка расхожей мудрости: "Не ошибается лишь тот, кто ничего не делает". Программисты тоже люди, поэтому им нельзя просто так взять и написать программу без ошибок. И про это следующая шутка.</p>
12
<p>Это вольная, программистская трактовка расхожей мудрости: "Не ошибается лишь тот, кто ничего не делает". Программисты тоже люди, поэтому им нельзя просто так взять и написать программу без ошибок. И про это следующая шутка.</p>
13
<p>Чтобы прочувствовать эти слова, стоит их пропеть - да не как придётся, а на особый лад.</p>
13
<p>Чтобы прочувствовать эти слова, стоит их пропеть - да не как придётся, а на особый лад.</p>
14
<p>Есть такая старая<a>песенка</a>, популярная в США и Канаде, - правда, она не про баги, а про бутылки пива. У неё длиннющий текст с кучей повторов и особым ритмом, так что её часто<a>напевают</a>в дороге или во время монотонной работы. Суть песни в том, что 99 бутылок поочерёдно разбивают, пока не останется ни одной.</p>
14
<p>Есть такая старая<a>песенка</a>, популярная в США и Канаде, - правда, она не про баги, а про бутылки пива. У неё длиннющий текст с кучей повторов и особым ритмом, так что её часто<a>напевают</a>в дороге или во время монотонной работы. Суть песни в том, что 99 бутылок поочерёдно разбивают, пока не останется ни одной.</p>
15
<p>С багами не так. При их исправлении часто возникают другие. А коллеги разработчика за это время успеют понаписать кода с новыми, ещё не найденными ошибками. Такой вот программистский ад: баги плодятся как кролики, и кажется, что никогда не закончатся.</p>
15
<p>С багами не так. При их исправлении часто возникают другие. А коллеги разработчика за это время успеют понаписать кода с новыми, ещё не найденными ошибками. Такой вот программистский ад: баги плодятся как кролики, и кажется, что никогда не закончатся.</p>
16
<p>Но обычно всё же заканчиваются - не баги, конечно (смотрите вторую шутку), а время или деньги клиентов 😁</p>
16
<p>Но обычно всё же заканчиваются - не баги, конечно (смотрите вторую шутку), а время или деньги клиентов 😁</p>
17
<p>А вот ещё вариант:</p>
17
<p>А вот ещё вариант:</p>
18
Скриншот: @tproger / twitter.com<p>Давным-давно первые великие программисты тщательно продумывали алгоритмы, а весь код набирали вручную. А потом пришло поколение копипаст-кодеров - и код сегодня гораздо чаще копируют, чем пишут с нуля.</p>
18
Скриншот: @tproger / twitter.com<p>Давным-давно первые великие программисты тщательно продумывали алгоритмы, а весь код набирали вручную. А потом пришло поколение копипаст-кодеров - и код сегодня гораздо чаще копируют, чем пишут с нуля.</p>
19
<p>На <a>проблемы такого подхода</a>намекает сама шутка выше: только в ней повторы намеренные, а вот при дублировании кода громоздкость результата, сложность его восприятия и размножение ошибок - эффекты вполне себе побочные.</p>
19
<p>На <a>проблемы такого подхода</a>намекает сама шутка выше: только в ней повторы намеренные, а вот при дублировании кода громоздкость результата, сложность его восприятия и размножение ошибок - эффекты вполне себе побочные.</p>
20
<p>Многие разработчики попросту находят готовые решения на сайтах вроде<a>Stack Overflow</a>и слизывают целые куски, лишь слегка подкручивая код под свои задачи. И это не говоря о том, что мы вошли в эру Low-code и No-code, где программы<a><strong>генерируют</strong>другие программы</a>😲</p>
20
<p>Многие разработчики попросту находят готовые решения на сайтах вроде<a>Stack Overflow</a>и слизывают целые куски, лишь слегка подкручивая код под свои задачи. И это не говоря о том, что мы вошли в эру Low-code и No-code, где программы<a><strong>генерируют</strong>другие программы</a>😲</p>
21
<p>Это шутка "со слезами на глазах": технологии развиваются, железо становится мощнее, программисты в отдельно взятой компании (в теории) набираются опыта - значит, можно взять и переписать всё с новыми знаниями, опираясь на новые технологии.</p>
21
<p>Это шутка "со слезами на глазах": технологии развиваются, железо становится мощнее, программисты в отдельно взятой компании (в теории) набираются опыта - значит, можно взять и переписать всё с новыми знаниями, опираясь на новые технологии.</p>
22
<p>Но нет - пользователям нужно работать со старыми форматами данных в привычном интерфейсе. Поэтому в новых версиях продукта приходится поддерживать совместимость с возможностями прежних. А старые функции содержат в себе и старые ошибки, и свои костыли.</p>
22
<p>Но нет - пользователям нужно работать со старыми форматами данных в привычном интерфейсе. Поэтому в новых версиях продукта приходится поддерживать совместимость с возможностями прежних. А старые функции содержат в себе и старые ошибки, и свои костыли.</p>
23
<p>В общем, никакой вам жизни с чистого листа 🙄</p>
23
<p>В общем, никакой вам жизни с чистого листа 🙄</p>
24
<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
24
<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
25
<p>Это правда: у каждого более-менее популярного языка программирования есть фанаты и хейтеры. Java ругают за медлительность; Perl - за странный синтаксис, похожий на шифровки; PHP - за отсутствие встроенных средств отладки.</p>
25
<p>Это правда: у каждого более-менее популярного языка программирования есть фанаты и хейтеры. Java ругают за медлительность; Perl - за странный синтаксис, похожий на шифровки; PHP - за отсутствие встроенных средств отладки.</p>
26
<p>Идеального языка не существует. Впрочем, в мире вообще нет ничего идеального 😔</p>
26
<p>Идеального языка не существует. Впрочем, в мире вообще нет ничего идеального 😔</p>
27
<p>В объектно-ориентированном программировании (ООП) программа состоит из множества объектов. Каждый - экземпляр какого-то класса. Классы при этом могут быть наследниками других классов. Так что наследование - один из столпов ООП, путь к разнообразию классов.</p>
27
<p>В объектно-ориентированном программировании (ООП) программа состоит из множества объектов. Каждый - экземпляр какого-то класса. Классы при этом могут быть наследниками других классов. Так что наследование - один из столпов ООП, путь к разнообразию классов.</p>
28
<p>А в обычном мире наследование - способ прийти к изобилию другого рода - попросту разбогатеть. И на какие "объекты" ориентируются здесь - тоже вполне ясно. На недвижимость богатых родственников, например 👑</p>
28
<p>А в обычном мире наследование - способ прийти к изобилию другого рода - попросту разбогатеть. И на какие "объекты" ориентируются здесь - тоже вполне ясно. На недвижимость богатых родственников, например 👑</p>
29
<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
29
<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
30
Фото: cottonbro / pexels.com<p>Здесь соль в игре слов: table в английском языке обозначает как<strong>стол</strong>, так и таблицу. Join переводится как<strong>"присоединиться"</strong>или "объединить"/"соединить".</p>
30
Фото: cottonbro / pexels.com<p>Здесь соль в игре слов: table в английском языке обозначает как<strong>стол</strong>, так и таблицу. Join переводится как<strong>"присоединиться"</strong>или "объединить"/"соединить".</p>
31
<p>А <a>оператор<strong>JOIN</strong>в SQL</a>служит как раз для соединения данных, когда они выбираются из двух таблиц базы данных.</p>
31
<p>А <a>оператор<strong>JOIN</strong>в SQL</a>служит как раз для соединения данных, когда они выбираются из двух таблиц базы данных.</p>
32
<p>Это так же просто, как разобраться, что было раньше: курица или яйцо. Рекурсия - это когда подпрограмма вызывает себя рекурсивно, а рекурсивно - значит с помощью рекурсии. Так, стоп, какая-то рекурсия получилась 😅</p>
32
<p>Это так же просто, как разобраться, что было раньше: курица или яйцо. Рекурсия - это когда подпрограмма вызывает себя рекурсивно, а рекурсивно - значит с помощью рекурсии. Так, стоп, какая-то рекурсия получилась 😅</p>
33
<p>Если серьёзно, рекурсия - это вызов функции из этой же функции, но с другими параметрами. И функция может вызывать себя из себя же самой много раз.</p>
33
<p>Если серьёзно, рекурсия - это вызов функции из этой же функции, но с другими параметрами. И функция может вызывать себя из себя же самой много раз.</p>
34
<p>Например, с помощью рекурсивной функции можно вычислить факториал - произведение всех целых чисел от 1 до N. Вот так:</p>
34
<p>Например, с помощью рекурсивной функции можно вычислить факториал - произведение всех целых чисел от 1 до N. Вот так:</p>
35
если N = 0, то факториал = 1 иначе факториал = N * факториал(N-1)<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
35
если N = 0, то факториал = 1 иначе факториал = N * факториал(N-1)<p>(<a>Отсюда</a>/ перевод Skillbox Media)</p>
36
<p>Программист вовсе не сумасшедший. Дело здесь в логике, в математической логике. Вопрос включает слово ИЛИ. А результат логического высказывания с этим словом правдив, если хотя бы одно из условий (слева или справа от ИЛИ) выполняется.</p>
36
<p>Программист вовсе не сумасшедший. Дело здесь в логике, в математической логике. Вопрос включает слово ИЛИ. А результат логического высказывания с этим словом правдив, если хотя бы одно из условий (слева или справа от ИЛИ) выполняется.</p>
37
<p>Так как программист знает, что какое-то условие точно выполнится (он <strong>продолжит кодить</strong>либо<strong>позволит вытащить себя на прогулку</strong>), то и отвечает "да". Пожалуйста, не повторяйте это со своими близкими 😀</p>
37
<p>Так как программист знает, что какое-то условие точно выполнится (он <strong>продолжит кодить</strong>либо<strong>позволит вытащить себя на прогулку</strong>), то и отвечает "да". Пожалуйста, не повторяйте это со своими близкими 😀</p>
38
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
38
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>