7 обязательных книг для программистов

05.05.2020
Posted in blog-article
05.05.2020 admin

7 обязательных книг для программистов

Справедливо замечено, что кодинг — непростая задача для креативности. Что же нужно делать для развития этого качества? Ответ кроется в книгах, представленных в нашем свежем переводе)

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

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

Это то, чем в действительности занимаются программисты: мы делаем что-то из ничего.

Дайте нам пустой текстовый редактор, и мы вернем вам самоуправляемые машины, Интернет и гиперреалистичную виртуальную реальность.

***

Оттачивание своего программистского мастерства дело нелегкое, но мы можем развлечься даже здесь.

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

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

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

«Код. Тайный язык информатики» — Чарльз Петцольд

Эта книга научит тебя не программированию, а как планированию работы в tech-индустрии.

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

«Процессор компьютера совершает до иступления простые вещи — он перемещает байт из памяти к протоколу (?), добавляет байт к другому байту, перемещает результат обратно в память. Единственная причина, по которой случается что-либо важное — это то, что все эти операции происходят очень быстро. Как говорил Роберт Нойс: «После того, как смиряешься с существованием наносекунд, компьютерные операции становятся довольно простыми.»

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

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

«Программист-прагматик. Путь от подмастерья к мастеру» — Эндрю Хант, Давид Томас

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

Эти советы в большей мере сосредоточены на принципах программирования, на его основе, совместном поиске.

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

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

Некоторые примеры:

Совет 11: не повторяйся

Совет 30: Ты можешь написать идеальное ПО

Совет 44: Не программируй от случая к случаю

Совет 50: Не используй мудреный код если ты его не понимаешь

Совет 70: Подписывай свою работу

«Программист-прагматик» дает бесценные советы для всех, кто работает с кодом, и эта книга должна быть в библиотеке любого программиста.

Алгоритмы: построение и анализ — Томас Кормен, Чарльз Эрик Лейзерсон, Рональд Линн Ривест, Клиффорд Штайн

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

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

Конечно, ты можешь выжить после нескольких лет работы в качестве инженера ПО без запоминания the time complexity of QuickSort. Ты можешь выжить без умения кодить DFS без его вставки из Stack Overflow или использования встроенной библиотеки.

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

Ты не можешь развиваться как профессионал, если ты не знаком с содержанием этой книги (или любая друга книга про алгоритмы на твое усмотрение).

«Искусство программирования. Том 1» — Дональд Эрвин Кнут

Как и в предыдущей случае, освоить «Искусство компьютерного программирования» — нелегкая задача. Немногим удалось последовательно изучить всю книгу. Еще меньше вникли во всю ту математику, которая представлена в первых главах.

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

Эта книга — настоящий вызов для ума и упорства, но также это и огромная кладезь знаний.

Билл Гейтс сказал, что если ты изучил эту книгу, — тебе следует послать ему свое резюме. Стоит попытаться, не так ли?

«Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию» — Лакман Макдауэлл Гэйл

Ищешь вакансию разработчика? Каким бы твой ответ ни был, книга все равно стоящая.

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

В реальном мире, неполадки в ПО не приходят вместе с их решением.

После объяснения основ структуры данных и алгоритмов ( и кстати, не пропускай предыдущие книги), автор включил еще 2 раздела в конце книги, где представлены задачи средней и высокой степени трудности.

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

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

«Мифический человеко-месяц» — Фредерик Брукс

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

Идеи, представленные в этой книге, расширят твое видение того, что работает и что не работает в контексте разработки ПО.

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

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

Эта отличная книга для прочтения самим, а далее — для рекомендации твоему менеджеру.

«Алгоритмы для жизни. Простые способы принимать верные решения» — Брайан Кристиан и Том Гриффитс

Последняя книга в этом списке не до конца связана с написанием кода, скорее с проверкой техники решения задач, развившейся из определенных алгоритмов (с которыми, если ты дошел до конца этого списка, ты наверное уже сталкивался).

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

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

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Contact

Давайте работать вместе!

Пишите нам и найдем точки соприкосновения, может станем партнерами, а может поможем вам зайти в нашу чудесную нишу

Вы разработчик?

Пишите! Нам постоянно нужны новые кадры, либо можем помочь в продвижении вашего приложения

Новичок?

Поможем быстро войти в нишу, не тратя годы на понимание

Давно в нише?

Рады будем пообщаться как на темы whitehat, так и blackhat тематики ^_^ + всегда есть что обсудить по поводу рекламных сетей

ПИШИ В TELEGRAM!

Contact