Книга программирования для начинающих

— Знаю, знаю. Вы здесь ищете лучшую книгу по программированию для начинающих (если вы пришли сюда из Google). Единственная книга. Которая, так сказать, управляет ими всеми. Жаль, что я не могу дать тебе это. Жаль, что никто не может. Но вот в чем дело. Программирование—это такая сложная штука, что любой, кто предлагает подобную книгу, продает вам змеиное масло. Существуют буткемпы и четырехлетние дипломы CS, посвященные подготовке вас к карьере программиста. Ни одна книга не сможет этого оправдать. И это применимо, даже если вы ищете хобби, а не карьеру.

Итак, в этой статье я дам вам несколько рекомендаций по книге. К концу я предложу много таких.

Но сначала я сделаю то, чего вы не увидите в других постах о книгах для начинающих программистов. Я дам вам окончательную последовательность книг для чтения вместе с объяснением, почему эти книги, в таком порядке. Затем я предложу обязательное: “Вот все виды книг, которые вы могли бы прочитать.”

Какая лучшая книга по программированию для начинающих?

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

Эта книга, Он также строит и ведет вас через ваш первый проект.

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

Обучение программированию По Книгам: Чертеж

Хорошо, я утверждал, что это делает его хорошим кандидатом. Но если у вас есть кость скептика в вашем теле, вы, вероятно, уже произносите слова“, — говорит вы. Доказывать это.”

Есть Много Места. Чтобы Охватить. И Это Охватывает Больше. Чем Другие Книги

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

Первое, что нужно учитывать, — это то, что человек не просто “учится программированию.”

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

И, помимо этого, есть и другие соображения. Особенно если вы рассматриваете принятие программирования в качестве карьеры или побочной суеты. Вот эти соображения:

  1. С какого языка программирования вы должны начать и практиковаться?
  2. Помимо того, что вы просто заставляете компьютер бип-бупать, когда вы этого хотите, как вы хорошо программируете?
  3. Как вы подписываетесь на работу в проектах с открытым исходным кодом или находите и проходите собеседование для работы программистом?

  4. Как вы готовитесь к карьере программиста и управляете ею?
  5. Как лучше всего адаптироваться к миру корпоративного программирования?

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

Итак, вернемся к красноречивому JavaScript. Мой выбор этой книги дает свой собственный ответ на вопрос № 1, и притом хороший. JavaScript-достаточно доступный язык, и он также шагает по полю с точки зрения популярности. Изучите его, и у вас будет востребованный навык и вы будете готовы к веб-разработке.

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

Составление плана обучения

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

Вот как я бы предложил подойти к этому вопросу: поймите, что существуют категории книг по программированию. И выбирайте соответственно.

(Имейте в виду, что они не являются взаимоисключающими—некоторые , например Eloquent JavaScript, могут претендовать на более чем одну категорию. Но будет справедливо заявить, что одна категория лучше всего описывает их.)

Вот категории, о которых я думаю, когда речь заходит о книгах по программированию:

  1. Вводные или общие принципы программирования.
  2. Введение в язык/технический стек и практические рекомендации (или, что еще более детализировано. Охватывающие что-то вроде редактора кода или конкретной библиотеки или фреймворка).
  3. Книги о том. Как стать лучшим программистом. Они обычно более промежуточные/продвинутые, чем первая категория в этом списке.
  4. Руководство по применению для программирования рабочих мест и интервьюирования.
  5. Навигация по корпоративным/профессиональным программным проектам и командам.

Теперь, имея это в виду, я могу дать более подробную рекомендацию. Для начала вам понадобятся категории 1 и 2, как отдельные книги, так и объединенные. Но если вы смотрите на карьеру развития, вам нужны все они.

Для остальной части этого поста я порекомендую несколько книг в каждой категории.

  1. Вводные или Общие принципы программирования
  2. Введение в языковой/Технический стек

    1. Front End/Веб-Разработка

      1. язык JavaScript
      2. Рубин
      3. Питон
      4. PHP
      5. HTML/CSS/Разметка
    2. Корпоративные языки

      1. С
      2. C++
      3. Ява
      4. C# (.NET)
    3. Мобильная разработка

      1. Swift/iOS
      2. Android
  3. Совершенствуюсь Как Всесторонний программист
  4. Собеседование и подача заявок на работу программиста
  5. Навигация по Корпоративным/Профессиональным Заданиям по Разработке программного обеспечения

1. Вводные или Общие принципы программирования

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

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

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

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

2. Введение в Языковой/Технический стек

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

У вас вполне могут быть свои собственные причины для того. Чтобы выучить какой-то другой язык/технический стек. Если это так, просто замените одну из других книг здесь моей рекомендацией Красноречивого JavaScript.

Front End/Веб-Разработка

Первый подраздел здесь включает в себя так называемые интерфейсные языки-языки/стеки. Которые помогают вам изучать веб-разработку.

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

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

язык JavaScript

Я уже упоминал о Красноречивом JavaScript, но перечислю здесь и пару других книг.

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

Далее, у нас есть книга в серии Head First: Head First JavaScript Programming. Серия Head First — это проверенная серия книг, знакомящих вас с языками программирования и концепциями. И вы увидите больше из них на протяжении всего руководства. Подумайте об этом как об очень узкой нише/специфическом “X для манекенов” в мире программирования.

Рубин

Ruby-это еще один язык программирования, общий для веб-разработки. В отличие от JavaScript, Ruby-это не интерфейсный язык, а язык программирования общего назначения. Который люди используют для веб-разработки. Вы столкнетесь с ним много в кругах стартапов, и вы также обнаружите. Что он часто неотделим от своего самого популярного фреймворка Rails. Таким образом, вы будете слышать о Ruby on Rails (Ruby with the Rails web framework) почти так же часто. Как и о самом Ruby.

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

Другое руководство, которое я вам здесь предложу, — это учебник Ruby on Rails. Как я уже упоминал ранее, Ruby часто неотделим от Rails в контекстах веб-разработки. Поэтому, если вы хотите научиться веб-разработке, вам следует серьезно подумать о том. Чтобы специально изучать Rails вместе с Ruby.

Питон

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

Вот еще один из серии Head First: Head First Python. Эти книги-проверенные и верные введения в программирование на языке, и это хорошее место, чтобы начать с Python.

Ускоренный курс Python — это еще одна вводная книга. Но этот содержит множество примеров использования фреймворка Django, который напоминает отношения между Ruby и Rails. Django не так обязателен или вездесущ, но он распространен и стоит учиться. Если вы планируете заниматься веб-разработкой.

PHP

В этот момент вы можете заметить тему. Подобно Ruby и Python, PHP-это язык общего назначения. Который люди часто используют для веб-разработки. На самом деле WordPress, CMS для этого блога, написан на PHP.

Радость PHP-хороший выбор для абсолютных новичков. Он не только обеспечивает мягкое введение в сам язык. Но и начинается с обучения вас некоторым основам HTML (подробнее об этом вкратце). Он действительно не предполагает предварительного знания программирования.

PHP: A Beginner’s Guide-это еще одна книга. Которая познакомит вас с основами и поможет двигаться дальше. Но в нем также содержится много практической информации о расширении этих основ для работы с обычными реальными сценариями веб-разработки. Такими как использование расширений и работа с базами данных.

HTML/CSS/Разметка

Последнее место в категории front-end/web development занимает самая front-end-y часть из всех: разработка HTML и разметки. Чтобы кратко объяснить различие здесь. Книги об этих технологиях не являются книгами о языках программирования как таковых.

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

CSS — это более продвинутый способ работы с HTML. И вместе они помогают определить визуальный опыт веб-сайтов, в то время как языки программирования. Которые я уже рассматривал. Определяют фактическую логику принятия решений приложений (например. Обработка вашего выбора и отображение цены на сайте электронной коммерции).

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

HTML и CSS: Дизайн и создание веб-сайтов должны выглядеть знакомо. Это от того же автора, который написал JavaScript и jQuery. Это очень визуально привлекательно, что имеет смысл для книги о дизайне веб-сайтов.

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

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

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

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

С

Здесь нельзя ходить вокруг да около. С — это жесткий первый язык, концептуально, по сравнению с большинством других здесь. C намного “ближе к металлу”, что означает, что вам нужно немного узнать о внутренностях вашего компьютера. Чтобы по-настоящему понять его.

Это не должно вас обескураживать—это был мой второй язык (сразу после C++). Но есть определенная кривая обучения, поэтому я бы выбрал ее только в том случае. Если вы хотите сразу же заняться чем-то. Для чего C идеально подходит, например. Встроенными системами. Или если вы полностью намерены подготовиться к сложным собеседованиям по программированию.

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

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

C++

C++ так называется, потому что это на самом деле крупное расширение языка программирования C-тот. Который делает его объектно—ориентированным по своей природе. Таким образом, хотя несправедливо говорить, что изучение C++ означает, что вы будете знать C. Между этими языками есть хорошее перекрытие.

Ветераны индустрии скажут вам. Что имя О’Рейли и животное на всех их обложках являются оплотом индустрии программирования. Таким образом, это был всего лишь вопрос времени. Пока мы не добрались до одного из них—карманного справочника C++ в данном случае.

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

Ява

Java-это еще один объектно-ориентированный язык, и он чрезвычайно распространен на предприятиях во всем мире. У меня нет данных, подтверждающих это, но я провел много лет, консультируя на предприятии. И мой личный опыт показывает. Что Java-самый распространенный язык там.

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

Похоже, это хороший выбор, а? Он описывает свое точное назначение прямо в названии: основы программирования для абсолютных новичков. Итак, если Java-ваш первый язык выбора, то Основы программирования Java для абсолютных новичков определенно стоит посмотреть.

Подумайте, что Java-это еще один выбор О’Рейли. И это также приносит больше пользы, чем просто обучение Java—это учит вас думать в коде и алгоритмах. Вы найдете это особенно полезным. Если вы изучаете Java специально для интервью и работы в компаниях в качестве профессионального программиста.

C# (.NET)

C# во многом похож на Java. Первоначально он был разработан компанией Microsoft и предназначался исключительно для операционных систем Windows. Но с тех пор Microsoft открыла язык и фреймворк с открытым исходным кодом. И теперь он действительно универсален и универсален, как Java.

Название этой книги немного…амбициозно. Но намерение ясно только по обложке. Learn C# in One Day нацелен на то, чтобы научить C# полноценному программированию начинающих. Он также нацелен на то, чтобы вы быстро продвигались вперед с помощью быстрой обратной связи. Практических примеров и реальных проектов.

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

Мобильная разработка

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

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

Swift/iOS

Лингва-франка для разработки Apple/iOS-это Swift. Раньше это был язык под названием Objective-C, но я опущу его. Поскольку платформа перешла на язык под названием Swift. Итак, вот как начать работу с Swift development.

Во-первых, это Swift Programming: The Big Nerd Ranch Guide. Это очень удобная для начинающих книга. В которой есть доступные демо-версии и учебные пособия. А также вы познакомитесь со Swift. IOS и основными принципами программирования.

Точно так же Swift Essentials-это еще одна книга. Которая подходит для начинающих программистов. Он проведет вас через простые упражнения. Чтобы заставить вас двигаться. И включает в себя информацию о таргетинге других устройств. Таких как Apple Watch.

Разработка Android

Другим крупным игроком в мобильном пространстве является Android. А Android интересен тем, что разработчики Android используют Java наряду со специализированными фреймворками. Разработка Android не имеет своего собственного проприетарного/специфического языка.

Android Программирование для начинающих говорит все это в названии. На самом деле, если вы увеличите масштаб длинного подзаголовка, он на самом деле говорит: “начиная с нулевого опыта программирования.” Таким образом, это, безусловно. Подходит для людей. Желающих сделать разработку Android своей первой попыткой в программировании.

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

3. Совершенствуйтесь Как Всесторонний программист

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

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

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

Вот о чем этот раздел. Это книги. Которые помогут вам перейти от “кого-то. Кто может раскрутить приложение” к “профессиональному программисту

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

Code Complete-еще одна известная и культовая отраслевая книга. Она охватывает практически все аспекты профессионального программирования в мельчайших деталях (это ОГРОМНАЯ книга).

был для меня очень влиятельной книгой. В двух последних главах рассматривается вопрос профессионализма в программном обеспечении с точки зрения целостного подхода. Эта книга более сфокусирована. В частности. На идее о том. Как писать чистый код. Который вы (и другие) можете поддерживать в течение многих лет.

Когда Профессиональное Программирование Выходит За Рамки Работы С Вашим Собственным Кодом

Как профессиональный программист. Вы будете работать с устаревшим (старым) кодом гораздо чаще. Чем с кодом зеленого поля (совершенно новым). Эффективная работа с устаревшим кодом-это то, как ориентироваться и максимально использовать эту реальность.

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

Я позволяю своим личным предубеждениям немного проявиться здесь. Но как ярый сторонник test-driven development (TDD), я думаю. Что Test-Driven Development by Example должна быть обязательным чтением.

4. Интервьюирование и подача заявок на вакансии по программированию

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

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

Cracking the Coding Interview-это известная книга в отрасли. Компании Кремниевой долины. Как известно. Расспрашивают вас о структурах данных и алгоритмах (и некоторые другие компании следуют их примеру). Вся эта книга посвящена тому. Как вести себя в подобном стиле.

Эта книга, Эта конкретная инкарнация специально нацелена на C++. Но другие издания этой книги нацелены на другие стеки/языки.

Programming Interviews Exposed-это подробное руководство по всем аспектам поиска работы и собеседования для программистов. Он очень стремится помочь людям. Неопытным и новым в этом процессе.

Рецензенты вопросов интервью кодирования хвалят его за то. Что он не предполагает. Что у вас уже есть подробное программирование или CS-фон. Это поможет вам подготовиться и обсудить такие вопросы. Не предполагая многого о вашем прошлом.

5. Навигация По Корпоративным/Профессиональным Заданиям по Разработке программного Обеспечения

Последняя основная категория. Которую я упомяну здесь. — это книги. Посвященные корпоративному программированию за рамками собеседования. Речь идет о характере программных проектов. Управлении проектами. Участии в командах и т.д.

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

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

За последние 20 лет, с момента создания так называемого Agile-манифеста. Agile-методологии стали отраслевым стандартом. Гибкая разработка программного обеспечения: Принципы, шаблоны и практики, написанные одним из авторов этого манифеста . Помогут вам разобраться в этих методологиях.

Чистый кодер, написанный тем же автором, поможет вам понять, что значит быть “профессиональным” программистом. Это включает в себя уроки о том. Как давать оценки и брать на себя обязательства по ним. Придерживаться стандартов вашего кода и многое другое.

Ship It: Руководство по успешным программным проектам-это именно то. На что оно похоже. Это сопутствующее руководство о том. Как эффективно и успешно создавать и поставлять программное обеспечение.

Теперь все зависит от Вас

Сколько книг я тебе только что прочитал!

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

То, что я бы предложил сделать, — это выбрать одну из каждой основной категории и прочитать ее, вероятно. В порядке категорий.

  1. Получите общее представление о программировании.
  2. Возьмите стопку и приступайте.
  3. Получите представление о лучших практиках.
  4. Подготовьтесь к профессиональному собеседованию.
  5. Научитесь существовать как профессиональный программист.

Но ваш пробег может быть разным. Я хотел ошибиться. Предоставив вам множество вариантов. Чтобы вы могли прочитать их рекламные объявления и отзывы и выбрать наиболее подходящий для вас путь.

Научиться программировать — все равно что вскипятить океан. Но если вы берете книгу. Изучаете ее уроки. А затем переходите к следующей. Вы сужаете проблему и ставите одну ногу перед другой.

Удачи вам!

Этот пост написал Эрик Дитрих. Эрик-ветеран мира программного обеспечения и занимал почти все должности в IT: разработчик, архитектор. Менеджер, CIO и. В конечном итоге. Независимый консультант по управлению и стратегии. Этот широкий опыт позволил ему выступать со всеми персонажами отрасли и написать несколько книг и бесчисленное количество сообщений в блогах на десятках сайтов.