Из повара в программисты

Алексей Пушкин, 2023

В эпоху цифровой революции каждый имеет шанс изменить свою жизнь и профессию. ‘Из повара в программисты’ – это история о том, как начать с нуля и погрузиться в мир IT. В этом путеводителе вы найдете все: от основ программирования до секретов успешного карьерного роста. Не важно, кем вы были вчера – важно, кем вы хотите стать завтра. Эта книга – ваш первый шаг к миру, где код становится искусством, а мечты – реальностью.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Из повара в программисты предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Глава 8. Профессиональный сленг программистов

Программисты, как и представители любой другой профессии, используют свой сленг. Эти термины и аббревиатуры позволяют быстро и эффективно общаться между собой. Вот некоторые из наиболее распространенных слов и выражений, которые вы можете услышать в IT-сфере:

Баг (bug) — ошибка или дефект в программном обеспечении, которая приводит к неправильной работе системы или приложения.

Дебаг (debug) — процесс выявления и устранения ошибок в коде.

Коммит (commit) — фиксация изменений в системе контроля версий, такой как Git.

Пулл-реквест (pull request) — запрос на внесение изменений в основную ветку репозитория. Другие разработчики могут просмотреть, обсудить и одобрить эти изменения.

Рефакторинг (refactoring) — процесс изменения кода без влияния на его функциональность, направленный на улучшение его структуры и читаемости.

АПИ (API) — Application Programming Interface, набор определений и протоколов, используемых для разработки программного обеспечения и обеспечения взаимодействия между различными компонентами системы.

Скелетон (skeleton) — базовый каркас или структура приложения, на основе которого дальше будет происходить разработка.

Бойлерплейт (boilerplate) — фрагмент кода, который часто повторяется и может быть переиспользован в разных частях проекта.

Тестирование юнитами (unit testing) — метод тестирования, при котором отдельные модули программы проверяются на корректную работу независимо от остальных частей системы.

Код ревью (code review) — процесс проверки исходного кода другими разработчиками для выявления ошибок и улучшения качества кода.

Плюс-один (+1) — обозначение согласия или одобрения в обсуждении кода или других вопросов.

Технический долг (technical debt) — накопление проблем и неэффективных решений в коде, которые не были исправлены вовремя и могут привести к проблемам в долгосрочной перспективе.

Парсинг (parsing) — процесс анализа и преобразования текста или других данных в структурированный формат, который можно обрабатывать программными средствами.

REST (Representational State Transfer) — архитектурный стиль, используемый для разработки веб-сервисов и API, основанный на использовании стандартных методов HTTP для обмена данными между клиентом и сервером.

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

Фронтенд (frontend) — часть веб-приложения, ответственная за отображение информации и взаимодействие с пользователем.

Бэкенд (backend) — часть веб-приложения, ответственная за обработку данных, взаимодействие с базами данных и другими сервисами.

Фулл-стек (full-stack) — программист, способный работать сразу с фронтендом и бэкендом веб-приложений.

Патч (patch) — небольшое изменение или исправление кода, которое решает определенную проблему или добавляет новую функциональность.

Спагетти-код (spaghetti code) — сложный и запутанный код, трудный для понимания и поддержки.

Итерация — цикл в процессе разработки, включающий планирование, разработку, тестирование и оценку.

Рефакторинг — процесс переписывания кода для улучшения его читаемости и упрощения без изменения его функциональности.

Техдолг — концепция в программировании, которая отражает дополнительные усилия, которые придется затратить на исправление и улучшение плохо написанного кода.

Юнит-тестирование — процесс тестирования отдельных блоков кода для обнаружения и исправления ошибок на раннем этапе разработки.

Мок (Mock) — объект, который имитирует поведение реального объекта в контролируемом способе. Используется при тестировании для изоляции кода от внешних зависимостей.

Шаблон проектирования (Design pattern) — повторяемая архитектурная конструкция, которая решает определенную проблему в коде.

Синтаксический сахар — синтаксис в языке программирования, который делает код более понятным или приятным для чтения.

Эндпойнт (endpoint) — конкретный URL в веб-приложении, который обрабатывает определенный запрос. Black Box — Система, которую можно понять и оценить, основываясь только на ее входах и выходах, без понимания внутренних механизмов работы.

White Box — Напротив, система, которую можно понять и оценить, зная ее внутренние механизмы работы.

Bleeding Edge — Технология на переднем крае инноваций, которая еще не была протестирована на больших масштабах и может быть рискованной.

Бренч (Branch) — Версия проекта, созданная для разработки определенной функции или исправления.

Ад обратных вызовов (Callback Hell) — Ситуация, когда слишком много функций обратного вызова делает код трудночитаемым и поддерживаемым.

Пахнущий код (Code Smell) — Признаки в коде, которые указывают на более глубокие проблемы.

Зависимость (Coupling) — Степень, в которой один класс или модуль зависит от другого.

Мертвый код (Dead Code) — Части кода, которые никогда не выполняются в работающей программе.

Пробный прогон (Dry Run) — Процесс прогонки программы без ввода реальных данных.

Предварительная загрузка (Eager Loading) — Подход к загрузке данных, когда все необходимые данные загружаются заранее.

Быстрое завершение (Fail-Fast) — Принцип, согласно которому программа должна немедленно сообщать о любых ошибках, которые возникают.

Сборка мусора (Garbage Collection) — Процесс освобождения памяти, которую программа больше не использует.

Хайзенбаг (Heisenbug) — Ошибка, которая исчезает или изменяется, когда вы пытаетесь ее исследовать.

Идемпотентность (Idempotence) — Свойство операции, которое позволяет выполнять ее много раз с тем же результатом.

Неизменяемость (Immutable) — Неизменяемый объект или значение, которое не может быть изменено после создания.

Компиляция во время выполнения (Just-In-Time (JIT) Compilation) — Процесс компиляции программы в машинный код во время выполнения.

Простота (KISS — Keep It Simple, Stupid) — Принцип проектирования, согласно которому системы должны быть как можно проще. Ленивая загрузка (Lazy Loading) — Подход к загрузке данных, когда данные загружаются только при непосредственной необходимости.

Манки-патчинг (Monkey Patching) — Изменение или расширение поведения кода без изменения исходного кода.

Базы данных без SQL (NoSQL) — Категория баз данных, которая не использует структурированный язык запросов (SQL).

Сопоставление объектов и реляционных данных (ORM — Object-Relational Mapping) — Техника, которая связывает базы данных и объектно-ориентированное программирование, позволяя взаимодействовать с базой данных, как если бы это были объекты.

Парное программирование (Pair Programming) — Практика разработки, когда два программиста работают вместе на одном рабочем месте.

Запрос (Query) — Запрос на получение данных из базы данных.

Гонка (Race Condition) — Ситуация, при которой поведение системы зависит от того, в каком порядке выполняются операции.

Масштабируемость (Scalability) — Способность системы обрабатывать увеличивающееся количество работы или расширяться для обслуживания этой работы.

Разработка через тестирование (TDD — Test-Driven Development) — Метод разработки программного обеспечения, при котором сначала пишутся тесты, а затем код, который их проходит.

Система контроля версий (VCS — Version Control System) — Система для отслеживания изменений в коде и координации работы между разработчиками.

Вебхук (Webhook) — Механизм для уведомления одного веб-сервиса об изменениях на другом веб-сервисе.

Межсайтовый скриптинг (XSS — Cross-Site Scripting) — Вид атаки на веб-сайт, при которой злоумышленник вставляет вредоносный код в страницы этого сайта. YAGNI (You Aren't Gonna Need It) — Принцип в программировании, который гласит, что функциональность не следует добавлять до тех пор, пока она действительно не понадобится.

Уязвимость"нулевого дня"(Zero-Day Vulnerability) — Уязвимость, о которой известно злоумышленникам, но для которой еще не существует исправления.

ACID (Атомарность, Согласованность, Изолированность, Надежность) — Свойства, которые гарантируют надежные транзакции в базах данных.

Бэкэнд-как-сервис (Backend-as-a-Service — BaaS) — Облачная услуга, которая предоставляет разработчикам готовый бэкенд для их приложений.

Непрерывная интеграция (CI — Continuous Integration) — Практика разработки, которая требует от разработчиков регулярного слияния своего кода с общей кодовой базой.

Внедрение зависимостей (DI — Dependency Injection) — Техника, при которой один объект предоставляет зависимости другому объекту.

Event-Driven Programming — Парадигма программирования, в которой поток программы определяется событиями, такими как действия пользователя или сообщения от других программ.

Функциональное программирование (Functional Programming — FP) — Парадигма программирования, которая строится вокруг функций и избегает изменяемого состояния и изменяемых данные.

Git — Распределенная система контроля версий, которую часто используют разработчики программного обеспечения.

Протокол передачи гипертекста (HTTP) — Протокол, который используется для передачи данных в World Wide Web.

Инфраструктура как услуга (IaaS — Infrastructure-as-a-Service) — Облачная услуга, которая предоставляет виртуальные ресурсы для вычислений.

Компиляция Just-In-Time (JIT) — Техника компиляции, которая преобразует байт-код в машинный код непосредственно перед выполнением. Промежуточное ПО (Middleware) — Промежуточное ПО, которое обеспечивает связь и управление данными между другими приложениями и системами.

Паттерн Null Object (Null Object Pattern) — Паттерн проектирования, который использует полиморфизм для уменьшения количества проверок на null в коде.

Паттерн Наблюдатель (Observer Pattern) — Паттерн проектирования, который позволяет объектам уведомлять другие объекты об изменениях своего состояния.

Полифил (Polyfill) — Код, который реализует функциональность, которую среда выполнения может не поддерживать нативно.

Оптимизация запроса (Query Optimization) — Процесс выбора наиболее эффективного способа выполнения запроса в базе данных.

REST (Representational State Transfer) — Архитектурный стиль для проектирования сетевых приложений, особенно веб-сервисов.

SOAP (Simple Object Access Protocol) — Протокол обмена структурированной информацией в реализации веб-служб в компьютерных сетях.

Регулирование нагрузки (Throttling) — Техника управления ресурсами, когда количество запросов к серверу ограничивается.

Универсальный уникальный идентификатор (UUID — Universally Unique Identifier) — Уникальный идентификатор, который используется для идентификации информации в компьютерных системах.

Виртуальная частная сеть (VPN — Virtual Private Network) — Технология, которая создает безопасное соединение через небезопасную сеть, обычно Интернет.

Веб-сокеты (WebSockets) — Протокол связи, который обеспечивает полноценный двусторонний обмен данными между клиентом и сервером.

XML (eXtensible Markup Language) — Язык разметки для кодирования документов в формате, который может быть прочитан как машинами, так и людьми.

YAML (YAML Ain't Markup Language) — Человеко-читаемый язык сериализации данных, часто используется для конфигурационных файлов. Развертывание без простоев (Zero Downtime Deployment) — Техника развертывания обновлений приложений без перерывов в обслуживании пользователей.

Алгоритм (Algorithm) — Подробный набор инструкций для выполнения операции или решения проблемы.

Бинарный поиск (Binary Search) — Алгоритм поиска, который находит позицию элемента в отсортированном массиве.

Кэш (Cache) — Компонент, который временно хранит данные для ускорения доступа при последующих запросах.

Извлечение данных (Data Mining) — Процесс извлечения полезной информации из больших наборов данных.

Инкапсуляция (Encapsulation) — Концепция ООП, которая ограничивает доступ к составляющим компонентам объекта.

Функциональное разложение (Functional Decomposition) — Процесс разделения функции на более мелкие, управляемые функции или модули.

Жадный алгоритм (Greedy Algorithm) — Алгоритм, который стремится к наилучшему решению, делая оптимальный выбор на каждом шаге.

Куча (Heap) — Специальная структура данных, которая полностью упорядочена и обычно используется в компьютерной науке.

Наследование (Inheritance) — Концепция ООП, которая позволяет одному классу наследовать свойства и методы другого класса.

JIT-компилятор (Just-In-Time Compiler) — Специальный вид компилятора, который генерирует машинный код непосредственно перед выполнением программы.

Заглушка (Stub) — фиктивная реализация функции или метода, используемая в тестировании программного обеспечения. Заглушки помогают имитировать поведение зависимых компонентов и обеспечивают контролируемую среду для тестирования.

Демо (Demo) — презентация или демонстрация работы программного продукта или функционала перед заказчиком или командой разработчиков. Демо позволяет показать достигнутые результаты и получить обратную связь.

Скалирование (Scaling) — процесс увеличения масштабов системы или инфраструктуры для поддержки роста и увеличения нагрузки. Скалирование может быть горизонтальным (добавление новых серверов) или вертикальным (увеличение ресурсов на существующих серверах). Микросервисы (Microservices) — Архитектурный подход, при котором приложение разбивается на небольшие, независимые и легко масштабируемые сервисы.

Контейнеризация (Containerization) — Методология разработки и развертывания программного обеспечения, при которой приложения и их зависимости упаковываются в контейнеры для обеспечения единообразной и независимой среды выполнения.

Бессерверные вычисления (Serverless Computing) — Подход к разработке и развертыванию приложений, при котором разработчику не нужно управлять физическими или виртуальными серверами, так как код выполняется в управляемой облачной среде.

Совместная разработка и эксплуатация (DevOps) — Методология, объединяющая разработку (Development) и эксплуатацию (Operations) программного обеспечения для повышения скорости и надежности процессов разработки и доставки приложений.

Блокчейн (Blockchain) — Децентрализованная распределенная система, которая использует цепочку блоков для записи и проверки транзакций или другой информации.

Машинное обучение (Machine Learning) — Раздел искусственного интеллекта, который обучает компьютерные системы обнаруживать закономерности и делать предсказания на основе данных, без явного программирования.

Нейронные сети (Neural Networks) — Модели машинного обучения, которые имитируют работу нервной системы человека и используются для распознавания образов, классификации данных, обработки естественного языка и других задач.

Конец ознакомительного фрагмента.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Из повара в программисты предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я