Один из ведущих разработчиков программного обеспечения VOLO и заядлый читатель, Рубен Маркосян, составил список для чтения для начинающих разработчиков программного обеспечения с целью помочь им стать лучшими профессионалами и продвинуться по карьерной лестнице.

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

Теперь, если вы запустите поиск в Google «книги, которые необходимо прочитать программистам», вы неизбежно встретите списки, в которые будут входить такие книги, как «Книга дяди Боба», также известного как Роберт К. Мартин, Чистый код, Чистый код Coder и Чистая архитектура; Code Complete Стива МакКоннелла; Рефакторинг Фаулера и Бека; Программист-прагматик Ханта и Томаса; Шаблоны проектирования Гаммы, Влиссидеса, Джонсона и Хелма; Введение в алгоритмы Кормена и другие. Хотя все они превосходны, новичку они могут показаться немного устрашающими из-за их огромного объема и глубины предмета, который они охватывают. Исключением является Чистый код - замечательная книга, которой вы сможете насладиться после знакомства с основами программирования.

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

Итак, начнем, без особого порядка важности.

1. Код: скрытый язык компьютерного оборудования и программного обеспечения, Чарльз Петцольд.

Код знакомит вас с внутренним устройством компьютера - как он «думает» и как работает. Он начинается с введения общей концепции «кодов», а также кодирования и декодирования информации посредством кода Морзе и алфавита Брайля, вплоть до двоичной системы и булевой алгебры.

Вся книга иллюстрирована и проста до гениальности. Он позволяет вам понять, что происходит «под капотом» компьютеров и других интеллектуальных машин, начиная с демонстрации того, как сделать элементарный калькулятор, чтобы в конечном итоге научить вас, как собрать компьютер с нуля (голыми руками) и запустить процессоры. .

Если вы когда-нибудь встречали кого-то, кто не просто знает компьютеры, но «чувствует» их, вы остро чувствуете, что этот человек обладает такими глубокими знаниями и пониманием внутренних вычислительных процессов, что для них это почти интуитивно понятно. Это именно то, что Code ставит перед своими читателями.

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

2. Информатика от Владстона Феррейры Филью

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

Я считаю его отличным выбором для начинающих программистов и особенно для тех, кто посещает онлайн-курсы, такие как «Как стать программистом за 3 месяца и получить работу» - они никогда не охватывают основы CS, как Computer Science Distilled от Филхо.

3. Алгоритмы грокинга Адитьи Бхаргавы.

Прежде чем мы перейдем к рассмотрению, я хочу еще раз упомянуть книгу Кормена и др. Введение в алгоритмы. Да, он превосходный и поразительно всеобъемлющий - в конце концов, это 1300 страниц, из которых около трети посвящено дискретной математике. Теперь, можете ли вы, честное слово, сказать, что прочитали его от корки до корки? А если да, порекомендовали бы вы его новичку?

Если вы хотите, чтобы кто-то объяснил вам алгоритмы, как если бы вам было 6 лет, нет лучшего варианта, чем Grokking Algorithms, 250-страничное иллюстрированное, удобное для новичков руководство, которое научит вас применять алгоритмы в повседневных проблемах, с которыми вы сталкиваетесь как программист. Автор действительно придумал гениальный способ объяснить сложные концепции, такие как алгоритмы и структуры данных, на простом языке с причудливыми примерами из реального мира.

4. «Думай как программист». Автор Антон Спраул.

Эта книга является исключением из правила, которое я установил выше, в том смысле, что она не зависит от языка - автор использует примеры C ++, чтобы донести до себя охваченные концепции программирования. Тем не менее, это не книга о C ++, она о решении проблем, и ее концепции творческого мышления выходят за рамки какого-либо конкретного языка. Если не обращать внимания на раздел книги «Указатели», остальное можно применить к любому языку программирования.

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

5. Полное руководство по карьере разработчика программного обеспечения от Джона Сонмеза.

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

Конечно, полномочия автора Джона Сонмеза как программиста часто оспариваются. Некоторые говорят, что он больше похож на продавца змеиного масла, чем на программиста. И он, кажется, приглашает и / или вызывает довольно много споров вокруг себя и своего бренда в социальных сетях. Я вижу это так - этот человек написал несколько бестселлеров, успешно присутствует в социальных сетях и занимается бизнесом. Другими словами, он смог добиться именно того, что проповедует в своих книгах. Если это не свидетельство авторитета книги, я не знаю, что именно.

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

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