Программистское чтиво - Что почитать программисту

В самом начале пути программиста желательно прочитать книгу по базам языка программирования, который вы выбрали. Я в основном C# программист, поэтому посоветую книгу только по этому языку. Хотел бы посоветовать что-то по Java, но не могу, потому что с этой платформой я не связывался уже более 10 лет. Последний раз что-то читал более 10 лет назад.

Если из C# книг, то я так же уже давно ничего не читал, но совсем недавно обновил свою книгу Библия C#, поэтому пользуясь тем, что это мой блог, я порекомендую ее.

Как раз в ближайшее время должно выйти очередное издание, в котором я добавил информацию о новинках, которые добавили в C# 7, а также заменил все, что касается Windows Forms более современным UWP (Универсальной платформой Windows) и все примеры теперь используют XAML.

Но самое главное – в книге я все также делаю упор на сам язык, я пытаюсь научить основам программирования простым языком, без погружения в слишком сложные технические вещи. Если нужны детали, то для этого лучше обратиться к документации Майкрософт. В этой компании работают не только отличные программисты, которые создают Windows, Office и Visual Studio, но и великолепные авторы, которые пишут отличную техническую документацию.

Моя же цель чуть-чуть другая – именно научить основам программирования простым и доступным языком. Я считаю, что именно такой должна быть первая книга и я надеюсь, что мне удалось добиться поставленной мной мне цели.

На озон эту книгу можно купить здесь: https://www.ozon.ru/context/detail/id/28293619/

Для программистов под iOS Apple предоставили хорошую бесплатную книгу, которую можно скачать в их магазине книг.

Там же есть хорошая и бесплатная книга по С++, правда для ее чтения вам скорей всего понадобиться Apple устройство (планшет, телефон или компьютер). У меня на телефоне есть эта книжка и в свободное время я иногда почитываю ее, чтобы освежать в памяти базу С++. Я пока еще помню, что говориться в этой книге, но просто освежить информацию, ведь если ей не пользоваться, то со временем можно и забыть.

Чистый код

Эту книгу я читал на английском, но в рунете я нашел книгу с таким же названием, таким же именем автора, но совершенно другим дизайном обложки. Но даже если это другая книга, я думаю, ее стоит почитать. Все рекомендации и советы о чистом коде, которые я видел, примерно одинаковы. Не думаю, что кто-то придумает что-то совершенно новое.

Эта книга содержит примеры на Java, но это не важно, потому что примеры не самое главное в этой книге. Уверен, что эту книгу смогут прочитать и программисты на Java, потому что тут мало специфичного, относительно именно этого языка. К тому же C# и Java очень похожи.

Эту книгу можно начинать читать сразу после того, как вы познакомитесь с языком программирования. Просто в книгах, в которых только начинают учить программировать очень часто жертвуют правилами чистоты только для того, чтобы код был нагляднее и не слишком замороченным. Редко проводят рефакторинг так, чтобы не было повторений и т.д. Я старался в Библии C# писать как можно аккуратнее, но все же жертвовал аккуратностью.

Итак, начинаем читать эту книгу сразу же, как только научились основам программирование и что самое главное, эту книгу можно читать как художественную литературу. В отличии от многих книг по программированию, которые нужно читать за компьютером и тут же пробовать все описываемое, эту можно читать в туалете, в кровати на ночь, в автобусе. Вам не нужен компьютер, чтобы что-то пробовать, достаточно просто читать и вникать в материал.

Так что это отличное программистское чтиво в свободное от компьютера время.

Книгу можно купить здесь: https://www.ozon.ru/context/detail/id/28336354/

Паттерны проектирования

Если ты начинающий программист и только закончил базовый курс или прочитал книгу с базовой информацией по программированию и последовал моему совету, и начал читать книгу по чистому коду, параллельно с ней я бы рекомендовал почитать Паттерны программирования из серии Head First. В этой книге паттерны расписаны нереально просто и понятно.

https://www.ozon.ru/context/detail/id/144233005/

Я видел в интернете не очень хорошие отзывы на эту книгу, и все они сводятся к тому, что книга детская и слишком простым языком описано. Интересно, а эти люди, когда учились в школе читать, тоже сразу же начинали с Войны и Мир, или все же сначала читали детские книги?

Конечно же, если у тебя уже есть опыт работы в несколько лет и ты по какой-то причине упустил тему паттернов программирования, то можно будет взять что-то, что написано более серьезным языком, а можно и в википедии все посмотреть. В викки есть все паттерны программирования и описаны коротко, без лишних описаний и болтовни, а сразу же все в самую суть.

Недавно купил книгу Паттерны программирования Сергея Теплякова. Не читал, потому что времени не оказалось читать, но просмотрел, и книга написана очень даже хорошо. Здесь меньше болтовни и больше дела, так что если боитесь, что вас будут пинать за то, что читаете детскую книгу, то почитайте книгу Сергея.

https://www.ozon.ru/context/detail/id/145616511/

В общем, второй этап становления программистом – это знакомится с чистым кодом и одновременно знакомимся с паттернами. Чистый код можно читать перед сном и вообще где угодно, а вот для паттернов лучше все же пробовать. В Head First версии особо примеров нет и ее тоже можно читать как художественную литературу, но все же лучше пробовать даже те примеры, которые там есть. В идеале было бы круто, если бы вы написали те же патерны с использованием C# или любого другого языка, который вы выбрали для себя. 

Совершенный код - (Макконнелл)

Это наверно следующий этап в изучении правил чистого кода. В принципе, здесь будут повторяться некоторые вещи, которые вы прочитаете в Чистом Коде, но все же это более такой хардкоре вариант чистоты.

Я не со всеми высказываниями согласен и как-то в своей рецензии на сайте говорил, что не могу согласиться с высказыванием, что вы должны писать с использованием языка. Он на примере показывает, как из одного языка можно сделать что-то похожее на другой. И если воспринимать это дословно, то можно и лоб расшибить.

В остальном книга описывает очень хорошие и полезные вещи, поэтому настоятельно рекомендую на третьем этапе изучения программирования. Опять же, эту книгу не обязательно читать за компьютером, чтобы что-то пробовать, это отличное программистское чтиво на ночь.

В издании, которое я читал автор признается, что после первого издания получил от читателей замечаний столько, что во втором было исправлено что-то около 200 недочетов и ошибок. Представляете? У нас в рунете хейтеры готовы за каждый косяк человека разнести, а тут просто прислали автору замечание, и он спокойно выпустил обновленную версию с 200 улучшениями.

В принципе, книгу Чистый код можно пропустить и не читать, а сразу же прыгнуть на Совершенный код, если хотите сэкономить время и деньги. Но обратного лучше не делать. Если вы прочитали Чистый код, пропускать Совершенный код я бы не советовал. В идеале все же желательно прочитать обе.

https://www.ozon.ru/context/detail/id/142768363/ Алгоритмы и структуры данных

Следующим этапом я бы посоветовал начать знакомится с алгоритмами и структурами данных. Когда я начинал изучать программирование много лет назад, то самая популярная рекомендация в этой категории была бы Кнут. Но я бы не стал рекомендовать эту книгу тем, у кого нет серьезной математической базы за спиной. Объяснения Кнута не отличаются доступностью. Его работы нереально круты, но и в то же время самые сложные из всего, что я читал. Каждую главу приходится читать и продумывать.

Если вы хороший математик или хотите острых ощущений для своего мозга, то без проблем можете почитать Кнута.

Я же посоветую книгу Стивена С. Скиена. https://www.ozon.ru/context/detail/id/143246191/ Или Структуры и алгоритмы обработки данных на C++ https://www.ozon.ru/context/detail/id/28267139/

Интересно, что я уже 10 лет программирую на C#, до этого был Delphi, но не читал ни одной книги по структурам данных или алгоритмам на этом языке. Большинство из того, что я читал – были на C++ или Java. Я пытался найти еще хотя бы пару книг для рекомендации из того, что читал сам – но к сожалению не смог нагуглить. Почти все книги остались в России, когда я переехал в Канаду. Здесь по алгоритмам я уже давно именно книг не читал.

Из последнего, что я прочитал и что относится к алгоритмам – Cracking the Coding Interview (автор Gayle Laakmann McDowell). В этой книге очень много таких логических задачек, которые часто спрашивают на интервью и их интересно решать самому (что я и делал), а потом читать в книге решение.

Эта книга отлично подойдет для саморазвития и заодно подготовит вас к прохождению интервью. Из очень крупных компаний я проходил только интервью в Амазон и вопросов, которые спрашивали меня в этой книге нет.

Книга на амазоне

Я читаю все книги по алгоритмам, которые мне попадаются. Я сейчас читаю Cracking the Coding Interview и уже прошел около 2/3 материала. Пока не знаю, что будет следующим, но точно буду что-то еще читать из алгоритмов. Это та тема, которую можно изучать и полировать до самой пенсии.

Конечно же я продолжаю изучать и новые языки, постоянно возвращаюсь и читаю книги даже по основам программирования, когда изучаю новый язык и не бросаюсь в воду с головой.

Специализированная тематика

Итак, ты познакомился с базой языка, изучаешь алгоритмы, дизайн паттерны и как писать красивый код. Что дальше? Следующим этапом уже идет литература на более специализированные вещи. Например, зная язык программирования C# уже можно писать какой-то код, но этого недостаточно. Даже для десктоп приложений очень часто нужен SQL, а для Web нужно понимание того, как работает MVC или фреймворк.

У меня на сайте есть бесплатный курс по программированию .NET Core веб приложений, я выкладываю много информации по SQL, которую можно найти у меня на сайте и здесь в виде бесплатных видеоуроков по оптимизации. В программировании так много всего, что еще можно изучить, что этому нет ни конца ни края. В зависимости от того, в какую сферу вы идете, количество книг и необходимого материала может быть огромным.

Опять же, если говорить про Web, то тут есть еще HTML, JavaScript, CSS. Все это достаточно большие темы, изучение которых очень желательны.

Если говорить о разработке игр, то тут могут быть такие направления как Unity или DirectX. Правда во втором случае у вас основным языком должен быть C++, а не C#. Хотя я и не говорю ни о каком языке конкретно, пусть и начинал со своей Библии C#, остальное все же подходит программистам на любых языках.

Видео версия этой заметки на youtube:



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне