10 книг для программистов, чтобы прокачать технические и софт-скиллы
Мы собрали в одну подборку литературу как для новичков в IT, так и опытных программистов, которая поможет подтянуть (или повторить) базу, расширить знания в области математики и ML, научит проходить интервью и «выживать» в офисе.
Новичкам
Краткое и простое руководство по компьютерным наукам, которое пошагово учит основам, необходимым для эффективного программирования компьютеров. После простого введения в дискретную математику в нем представлены общие алгоритмы и структуры данных. Также здесь излагаются принципы, по которым работают компьютеры и языки программирования.
Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People (Aditya Bhargava)
Это иллюстрированное руководство научит применять распространенные алгоритмы к практическим задачам, с которыми программисты сталкиваются каждый день. Вы начнете с сортировки и поиска, постепенно задания будут усложняться — нужно будет решать задачи на сжатие данных и искусственный интеллект. Внутри также найдете примеры применения алгоритмов, диаграммы и полностью аннотированные образцы кода на Python.
Street Coder: The rules to break and how to break them (Sedat Kapanoglu)
Руководство для начинающих с юмором рассказывает, как эффективно выполнять свою работу, расставлять приоритеты, принимать быстрые решения, а также объясняет, какие правила написания кода следует нарушать. В книге разбирают:
- типы данных, алгоритмы и структуры данных для быстрой разработки программного обеспечения;
- использование «плохих» практик с пользой;
- тестирование;
- как спокойно принимать бреши в своем коде и «подружиться» с ошибками;
- оптимизацию кода, асинхронное программирование, распараллеливание и рефакторинг.
Опытным
Сегодня данные находятся в центре многих проблем при проектировании систем — необходимо решить сложные вопросы, такие как масштабируемость, согласованность, надежность, эффективность и ремонтопригодность. Информация из этой книги поможет вам сориентироваться в мире данных, изучив плюсы и минусы различных технологий их обработки и хранения с помощью инструментов.
Программное обеспечение постоянно меняется, но основные принципы остаются прежними. Автор рассказывает, как применять эти идеи на практике и как в полной мере использовать данные в современных приложениях.
Этот учебник объединяет машинное обучение, инженерную математику и математическую физику для интеграции моделирования и управления динамическими системами с современными методами науки о данных. Здесь освещаются многие из последних достижений в области научных вычислений — они позволяют применять методы, основанные на данных, к разнообразным сложным системам.
Автор книги — создатель языка программирования Unicon. Он считает, что лучший способ сократить время разработки и устранить болевые точки в области вашего проекта — создать собственный язык программирования. В книге рассказывается, как создавать синтаксические анализаторы, генераторы кода, программы чтения файлов, анализаторы и интерпретаторы. Также есть руководство, как создать альтернативу фреймворкам и библиотекам для решения проблем, связанных с предметной областью.
Прохождение интервью
System Design Interview — An insider’s guide (Alex Xu)
Интервью по системному проектированию — самый сложный этап. Чтобы облегчить разработчикам его прохождение, автор создал серию руководств (это только первая часть). Здесь представлена стратегия прохождения собеседования и база знаний для решения широкого круга вопросов по проектированию систем. Книга включает в себя множество реальных примеров, иллюстрирующих систематический подход, с подробным описанием шагов.
Инженер-программист, который также занимался отбором сотрудников в компанию, поделился опытом прохождения интервью (даже тех, когда тебя просят сразу же придумать блестящий алгоритм, а затем написать безупречный код на доске). Книга поможет вам потренироваться перед собеседованием, научит раскрывать подсказки и скрытые детали в вопросах, выходить из затруднительного положения, повторить основные концепции разработки.
Софт-скиллы
Отойдем от теории к реальной жизни инженера, где каждый день нужно взаимодействовать с людьми, изображать уверенность, убеждать других в своей правоте, стараться не утонуть в работе (но и не показать себя «слабаком», который просит передать часть работы коллегам) и как-то продвигаться по карьерной лестнице. Книга станет «электронным наставником» в этих и других вопросах: внутри вы найдете сводку советов, тактик и приемов от опытных инженеров.
Большинству людей не хватает критического мышления, потому что система образования ему не учит. Именно из-за отсутствия критического мышления большинство людей никогда не реализуют свой потенциал — из-за обилия ложных убеждений они делают то, что вредит им, и не делают того, что принесло бы большую пользу. Этот тезис можно «натянуть» как на быт, так и работу программиста.
В комплект этой книги входят:
- Кратко о критическом мышлении: как стать независимым мыслителем и принимать разумные решения.
- Преодолейте логические заблуждения: 28 крупиц знаний, которые помогут развить ваши навыки рассуждения.
- Привычка критически мыслить: мощные практики, которые изменят ваше мнение и обострят ваше мышление.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: