Новички бывают разными: кто-то начинает учить язык без опыта в программировании вообще, кто-то активно кодит, но всё ещё считает себя начинающим. В этих подборках каждый найдёт для себя полезное пособие. Некоторые из них не переведены на русский язык, так что стоит задуматься об изучении английского.
Во-первых, он откроет доступ к значительному пласту литературы, недоступной на русском.
Во-вторых, знание языка позволит вам получать наиболее актуальные данные, не дожидаясь перевода.
В-третьих, английский поможет находить коллег и работодателей по всему миру.
Чтобы вы быстро добились результатов, чтение профессиональной литературы должно стать регулярным. Нужно выполнять рекомендуемые автором упражнения, а возникающие вопросы задавать более опытному коллеге. И, конечно, эффективнее читать учебники не вместо специализированных курсов, а вместе с ними.
Java
Для новичков
Кэти Сьерра, Берт Бэйтс — Изучаем Java (2-е издание)
Это учебник, который не только рассказывает о Java в теории, но и стимулирует применять полученные знания на практике. Книга знакомит с синтаксисом и концепцией языка. Знания закрепляются примерами и тестовыми заданиями. А мотивацию читателя повышают картинки и ободряющие фразы. Издание подойдёт для быстрого старта в программировании. Единственный минус: в книге рассказывается о Java 5, хотя на вооружении у разработчиков уже Java 8. Впрочем, это не помешает вникнуть в основы языка.
Кей Хорстманн, Гари Корнелл — Java. Библиотека профессионала. Том 1. Основы
Это справочник, который включает в себя ответы на основные вопросы, которые могут возникнуть у начинающего Java-разработчика. Каждый пункт содержит подробные пояснения и проиллюстрирован примерами из практики.
Герберт Шилдт — Java. Руководство для начинающих
Автор учитывает в книге все аспекты Java-разработки, которые нужно знать новичку, объясняет материал просто и понятно. В пособии есть примеры и упражнения для самопроверки. Шилдт пишет просто и динамично, а его учебник удостоен множества положительных отзывов.
Для продолжающих
Джошуа Блох — Java. Эффективное программирование
В книге содержится 57 готовых решений задач, с которыми разработчики часто сталкиваются. Блох рассказывает, что надо и что не надо делать для создания эффективного кода. Издание высоко оценил автор Java Джеймс Гослинг.
Эндрю Хант, Дэвид Томас — Программист-прагматик. Путь от подмастерья к мастеру
Авторы собрали свои заметки по наиболее актуальным для продолжающих Java-разработчиков вопросам. В книге содержатся рекомендации, которые не просто дают готовые ответы на вопросы, но и стимулируют найти собственные эффективные решения.
Кей Хорстманн, Гари Корнелл — Java. Библиотека профессионала. Том 2. Тонкости программирования
Это логическое продолжение первого тома серии. Издание ориентировано на разработчиков с опытом, которые перешли от изучения азов к работе с реальными проектами. По внутренней структуре это справочник, который содержит ответы на часто возникающие у Java-программиста вопросы.
Для продвинутых
Роберт Мартин — Чистый код: создание, анализ и рефакторинг
Книга рассказывает, чем отличается хороший код от плохого и как второй превратить в первый. Автор на практических примерах показывает, что нет предела совершенству при разработке, и предлагает с помощью непростых упражнений перейти к чистому коду.
Brian Goetz — Java Concurrency in Practice
Это издание необходимо тем, кто хочет писать хороший многопоточный код. Автор рассказывает о Java SE, базовых концепциях конкуренции и потокобезопасности.
Joshua Bloch and Neal Gafter — Java Puzzlers
95 непростых задач от бывшего работника компании Sun Microsystems и Google Джошуа Блоха и Java-евангелиста Google Нила Гафтера. Задания заставят поломать голову и по-новому взглянуть на привычные коды.
JavaScript
Для начинающих
Дэвид Флэнаган — JavaScript. Подробное руководство. 6-е издание
В учебнике рассказывается о языке программирования JavaScript и прикладных интерфейсах, реализованных в веб-браузерах. Шестое издание дополнено сведениями о JavaScript в разработке приложений для Web 2.0. и охватывает стандарты ECMAScript 5 и HTML5.
Пауль Уилтон, Джереми Мак-Пик — JavaScript. Руководство программиста
Практическое руководство по созданию динамических веб-страниц с пошаговыми инструкциями.
Марейн Хавербеке — Выразительный Javascript
Автор знакомит читателя не только с JavaScript, но и с основными понятиями программирования в целом.
Для продолжающих
Джон Резиг, Беэр Бибо — Секреты JavaScript ниндзя
Помимо основных понятий в книге раскрываются специальные приёмы программирования на примере конкретных участков кода, в том числе кросс-браузерного, и рассказывается, как преодолеть основные трудности, с которыми сталкивается разработчик.
Дуглас Крокфорд — JavaScript. Сильные стороны
В книге выделены наиболее надёжные и понятные JavaScript-конструкции, которые позволяют создавать эффективный код.
Стоян Стефанов — JavaScript. Шаблоны
Автор знакомит читателя с различными шаблонами программирования на JavaScript и раскрывает особенности их использования.
Для продвинутых
Джон Резиг, Расс Фергюсон, Джон Пакстон — JavaScript для профессионалов (2-е издание)
На русском языке книга выпущена в 2017 году. Благодаря этому она содержит свежие данные о современном состоянии JavaScript, новых языковых средствах, передовых приёмах отладки и тестирования кода.
Николас Закас — JavaScript для профессиональных веб-разработчиков
Книга подойдёт для разработчиков, которые хотят сделать свои сайты и веб-приложения более удобными в использовании, а также для тех, кто хочет обратиться к JavaScript в контексте Java и C++.
Дэвид Херман — Сила JavaScript. 68 способов эффективного использования JS
Автор на понятных примерах рассказывает о 68 способах получить чистый код.
Python
Для начинающих
Марк Лутц — Изучаем Python
Позволяет достаточно быстро начать создавать эффективный код. Последнее пятое издание вышло в 2013 году, поэтому оно не включает информацию о последних изменениях. Тем не менее, для новичков учебник по-прежнему актуален.
Zead Show — Learn Python the Hard Way
В книге собраны 52 упражнения для изучающих Python, выполнив которые можно понять, как устроен язык и как правильно писать программы.
Allen Downey — Think Python: How to Think Like a Computer Scientist
Пособие поэтапно знакомит новичков с азами языка. Объёмные темы для облегчения знакомства разбиты на небольшие этапы.
Для продолжающих
Mark Pilgrim — Dive into Python
Это пособие находится на стыке начального и более продвинутого уровней. Некоторые рекомендуют его для новичков, другие считают, что для понимания материала нужен опыт в разработках. Сходятся читатели в одном: автор толково и с юмором рассказывает, как написать код и избежать «подводных камней» при этом.
Марк Саммерфилд — Python на практике
Это издание поможет начинающим избежать типичных ошибок новичка и повысить “элегантность кода”. А благодаря подсказкам для быстродействия кода и работы с паттернами и графиками книга пригодится и на следующем этапе погружения в Python.
Уэсли Дж. Чан — Python. Создание приложений
В книге рассказывается о регулярных выражениях, сетевом программировании, графических пользовательских интерфейсах, потоках и современных трендах веб-программирования.
Для продвинутых
Al Sweigart — Invent Your Own Computer Games with Python (4th Edition)
Автор учит использовать структуры данных, создавать искусственный интеллект, отлаживать программы и искать ошибки на примере создания игр с помощью библиотеки Pygame. В процессе чтения вы будете создавать 2D-игры.
Wes McKinney — Python for Data Analysis
Пособие рассказывает о способах обработки данных и их измерения на различных временных промежутках.
Steven Bird, Ewan Klein, Edward Loper — Natural Language Processing with Python
Авторы рассказывают о принципах обработки естественных языков, написана как гайд по библиотеке NLTK.
C++
Для новичков
Бьярне Страуструп — Программирование. Принципы и практика с использованием C++
Книга подойдёт не только для новичков в C++, но и для тех, кто вообще не имеет опыта в программировании. Автор — создатель языка C++ — рассказывает о широком круге понятий и приёмов разработки.
Стэнли Липман, Джосе Ладжойе, Барбара Му — Язык программирования C++. Вводный курс
Пособие подробно рассказывает о C++ доступным языком. Книга позволяет читателю сразу приступить к созданию работоспособных программ.
Брюс Эккель, Чак Эллисон — Философия C++. Практическое программирование
Авторы не просто перечисляют базовые понятия, необходимые для программирования на C++, они стремятся научить читателя мыслить категориями C++, объясняют, почему разработчики принимают те или иные решения.
Для продолжающих
Скотт Мейерс — Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ
Пособие позволит сделать программы более простыми и в то же время более эффективными. Научит использовать те возможности C++, с которыми нечасто работают во время решения прикладных задач.
Herb Sutter — Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
Набор задач, решение которых поможет управлять ресурсами и безопасностью исключений в C++.
Дэвид Вандевурд, Николаи Джосаттис — Шаблоны C++. Справочник разработчика
Пособие написано в соавторстве теоретиком и практиком C++. Книга полностью освещает вопросы практического использования шаблонов.
Для продвинутых
Андрей Александреску — Современное проектирование на C++
Книга представляет собой синтез обобщённого программирования, метапрограммирования шаблонов и объектно-ориентированного программирования на С++.
David Abrahams, Aleksey Gurtovoy — C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond
Пособие рассказывает о способах метапрограммирования с использованием шаблонов.
Davide Di GennaroDavide Di Gennaro — Advanced C++ Metaprogramming
Руководство по практическому применению C++ для продвинутых разработчиков, содержит множество примеров кода.
По Python читать можно Лутца, книжка от О'Рейли, розовая, с крысой.
По C++ читайте Страуструпа. Ещё хвалят Прату.
В Java, вроде, котируется Шилдт.
А в JS всё так быстро меняется, что проще читать сразу MDN (Mozilla Developers Network)