Marat Sadykov
41 уровень

Дополнительная литература для самообучения программированию

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

Алгоритмы

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

SQL

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

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

Ближе к 20-му уровню многие студенты JavaRush, смотря на свои программы, решающие начальные задачи, усмехаются и понимают, что уже сейчас реализовали бы всё более компактно, изящно и рационально. Эта книга не является самоучителем по программированию, она — свод рекомендаций по проектированию и разработке программного обеспечения. Как и многие технические книги, её не стоит читать «от корки до корки», эффективнее разбирать отдельные главы. Возможно, не все изложенное в ней будет вам по душе (особенно на первых порах), но многие советы стоит взять себе на заметку. Следуя рекомендациям повышения качества кода, вы сможете создавать более читабельные с листа программы, друзья и коллеги будут вам благодарны за понятные листинги кода.
Комментарии (4)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Viacheslav3 уровень, Санкт-Петербург
25 июля, 23:27
Роберт Лафоре, честно, не читал, но по оглавлению и быстрому просмотру понравился. Хотя многие вещи, кажется, требуют дополнительно онлайн курсов. Причём, очень жаль, что по тем же алгоритмам мало интерактивных курсов. Вот чтоб тебе показали и ты давай сам делать. Понятно, что можно самому. Лень, не лень, но когда курс интерактивный - прямо душа радуется ) Тот же Spring на treehouse прекрасен, имхо ) И да, по SQL теория прекрасно, но уроки на sql-ex крутые, интерактивные, с проверкой и т.д. В общем, имхо, чем комплекснее подход, тем лучше результат. На linkedin learning нет интерактива, но там зато многие курсы (тот же Spring и JEE) имеют архив с кодом по курсам, разбитые на "до" (то есть то, что было в лекии) и "после" (то есть то, что должно было получиться самостоятельно) )
_SKif38 уровень, Нижний Новгород
30 июля, 07:51
Вместе с книгой Лафоре идут апплеты, которые позволяют визуализировать работу алгоритмов. Частично книга строится на объяснении алгоритмов с помощью этих апплетов. Причем пользователь непосредственно влияет на выполнение алгоритма, а не просто смотрит.
phisikist40 уровень, Киев
22 июля, 21:25
По алгоритмам как , по мне, заходит Data Structures & Algorithms in Java Автор: Роберт Лафоре, найти её что в оригинале, что на русском без труда.