Хороший боец — не тот, кто просто досконально знает свой автомат и умеет его применять. Бойцу пригодятся рукопашный бой, ориентирование на местности и даже строевая подготовка. Точно так же и с программистом: ему мало просто знать «свой» язык.
Если вы прошли 15 уровней JavaRush или около того, стоит начинать задумываться о получении знаний, которые не касаются непосредственно Java, но нужны каждому мало-мальски серьезному разработчику. Одни из, например, алгоритмы, нужны для формирования программистского мышления и прохождения собеседований, другие (базы данных или проектирование) — непосредственно для работы. В этой статье мы рассмотрим несколько очень полезных книг для тех, кто уже созрел для «выхода за пределы языка программирования».
Чтобы стать хорошим водителем, одних знаний об устройстве основ устройства машины недостаточно: мастерство вождения приходит с опытом управления автомобилем. Точно так же и с программированием. Теории недостаточно, нужно программировать. Проходя JavaRush, вы уже в этом убедились. Ближе к середине курса появятся задачи, решению которых сильно помогут навыки в области алгоритмов. Но в самом начале у всех «курсантов» разная подготовка. Скажем, у людей с техническим образованием будет несколько проще: обычно они проходят математику и алгоритмы в университете.
В целом умение программировать алгоритмы очень полезно для становления мышления программиста. А вот если вы устроитесь на работу, вам, скорее всего, не придётся писать код для стандартных алгоритмов: они уже давно написаны.
В то же время во время собеседований соискателям очень часто предлагают алгоритмические задания. Умение решать подобные задачи будет для вас дополнительным плюсом.
Книга Роберта Седжвика и Кевина Уэйна поможет восполнить или обновить знания в этой области – она является самоучителем по программированию на Java с нуля в части алгоритмов.
В начальной главе книги расписаны основы Java, подробнее расписаны те элементы языка, которые касаются способов хранения данных. Остальные главы непосредственно посвящены различным способам манипуляции с данными и алгоритмам, решающим наиболее часто встречающиеся задачи. Работа со строками, графами, таблицами, сортировки, сжатие информации, поиски путей и многие стандартные задачи разобраны подробно с приведением примеров программ на Java.
Книга наполнена удачными иллюстрациями и схемами, существенно облегчающими понимание тем и демонстрирующие ход работы алгоритма. В ней почти отсутствуют академические формулы. Ознакомление с математическим материалом подаётся доступным языком, что особенно важно для читателей без математической подготовки. А некоторые разделы и главы можно также воспринимать как рецепты в стиле «Как эффективно обработать входные данные, чтобы получить конечный результат».
К слову, если вы знаете английский и предпочитаете лекции, то загляните на Coursera. Там есть курс по алгоритмам тех же авторов, что и этот учебник.
Многие видели эту аббревиатуру в списке требований при трудоустройстве в самых разнообразных отраслях: веб-программирование, Enterprise, анализ данных и тому подобное. В них часто встречаются задачи по обработке больших объёмов данных с целью получения результата, отражающего необходимые сведения. Например, нам интересна сумма покупок по кредитной карте в течение года, сгруппированная по категориям, или количество сообщений на электронную почту от разных групп адресатов.
SQL отличается от привычных языков в первую очередь декларативностью, мы описываем «что хотим получить в качестве результата», вместо привычного «каким образом получить результат». Книга Мартина Грабера послужит самоучителем по программированию для начинающих, которые планируют изучить язык запросов к базам данных.
Книга рассчитана на неподготовленного читателя, поэтому материал подаётся с самых основ. Описаны все основные команды для манипулирования СУБД и получения результатов от неё.
Если у вас есть время и желание, весьма полезно читать книгу и одновременно отрабатывать команды на практике. Для задачек можно использовать бесплатный курс. В паре с этой книгой вы получите поистине «убийственное комбо»!
Ближе к 20-му уровню многие студенты JavaRush, смотря на свои программы, решающие начальные задачи, усмехаются и понимают, что уже сейчас реализовали бы всё более компактно, изящно и рационально.
Эта книга не является самоучителем по программированию, она — свод рекомендаций по проектированию и разработке программного обеспечения. Как и многие технические книги, её не стоит читать «от корки до корки», эффективнее разбирать отдельные главы. Возможно, не все изложенное в ней будет вам по душе (особенно на первых порах), но многие советы стоит взять себе на заметку. Следуя рекомендациям повышения качества кода, вы сможете создавать более читабельные с листа программы, друзья и коллеги будут вам благодарны за понятные листинги кода.

Алгоритмы

SQL

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

ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ