Кодовая Библиотека
170 subscribers
185 photos
54 videos
20 files
110 links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций.
Download Telegram
Как я устроился в Амазон и перестал переживать за свой английский

Готовитесь к собеседованию за рубежом и переживаете за свой английский? Хотели бы работать в международной компании, но сомневаетесь, хватит ли языка? Не уверены, поймут ли ваш акцент? Тогда эта статья может помочь.

Меня зовут Андрей Столбовский, последние 5 лет я работал в Яндексе, а в прошлом году перешёл в Амазон и теперь работаю Software Development Manager в AWS Redshift – это мой первый полноценный опыт работы в международной компании.

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

Итак, поехали.

https://habr.com/ru/articles/792790/
Транзакция, ACID, CAP теорема и уровни изоляций транзакций простыми словами

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

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

https://habr.com/ru/companies/alfa/articles/812417/
Дорожная карта навыков разработчика на C++

Джеймс Гослинг как‑то сказал, что Java — это C++, из которого убрали все пистолеты, ножи и дубинки, однако практика показывает, что «ножи и дубинки» становятся классным инструментом в руках опытных разработчиков. В общем, немалая часть проклятий в адрес C++ объясняется элементарным «вы просто не умеете его готовить». Мы в «Лаборатории Касперского» умеем готовить «плюсы» и поэтому любим их. C++ — низкоуровневый язык, который позволяет работать с железом и писать быстрый код и при этом содержит массу возможностей. В экосистеме «плюсов» куча проработанных паттернов, best practices и готовых библиотек под разные задачи. Язык динамично развивается — но сохраняет обратную совместимость.

В этой статье мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша к...
Хотите получить навыки работы с одной из самых востребованных операционных систем в мире?

🐧 Тогда курс «Linux для начинающих» от OTUS — идеальный выбор для вас! Курс сейчас доступен всего за 10 ₽, вместо обычных 7000 ₽!

➡️ Запишитесь на курс сейчас: https://vk.cc/cwZZ61

❗️Этот курс предназначен для тех, кто хочет освоить основы работы с Linux, научиться решать реальные задачи и успешно проходить собеседования с нуля. Актуальная программа поможет вам разобраться в тонкостях работы с командной строкой, файловой системой, процессами, сетью и современными практиками.

Вы получите не только теоретические знания, но и практические навыки, которые сможете применять сразу после обучения.

🎙Спикер курса Андрей Буранов — системный администратор VK, работает с Linux более 7 лет и успешно преподает.

🤝 В качестве бонуса для более эффективной учебы дарим бонус "10 базовых команд Linux"!

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Сравнение алгоритмов ограничения частоты запросов

Представьте чат в Twitch со множеством активных пользователей и одним спамером. Без ограничения частоты сообщений единственный спамер может запросто заполнить всю беседу сообщениями. При ограничении частоты у каждого пользователя появляется равная возможность участия.

https://habr.com/ru/companies/ruvds/articles/816243/

original https://smudge.ai/blog/ratelimit-algorithms
Что разработчик никогда не должен делать

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


1) Быть перфекционистом
2) Просить время на рефакторинг
3) Не понимать, что такое «легаси-код»
4) Считать функциональное программирование лучшим
5) Слепо следовать «лучшим практикам»
6) Справляться с трудностями в одиночку
7) Впадать в неконтролируемый «поток»
8) Не двигать своим телом
9) Забывать, как круто быть программистом
10) Быть «кодером», а не инженером

https://habr.com/ru/articles/816365/
🟡 Заканчивай самостоятельно разбираться в С++

Приходи на открытый практический онлайн-урок «Шаблоны в С++ и основы метапрограммирования» от OTUS

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

Встречаемся 28 мая в 20:00 мск. Зарегистрируйся прямо сейчас, чтобы не пропустить.

РЕГИСТРАЦИЯ НА УРОК

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Compiler Explorer — уникальный проект для исследования компилируемого кода

Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.

CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:

Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени.

https://habr.com/ru/companies/ruvds/articles/815675/

original https://thechipletter.substack.com/p/compiler-explorer
This media is not supported in your browser
VIEW IN TELEGRAM
Почему для меня так важен алгоритм CORDIC

CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin, cos, tan и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».

Начнём с очевидного: если вы работаете на производительном оборудовании, то вам всё это не нужно. Настоящая техника предназначена именно для встраиваемых средств, в особенности малопроизводительных микроконтроллеров и ПЛИС (прогр...
Media is too big
VIEW IN TELEGRAM
20 Величайших Программистов Всех Времен

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

Гвидо Ван Россум
Дональд Эрвин Кнут
Джон Кармак
Джеймс Артур Гослинг
Никлаус Вирт
Дейвид Паттерсон
Алан Кей
Джон Маккарти
Стив Возняк
Эдгар Кодд
Томас Куртз
Грейс Хоппер
Джон Бакус
Кен Томпсон
Билл Гейтс
Брайан Керниган
Бйорн Строуструп
Линус Торвальдс
Тим Бернерс Ли
Денис Ритчи
Алан Тьюринг
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Тест на знание языка Rust

— Ответьте на 20 вопросов и проверьте, насколько вы готовы к углубленному изучению Rust. Сможете сдать — пройдёте на продвинутый онлайн-курс "Rust Developer. Professional" со скидкой!

ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА "Rust Developer. Professional"

Старт курса 30 мая.

🎁 Пройдете успешно тест, получите доступ к открытым урокам курса.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Laster Brent - Learning GitHub Actions.pdf
22.8 MB
Learning GitHub Actions: Automation and Integration of CI/CD with GitHub
Brent Laster Foreword by Julian C. Dunn (2023)

Автоматизируйте процессы разработки программного обеспечения с помощью GitHub Actions, платформы непрерывной интеграции и непрерывной доставки, которая легко интегрируется с GitHub. В этой практической книге автор открытого исходного кода, тренер и директор DevOps Брент Ластер объясняет все, что вам нужно знать об использовании GitHub Actions и получении выгоды от них. Вы узнаете, что такое действия и рабочие процессы и как их можно использовать, создавать и внедрять в ваши процессы для упрощения, стандартизации и автоматизации вашей работы в GitHub.
This media is not supported in your browser
VIEW IN TELEGRAM
🦎 Скорость изменения цвета хамелеона
5 механизмов межпроцессного взаимодействия (IPC)

IPC — это фундаментальная концепция в *nix-подобных ОС, которая позволяет процессам обмениваться данными.

1️⃣ Pipe — механизм межпроцессного взаимодействия, использующий общий файловый дескриптор, что позволяет одному процессу записывать данные, которые может прочитать другой процесс.
cat /var/log/syslog | grep 'error' | less
2️⃣ Message Queue: позволяют процессам обмениваться сообщениями в порядке FIFO. Она полезна в сценариях, где требуется асинхронное взаимодействие.
3️⃣ Signal: используется для уведомления процесса о наступлении определённого события.
4️⃣ Semaphore: используется для контроля доступа к общему ресурсу несколькими процессами.
5️⃣ Shared Memory: позволяет обеспечить нескольким процессам доступ к одному и тому же пространству памяти.
Хотите изучить C++ с нуля или задумываетесь о переходе на него?

Ждём вас на открытом практическом уроке «Функции, стек и рекурсия в C++» от OTUS, где мы:

- поговорим о том, как реализован вызов функции;
- узнаем, что из себя представляет стек и как он задействован в этом процессе;
- обсудим способы передачи параметров в функцию в C++ и поймем, почему их так много;
- познакомимся с рекурсивными функциями, решая классическую задачу о Ханойских башнях;
- узнаем, почему обычно стоит избегать активного использования рекурсии.

Спикер Андрей Рыжиков — опытный разработчик в НИИ обработки аэрокосмических изображений.

Встречаемся 4 июня в 20:00 мск в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!

Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Node.js for Beginners: A comprehensive guide to building efficient, full-featured web applications with Node.js
Автор: Ulises Gascón (2024)

Сначала вы изучите основы Node.js и освежите свои знания JavaScript, а затем перейдете к разработке современных веб-приложений с использованием Node.js, Express.js и MongoDB. Вы изучите такие сложные темы, как асинхронное программирование, библиотеки npm, событийно-ориентированные шаблоны для HTTP-серверов, RESTful API, JSON Web Tokens и многое другое. В заключительных главах вы пройдете через процесс развертывания и узнаете о различных стратегиях, включая установку на пустом металле, виртуальные машины и контейнеризацию с помощью Docker. Вы также узнаете, как использовать Process Manager 2 (PM2) для эффективного управления процессами.