Начинающие свой путь в сфере IT могут быть шокированы открывающимися перед ними горизонтами возможностей и объемами информации. Множество направлений, бесконечное число книг и онлайн-курсов. С чего начать? На что обратить внимание и к чему обратиться в первую очередь, а что изучать далее? Вопросов много и вот эта непонятность может стать причиной ступора. Или завести в ложном направлении, что в итоге может послужить причиной того, что человек просто бросит, так толком и не начав изучение. Решив, что это слишком сложно и лучше заняться чем-то другим. Кстати, если человек все же бросит, вероятно, это действительно не его. Программирование, как яркий представитель мира IT, на мой взгляд, с одной стороны доступно каждому, а с другой требует если и не особого склада ума, то как минимум особого отношения к тому, что изучаешь и делаешь. И вот без этого реально тут будет сложно. Но такое отношение можно выработать, оно не дается с рождения.
В данной статье у меня нет цели кого-то чему-то учить. Мне интересно вспомнить свой путь и рассказать о тех книгах, которые помогли в самом начале. Или на которые я обратил внимание в дальнейшем и затем советовал многим из тех, кто спрашивал, а что бы им такого почитать в качестве основы.
Книг будет не так уж много. Но каждая из них по своему значима как для меня, так и потенциально для тех, кто захочет погрузиться в пучины мира программирования и IT.
TL;DR: Список книг из статьи
Петцольд Ч. "Код. Тайный язык информатики" - как всё устроено на уровне битов и логических схем;
Деревенец О. "Песни о Паскале" - хорошая "грунтовка" для понимания основ программирования. Но очень на любителя, Паскаль, все дела;
Столяров А. "Программирование. Введение в профессию" - глубокий системный учебник по программированию в целом;
Брукшир Г. "Компьютерные науки. Базовый курс" - академический, но доступный, обзор компьютерных наук.
Код. Тайный язык информатики

А началось все с книги Чарльза Петцольда под названием "Код. Тайный язык информатики". И она не о программировании. Я бы сказал, что она об основах информатики. Или, как это называется на западе, компьютерных наук. Мне этот термин нравится намного больше и кажется более внятным. Тем более, что у обывателей информатика часто ассоциируется со школьным курсом, где изучают не пойми что, вроде работы с Вордом или рисованием в Паинте (далеко не всегда, но бывает).
В книге Петцольда в доступной и понятной форме рассказывается о том, что такое информация, как исторически люди учились с ней обращаться, кодировать, чтобы использовать и передавать ее. От самых азов, до принципов построения современных компьютерных систем. Точнее основ, на которых они построены. Шикарная книга, к тому же не требующая каких-то особых знания перед тем, как приступить к чтению. Очень хороша для начинающих. И да, я далеко не все понимал при первом прочтении. Даже не смог дочитать до конца. Тем не менее, какое-то понимание основ дала именно она. Парадокс, но факт.
На мой взгляд, с данной книгой не помешает ознакомиться каждому, кто желает вступить на путь IT-специалиста. Азы, интересно и понятно.
Песни о Паскале

Следующей книгой, которая уже позволила мне погрузиться в мир программирования, были "Песни о Паскале" Олега Деревенца. Да-да, сейчас я буду стараться уворачиваться от летящих в меня помидоров, но начинал я с Паскаля и никогда об этом не жалел. И даже советовал другим, хотя тут есть нюансы. Но о них как-нибудь в другой раз.
Мне нравится метафора, которую приводит автор книги у себя на сайте:
... приходилось ли вам красить кирпичную или бетонную стену? Да? Тогда вы уже уловили мой намёк: первое, что приходит в голову неопытному маляру, — нанести толстый слой желаемой краски прямо на стену. Уродливый результат этой затеи лучше никому не видеть, и благо, что этот позор сам по себе скоро осыпется. Правильная окраска включает в себя предварительное шпатлевание стены и нанесение грунтовки. И хотя этот подготовительный слой не блещет красотой, но зато краска любого цвета ляжет на него гладко и прочно. Не экономьте на грунтовке!
Поэтому, почему бы и нет? Тем не менее, желающие сегодня могут начинать с чего-то другого. Самые отчаянные с C/C++, а более нетерпеливые с Python, по которому есть множество хороших книг и отличные бесплатные курсы (например, набившие уже всем оскомину "Поколение Python", при этом реально задавшие определенный уровень качества). Или вообще с чего-то более нового и модного. Было бы желание.
Именно "Песни" научили меня основам. Что такое переменная, условные операторы, циклы, функции и процедуры и многое, многое другое. Я учил не Паскаль, я изучал программирование, используя Паскаль как инструмент. Впервые я писал программы, компилировал, разбирался с отладкой. Я оценил работу с командной строкой, так как программы имели консольный интерфейс. Потом не раз говорил спасибо за это, за понимание ценности консоли.
Эта книга отличный пример того, как автор писал для детей. Или как для детей. Все ясно и понятно, разжевано, постепенно, в меру теории и достаточно практики. Такие книги редкость. Была в то время еще одна по Джаве, "Программирование на Java для детей, родителей, бабушек и дедушек" Якова Файна. Ее я тоже пробовал, в целом неплохо, но не понравился сам язык. Так бывает.
Книга для тех, кто готов даже сегодня начать изучать программирование с Паскаля. Прочие могут смело не обращать на нее внимания. В конце концов, я ее читал больше 10 лет назад. Сейчас вряд ли взял за основу.
Программирование. Введение в профессию

Чуть позже, в поисках других хороших книг по изучению программирования (не какого-то языка программирования, а именно программирования в целом, это разные вещи), я наткнулся на сайт Андрея Столярова, который писал на основе краудфандинга, то есть собирая добровольные пожертвования, книгу "Программирование. Введение в профессию". Кажется, я узнал об этом, когда первый том, на тот момент еще планируемого четырехтомника, уже был готов.
Столяров человек очень своеобразный. Относиться к нему можно по разному. За много лет до того я уже встречал подобного человека, но немного в иной сфере. Тоже очень своеобразного и противоречивого, но при этом написавшего великолепную книгу. Так и Столяров. Не важно, как вы к нему относитесь, но отрицать, что он сумел написать отличную книгу, аналогов которой на русском языке просто нет (если я ошибаюсь, всегда рад узнать о других подобных книгах). Да, она может быть не идеальна. Его подход, выбор и последовательность языков для обучения можно оспаривать и обсуждать. Но это все-таки действительно полноценный учебник по программированию. Не по какому-то языку программирования, чем грешит подавляющее большинство книг и учебников, а именно по программированию в целом. Это важно.
Книги спорные, но я все еще готов их советовать вступающим на путь программирования. Да, будет сложно. Зато комплексный подход, внимание к деталям и скрупулёзность автора перевешивают возможные минусы. Альтернативу найти как минимум сложно.
Скажу честно, я дважды брался за первый том, но полностью его так и не смог осилить. В первый раз запнулся на математике, в которой никогда не был силен, а во второй раз просто в какой-то момент остановился и переключился на что-то другое. Но тешу себя надеждой хотя бы с третьей попытки одолеть. Так как считаю книгу сложной, но очень полезной. Тем более у меня есть опыт одоления с третьей попытки еще одной книги.
Компьютерные науки. Базовый курс

Это 13-е издание книги "Компьютерные науки. Базовый курс" Гленна Брукшира. Основы компьютерных наук, объемный талмуд почти на 1000 страниц, затрагивающий все базовые аспекты, начиная от организации хранения и обработки данных и заканчивая технологиями разработки программного обеспечения и теории вычислений. Полноценный текстовый курс по основам компьютерных наук. С третье попытки я его одолел, делая заметки и уже понимая многое из того, что читал. Собственно, читал я ее в прошлом году, имея приличный бекграунд и уже не сталкиваясь с особыми сложностями в процессе.

Можно взглянуть на краткое содержание, чтобы увидеть полноту освещаемых авторами тем и объемы материала.
Наряду с книгой Петцольда можно рекомендовать начинающим, с целью познать основы мира компьютерных наук, чтобы затем думать, куда двигаться дальше.
Подытожим
"Песни о Паскале" и книги Столярова бесплатно доступны на сайтах авторов:
Остальные книги, которые я упоминал в статье, при желании тоже несложно найти на просторах интернета.
Безусловно, это далеко не все и не единственные книги по основам. Есть серии "Теоретический минимум по ..." и "Грокаем ...", хорошие книги по алгоритмам, по сетям (например, Олифер Виктор и Наталья "Компьютерные сети"), есть серия "Классика computer science" (Таненбаум, Руссинович и прочие). Мне приходилось большинство из них листать и даже фрагментарно читать. Но так сложилось, что в основу моих начинаний легли именно те книги, о которых я рассказал. Мой путь не уникальный, ни в коем случае не единственно верный, но, может быть, кому-то его описание поможет сделать первые шаги.
На Хабре есть множество людей, которые тоже прошли большой путь становления программиста или специалиста в ином направлении сферы IT. Поделитесь, какие книги помогли вам в начале пути, с чего приходилось начинать, что можете посоветовать начинающим. Потому что вопрос с чего начать, что почитать, звучит очень часто. А отвечать сложно, выбор не так уж и велик, как кажется на первый взгляд. Особенно для человека, у которого уже есть большой опыт и сильно мешает "проклятие знания".
Комментарии (5)

vgbege
13.03.2026 19:15о, да, была у нас стотыщмильонов лет назад песня о паскале :)
когда уходит любовь, когда умирают львы
и засыхают все аленькие цветки
бледные программисты сидят, как в бочке кефаль
она приходит сюда и грузит турбо-паскаль
она закрывает глаза, она шевелит губами
когда перед ней плывут строчек ряды на экране
кроме машины для всех она холодна, как сталь
спокойной ночи всем, кто знает турбо-паскаль! :)

Sci_psy
13.03.2026 19:15«Код» прочел буквально в прошлом году — шикарная книга.
Остальные взял на заметку, спасибо
vadimr
Нет какого-то определённого "пути в IT", потому что само по себе IT – понятие крайне расплывчатое и неопределённое. В зависимости от того, чему именно учиться, траектория обучения будет разная и результат будет разный. Системный программист учится одному, разработчик информационных систем – другому, а прикладной математик – третьему. А абстрактных просто "программистов" давным-давно нет.
Как понять требуемый результат заранее? Да в общем-то никак. Дело случая, чему и у кого придётся учиться. А потом на работе, если придётся работать в большой организации, то дай бог если выпадет счастье хотя бы отдалённо понимать, чем и как занимается соседний отдел.
IgorLutiy Автор
Действительно, "путь в IT" это некая абстракция. Речь идет в первую очередь о программировании. То что оно бывает разным - тоже верно. Но в любой специальности есть некие основы, базовые знания, которые будут полезны вне зависимости от узкой специализации.
Например, я юрист по основному образованию. У нас база это предмет "Теория государства и права". Вот просто основа основ. Не имеет значения какая будет у тебя специализация или кем ты будешь в рамках специальности работать в будущем, но без знаний этого предмета будет реально тяжело. Каждая новая отрасль, которую придется изучать будет как что-то новое, что нужно будет изучать с нуля, без знаний и понимания теории. А уже на эти знания легче будет наложить другие, более специфические.
vadimr
Право – это абстрактная конструкция, как и математика. Оно начинается с аксиом, которые придуманы по большому счёту произвольно – просто так исторически сложилось. Поэтому можно сказать, что что-то определённое лежит в фундаменте (хотя математику, как выяснилось сто лет назад, оказалось можно строить совершенно разными способами на разных фундаментах).
Инженерные дисциплины, к которым относится программирование в наиболее общем понимании, устроены по-другому. Это просто набор более или менее частных приёмов, позволяющих решать конкретную инженерную задачу в конкретных условиях. Вот я, например, закончил электротехнический университет, и при этом из теории электропроводности в силу учебной программы изучал только теорию электропроводности металлов и полупроводников. Хотя такие среды, как диэлектрики, плазма, вакуум, растворы и т.д. тоже весьма уважаемы и важны для предполагаемой общности, но, как говорил Шерлок Холмс, "мне в моём деле это не пригодится".
Что касается программирования, то лично для меня, в силу полученной мною конкретной программистской специальности определённого направления и сложившегося отчасти из этого образа мыслей, программирование лежит на трёх китах – конструировании программ, теории автоматов и теории формальных грамматик. Соответственно, лучшим введением в специальность я считаю SICP, причём первого издания (как следствие – язык Scheme, или – на более раннем этапе – Лого). При этом большинство практикующих программистов упомянутые предметы не изучают, и вы, в частности, их не вспоминали в своей статье. Это нормально, потому что большинству вообще не нужен глубокий фундамент. А для других направлений IT глубокий фундамент устроен по-другому.
Когда человек занят репликацией серверов, то ему нафиг не нужно думать, как натуральные числа рождаются из вложенных пустых множеств. А вот если придётся доказывать корректность синтеза программного кода, то это уже оказывается важно. Нет общего подхода, так как нет единых задач.