Хороший боец — не тот, кто просто досконально знает свой автомат и умеет его применять. Бойцу пригодятся рукопашный бой, ориентирование на местности и даже строевая подготовка. Точно так же и с программистом: ему мало просто знать «свой» язык. Дополнительная литература для самообучения программированию  - 1Если вы прошли 15 уровней JavaRush или около того, стоит начинать задумываться о получении знаний, которые не касаются непосредственно Java, но нужны каждому мало-мальски серьезному разработчику. Одни из, например, алгоритмы, нужны для формирования программистского мышления и прохождения собеседований, другие (базы данных или проектирование) — непосредственно для работы. В этой статье мы рассмотрим несколько очень полезных книг для тех, кто уже созрел для «выхода за пределы языка программирования».

Алгоритмы

Дополнительная литература для самообучения программированию  - 2
Чтобы стать хорошим водителем, одних знаний об устройстве основ устройства машины недостаточно: мастерство вождения приходит с опытом управления автомобилем. Точно так же и с программированием. Теории недостаточно, нужно программировать. Проходя JavaRush, вы уже в этом убедились. Ближе к середине курса появятся задачи, решению которых сильно помогут навыки в области алгоритмов. Но в самом начале у всех «курсантов» разная подготовка. Скажем, у людей с техническим образованием будет несколько проще: обычно они проходят математику и алгоритмы в университете. В целом умение программировать алгоритмы очень полезно для становления мышления программиста. А вот если вы устроитесь на работу, вам, скорее всего, не придётся писать код для стандартных алгоритмов: они уже давно написаны. В то же время во время собеседований соискателям очень часто предлагают алгоритмические задания. Умение решать подобные задачи будет для вас дополнительным плюсом. Книга Роберта Седжвика и Кевина Уэйна поможет восполнить или обновить знания в этой области – она является самоучителем по программированию на Java с нуля в части алгоритмов. В начальной главе книги расписаны основы Java, подробнее расписаны те элементы языка, которые касаются способов хранения данных. Остальные главы непосредственно посвящены различным способам манипуляции с данными и алгоритмам, решающим наиболее часто встречающиеся задачи. Работа со строками, графами, таблицами, сортировки, сжатие информации, поиски путей и многие стандартные задачи разобраны подробно с приведением примеров программ на Java. Книга наполнена удачными иллюстрациями и схемами, существенно облегчающими понимание тем и демонстрирующие ход работы алгоритма. В ней почти отсутствуют академические формулы. Ознакомление с математическим материалом подаётся доступным языком, что особенно важно для читателей без математической подготовки. А некоторые разделы и главы можно также воспринимать как рецепты в стиле «Как эффективно обработать входные данные, чтобы получить конечный результат». К слову, если вы знаете английский и предпочитаете лекции, то загляните на Coursera. Там есть курс по алгоритмам тех же авторов, что и этот учебник.

SQL

Дополнительная литература для самообучения программированию  - 3
Многие видели эту аббревиатуру в списке требований при трудоустройстве в самых разнообразных отраслях: веб-программирование, Enterprise, анализ данных и тому подобное. В них часто встречаются задачи по обработке больших объёмов данных с целью получения результата, отражающего необходимые сведения. Например, нам интересна сумма покупок по кредитной карте в течение года, сгруппированная по категориям, или количество сообщений на электронную почту от разных групп адресатов. SQL отличается от привычных языков в первую очередь декларативностью, мы описываем «что хотим получить в качестве результата», вместо привычного «каким образом получить результат». Книга Мартина Грабера послужит самоучителем по программированию для начинающих, которые планируют изучить язык запросов к базам данных. Книга рассчитана на неподготовленного читателя, поэтому материал подаётся с самых основ. Описаны все основные команды для манипулирования СУБД и получения результатов от неё. Если у вас есть время и желание, весьма полезно читать книгу и одновременно отрабатывать команды на практике. Для задачек можно использовать бесплатный курс. В паре с этой книгой вы получите поистине «убийственное комбо»!

Стиль программирования и конструирования ПО

Дополнительная литература для самообучения программированию  - 4
Ближе к 20-му уровню многие студенты JavaRush, смотря на свои программы, решающие начальные задачи, усмехаются и понимают, что уже сейчас реализовали бы всё более компактно, изящно и рационально. Эта книга не является самоучителем по программированию, она — свод рекомендаций по проектированию и разработке программного обеспечения. Как и многие технические книги, её не стоит читать «от корки до корки», эффективнее разбирать отдельные главы. Возможно, не все изложенное в ней будет вам по душе (особенно на первых порах), но многие советы стоит взять себе на заметку. Следуя рекомендациям повышения качества кода, вы сможете создавать более читабельные с листа программы, друзья и коллеги будут вам благодарны за понятные листинги кода.