Только начали изучать профессию и уже потерялись в десятках книг, видеоуроков и лекций? Эта проблема знакома всем новичкам, ведь слишком большое количество материалов дезориентирует и рассеивает внимание. Совместно с экспертами EPAM мы выбрали одну книгу (и не только), с которой стоит начинать знакомство с каждым из направлений.
Java
Head First Java by Kathy Sierra & Bert Bates
Книга написана специально для начинающих, поэтому базовые концепции (в том числе принципы ООП) разобраны очень подробно. Множество иллюстраций, практических заданий, полушутливое повествование — все это делает книгу идеальным вступлением в разработку на Java.
DevOps
The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford
Поучительная новелла, в которой читатель вместе с Биллом, IT-менеджером технической компании, должен будет за 90 дней привести в чувство проект, где не работает... ничего. Бюджет превышен, дедлайны сорваны, но задание есть задание — так, на примере «идеального» проекта, вы сможете научиться принципам работы DevOps-специалиста.
Business Analysis
Business Analysis for Dummies by Kate McGoey, Kupe Kupersmith
Пусть название не вводит вас в заблуждение: эта книга доступно разъяснит вам фундамент профессии и морально подготовит к довольно сложным терминам и принципам бизнес-анализа, которые встретятся вам в более продвинутых материалах. А сам формат не нуждается в представлениях: мало кто не знаком с книгами серии «... for Dummies» — это всегда легко и весело изложенная теория.
UI/UX
100 Things Every Designer Needs to Know About People by Susan Weinschenk
Книга основана на исследованиях человеческого мозга и особенностях нашего восприятия информации. Отличный первый шаг к пониманию того, как создавать интуитивно-понятный дизайн. Дополнительное преимущество: короткий и лаконичный стиль повествования, легкий для восприятия дизайн и ключевые тезисы в конце каждой главы.
Project Management
Making Things Happen: Mastering Project Management by Scott Berkun
Автор, бывший менеджер Microsoft, не обсуждает популярные теории и не предлагает пошаговые инструкции. Вместо этого он рассказывает о годах работы в Microsoft, структуре и специфике IT-проектов: планировании, стратегии, разрешении конфликтных ситуаций и многих других важных для начинающего РМ вещах.
JavaScript
JavaScript: The Definitive Guide by David Flanagan
Главное преимущество этой книги — ее актуальность: последнее издание охватывает все фундаментальные понятия языка. Хотя автор излагает материал довольно сухо, он все же успевает и пошутить, и, что важно, объяснить тему так, чтобы у вас не оставалось вопросов.
Однако, если вы ищете самые актуальные знания по JS, советуем ресурс Free Code Camp, где параллельно с изучением теории вы можете практиковаться в написании кода. Идеальный рецепт освоения JS выглядит следующим образом: изучение книги и, одновременно, практика на сайте.
Ruby
Why's (Poignant) Guide to Ruby +
The Well-Grounded Rubyist by David A. Black
Why's (Poignant) Guide to Ruby — возможно, самая уникальная книга, которую вообще можно найти среди технической литературы. Открывать ее нужно с осторожностью, без толики юмора «переварить» книгу может быть сложно: здесь есть и комиксы, и остроумные ремарки автора, и — куда же без нее — теория Ruby, изложения в формате, доступном для совсем-совсем новичков.
А если вы уже готовы к более глубокому погружению в язык или же не хотите разбираться в тонкостях английского сленга, The Well-Grounded Rubyist с высокой вероятностью станет вашей настольной книгой. Те, кто ее читал, признаются, что книга открыла им глаза на то, что раньше они писали код наугад, и помогла раскрыть скрытый потенциал языка.
Quality Assurance
Beautiful Testing: Leading Professionals Reveal How They Improve Software by Tim Riley, Adam Goucher
Слышали выражение «чтобы стать тестировщиком, нужно думать как тестировщик»? Это книга откроет вам «окошко» в мысли, переживания и надежды QA специалиста и в то же время познакомит вас с основами профессии. Книга написана легко, а каждая концепция рассматривается на каком-то примере из профессионального опыта автора.
Python
Python Crash Course: A Hands-On, Project-Based Introduction to Programming by Eric Matthes
Замечательная книга, которую оценят читатели, которые читали другие публикации по Python и нашли их слишком запутанными. Здесь много теории, но она подана под «джуниорским» соусом, а еще с таким учебником вы сразу сможете опробовать новые знания на практике. В книге множество do-it-yourself задачек (с пошаговым решением, кстати) и рекомендаций полезных онлайн-ресурсов.
Database design
Database Internals: A Deep Dive into How Distributed Data Systems Work +
SQL Antipatterns: Avoiding the Pitfalls of Database Programming
Не удержались и добавили сразу два материала по базам данных (потому что это очень неординарное направление). Database Internals — это одна из наиболее актуальных книг по теории построения баз данных, но ожидать «глубокого погружения» не стоит, хотя название обещает именно его. Скорее это обзор широкого спектра теории, что для начинающего будет только плюсом.
Когда вы будете готовы перейти к практике, открывайте SQL Antipatterns. Там автор анализирует самые частые ошибки в структуре баз данных, перечисляет признаки, по которым можно идентифицировать такой антипаттерн, и дает рекомендации, как эту ошибку исправить. Пусть описание вас не пугает — книга легкая, лаконичная и написана в полуразвлекательном ключе.
Bonus: Для всех разработчиков
Clean Code – A Handbook of Agile Software Craftsmanship by Robert Cecil Martin
Маст-рид для всех начинающих разработчиков, которые не хотят наступать на те же грабли, что и тысячи джуниоров до них. Описанные принципы легко адаптируются к любому языку программирования, поэтому советуем каждому иметь Clean Code под рукой, чтобы первые шаги в разработке были успешными.
Design Patterns: Elements of Reusable Object-Oriented Software
С момента издания этой книги прошло почти тридцать лет, но ее и сейчас называют едва ли не лучшим гайдом для тех, кто не хочет придумывать велосипед. В книге вы найдете 23 паттерна, каждый из которых без усилий приспосабливается к любому объектно-ориентированному языку разработки (Java, C#, Python, и т.д.). Чтобы понять эту книгу, понадобятся некоторые теоретические знания, но после успешного освоения материала ваши навыки написания кода перейдут на абсолютно новый уровень.