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>8 фев 2024</li>
2
<ul><li>8 фев 2024</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Если в феврале добавить эти репозитории в закладки, год будет успешным.</p>
4
</ul><p>Если в феврале добавить эти репозитории в закладки, год будет успешным.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Востоковед, интересующийся IT. В прошлом редактор раздела "Системный блок" журнала "Fакел", автор журналов Computer Gaming World RE, Upgrade Special, руководитель веб-ресурсов компании 1С-Softclub.</p>
6
<p>Востоковед, интересующийся IT. В прошлом редактор раздела "Системный блок" журнала "Fакел", автор журналов Computer Gaming World RE, Upgrade Special, руководитель веб-ресурсов компании 1С-Softclub.</p>
7
<p>Продолжаем искать полезности на главной IT-платформе современности. В январской подборке репозиториев - Linux-утилиты, обучающие материалы, бесплатные книги, графические редакторы, пиратский GPT-4 и, как обычно, горы полезных инструментов для веб-разработчиков.</p>
7
<p>Продолжаем искать полезности на главной IT-платформе современности. В январской подборке репозиториев - Linux-утилиты, обучающие материалы, бесплатные книги, графические редакторы, пиратский GPT-4 и, как обычно, горы полезных инструментов для веб-разработчиков.</p>
8
<p>Каждый разработчик испытывает высокую когнитивную нагрузку. Причём тяжелее всего не написать код, а прочитать и понять то, что написал ваш коллега. Например, вас попросили внести изменения в незнакомый проект, а там под капотом навёрнуто столько модных библиотек и замороченных архитектур, что вы сидите, чешете репу и не можете понять, что к чему.</p>
8
<p>Каждый разработчик испытывает высокую когнитивную нагрузку. Причём тяжелее всего не написать код, а прочитать и понять то, что написал ваш коллега. Например, вас попросили внести изменения в незнакомый проект, а там под капотом навёрнуто столько модных библиотек и замороченных архитектур, что вы сидите, чешете репу и не можете понять, что к чему.</p>
9
<p>Решение автор предлагает хрестоматийное: будь проще сам и не усложняй жизнь другим (интересно, что бы он посоветовал организаторам<a>конкурса по обфускации</a>, о котором мы рассказывали в предыдущей статье? ?)</p>
9
<p>Решение автор предлагает хрестоматийное: будь проще сам и не усложняй жизнь другим (интересно, что бы он посоветовал организаторам<a>конкурса по обфускации</a>, о котором мы рассказывали в предыдущей статье? ?)</p>
10
<p>"Поскольку мы тратим гораздо больше времени на чтение и понимание кода, чем на его написание, мы должны постоянно задавать себе вопрос, не делаем ли мы наш код чересчур запутанным".</p>
10
<p>"Поскольку мы тратим гораздо больше времени на чтение и понимание кода, чем на его написание, мы должны постоянно задавать себе вопрос, не делаем ли мы наш код чересчур запутанным".</p>
11
<p><strong>Авторы проекта<a>Cognitive Load In Software Development</a></strong></p>
11
<p><strong>Авторы проекта<a>Cognitive Load In Software Development</a></strong></p>
12
<p>В репозитории даны примеры кода и советы, как снизить шанс закипания мозгов у собратьев по ремеслу. Начать, например, можно с того, чтобы не использовать перегруженные условные конструкции:</p>
12
<p>В репозитории даны примеры кода и советы, как снизить шанс закипания мозгов у собратьев по ремеслу. Начать, например, можно с того, чтобы не использовать перегруженные условные конструкции:</p>
13
if val > someConstant // ?+ && (condition2 || condition3) // ?+++, предыдущее условие должно быть истинным, одно из условий // (2 или 3) должно быть истинным && (condition4 && !condition5) { // ? ... }<p>Или хотя бы разбавлять их промежуточными переменными - желательно с осмысленными именами:</p>
13
if val > someConstant // ?+ && (condition2 || condition3) // ?+++, предыдущее условие должно быть истинным, одно из условий // (2 или 3) должно быть истинным && (condition4 && !condition5) { // ? ... }<p>Или хотя бы разбавлять их промежуточными переменными - желательно с осмысленными именами:</p>
14
isValid = var > someConstant isAllowed = condition2 || condition3 isSecure = condition4 && !condition5 // ?, вам не нужно запоминать условия, так как есть описательные // переменные if isValid && isAllowed && isSecure { ... }<p>Загвоздка в том, что разработчику бывает сложно понять, что его код запутанный, - ещё бы, ведь это он его написал, для него он самый лучший, понятный и простой, а вовсе никакие не спагетти :) Хороший способ самопроверки предложил Дэн Норф, соавтор<a>учебного пособия по Ruby</a>:</p>
14
isValid = var > someConstant isAllowed = condition2 || condition3 isSecure = condition4 && !condition5 // ?, вам не нужно запоминать условия, так как есть описательные // переменные if isValid && isAllowed && isSecure { ... }<p>Загвоздка в том, что разработчику бывает сложно понять, что его код запутанный, - ещё бы, ведь это он его написал, для него он самый лучший, понятный и простой, а вовсе никакие не спагетти :) Хороший способ самопроверки предложил Дэн Норф, соавтор<a>учебного пособия по Ruby</a>:</p>
15
<p>"Как только вы подключите к своему проекту новых людей, попробуйте измерить степень их замешательства (тут может помочь<a>парное программирование</a>). Если они застревают более чем на 40 минут - вам есть что улучшить".</p>
15
<p>"Как только вы подключите к своему проекту новых людей, попробуйте измерить степень их замешательства (тут может помочь<a>парное программирование</a>). Если они застревают более чем на 40 минут - вам есть что улучшить".</p>
16
<p><a>Открыть репозиторий</a></p>
16
<p><a>Открыть репозиторий</a></p>
17
<p>Переходим к более утилитарным вещам. Всем нам иногда приходится иметь дело с PDF-файлами: конвертировать их туда-сюда, редактировать страницы, соединять несколько файлов в один и так далее. А тут как раз есть мощная тулза, которую можно развернуть у себя на сервере и использовать для всяческих манипуляций с адобовским форматом. Среди полезных фишек:</p>
17
<p>Переходим к более утилитарным вещам. Всем нам иногда приходится иметь дело с PDF-файлами: конвертировать их туда-сюда, редактировать страницы, соединять несколько файлов в один и так далее. А тут как раз есть мощная тулза, которую можно развернуть у себя на сервере и использовать для всяческих манипуляций с адобовским форматом. Среди полезных фишек:</p>
18
<ul><li>объединение, разделение, вращение, перемещение PDF и их страниц;</li>
18
<ul><li>объединение, разделение, вращение, перемещение PDF и их страниц;</li>
19
<li>разделение PDF на несколько файлов по номерам страниц;</li>
19
<li>разделение PDF на несколько файлов по номерам страниц;</li>
20
<li>изменение очерёдности страниц;</li>
20
<li>изменение очерёдности страниц;</li>
21
<li>поворот файла на 90 градусов;</li>
21
<li>поворот файла на 90 градусов;</li>
22
<li>изменение размера содержимого страницы на заданный процент;</li>
22
<li>изменение размера содержимого страницы на заданный процент;</li>
23
<li>конвертация PDF в картинку, презентацию или обычный документ;</li>
23
<li>конвертация PDF в картинку, презентацию или обычный документ;</li>
24
<li>преобразование разметок HTML и Markdown в PDF;</li>
24
<li>преобразование разметок HTML и Markdown в PDF;</li>
25
<li>создание паролей, добавление и удаление водяных знаков;</li>
25
<li>создание паролей, добавление и удаление водяных знаков;</li>
26
<li>сравнение двух файлов и отображение различий в тексте;</li>
26
<li>сравнение двух файлов и отображение различий в тексте;</li>
27
<li>извлечение изображений из PDF.</li>
27
<li>извлечение изображений из PDF.</li>
28
</ul><p><a>Открыть репозиторий</a></p>
28
</ul><p><a>Открыть репозиторий</a></p>
29
<p>В этом репозитории собраны руководства и советы по проектированию систем и подготовке к интервью по системному дизайну. Вы узнаете, как устроены сети, базы данных и СУБД, какие бывают архитектуры приложений и тому подобное. Курс также доступен на <a>сайте</a>и в виде электронной книги на <a>Leanpub</a>(стоит около 20 долларов).</p>
29
<p>В этом репозитории собраны руководства и советы по проектированию систем и подготовке к интервью по системному дизайну. Вы узнаете, как устроены сети, базы данных и СУБД, какие бывают архитектуры приложений и тому подобное. Курс также доступен на <a>сайте</a>и в виде электронной книги на <a>Leanpub</a>(стоит около 20 долларов).</p>
30
<p><a>Открыть репозиторий</a></p>
30
<p><a>Открыть репозиторий</a></p>
31
<p>С помощью этой опенсорсной утилиты можно делать скриншот или запись экрана, а также делиться полученной картинкой одним нажатием. Она также позволяет загружать изображения, текст или другие типы файлов на разные ресурсы.</p>
31
<p>С помощью этой опенсорсной утилиты можно делать скриншот или запись экрана, а также делиться полученной картинкой одним нажатием. Она также позволяет загружать изображения, текст или другие типы файлов на разные ресурсы.</p>
32
Интерфейс утилиты<em>Скриншот:<a>ShareX</a>/ Skillbox Media</em><p><a>Открыть репозиторий</a></p>
32
Интерфейс утилиты<em>Скриншот:<a>ShareX</a>/ Skillbox Media</em><p><a>Открыть репозиторий</a></p>
33
<p>Репозиторий, который позволяет получить бесплатный доступ к языковым моделям GPT-4 и GPT-3.5, используя уязвимости в API OpenAI. Написанный автором эксплойт заставляет систему думать, что к ней поступают запросы от сервисов с платными аккаунтами - например, чат-бота Quora Poe. Способ, конечно, совсем не легитимный, но автор клянётся, что опубликовал его исключительно в образовательных целях.</p>
33
<p>Репозиторий, который позволяет получить бесплатный доступ к языковым моделям GPT-4 и GPT-3.5, используя уязвимости в API OpenAI. Написанный автором эксплойт заставляет систему думать, что к ней поступают запросы от сервисов с платными аккаунтами - например, чат-бота Quora Poe. Способ, конечно, совсем не легитимный, но автор клянётся, что опубликовал его исключительно в образовательных целях.</p>
34
<p>Мы не будем давать этических оценок этому поступку, просто скажем, что есть и менее вредные для кармы способы пользоваться генеративными нейронками бесплатно - например,<a>подобрать себе опенсорсную альтернативу в нашем гайде</a>.</p>
34
<p>Мы не будем давать этических оценок этому поступку, просто скажем, что есть и менее вредные для кармы способы пользоваться генеративными нейронками бесплатно - например,<a>подобрать себе опенсорсную альтернативу в нашем гайде</a>.</p>
35
<p><a>Открыть репозиторий</a></p>
35
<p><a>Открыть репозиторий</a></p>
36
<p>Большой список сетевых сервисов с открытым исходным кодом и веб-приложений, которые можно разместить на собственном сервере. Есть бесплатные решения практически для любой задачи: резервное копирование, отправка электронных писем, сервисы бронирования, CMS, передача файлов, интернет вещей и так далее.</p>
36
<p>Большой список сетевых сервисов с открытым исходным кодом и веб-приложений, которые можно разместить на собственном сервере. Есть бесплатные решения практически для любой задачи: резервное копирование, отправка электронных писем, сервисы бронирования, CMS, передача файлов, интернет вещей и так далее.</p>
37
<p>Официальный сайт -<a>awesome-selfhosted.net</a>.</p>
37
<p>Официальный сайт -<a>awesome-selfhosted.net</a>.</p>
38
<p><a>Открыть репозиторий</a></p>
38
<p><a>Открыть репозиторий</a></p>
39
<p>Бесплатный опенсорсный графический редактор, имитирующий стиль рисования от руки. Поддерживает:</p>
39
<p>Бесплатный опенсорсный графический редактор, имитирующий стиль рисования от руки. Поддерживает:</p>
40
<ul><li>тёмный и светлый режимы;</li>
40
<ul><li>тёмный и светлый режимы;</li>
41
<li>загрузку изображений и локализацию (используя i18n);</li>
41
<li>загрузку изображений и локализацию (используя i18n);</li>
42
<li>экспорт в PNG и SVG, копирование в буфер обмена;</li>
42
<li>экспорт в PNG и SVG, копирование в буфер обмена;</li>
43
<li>масштабирование и панорамирование.</li>
43
<li>масштабирование и панорамирование.</li>
44
</ul><p>Есть отдельное<a>расширение для VS Code</a>и других IDE - можно рисовать диаграммы и схемы прямо в среде разработки, что может быть полезно для архитекторов и проектировщиков ПО.</p>
44
</ul><p>Есть отдельное<a>расширение для VS Code</a>и других IDE - можно рисовать диаграммы и схемы прямо в среде разработки, что может быть полезно для архитекторов и проектировщиков ПО.</p>
45
<em>Скриншот:<a>Excalidraw</a>/ Skillbox Media</em><p><a>Открыть репозиторий</a></p>
45
<em>Скриншот:<a>Excalidraw</a>/ Skillbox Media</em><p><a>Открыть репозиторий</a></p>
46
<p>Начался как тред на Stack Overflow, а теперь это один из самых популярных репозиториев на GitHub. Содержит бесплатные учебники и пособия по программированию практически на всех языках, включая<a>русский</a>. Находится под управлением<a>Free Ebook Foundation</a> - некоммерческой организации, которая поощряет создание и распространение свободных электронных книг.</p>
46
<p>Начался как тред на Stack Overflow, а теперь это один из самых популярных репозиториев на GitHub. Содержит бесплатные учебники и пособия по программированию практически на всех языках, включая<a>русский</a>. Находится под управлением<a>Free Ebook Foundation</a> - некоммерческой организации, которая поощряет создание и распространение свободных электронных книг.</p>
47
<p><a>Открыть репозиторий</a></p>
47
<p><a>Открыть репозиторий</a></p>
48
<p>Здесь представлены все возможные аспекты веб-разработки: анимация и типографика, алгоритмы, кросс-браузерность и адаптивность, доступность, работа с клавиатурой, протоколы и API, компоненты UI, тестирование и инструменты сборки, популярные сообщества, блоги знаменитых инженеров и евангелистов и многое другое.</p>
48
<p>Здесь представлены все возможные аспекты веб-разработки: анимация и типографика, алгоритмы, кросс-браузерность и адаптивность, доступность, работа с клавиатурой, протоколы и API, компоненты UI, тестирование и инструменты сборки, популярные сообщества, блоги знаменитых инженеров и евангелистов и многое другое.</p>
49
<p><a>Открыть репозиторий</a></p>
49
<p><a>Открыть репозиторий</a></p>
50
<p>Краткая выжимка полезных команд по самым популярным языкам, фреймворкам, базам данных и инструментам разработки. Изначально автор собирал разные полезности в GitHub Gist, а потом превратил свой "читерский" лист в полноценный репозиторий, в который может контрибьютить каждый (в том числе и вы).</p>
50
<p>Краткая выжимка полезных команд по самым популярным языкам, фреймворкам, базам данных и инструментам разработки. Изначально автор собирал разные полезности в GitHub Gist, а потом превратил свой "читерский" лист в полноценный репозиторий, в который может контрибьютить каждый (в том числе и вы).</p>
51
<p>Вот, например, как выглядит часть "шпоры" по текстовому редактору Vim:</p>
51
<p>Вот, например, как выглядит часть "шпоры" по текстовому редактору Vim:</p>
52
##################################################################### # COPYING AND MOVING TEXT ##################################################################### yw yank word yy yank (copy) a line 2yy yank 2 lines y$ yank to end of line p put (paste) the clipboard after cursor/current line P put (paste) before cursor/current line :set paste avoid unexpected effects in pasting :registers display the contents of all registers "xyw yank word into register x "xyy yank line into register x :[range]y x yank [range] lines into register x "xp put the text from register x after the cursor "xP put the text from register x before the cursor "xgp just like "p", but leave the cursor just after the new text "xgP just like "P", but leave the cursor just after the new text :[line]put x put the text from register x after [line]<p>Но если эта шпаргалка вдруг не поражает вас своей простотой и изящностью, добро пожаловать на наш<a>бесплатный курс по Vim на YouTube</a>?</p>
52
##################################################################### # COPYING AND MOVING TEXT ##################################################################### yw yank word yy yank (copy) a line 2yy yank 2 lines y$ yank to end of line p put (paste) the clipboard after cursor/current line P put (paste) before cursor/current line :set paste avoid unexpected effects in pasting :registers display the contents of all registers "xyw yank word into register x "xyy yank line into register x :[range]y x yank [range] lines into register x "xp put the text from register x after the cursor "xP put the text from register x before the cursor "xgp just like "p", but leave the cursor just after the new text "xgP just like "P", but leave the cursor just after the new text :[line]put x put the text from register x after [line]<p>Но если эта шпаргалка вдруг не поражает вас своей простотой и изящностью, добро пожаловать на наш<a>бесплатный курс по Vim на YouTube</a>?</p>
53
<p><a>Открыть репозиторий</a></p>
53
<p><a>Открыть репозиторий</a></p>
54
<p>С помощью утилиты Man (от англ. manual - руководство) в терминале можно получить справку по любой консольной команде. Проблема в том, что новички обычно теряются, увидев многостраничный непонятный вывод, и сразу бегут в гугл.</p>
54
<p>С помощью утилиты Man (от англ. manual - руководство) в терминале можно получить справку по любой консольной команде. Проблема в том, что новички обычно теряются, увидев многостраничный непонятный вывод, и сразу бегут в гугл.</p>
55
<p>Проект Tldr-pages решает эту проблему. Энтузиасты собрали и поддерживают справочные материалы для инструментов командной строки. Они проще и доступнее, чем традиционные страницы man.</p>
55
<p>Проект Tldr-pages решает эту проблему. Энтузиасты собрали и поддерживают справочные материалы для инструментов командной строки. Они проще и доступнее, чем традиционные страницы man.</p>
56
<p>Например, начало вывода команды man ls выглядит так:</p>
56
<p>Например, начало вывода команды man ls выглядит так:</p>
57
NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐fied. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print C-style escapes for nongraphic characters<p>tldr ls вместо этого выдаёт следующее:</p>
57
NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐fied. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print C-style escapes for nongraphic characters<p>tldr ls вместо этого выдаёт следующее:</p>
58
ls List directory contents. More information: https://www.gnu.org/software/coreutils/ls. - List files one per line: ls -1 - List all files, including hidden files: ls -a - List all files, with trailing / added to directory names: ls -F - Long format list (permissions, ownership, size, and modification date) of all files: ls -la - Long format list with size displayed using human-readable units (KiB, MiB, GiB): ls -lh - Long format list sorted by size (descending) recursively: ls -lSR - Long format list of all files, sorted by modification date (oldest first): ls -ltr - Only list directories: ls -d */<p>Идея в том, что вместо детального описания всех возможностей команды Tldr выводит конкретные флаги, нужные для отображения файлов и информации о них. Как правило, именно это и интересует пользователей.</p>
58
ls List directory contents. More information: https://www.gnu.org/software/coreutils/ls. - List files one per line: ls -1 - List all files, including hidden files: ls -a - List all files, with trailing / added to directory names: ls -F - Long format list (permissions, ownership, size, and modification date) of all files: ls -la - Long format list with size displayed using human-readable units (KiB, MiB, GiB): ls -lh - Long format list sorted by size (descending) recursively: ls -lSR - Long format list of all files, sorted by modification date (oldest first): ls -ltr - Only list directories: ls -d */<p>Идея в том, что вместо детального описания всех возможностей команды Tldr выводит конкретные флаги, нужные для отображения файлов и информации о них. Как правило, именно это и интересует пользователей.</p>
59
<p>Официальный сайт -<a>tldr.sh</a>.</p>
59
<p>Официальный сайт -<a>tldr.sh</a>.</p>
60
<p><a>Открыть репозиторий</a></p>
60
<p><a>Открыть репозиторий</a></p>
61
<p>Огромный список полезностей для Linux: приложения для работы со звуком, изображениями и видео, для разработки на разных языках, чтения электронных книг, файловые менеджеры, игры, эмуляторы, браузеры, офисные пакеты, виджеты, консольные утилиты и много других классных фич.</p>
61
<p>Огромный список полезностей для Linux: приложения для работы со звуком, изображениями и видео, для разработки на разных языках, чтения электронных книг, файловые менеджеры, игры, эмуляторы, браузеры, офисные пакеты, виджеты, консольные утилиты и много других классных фич.</p>
62
<p>Официальный сайт -<a>Awesome Linux Software</a>.</p>
62
<p>Официальный сайт -<a>Awesome Linux Software</a>.</p>
63
<p><a>Открыть репозиторий</a></p>
63
<p><a>Открыть репозиторий</a></p>
64
<p>Простое и подробное руководство по содержимому HTML-элемента <head>. Например, в самом базовом виде этот тег должен включать такие элементы, как meta, link, title, style, script, noscript и base. Они сообщают информацию о том, как документы должны обрабатываться браузерами, поисковыми ботами и так далее.</p>
64
<p>Простое и подробное руководство по содержимому HTML-элемента <head>. Например, в самом базовом виде этот тег должен включать такие элементы, как meta, link, title, style, script, noscript и base. Они сообщают информацию о том, как документы должны обрабатываться браузерами, поисковыми ботами и так далее.</p>
65
<p>Но помимо базовых элементов, существует большое количество прочих опций, которые позволяют управлять вашей веб-страницей. Например:</p>
65
<p>Но помимо базовых элементов, существует большое количество прочих опций, которые позволяют управлять вашей веб-страницей. Например:</p>
66
<!-- Указывает возрастной рейтинг содержимого документа --> <meta name="rating" content="General"> <!-- Формирует автоматический комментарий, когда другой WordPress-блог даёт ссылку на ваш блог на WordPress --> <link rel="pingback" href="https://example.com/xmlrpc.php"> <!-- Задаёт цвет для Chrome, Firefox и Opera --> <meta name="theme-color" content="#4285f4"> <!-- Указывает Google не переводить данный документ --> <meta name="google" content="notranslate"> <!-- Отключает автоматическое определение и форматирование телефонных номеров --> <meta name="format-detection" content="telephone=no"><p><a>Открыть репозиторий</a></p>
66
<!-- Указывает возрастной рейтинг содержимого документа --> <meta name="rating" content="General"> <!-- Формирует автоматический комментарий, когда другой WordPress-блог даёт ссылку на ваш блог на WordPress --> <link rel="pingback" href="https://example.com/xmlrpc.php"> <!-- Задаёт цвет для Chrome, Firefox и Opera --> <meta name="theme-color" content="#4285f4"> <!-- Указывает Google не переводить данный документ --> <meta name="google" content="notranslate"> <!-- Отключает автоматическое определение и форматирование телефонных номеров --> <meta name="format-detection" content="telephone=no"><p><a>Открыть репозиторий</a></p>
67
<p>Создатели этого проекта справедливо считают, что написание простой тудушки не даст вам понимания того, как устроена реальная коммерческая разработка. Поэтому они собрали список технических докладов и статей про настоящий фронтенд. Миллионы пользователей, килограммы пыльного легаси, перевод гигантской кодовой базы на новый фреймворк - об этих и других прелестях реальной кодерской жизни, которые не увидеть со страниц обучающих курсов, можно почитать в этом альманахе.</p>
67
<p>Создатели этого проекта справедливо считают, что написание простой тудушки не даст вам понимания того, как устроена реальная коммерческая разработка. Поэтому они собрали список технических докладов и статей про настоящий фронтенд. Миллионы пользователей, килограммы пыльного легаси, перевод гигантской кодовой базы на новый фреймворк - об этих и других прелестях реальной кодерской жизни, которые не увидеть со страниц обучающих курсов, можно почитать в этом альманахе.</p>
68
<p>Есть материалы и <a>на русском языке</a>.</p>
68
<p>Есть материалы и <a>на русском языке</a>.</p>
69
<p><a>Открыть репозиторий</a></p>
69
<p><a>Открыть репозиторий</a></p>
70
<p>Хотите проверить, соответствует ли ваш сайт современным требованиям? Тогда вам сюда. Все пункты этого чек-листа обязательны для большинства веб-проектов, но некоторые можно и опустить.</p>
70
<p>Хотите проверить, соответствует ли ваш сайт современным требованиям? Тогда вам сюда. Все пункты этого чек-листа обязательны для большинства веб-проектов, но некоторые можно и опустить.</p>
71
<p>Официальный сайт -<a>frontendchecklist.io</a>.</p>
71
<p>Официальный сайт -<a>frontendchecklist.io</a>.</p>
72
<p><a>Открыть репозиторий</a></p>
72
<p><a>Открыть репозиторий</a></p>
73
<p>Бесплатное "Краткое руководство по TypeScript". Всесторонний и лаконичный обзор возможностей "стероидной" версии JS. Охватывает все аспекты, представленные в последней версии языка, - от мощной системы типов до продвинутых функций. Будет полезен как новичкам, так и опытным программистам. Книгу можно почитать<a>онлайн</a>или скачать в <a>формате EPUB</a>для электронной читалки.</p>
73
<p>Бесплатное "Краткое руководство по TypeScript". Всесторонний и лаконичный обзор возможностей "стероидной" версии JS. Охватывает все аспекты, представленные в последней версии языка, - от мощной системы типов до продвинутых функций. Будет полезен как новичкам, так и опытным программистам. Книгу можно почитать<a>онлайн</a>или скачать в <a>формате EPUB</a>для электронной читалки.</p>
74
<p><a>Открыть репозиторий</a></p>
74
<p><a>Открыть репозиторий</a></p>
75
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
75
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>