Подборка литературы для backend разработчика
Всем добрый день! Когда я писал эту статью, я писал ее для php, хотя уже тогда понимал, что, то что я подбираю, полезно не только пыхарям.
Архитектура
- Рефакторинг гуру(сайт с енотиком). Там и про паттерны и про рефакторинг. Все хорошее статьи книги и возможно видеокурс(я его не смотрел). Как раз для тех кто начинает улучшать качество своего кода Остальные книги для тех кто уж "понюхал пороха":
- Роберт Мартин: Чистая архитектура. Искусство разработки программного обеспечения.
- М. Фаулер "Рефакторинг. Улучшение существующего кода"
- Роберт Мартин Чистый код: создание, анализ и рефакторинг - мне предудщая книга ближе, но как там довольно много интересный вещей, использую как справочник "хороших практик", но при этом эта книга хороша и для полного прочтения
- Не рекомендую для начала(только после такого прокачайтесь) читать банду 4-х. Книга крутая, но для новичков может быть сложной.
- Майкл Нейгард Release it! Проектирование и дизайн ПО для тех, кому не всё равно. - просто интересная книжка. Не рекомендую читать для обучения.
- Руководство по паттернам микросервисам, очень крутое https://docs.microsoft.com/ru-ru/azure/architecture/reference-architectures/saga/saga
БД
- mysql документация
- Вадим Ткаченко, Бэрон Шварц, Петр Зайцев - MySQL по максимуму
- Ян Робинсон, Джим Вебер, Эмиль Эифрем "Графовые базы данных. Новые возможности для работы со связанными данными" - если интересуют графовые базы данных.
- Postgresql - хорошая документация переведенная на русский язык.
- Все книги postgrespro - https://postgrespro.ru/education/books
Языки
Общее для некоторых языков(php, python, nodejs) Для людей, которым сложно дается документация на первое время рекомендую книжки Вадима Панова. Он довольно неплохо все разжевывает, чтобы начать программировать, но там только базовые вещи, которые нужно позднее добавлять выдержками из документации и других источников
PHP
Литературу под php надо подбирать очень строго, потому что некоторые учебники учат программировать в стиле "старого php", что нам не подходит. Может подойти для начальных этапов, чтобы в принципе позапускать программы, но к реальным приложениям это имеет малое отношение, хоть такие приложения и встречаются (даже в простых фриланс проектах, популярным становится laravel).
- PHP и MySQL. Разработка веб-приложений, Денис Колисниченко. - ЭТУ КНИГУ РЕКОМЕНДУЮ ТОЛЬКО В ТОМ СЛУЧАЕ ЕСЛИ ЧУВСТВУЙТЕ ЧТО НЕ ИДЕТ НИЧЕГО ДРУГОЕ. В этой книге не будет ничего про то, что нужно бекенд разработчику. Но сама книжка относительно простая. Ее прочтение может, помочь вам начать и уже читать что-то более интересное.
- https://github.com/getjump/ru-php-the-right-way, https://phptherightway.com/, http://phptherightway.ru/ - еще раз порекомендую это
- Мэтт Зандстра: PHP 8. Объекты, шаблоны и методики программирования - по отзыву моего друга в качестве совсем первой книги это тяжело. Рекомендую ее после того как вы уже поняли что такое классы.
- Domain-Driven Design in PHP by Carlos Buenosvinos (Author), Christian Soronellas (Author), Keyvan Akbary (Author) - для профи
- Михаил Фленов "PHP глазами хакера" - любопытная книга, но не для обучения разработке.
- https://thephpleague.com/ - полезный ресурс. В основном там библиотеки, но все равно круто.
- https://t.me/beerphp - крутой чувак, очень доступно все рассказывает.
Фреймворки
Немного пройдемся по фреймворкам. Как правило, документация лучшая книга. Ее довольно понятно пишут к популярным фреймворкам. Но где-то возможно объяснено получше/понагляднее/проще. Я рассмотрю только symfony/laravel.
Symfony
- На официальном сайте очень много книг, в том числе перевод документации https://symfony.com/doc/current/the-fast-track/ru/index.html.
- Matthians Noback - один год симфони, немного старовата, но возможно там объяснят некоторые тонкости, которые непонятны. Потому как справочник может сгодиться.
Laravel
- Документация laravel неплохо написана и есть переводы на русский. Аналогично книга по symfony
- Владимир Дронов laravel 8 быстрая разработка веб-сайтов на php - Это рекомендация от Максима, который был в моем посте про ментороства. Он сказал, что когда начинал, ему было понятно. То есть для начинающих.
- Стаффер М: Laravel. Полное руководство. 2-е издание - если вы понимайте документацию laravel и понимайте что там написана, то не думаю что эта книга стоит того, чтобы ее специально покупать. Но если возникают трудности, возможно эта книга вам поможет их преодолеть.
- https://laravel-beyond-crud.com/ - к сожалению человек не продает книгу отдельно. Если вам удастся ее раздобыть, или найти посты на основе нее, то книга стоящая дла начинающих.
- https://github.com/alexeymezenin/laravel-best-practices
Python
То что я сейчас скажу про python это не про ml, а про web/desktop/простые скрипты. Я очень долго искал хорошие книги по python. Меня очень сильно раздражает, когда в python рекламируют, как "простой язык для обучения". Напоминает старую историю про то, что залесть на слона бесплатно, а вот слезть... Python действительно в некоторых аспектах на начале проще чем, например, с++/java, а некоторым даже кажется проще чем php. Но руководств к тому как писать чистый код на python я не нашел. При этом язык живет своей жизнью и реализует популярные концепции(например ООП) очень по-своему. Насколько я вижу в интернете, многих питонситов это устраивает. Я ничего не имею против, но я начал писать эту статью, потому что занимаюсь менторством и ко мне часто приходят начинающие и говорят фразу, что "я начал изучать python, потому что это самый популярный и простой язык", хотя на деле они просто не смогли определиться и понять что им надо. Для меня это звучит как "я хотел научиться плавать, и услышал, что лодка мне в этом поможет".
Мое мнение, что питон далеко не для всех, если вы собрались учить его для участия в больших проектах(для мелких проектов/мат вычислений, то что я написал практически не имеет значения).
Если вы все же решились изучать python для веб вакансии. То вот небольшой план(все конечно должно очень сильно миксоваться с практикой)
Начало
- Любая книга вроде этой - https://www.litres.ru/allen-b-dauni/osnovy-python-nauchites-dumat-kak-programmist-64838906/ Главное, чтобы +/- доступно(для вас) излагались основные понятия(циклы, основные типы данных, итераторы, генераторы, ООП, многопоточка). Можете загуглить содержания этой книги, чтобы лучше понять о чем я говорю. Но если вы осилите оф. документацию, до это будет даже лучше.
- https://digitology.tech/docs/python_3/tutorial/index.html - вот собственно переделенная документация(https://www.python.org/ - если на английском вам достаточно).
Продолжение
- Автостопом по python - на мой взгляд очень крутая книга, которая после знания основ даст понимание что делать дальше(главу для профи порекомендую ниже)
- Чистый python - https://www.litres.ru/beyder-d/chistyy-python-tonkosti-programmirovaniya-dlya-profi-39123332/ Неплохая книга, но возможно будет скучной.
Профи
То из-за чего я начал этот пост, долгое время не мог понять куда копать. Привыкший к IOC-контенерам, я не понимал как питонисты организуют свой код в больших проектах. Читал вот это https://habr.com/ru/post/461511/ и не понимал что происходит. Натыкался на разные подходы в том числе наткнулся на вот это видео - https://www.youtube.com/watch?v=imW-trt0i9I , которое прояснило для меня некоторые моменты. По итогу наткунлся на вот эту книгу
- https://www.litres.ru/deyn-hillard/sekrety-python-pro-pdf-epub-64083647/ - на мой взгляд хорошая книга.
Остальное
Если питонисты откомментируют этот раздел я буду признателен. И также скину несколько ресурсов по python:
- https://www.youtube.com/watch?v=8hscvGY7EhI - прикольный чувак, который хорошо шарит в python и все разжевывает
- https://digitology.tech/ - хороший русскоязычный ресурс по джанго
Golang
По аналогии с python очень долго не мог найти хорошие ресурсы
- Программирование на Go. Разработка приложений XXI века | Саммерфильд Марк
- https://www.litres.ru/mihalis-cukalos-27713196/golang-dlya-profi-64073297/ - Golang для профи
- https://dev.to/ankit01oss/7-github-projects-to-make-you-a-better-go-developer-2nmh - просмотрите все репозитории, там и фремворки и структура проектов и кучу всего еще
- Михалис Цукало Golang для профи. - Для тех кто столкнется/захочет перейти в go. Эта книга мне очень понравилась, при переходе на язык go. Есть неплохая Марк Саммерфильд Программирование на Go. Разработка приложений XXI века - Если в дальнешем заинтересует/столкнетесь в работе с golang. Но это больше.
Остальное
Здесь просто порекомендую книги, которые мне очень понравились. Но также говорю, что сейчас документацию к популярным технологиям пишут неплохую и как правило оформляют в виде книг.
- Если будете ударяться в javascript. Серия книг "Вы не знайте JS", очень хорошая.
- Шукла Пранав, Кумар Шарат Elasticsearch, Kibana, Logstash и поисковые системы нового поколения - хороший пересказ документации к elastic :)
- Адитья Бхаргава. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих - в своем плане, я ни слова не сказал об алгоритмах. При этом на деле некоторые базы computer science и алгоритмы желательны. Это не всегда понадобится вам в работе в явном виде и php-шников редко спрашивают алгоритмы, тем не менее это полезно.
- И в заключение. Не стоит пугаться такого огромного списка литератры. Далеко не все вам понадобится для первого рабочего места(причем даже и для второго и для третьего). Некоторые вещи я еще не дочитал, некоторые вам могут не понадобится. Некоторые из этих книг, я прочел недавно.