Содержание

Как стать программистом

Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Данная книга задумывалась как «стартовая площадка» для человека, начинающего изучать информационные технологии. Своего рода «пинок», который может задать направление и энергию для прохождения начального отрезка на пути программиста.

Получить книгу бесплатно

Какие же ешё вопросы могут появиться? В порядке очерёдности примерно следующие:

  1. Как стать программистом?
  2. Как стать хорошим программистом?
  3. Как стать профессиональным программистом?

Как стать программистом?

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

Ещё один маленький плюс – все примеры программ, которые приведены в книге, разработаны только с использованием бесплатных средств разработки, которые доступны для свободного скачивания в Интернете (ссылки указаны в разделе «Список используемых источников» и непосредственно в тексте). Вам не потребуется приобретать какие-либо программные продукты, чтобы проверить работоспособность приведенных здесь программ.

Как стать хорошим программистом?

Стать хорошим программистом — это уже задача непростая. Здесь уже одной книгой не обойтись. Однако программист программисту рознь. Разработка программ для работы с базами данных и разработка программ для станков с ЧПУ — это совершенно разные вещи. Стать хорошим программистом можно только в одной-двух сферах деятельности. Невозможно одинаково хорошо писать программы для микроконтроллеров и для автоматизации документооборота. В данной книге рассмотрены почти все основные сферы применения программирования, поэтому книга поможет вам определиться с направлением своей будущей деятельности.

Как стать профессиональным программистом?

Как мы уже выяснили, желание стать программистом у вас есть. Но есть ещё один вопрос: не ошиблись ли вы в выборе профессии? Действительно ли вас вам интересен вопрос «Как стать профессиональным программистом?» Пожалуй, не совсем рационально будет поступить в какой-либо ВУЗ на специальность ПРОГРАММИРОВАНИЕ, а через пять лет обучения понять, что вы хотите быть врачом. Лучше попробовать поизучать программирование самостоятельно, а потом принять решение — ваш это путь или нет. Самый дешёвый вариант — книга. Книг по программированию много, но большинство из них написаны для подготовленных читателей. Данная же книга изначально была задумана как ознакомительный курс для людей, которые не сталкивались с программированием вообще.

Область использования программного обеспечения – это не только персональные компьютеры. Кроме компьютеров существуют различные системы управления, где широко применяются микропроцессоры и программируемые логические контроллеры (ПЛК), станки с ЧПУ и др.

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

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

Основная цель книги – помочь человеку, который интересуется программированием, но при этом не имеет абсолютно никаких знаний в данной области. Прочитав эту книгу, Вы (если не будете лениться и внимательно изучать материал) пройдете путь от полуграмотного «юзера» до начинающего программиста, который в скором времени может стать и профессионалом приличной квалификации. Конечно, нельзя объять необъятное. Поэтому для достижения этой самой «приличной квалификации» Вам потребуется практический опыт и использование разнообразных литературных источников (а ещё лучше закончить какой-нибудь хороший ВУЗ). Надеюсь, что кому-то эта книга поможет разобраться в вопросах программирования. «Не боги горшки обжигают» — программистом может стать каждый!


Как стать программистом? Книги в помощь

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


В этом материале собрали несколько важных книг, которые пригодятся мечтающим стать веб-программистом. Будьте готовы к тому, что это не какой-то простой и комфортный для восприятия нон-фикшен из серии «Программирование для чайников». Некоторые книги из подборки – довольно монументальные академические труды. За них стоит браться с тетрадкой и карандашом в руке.

Карьера программиста. Г. Лакман Макдауэлл

Книга «Карьера программиста» основана на опыте практического участия автора во множестве собеседований, проводимых лучшими компаниями. Это квинтэссенция сотен интервью со множеством кандидатов, результат ответов на тысячи вопросов, задаваемых кандидатами и интервьюерами в ведущих мировых корпорациях. Из тысяч возможных задач и вопросов в книгу были отобраны 189 наиболее интересных и значимых. Используя материал этой книги, вы с лёгкостью подготовитесь к работе в Google, Microsoft или любой другой ведущей IT-компании.
 

Юзабилити по методу Стива Круга. Стив Круг

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


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

Совершенный алгоритм. Основы. Тим Рафгарден

Алгоритмы – это сердце и душа computer science. Без них не обойтись, они есть везде – от сетевой маршрутизации и расчётов по геномике до криптографии и машинного обучения. «Совершенный алгоритм» превратит вас в настоящего профи, который будет ставить задачи и мастерски их решать как в жизни, так и на собеседовании при приёме на работу в любую IT-компанию. 
 

Сетевые операционные системы. В.Г. Олифер, Н.А. Олифер

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

 

Эффективная работа с унаследованным кодом. Майкл К. Физерс

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

Как быть, рассказано в книге Майкла К. Физерса.

Основы компьютерных сетей. В.Г. и Н.А. Олифер

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

Scrum. Гибкая разработка ПО. Майк Кон

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

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

Если листать классические учебники неудобно – что ж, скачайте их в электронном формате и добавьте в ридер. 

И вот ещё одна важная вещь, которую стоит осознать тем, кто хочет стать программистом: программист должен не только понимать язык машин, но и хорошо понимать язык людей. Любая программа – это способ достижения определённой цели, и для пользователя он должен быть максимально быстрым и эффективным. Поэтому программисту предстоит решать задачи комплексно – не только разрабатывать с нуля, но и при необходимости выявлять слабые места в уже существующей системе, оптимизировать их, добиваться лучшего из возможных результатов. А если в будущем вы планируете искать работу программиста, вам пригодятся и коммуникативные навыки – свои умения предстоит описать, свой опыт представить в лучшем виде. Должность программиста в хорошей компании – лакомый кусочек, за который борются лучшие из лучших. Готовы стать одним из них? Книги в галерее выше помогут вам решительно вступить на этот путь и добиться успехов. 

Хотите стать веб-программистом? Читайте книги, учите матчасть, практикуйтесь, ошибайтесь и пробуйте снова. Желаем вам удачи на этой нелёгкой, но невероятно интересной дороге! Понравился материал? Читайте также «Лучшие книги для программистов».

Книга Как стать программистом с нуля

Как стать программистом с нуля
Александр Ваньков

Книга в простой форме отвечает на вопрос: как стать разработчиком ПО, не имея для этого навыков и соответствующего образования? Сегодня много книг повествует об обучении конкретному языку программирования или технологии, но здесь читатель найдет такое руководство, которое объясняет, что именно делать, чтобы стать IT-специалистом (прежде всего разработчиком) с нуля на любом из языков программирования. Книга не является справочником по конкретному языку программирования, это не учебник по алгоритмам, это книга о методах и инструментах перехода к IT-профессии.

Предисловие. О чем эта книга

Как же все-таки им стать? Если говорить в двух словах – то … в двух словах не объяснить. За этим и пришлось написать книгу, требуется чуть больше слов. Итак, давайте по порядку.

Сегодня в книжных магазинах и в интернете Вы встретите огромное количество книг по отдельным языкам программирования, IT-технологиям, различным методам организации работы, и так далее.

Однако почти нет или очень мало таких книг, которые подскажут в ясном и простом виде – что же именно делать, то есть за что, как говорится, «хвататься» для обозначенной цели. Ведь объем информации по теме, количество видов языков программирования, фреймворков (наборов готовых решений для разработки), просто зашкаливает. Не говоря уж о том, что среди моря этой информации полно откровенно устаревшего материала и обычного мусора. Вы знали, что некоторые языки программирования созданы лишь ради прикола? Сейчас не будем вдаваться в примеры. Давайте лучше перейдем к тому, что Вы сможете узнать из этой книги.

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

Хотите ли Вы создавать мобильные приложения и стать автором какого-нибудь популярного нового сервиса или мессенджера? Или, может быть, Вам интереснее создавать веб-сайты, интернет-порталы, социальные сети? А может, хотите создавать игры или программы для обычных настольных компьютеров? Мы определимся с этим позже, дело сейчас не в этом. А в том, что изучив книгу, Вы поймете что именно нужно делать.

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

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

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

Как же так, спросите вы? Если я не математик, например, а гуманитарий, совсем не понимаю в этих фреймворках и технологиях, как я могу стать программистом?

И здесь расскажу Вам одну занимательную историю, которую когда-то нашел на просторах интернета.

В одном городе жил бомж, который сидел на улице, а мимо него регулярно проходил разработчик. И в один прекрасный день, разработчику пришла мысль: поставить эксперимент. Что если дать бомжу ноутбук, объяснить ему где находятся уроки для изучения программирования, и даже платить ему маленькую сумму денег или давать еды, чтобы этим мотивировать его обучаться. Подумано – сделано. Программист договорился с бомжом, что даст ему ноутбук, а тот будет учиться программировать, за что будет получать некоторое минимальное содержание на жизнь. И учеба пошла! Бомж научился программировать и даже разместил разработанное им приложение, если не ошибаюсь, в Google Play – магазине приложений для Android, и у этого приложения даже были пользователи. То есть, эксперимент был успешным.

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

Надо сказать, что карьера у бомжа не пошла, но не потому что он не захотел, а из-за его ареста за какие-то прошлые преступления. А так, эксперимент показал успех.

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

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

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

В фильме «Области тьмы» (английское название – “Limitless”) главный герой вдруг, однажды, съев некую таблетку, стал обладать выдающимися сверхспособностями: его мозг работал с невероятной скоростью и он принимал верные решения для достижения успеха. Так и здесь, только конечно, с нашими обычными способностями. У вас есть мозг – и это все что вам для начала надо. А если серьезно, то поговорим об этом в главе 2.

Какова структура данной книги?

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

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

Третья глава содержит общий набросок действий и их вариантов, пока без детального их рассмотрения. Здесь же дается обзор востребованных языков программирования.

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

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

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

На всякий случай привожу также e-mail для связи со мной (не могу обещать отвечать на каждое письмо, но пишите, если есть важные вопросы): [email protected]

Глава 1. Зачем это нужно

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

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

Очень важно, чтобы в жизни было какое-то дело, занятие. Многие пытаются «найти себя», понять что им действительно нужно в жизни. Но данная книга не об этом. Предполагается, что Вам понятно чего Вы хотите – быть разработчиком. Иначе, зачем Вы держите в руках эту книгу (или электронную книгу, или еще какой цифровой девайс, на котором читаете данную книгу).

Во-вторых, программисты – это, обычно высокоинтеллектуальные люди. Они умеют критически мыслить, их обычно не обмануть, они умеют прекрасно все анализировать. Мышление развивается вместе с освоением навыков разработчика и развитием карьеры. У меня в результате продолжительного общения с разработчиками сложилось четкое представление: это очень продвинутые люди, они могут эффективно управлять своей жизнью. Кому такое не надо? Думаю надо всем. Таким образом, это высокий интеллект и саморазвитие.

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

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

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

А кто хочет работать дома, или в путешествии, или еще откуда угодно, где есть связь, то и этот вариант возможен. Называется – удаленка (удаленная работа). Конечно, сидеть на солнцепеке на пляже с ноутбуком не получится (это фантастика:), потому что не удобно – такое бывает только в картинках из интернета. Но на балконе в номере комфортабельного отеля – вполне. Или в своем загородном доме. А может быть и прямо на ходу в каком-нибудь аэропорту.

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

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

Глава 2. Реально ли мне стать разработчиком

Надеюсь, Вы прочитали историю о бомже в предисловии. По моим данным история имела место в реальной жизни, и у меня нет оснований не верить источнику. Понятно, что нужна мотивация. Однако прежде рассмотрим технический инструментарий.

Что же надо иметь в материальном плане для обучения программированию и начала работы.

Самая нужная и, по сути, единственная вещь, которая требуется – это машина :). Имеется в виду электронно-вычислительная машина, которой является персональный компьютер или ноутбук. Планшет или смартфон для этой цели не подойдут. Хотя, какую-то элементарную учебу можно начинать на планшете, полноценно работать на нем не удобно. Обязательно нужна физическая клавиатура, полноценная операционная система, такая как Windows, macOS, Linux. Для разработки не требуется самый современный ноутбук или компьютер. Однако он не должен быть еле живым десятилетней давности. Возьмите для себя нормальный рабочий инструмент – Вам должно быть комфортно работать за Вашим цифровым устройством (ноутбуком или компьютером). Если у Вас его нет, то придется купить. Такой средней мощности ноутбук или компьютер достаточен для начала. Важно чтобы у него был нормальный центральный процессор, достаточный объем памяти для повседневной работы.

Однако если Вы собрались заниматься разработкой игр или приложений с 3D-графикой, виртуальной или дополненной реальности, то без мощной видеокарты не обойтись. А это уже довольно дорогое устройство (хотя смотря для кого, и с чем сравнивать…).

Наконец, в отношении компьютерного оборудования сделаем еще одну оговорку. Возвращаясь в прошлое, да и к опыту других людей, мной было замечено, что лучшие свои IT-проекты удавалось и удается делать с какими-то малопригодными средствами: далеко не новая компьютерная техника, в гаражах, и тому подобное. Как начинались компании-гиганты современной IT-индустрии, Apple, Amazon? Именно так. Потому что «железо», то есть техника, это не самое важное. Что же надо еще? Читаем далее.

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

Лишь при переходе в какие-то сложные проекты, где требуются весьма специфические продвинутые программные инструменты и возможности, Вам понадобятся профессиональные версии продуктов для разработки или отдельные платные фреймворки. Но, скорее всего, их будет оплачивать работодатель. Либо Ваша зарплата будет такой, что их стоимость не будет для Вас иметь существенного значения. Да и к тому времени Вы уже купите себе самый «наворочанный» MacBook Pro.

Далее, нужен доступ в интернет. Желательно нормальный скоростной канал доступа, то есть проводной интернет, безлимитный. 50 мегабит в секунду будет вполне достаточно, или можете выбрать более скоростной тариф. Можно работать и в сети 4G, но тогда пакет трафика должен быть реально большим или безлимитным, а скорость доступа в месте Вашего нахождения комфортной для скачивания сред разработки, обучающих материалов, видеоконтента и прочего. Такие пакеты стоят значительно дороже проводного интернета.

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

Теперь коротко обсудим гораздо более важную составляющую вашего становления как разработчика – сознательную, или психологическую. Ноутбук может у Вас быть, и все остальное в техническом плане. А вот станете ли Вы программистом – зависит в основном от Ваших действий, которые, в свою очередь, контролируются сознанием. Бывает, сложно начать такую длительную учебу, кто-то может бесконечно прокрастинировать, откладывать занятия или «забивать» на них временами или надолго.

15 лучших книг по программированию с нуля

Где научиться программированию, если не хочется тратить 4 года на скучные лекции? Запишитесь на курсы программирования, там вас быстро обучат азам. После этого совершенствуйтесь хоть всю жизнь, в чём помогут книги из подборки 😉

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

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

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

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

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

Вы думаете, что программирование — это только код? Как бы не так! Если вы хотите стать настоящим профи, то без изучения стандартов безопасности и чтения профильной литературы не обойтись. Маст-рид для программиста в 2019!

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

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

Избегать рисков — дело проигрышное.

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

Если вам интересна история информатики — обязательно ознакомьтесь с этой книгой. Чарльз Петцольд создал настоящую азбуку компьютерных технологий, где раскрыта вся история IT: с самых первых попыток программирования до портативных технологий сегодняшнего дня.

Решили стать Java-программистом? Без понимания паттернов проектирования вы застрянете на повторении упражнений из учебника. Обязательная книга для Java программиста в 2019 году.

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

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

Интересуетесь языком C++, но нет опыта программирования? Здесь вы узнаете всю информацию о C++, так как автор книги и придумал этот язык программирования!

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

Как стать программистом — моя книга

Как стать программистом — это моя вторая книга о компьютерах (а точнее — о программировании).

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

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

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

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

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

Я обратился в несколько таких издательств. Но кто-то просто не ответил, а кто-то отказал.

Аргументы были весьма забавные. Например, есть ли у вас (то есть у меня) какие-то научные труды, или учёная степень в области программирования? В общем,

Кто вы вообще такой, чтобы писать книги?

Нда… Любопытно, у Дарьи Донцовой или “экстрасенса” Романа Фата спрашивали про учёную степень, когда печатали их книги?

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

Я на гениальность не претендую. Однако повторюсь — эту книгу скачали десятки (или даже сотни) ТЫСЯЧ человек. И есть множество положительных отзывов (часть из них вы можете увидеть на моём старом блоге здесь).

ПРИМЕЧАНИЕ
Старый блог я забросил по причине блокировки одной из статей Роскомнадзором. Может как-нибудь расскажу об этом более подробно — подписывайтесь на новости, чтобы ничего не пропустить. Я также рассказывал о причинах создания нового блога здесь.

Краткое содержание книги

  • Общие сведения. Введение в программирование для начинающих. В общих чертах о том, как устроен компьютер и как выполняются программы. А также основы компьютерной грамотности.
  • Языки программирования. О компиляторах и средствах разработки программ, то есть где и как пишутся программы, и как из текстовых файлов получаются программы.
  • Среда разработки FreePascal. Здесь мы уже напишем свои первые программы и научимся программировать на практике.
  • Разработка программ для Windows. А здесь мы научимся создавать программы с графическим интерфейсом.
  • Языки сценариев. От ВАТ-файлов до сценариев на VBScript.
  • Программируемые логические контроллеры. Здесь мы уйдём от программирования компьютеров в сторону автоматизации производства. Я покажу вам, как создаются автоматизированные системы управления с помощью контроллеров.
  • Микроконтроллеры. Ещё дальше в дебри инженерии и аппаратной части (железа). Здесь мы научимся программировать микроконтроллеры, которые лежат в основе программируемых логических контроллеров.
  • Станки с ЧПУ. Даже так. Я приведу вам пример небольшой программы для станка с числовым программным управлением.

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

>>> Скачать книгу КАК СТАТЬ ПРОГРАММИСТОМ >>>

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


Комментарии для сайта Cackle

О вреде книг: напутствие начинающему программисту

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

Бороздя бездонный Youtube случайно соприкоснулся с мнением человека, который другими словами говорит о том же, что я лично понимал уже давно. В процессе работы репетитором (была и такая веха в моей жизни) упор всегда делался на реальные задачи и приложения, то есть на отработку способности писать код и размышлять над алгоритмом решения конкретной задачи. Очень важно смещать акценты с талмудического запоминания-зазубривания множества не всегда нужных деталей (чем часто грешат в школе) на прокачку самостоятельного навыка постановки задачи, её анализа, целенаправленного поиска соответствующей информации и решений, и, наконец, реализации кода.

Под катом два небольших видео (каждое по 5 минуту) частного мнения программиста Николая Ясинского (Екатеринбург) о том, почему учиться программированию по книгам — не самая хорошая затея. И хотя аргументы у него иные, суть получается аналогичная. В заключение я подвожу итог примерной схемой погружения в программирование для новичка, которую я считаю предпочтительной.

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

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

Не учите программирование по книгам! часть 2 (7 мин.)

Выковырял из-под видео вот такой вот суммирующий комментарий-отзыв:

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

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

Прогресс пришел после чтения чужого кода в интернете, написании собственных программ разного рода, когда приходилось лезть в интернет за документацией, смотреть примеры на том же stackoverflow, когда подтянулся уровень английского языка… тогда и перестала читать книги, т.к. поняла, что в учебниках азбука, а в жизни художественные произведения. Это хорошее сравнение, потому что существует огромная пропасть между тем, чему учат книги, и тем, с чем потом приходится сталкиваться (отсюда и разочарование и множество ошибок). Так что я согласна с каждым словом в видео.

Подводя промежуточный итог

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

Полезное дополнение можно отыскать в комментариях:

Другой способ есть и он очень даже элегантный — «Пишите код!».
  1. Возьмите простой исходник
  2. Напишите дополнение для основной задачи, модернизируйте исходник.
  3. Обдумайте все ещё раз, отладьте, приведите сложившуюся архитектуру в порядок.
  4. Добавьте еще новый функционал, который ломает вашу стройную архитектуру.
  5. goto 3.

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

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

Байка о попаданце на Github

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

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

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

Второй наглядный пример — не первый раз встречаю новичка-книжника, который проработал-прорешал какой-то учебник, уже пишет даже небольшие программы, но… не в состоянии скомпилировать их в .exe-файл (или запустить скрипт на сайте).

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

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

Впрочем, в последнем случае чаще всего новичок будет отравлен такими объемами новой для него информации-сложности, которые даёт ему современная книга-талмуд, что приведет в итоге к тому, что изучение-постижение профессии будет отложено «до лучших времен».

Короче говоря, всё сводится к банальному —

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

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

Наши вузы — видео-бонус

Кроме изобилия пустых книг существует другой полюс проблемы современного синтетического образования, о котором также по хорошему бухтит наш сегодняшний герой. Николай Ясинский прошёлся ещё и по отечественной системе высшего образования (смотрите видео-бонус ниже), которая также превратилась в очередную постсоветскую имитацию, которая всего лишь насос для откачки денег из бюджета-карманов наивных студентов. Эта огромная Pascal’евидная поросль не умеющая после 5 лет обучения каких-то более-менее серьёзных практических умений и навыков, и которой в конечном итоге приходится переучиваться-доучиваться уже непосредственно в жестко-стрессовых рабочих условиях.

С другой стороны я бы не рассуждал на эту тему столь категорично и лихо, как это делает Николай — позитивные примеры, я бы даже сказал что легендарных вузов всё-таки у нас есть, до сих пор в России продолжают готовить штучных продвинутых специалистов в области ИТ. Тот же ИТМО известен своей сильной школой программирования; например, в 2015 году этот университет из Питера стал шестикратным чемпионом мира по спортивному программированию ACM ICPC-2015. А это тебе не формочки двигать на аутсорс-проектах, впрочем, что касается большинства региональных вузов — тут Николай, к сожалению, полностью прав.

Институты для программистов это п***ц. 18+

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

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

Альтернативное мнение

А вот ещё одно мнение на эту же тему по следам моей статьи:

Programming stuff: О “вреде” книг: напутствие любому программисту https://t.co/LD28S3Vb2z
— Sergey Teplyakov (@STeplyakov) February 3, 2017

Ключевые слова для более релевантного поиска: с чего начинать программировать новичку, как учиться программированию. Какие есть хорошие книги по программированию и видеокурсы, что нужно знать, чтобы стать программистом. Где скачать курсы и книги для программирования и обучения ИТ? Как обучаться и научиться программировать на языке? Схема и алгоритм постижения профессии кодера. Как начать читать код, научиться понимать написанное в листинге программы. Где учат и готовят на программиста или на айтишника в России? Как стать настоящим айтишником и настоящим хорошим программистом, как получить опыт и начать читать чужой код. В каком вузе учат настоящих программистов и какие книги нужно читать и видео смотреть при учебе на программеров? Скачать книги по программированию и видео курсы бесплатно онлайн для айтишников по Ит и программированию.

Как научиться программировать с нуля

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

Как стать программистом? Какой язык учить? С чего начать программирование? Данная книга поможет вам найти ответы на эти вопросы. Я также надеюсь, что после прочтения этой книги от вопросов вы уверенно перейдёте к действиям и не спросите, а скажете: Хочу научиться программировать!

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

ВАЖНО!
Некоторые почтовые системы определяют письма рассылки как СПАМ. Если вы не получили письмо активации или не получаете письма рассылки — проверьте папку СПАМ (нежелательная почта) в вашем почтовом ящике. Если обнаружите письмо там, то включите данный адрес в список надёжных (не спам). В некоторых системах могут не отображаться картинки, которые часто несут важную информацию. Обычно почтовые системы (например, gmail.com) отключают показ изображений в письмах. В этом случае включите показ изображений (в gmail надо щёлкнуть по соответствующей ссылке в верхней части окна).

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

Основная цель книги – помочь человеку, который интересуется программированием, но при этом не имеет абсолютно никаких знаний в данной области. Прочитав эту книгу, Вы (если не будете лениться и внимательно изучать материал) пройдете путь от полуграмотного «юзера» до начинающего программиста, который в скором времени может стать профессиональным программистом приличной квалификации. Конечно, нельзя объять необъятное. Поэтому для достижения этой самой «приличной квалификации» Вам потребуется практический опыт и использование разнообразных литературных источников (а ещё лучше закончить какой-нибудь хороший ВУЗ). Надеюсь, что кому-то эта книга поможет разобраться в вопросах программирования. «Не боги горшки обжигают» — научиться программировать с нуля может каждый!

10 лучших книг по программированию, которые вы должны знать [Рейтинг]

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

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

Программирование

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

Лучшие книги по программированию

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

Итак, вот наша подборка из 10 лучших книг по программированию, которые улучшат вашу игру:

1.

Чистый код: руководство по созданию гибкого программного обеспечения

Автор — Роберт К. Мартин
Последнее издание — Первое издательство
— Прентис Холл
Формат (ы) — Kindle / Мягкая обложка

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

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

После успешного завершения книги «Чистый код» вы сможете без особых усилий внедрить методологию Agile, одну из ведущих форм SDLC, в свои проекты разработки программного обеспечения. Кроме того, вы станете более решительным и дисциплинированным программистом, чем раньше.

Вы можете зарегистрироваться здесь.

2.

Введение в алгоритмы

Автор — Томас Х. Кормен, Чарльз Э. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн
Последнее издание — Третье издательство
— MIT Press Формат (ы)
— Твердый переплет / Мягкая обложка

Название книги говорит само за себя. Это то, что предлагает название, то есть Введение в алгоритмы. Также известный как CLRS, отсылка к фамилии авторов книги, он подробно рассматривает ряд алгоритмов, разделенных на несколько автономных глав.

Все алгоритмы, обсуждаемые в книге «Введение в алгоритмы», подробно объяснены. Они представлены с использованием псевдокода, доступного для чтения программистам любого уровня подготовки, даже тем, кто относительно новичок в программировании.

Третье издание книги «Введение в алгоритмы» всесторонне переработано и обновлено. Добавлены две новые главы:

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

Вы можете зарегистрироваться здесь.

3.

Структура и интерпретация компьютерных программ (SICP)

Автор — Гарольд Абельсон, Джеральд Джей Сассман, Джули Сассман
Последнее издание — Второе издание
— MIT Press Формат (ы)
— Твердый переплет / Мягкая обложка

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

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

Завершение книги «Структура и интерпретация компьютерных программ» — это испытание. В книге есть множество практических упражнений, которые помогут читателям справиться с ними.

Вы можете зарегистрироваться здесь.

4.

Чистый кодер: Кодекс поведения для профессиональных программистов

Автор — Роберт К. Мартин
Последнее издание — Первое издательство
— Прентис Холл
Формат (ы) — Kindle / Мягкая обложка

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

The Clean Coder — это идеальное пособие для тех, кто хочет изучить аспекты профессионального программиста трудным, но эффективным способом. Он полон практических советов по всему, что связано с программированием, от кодирования и рефакторинга до тестирования.

The Clean Coder помог сотням тысяч разработчиков стать более увлеченными и опытными в своем деле. Не покупай? Начните читать книгу по программированию сегодня и почувствуйте разницу.

Вы можете зарегистрироваться здесь.

5.

Code Complete: Практическое руководство по построению программного обеспечения

Автор — Стив МакКоннелл
Последнее издание — Второй издатель
— Microsoft Press
Формат (ы) — Kindle / Мягкая обложка

Хотите знать, как писать надежный код независимо от архитектуры языка программирования? Затем подумайте о прочтении Code Complete: Практическое руководство по созданию программного обеспечения. Он всесторонне охватывает все аспекты структуры хорошего кода.

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

Проверенные методы и стратегии, описанные в книге, помогают программистам и разработчикам программного обеспечения:

  • Воспользуйтесь преимуществами совместной разработки
  • Разработка программного обеспечения минимальной сложности
  • Закрепите процесс отладки
  • Максимальное творчество
  • Уменьшение количества ошибок и проблем
  • Рефакторинг и эволюция кода

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

Вы можете зарегистрироваться здесь.

6.

Паттерны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования

Автор — Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес, Грэди Буч (Предисловие)
Последнее издание — Первое издательство
— Addison-Wesley Professional
Формат (ы) — Твердый переплет / Kindle / Мягкая обложка

Разве вы не знаете, что такое шаблоны проектирования программного обеспечения? Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения — один из авторитетных томов по этой теме.И да, это нелегко читать.

Если вы плохо разбираетесь в UML, вам может быть трудно усвоить некоторую информацию и примеры, собранные в книге по программированию. Это, однако, не помешает вам оценить красоту повествования в книге Design Patterns, которая проста и информативна.

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

Даже если вы знаете, что такое шаблоны проектирования программного обеспечения, вы должны добавить книгу «Шаблоны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования» в свою библиотеку, чтобы еще больше уточнить свое понимание темы и получить быстрый справочник, когда возникнет необходимость.

Вы можете зарегистрироваться здесь.

7.

Прагматичный программист

Автор — Эндрю Хант, Дэвид Томас
Последнее издание — второе (издание к 20-летнему юбилею)
Издатель — Addison-Wesley Professional Формат (ы)
— Аудиокнига (со звуком) / в твердом переплете / Kindle

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

Независимо от того, сколько раз вы читали «Программист-прагматик», в каждом чтении есть чему поучиться. Творческое использование классических и современных анекдотов, увлекательных аналогий и наводящих на размышления примеров делает изучение каждого раздела интересным и увлекательным.

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

Вы можете зарегистрироваться здесь.

8.

Шаблоны проектирования — сначала голова: удобное руководство

Автор — Эрик Фриман, Берт Бейтс, Кэти Сьерра, Элизабет Робсон
Последнее издание — Первое издание
— O’Reilly Media
Формат (ы) — Kindle / Мягкая обложка

Серия книг Head First известна своим новаторским способом разбиения сложных тем на более простые и легкие для понимания части. Шаблоны проектирования Head First: A Brain-Friendly Guide составлено на основе этой проверенной формулы.

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

Книга «Шаблоны проектирования Head First» без труда объясняет несколько шаблонов проектирования программного обеспечения, используемых опытными разработчиками программного обеспечения и программистами со всего мира для создания элегантного, полнофункционального, гибкого и многократно используемого программного обеспечения.

Вы можете зарегистрироваться здесь.

9.

Рефакторинг: улучшение дизайна существующего кода

Автор — Мартин Фаулер
Последнее издание — Второй издатель
— Addison-Wesley Professional
Формат (ы) — Твердый переплет / Kindle

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

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

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

После успешного завершения книги Фаулера «Рефакторинг» читатель сможет:

  • Создание комплексных тестов для рефакторинга
  • Изучите рефакторинг
  • Выявление компромиссов и проблем при рефакторинге
  • Быстро примените рефакторинг к программе, чтобы упростить понимание и изменение

Вы можете зарегистрироваться здесь.

10.

Искусство программирования, т. 1-4

Автор — Дональд Э.Knuth
Последнее издание — Первое издание
— Addison-Wesley Professional
Формат (ы) — Твердый переплет

В отличие от других статей в списке десяти лучших книг по программированию, «Искусство компьютерного программирования» — это не просто книга; вместо этого это серия из 4 книг, а именно:

  • Том 1: Основные алгоритмы
  • Том 2: Получисловые алгоритмы
  • Том 3: Сортировка и поиск
  • Том 4A: Комбинаторные алгоритмы

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

«Если вы думаете, что вы отличный программист… прочтите [Knuth’s] Art of Computer Programming… Вы должны прислать мне резюме, если вы можете прочитать все».

Дональд Э. Кнут, автор серии «Искусство компьютерного программирования», получил награду ACM A.M. Премия Тьюринга 1974 года, именуемая Нобелевской премией по вычислительной технике.Предупреждение перед началом серии книг по программированию; Впереди тяжелая математика!

Вы можете зарегистрироваться здесь.

Сводка

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

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

Вы готовитесь к собеседованию по программированию? Ознакомьтесь с этими лучшими вопросами на собеседовании по программированию.

Еще читают:

54 лучших книги по программированию для кодеров в 2021 году (+ обзоры читателей)

Существует так много удивительных книг по программированию и книг по информатике.

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

Вы можете посмотреть на этот список и подумать: «Как вы изучаете программирование по книгам?» На самом деле книги по информатике могут быть такими же интересными и полезными, как и курсы. Многие из лучших книг по программированию содержат практические задачи и проекты, которые помогут вам реализовать то, что вы узнали.К тому же, по крайней мере, чтение книги по кодированию даст вам отдохнуть от того, чтобы смотреть в экран!

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

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

Содержание

Основы программирования: лучшие книги по общему программированию

1. Внутри машины: иллюстрированное введение в микропроцессоры и компьютерную архитектуру

Автор: Джон Стоукс

Центральный процессор, или микропроцессор, лежит в основе программирования, поскольку он отвечает за выполнение инструкций компьютерной программы.

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

Via @lensassaman

2. Структура и интерпретация компьютерных программ

Авторы: Гарольд Абельсон, Джеральд Джей Сассман, Джули Сассман

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

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

Через @srirangr

3. Шаблоны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования

Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

Эта книга научит вас, как создавать более гибкие, элегантные и многократно используемые программы, с подробным рассмотрением 23 различных шаблонов проектирования. Хотя фактический код, написанный в книге, может быть устаревшим (он был опубликован в 1994 году), это по-прежнему одна из лучших книг по объектно-ориентированному программированию, поскольку концепции и подходы остаются актуальными даже в 2021 году.

Через @muellerwHH

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

Автор: Чарльз Петцольд

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

Через @ LT3000Lyall

5. Cracking the Coding Interview: 189 вопросов и решений по программированию

Авторы: Гейл Лаакманн МакДауэлл

Несмотря на то, что оно широко известно как полное руководство по подготовке к собеседованию, Cracking the Coding Interview также является отличной книгой для изучения основных концепций информатики и понимания того, как разбивать проблемы на управляемые части. Автор действительно знает свое дело. Фактически, она прошла собеседования по программированию в таких крупных компаниях, как Google, Microsoft и Apple.

Via @altoanthem

6. Код завершен: Практическое руководство по созданию программного обеспечения

Автор: Стив МакКоннелл

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

Через @rogerpence

7. Жемчуг программирования

Авторы: Джон Бентли

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

Via @joygao

8. Программист-прагматик: ваше путешествие к мастерству

Автор: Эндрю Хант, Дэвид Томас

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

Через @_hallicopter

Вернуться к содержанию »

9. Простота кода: основы программного обеспечения

Автор: Макс Канат-Александр

Эта книга для начинающих по программированию — это «ПОЦЕЛУЙ» кодирования: она описывает принципы, которым вы можете следовать, чтобы сделать свой код простым и эффективным независимо от того, какой язык вы используете.

Хорошая разработка программного обеспечения приводит к простому коду.

Via @ gzachariadis1

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

Авторы: Джон Бентли

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

Via @NNorthcote

11. Чистый код: руководство по гибкому разработке программного обеспечения

Автор: Роберт К. Мартин

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

Via @ian__stephenson

12. Думайте как программист: введение в творческое решение проблем

Автор: В.Антон Спраул

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

Через @QbanCowboy

13. Введение в алгоритмы

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

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

Через @InterviewParrot

Вернуться к содержанию »

Карьера в сфере технологий: книги, которые должен прочитать каждый технический специалист

14. Peopleware: продуктивные проекты и команды

Авторы: Том ДеМарко, Тим Листер

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

Via @ jub0bs

Вернуться к содержанию »

15. Soft Skills: Руководство разработчика программного обеспечения

Авторы: Джон Сонмез

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

Через @AustinKehn

16. Rapid Development: Taming Wild Software Schedules

Автор: Стив МакКоннелл

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

Via @philiplaureano

17. Кодеры за работой: размышления о ремесле программирования

Авторы: Питер Сейбел

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

Через @AndyTearle

18. Не заставляйте меня думать, еще раз: здравый подход к удобству веб-использования

Автор: Стив Круг

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

Через @PeterKeaneMusic

19. Страстный программист: создание выдающейся карьеры в разработке программного обеспечения

Авторы: Чад Фаулер

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

Через @jstnlef

20. Эффективная работа с устаревшим кодом

Автор: Майкл Фезерс

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

Via @steveklabnik

21. Программист-самоучка: полное руководство по профессиональному программированию

Автор: Кори Альтхофф

О чем вам не говорят другие книги и курсы по программированию? Именно об этом и стремится рассказать эта книга по программированию. Он начинается с обучения программированию Python, использованию различных инструментов, изучению основ CS и т. Д. В конце он выходит за рамки технических знаний и включает советы по поиску работы / собеседованию и советы по работе с командой.

Через @PandoraModeling

Вернуться к содержанию »

22. Мифический человеко-месяц: очерки программной инженерии

Автор: Фредерик П. Брукс мл.

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

Через @miniver

23. Рефакторинг: улучшение дизайна существующего кода

Автор: Мартин Фаулер

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

Через @jhooks

HTML и CSS: лучшие книги для изучения HTML и CSS

Это одни из лучших книг по изучению HTML и CSS.

24. HTML и CSS: проектирование и создание веб-сайтов

Автор: Джон Дакетт

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

25. Изучение веб-дизайна: руководство для начинающих по HTML, CSS, JavaScript и веб-графике

Автор: Дженнифер Роббинс

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

Через @jglovier

JavaScript: Лучшие книги по JavaScript

Эти две книги — одни из лучших по программированию с помощью JavaScript.

26. Красноречивый JavaScript: современное введение в программирование

Автор: Марийн Хавербеке

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

Через @RenatoNascAlves

27. Вы еще не знаете JS: приступить к работе

Автор: Кайл Симпсон

Даже опытные разработчики JavaScript не всегда знают некоторые из самых сложных частей языка! Эта лучшая книга по программированию призвана предоставить полную картину JavaScript, от основных строительных блоков до более узких вещей, которые вы можете делать с помощью кода. (Примечание: You Don’t Know JS: Get Started — это более новая версия You Don’t Know JS: Up & Going , которая была полностью обновлена ​​в 2020 году.)

Через @MFDellyDos

Java: книги по программированию на Java, которые вам понадобятся в вашей библиотеке

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

28. Действующая Java

Автор: Джошуа Блох

Изучите тонкости и передовой опыт Java с помощью этой книги, получившей прозвище «Библия программирования на Java». Вы узнаете, что делать, а чего не делать, и объясните, почему.

Через @JoshuaCarmody

Вернуться к содержанию »

29. Первая голова Java

Авторы: Кэти Сьерра, Берт Бейтс

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

Через @abjorkland

30. Java Concurrency на практике

Автор: Брайан Гетц

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

Через @benj_fry

PHP: лучшие книги для изучения PHP

PHP жив и здоров в современном мире! Изучите это с помощью лучших книг по PHP по программированию.

31. Современные PHP

Автор: Джош Локхарт

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

Через @henrywright

32. Head First PHP & MySQL: удобное для мозга руководство

Автор: Линн Бейли, Майкл Моррисон

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

Via @leonelngande

Рубин: станьте мастером рубина с этими книгами

Это одни из лучших книг по веб-разработке для тех, кто пишет на Ruby.

33. Красноречивый рубин

Автор: Русс Олсен

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

Via @abdullin

Вернуться к содержанию »

34. Хорошо обоснованный рубист

Автор: Дэвид А. Блэк

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

Via @armahillo

Python: книги по программированию на Python, которые должен прочитать каждый программист

Ознакомьтесь с этими книгами по программированию на Python, чтобы быстро приступить к программированию.

35. Ускоренный курс Python: практическое, проектно-ориентированное введение в программирование

Автор: Эрик Маттес

Эта практическая книга по кодированию написана для того, чтобы быстро научить вас программировать на Python, обучая основам программирования перед тем, как вводить реальные проекты. Вы создадите графики, диаграммы, интерактивное веб-приложение и даже простую видеоигру.

Via @g_solaria

36. Head First Python: разумное руководство

Автор: Пол Барри

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

Via @FrancisVeeGee

37. Изучите Python 3 трудным путем: очень простое введение в ужасающе красивый мир компьютеров и кода

Автор: Зед А. Шоу

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

Через @cheewoei

C #: Книги, которые помогут вам изучить C #

Эти книги по программированию на C # помогут вам освоить ключевые функции.

38. Глубина C #

Автор: Джон Скит

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

Через @pottereric

Вернуться к содержанию »

39. C # 7.0 в двух словах: окончательная ссылка

Авторы: Джозеф Альбахари, Бен Альбахари

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

Через @KayEwbank

C: Лучшие книги по программированию на C около

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

40. Язык программирования C

Автор: Брайан В. Керниган, Деннис М. Ричи

Эта книга написана разработчиками C, так что она прямо из первоисточника! Вам потребуются некоторые предварительные знания в области программирования по таким основам, как циклы, переменные и функции. В книге есть справочное руководство, которое вы можете просмотреть, когда вам понадобится помощь при написании кода на C.

. Via @Sarkk_

41. Практическое программирование на C: почему 2 + 2 = 5986?

Автор: Стив Уаллин

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

Via @siqing_yu

Objective C: Не пропустите эту цель C Ресурсы

Это одни из лучших книг по информатике, которые помогут вам улучшить программирование на Objective-C действенным способом.

42. Программирование на Objective-C: Руководство по ранчо Big Nerd

Авторы: Аарон Хиллегасс, Майки Уорд

Эта книга по программированию основана на популярном учебном лагере Objective-C от Big Nerd Ranch.Он имеет привлекательный стиль, охватывает C, Objective-C и советы по работе с технологиями Apple.

Через @Salcoder

43. Effective Objective-C 2.0: 52 конкретных способа улучшить ваши программы IOS и OS X

Автор: Мэтт Галлоуэй

Эта книга кодирования, состоящая из 52 наборов сценариев, советов и ярлыков для Objective-C, является краткой и практичной. Вы узнаете, как избегать малоизвестных ловушек и всегда выбирать лучший и наиболее эффективный вариант.

Via @nbirkholz

Вернуться к содержанию »

C ++: Книги по программированию на C ++ для всех

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

44. Праймер по C ++

Авторы: Стэнли Б. Липпман, Хосе Лажуа, Барбара Э. Му

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

Via @ Molele61

45. Программирование: принципы и практика использования C ++

Автор: Бьярн Страуструп

Написанная изобретателем C ++, эта книга по информатике дает введение в программирование в целом и C ++ в частности. Целевая аудитория — начинающие программисты, и ее часто используют для первокурсников по информатике.

Через @ClayDowling

R: Лучшие книги по программированию на языке R на рынке

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

46. Learning R: пошаговое функциональное руководство по анализу данных

Автор: Ричард Коттон

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

Через @BryanCafferky

47. Поваренная книга R: проверенные рецепты для анализа данных, статистики и графики

Автор: Пол Теетор

В этой «кулинарной книге» более 200 практических рецептов на R, с которыми вы можете поэкспериментировать! Вы будете выполнять простые задачи, такие как ввод и вывод, работать со статистикой и многое другое, анализируя данные.

Via @ OctopusQueen13

48. Искусство программирования на R: обзор разработки статистического программного обеспечения

Автор: Норман Матлофф

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

Через @ChelseaParlett

Вернуться к содержанию »

SQL: удобные книги по SQL

Это одни из лучших книг по программированию для популярного языка баз данных SQL.

49. SQL за 10 минут, Sams самообучитесь

Автор: Бен Форта

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

Через @datascichampion

50. SQL-запросы для простых смертных: практическое руководство по манипулированию данными в SQL

Авторы: Джон Л.Виескас, Майкл Дж. Эрнандес

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

Через @JefrsonStarChip

Android: лучшие книги по программированию для Android

Возьмите книгу по программированию для Android, чтобы стать профессиональным разработчиком приложений!

51. Все-в-одном для разработки приложений под Android для чайников

Автор: Барри Берд

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

Via @ charlyscott237

52. Head First Android Development: A Brain-Friendly Guide

Авторы: Доун Гриффитс, Дэвид Гриффитс

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

Через @elhousseynarab

iOS / Swift: с этими книгами станьте профессионалом iOS

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

53. Программирование на iOS: Руководство по ранчо Big Nerd

Авторы: Кристиан Кеур, Аарон Хиллегасс

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

Via @slobbba

54. Быстрое программирование: Руководство по ранчо Big Nerd

Авторы: Мэтью Матиас, Джон Галлахер

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

Через @seven_cookies

Вернуться к содержанию »

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

Лучшие 5 книг для улучшения навыков кодирования и программирования — обязательно к прочтению, Лучшее из лота

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

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

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

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

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

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

1) Эффективная работа с устаревшим кодом Это единственная книга, которую я рекомендую каждому программисту, занимающемуся программированием. Поскольку разработка и сопровождение — это основная работа инженеров-программистов, а плохой код сложно поддерживать, но иногда у вас нет выбора, кроме как смириться с этим, эта книга поможет вам, как эффективно работать с унаследованным кодом.

Это также из серии Робера К. Мартина, той же серии, к которой относится «Чистый код» и другие хорошие книги, такие как «Чистый кодер» . Если вам нужен курс, который можно совместить с этой книгой, я предлагаю классический курс Моша Хамдани Learn The Art of Writing Clean Code на Udemy. Примеры даны на C #, но техника, которой он делится, одинаково полезна для разработчиков Java.

2) Чистый код от дяди Боба Мартина Чистый код — одна из лучших книг для java-программистов, но любой программист может извлечь из этого пользу.Эта книга поможет вам написать лучший код. Эта книга научит вас запаху кода, функциям и структуре данных, принципам объектно-ориентированного проектирования, шаблонам проектирования.

Дядя Боб Мартин, который сам является отличным программистом, проделал огромную работу, выразив свой годовой опыт простыми словами.

Заголовок «Чистый код» удачно оправдывает советы, передовой опыт, данный программистам в этой книге. Если вам нужно выбрать только одну книгу, выберите чистый код. Если хотите, вы также можете объединить эту книгу с Clean Code: Writing Code for Humans By Cory House on Pluralsight для более активного обучения.

3) Рефакторинг для шаблонов, 1-е издание, Джошуа Кериевский Это одна из редких книг, в которой вы найдете лучшее сочетание теории и практики. Рефакторинг — это процесс, позволяющий сделать ваш рабочий код более красивым, и эта книга может помочь вам в этом, используя уже испытанные и проверенные шаблоны из мира разработки программного обеспечения.

Это одна из лучших книг, чтобы узнать, как и когда использовать шаблоны проектирования. Разработчики Java получили дополнительное преимущество, потому что примеры даны на Java, но это не большая проблема для разработчиков C ++, Scala или Python, потому что за примерами легко следовать и их может понять любой, кто знает, как читать псевдокод.

Многословие Java и английский язык также очень помогут. И, если вам нужен курс, который можно сочетать с этой книгой, я предлагаю вам проверить Refactoring Java с курсом IntelliJIDEA Джеймса Ричардсона на Udemy. Этот курс научит вас, как заставить мощную функцию рефакторинга IntellijIDEA создать чистый код.

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

Эта книга научит вас искусству и науке рефакторинга кода. Неважно, являетесь ли вы программистом на Java, разработчиком C ++ или разработчиком Python, каждый программист может извлечь выгоду из этой книги.

Эта книга — результат коллективных усилий одних из лучших авторов в мире программирования. В список авторов входят Мартин Фаулер, Кент Бек, Джон Брант, Уильям Опдайк, Дон Робертс и нападающий Эрих Гамма.Если вы хотите, вы также можете объединить эту книгу с курсом Refactoring to Design Pattern на Udemy для лучшего понимания.

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

Эта книга представляет собой сборник примеров из практики, в которых рассказывается, как эти опытные программисты, в том числе Брайан Керниган, Джон Бентли (автор Programming Pearls), Тим Брей, Карл Фогель, Майкл Фезерс (автор книги «Эффективная работа с устаревшим кодом»), и еще много великих авторов и программистов.Независимо от того, какой язык программирования вы используете для кодирования, например, Java, C #, Python или Ruby, вы найдете в этой книге что-то интересное.

При желании вы также можете объединить эту книгу с курсом Шаблон проектирования в Java Дмитрия Нестерука, чтобы узнать о современной реализации классических шаблонов проектирования ООП.

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

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

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

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

Хотите большего? Вот еще несколько книг и ресурсов по программированию для изучения


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

P. S. — Если вы ищете бесплатные курсы по алгоритмам, чтобы улучшить ваше понимание структуры данных и алгоритмов, вам также следует проверить курс Data Structures в Java для начинающих на Udemy.Он написан инженером-программистом Google и экспертом по алгоритмам, и это совершенно бесплатно.

Научитесь программировать за десять лет

Почему все так спешат?

Зайдите в любой книжный магазин, и вы увидите, как Teach Yourself Java за 24 часа наряду с бесконечными вариациями, предлагающими научить C, SQL, Ruby, алгоритмы и т. Д. За несколько дней или часов. Расширенный поиск Amazon по запросу [название: научить, себя, часов, с: 2000 и нашел 512 таких книг.Из первой десятки девять книг по программированию (вторая — по бухгалтерскому учету). Аналогичные результаты дает замена «учи себя» на «учись» или «часов» на «дни».

Вывод таков: либо люди очень спешат учиться о программировании, или о том, что программирование как-то невероятно проще узнать больше всего на свете. Felleisen et al. отдают дань этой тенденции в своей книге Как разрабатывать программы , когда они говорят «Плохое программирование — это просто. Идиоты могут выучить его за 21 день , даже если это манекенов .»Комикс Abtruse Goose также получил свое место.

Давайте проанализируем, что такое заголовок Научитесь C ++ за 24 часа может означать:

  • Самостоятельно: За 24 часа у вас не будет времени написать несколько значимых программ и извлекайте уроки из своих успехов и неудач с их. У вас не будет времени работать с опытным программистом и понять, каково жить в среде C ++. Короче, ты не успеет многому научиться. Таким образом, книга может говорить только о поверхностное знакомство, а не глубокое понимание.Как сказал Александр Поуп, небольшое обучение — опасная вещь.
  • C ++: Через 24 часа вы сможете изучить некоторые синтаксисы C ++ (если вы уже знаете другой язык), но вы не могли узнать много о том, как использовать язык. Короче говоря, если бы вы были, скажем, Базовый программист, вы можете научиться писать программы в стиле Базовый с использованием синтаксиса C ++, но вы не могли узнать, что такое C ++ на самом деле хорошо (и плохо) для. Так в чем смысл? Алан Перлис однажды сказал: «Язык, который не влияет на то, как вы думать о программировании не стоит ».Один из возможных моментов: что вам нужно немного изучить C ++ (или, что более вероятно, что-то например, JavaScript или обработка), потому что вам нужно взаимодействовать с существующий инструмент для выполнения конкретной задачи. Но тогда ты не обучение программированию; вы учитесь выполнять эту задачу.
  • за 24 часа: К сожалению, этого недостаточно, так как следующий раздел показывает.

Научитесь программировать за десять лет

Исследователи (Блум (1985), Брайан и Хартер (1899), Хейс (1989), Simmon & Chase (1973)) показали это требуется около десяти лет, чтобы развить опыт в любом из множества зоны, в том числе шахматы, музыкальная композиция, телеграф работа, рисование, игра на фортепиано, плавание, теннис и исследования в нейропсихология и топология.Ключ совещательный практика: не просто делать это снова и снова, а бросать вызов самому себе с задачей, которая выходит за рамки ваших текущих возможностей, попробуй ее, анализировать вашу работу во время и после того, как вы это делаете, и исправлять никаких ошибок. Потом повторить. И повторить еще раз. Кажется, нет настоящие ярлыки: даже Моцарт, который в 4 года был музыкальным вундеркиндом, взял Еще 13 лет до того, как он начал создавать музыку мирового уровня. В другой жанр, Битлз, казалось, ворвались на сцену с череда хитов №1 и появление на шоу Эда Салливана в 1964 году.Но с тех пор они играли в маленьких клубах в Ливерпуле и Гамбурге. 1957 г., и, хотя на раннем этапе они привлекли внимание масс, их первая критический успех, Sgt. Peppers , выпущен в 1967 году.

Малькольм Гладуэлл популяризировал эту идею, хотя он концентрируется на 10 000 часов, а не на 10 годах. Анри Картье-Брессон (1908-2004) использовал другую метрику: «Ваши первые 10 000 фотографий — ваши худшие». (Он не Ожидайте, что с цифровыми фотоаппаратами некоторые люди смогут достичь этой отметки за неделю.) Истинный опыт может занять всю жизнь: Сэмюэл Джонсон (1709–1784) сказал: «Превосходство в любом отделе может быть достигается только трудом всей жизни; его нельзя покупать в меньшая цена ». И Чосер (1340-1400) жаловался:« Lyf такой короткий, ремесло так долго до lerne ». Гиппократ (ок. 400 г. до н.э.) известен отрывком« ars longa, vita brevis «, которая является частью более длинной цитаты» Ars longa, vita brevis, occio praeceps, Experimentum periculosum, iudicium difficile «, что на английском языке переводится как» Life is short, [the] craft долго, возможность мимолетная, коварный эксперимент, суждение трудный.» Конечно, ни одно число не может быть окончательным ответом: это не кажется разумным. предположить, что все навыки (например, программирование, игра в шахматы, игра в шашки и музыка) может потребоваться одинаковое количество времени для освоения, и все люди займет ровно столько же времени. В виде Проф. К. Андерс Эрикссон сказал: «В большинстве областей замечательно, сколько времени даже самые талантливые люди нужны для достижения высочайшего уровня производительности. Число 10000 часов просто дает вам ощущение, что мы говорим годы от 10 до 20 часов в неделю, и те, кого некоторые люди утверждают, являются наиболее талантливыми людьми по-прежнему должны достичь высочайшего уровня.»

Итак, вы хотите быть программистом

Вот мой рецепт успеха в программировании:

  • Заставьте заинтересоваться программированием и займитесь программированием, потому что это весело. Убеждаться что это достаточно весело, так что вы будете готовы потратить свои десять лет / 10 000 часов.
  • Программа . Лучший вид обучения — это обучение при выполнении. Говоря более технически, «максимальный уровень производительность для физических лиц в данной области не достигается автоматически в зависимости от расширенного опыта, но уровень производительность может быть увеличена даже очень опытными людьми, поскольку результат целенаправленных усилий по улучшению.»(стр. 366) и «наиболее эффективное обучение требует четко поставленной задачи с соответствующий уровень сложности для конкретного человека, информативная обратная связь и возможности для повторения и исправления ошибок. »(стр. 20-21) Книга Познание на практике: разум, математика и культура в повседневной жизни Life — интересный ссылка на эту точку зрения.
  • Поговорите с другими программистами; читайте другие программы. Это важнее чем любая книга или учебный курс.
  • Если хотите, проучитесь четыре года в колледже (или больше в колледже Высшая школа). Это даст вам доступ к некоторым вакансиям, требующим учетные данные, и это даст вам более глубокое понимание области, но если вам не нравится школа, вы можете (с некоторой самоотдачей) получить подобный опыт самостоятельно или на работе. В любом случае книжное обучение само по себе не быть достаточным. «Образование в области компьютерных наук не может сделать никого экспертом. программист больше, чем изучение кистей и пигментов может сделать кто-то искусный художник «, — говорит Эрик Рэймонд, автор книги The New Словарь хакеров .Один из лучших программистов, которых я когда-либо нанял, имел только высшая школа; он создал много отличного программного обеспечения, имеет свою собственную группу новостей и сделал достаточно опционов на акции, чтобы купить собственный ночной клуб.
  • Работа над проектами с другими программистами. Будь лучшим программистом по некоторым проектам; быть худшим для других. Когда ты лучший, вы можете проверить свои способности руководить проектом и вдохновлять другие с вашим видением. Когда ты хуже всех, ты узнаешь, что за мастера делают, и вы узнаете, что им не нравится делать (потому что они заставить вас сделать это за них).
  • Работа над проектами после других программистов. Понять программу, написанную кем-то другим. Посмотри, что нужно, чтобы понять и исправить это, когда оригинальные программисты не вокруг. Подумайте, как разрабатывать свои программы, чтобы облегчить тех, кто будет их поддерживать после вас.
  • Выучите как минимум полдюжины языков программирования . Включите один язык, который подчеркивает абстракции классов (например, Java или C ++), тот, который подчеркивает функциональную абстракцию (например, Lisp, ML или Haskell), один который поддерживает синтаксическую абстракцию (например, Lisp), один который поддерживает декларативные спецификации (например, Prolog или C ++ шаблоны) и тот, который подчеркивает параллелизм (например, Clojure или Go).
  • Помните, что в «информатике» есть « компьютер ». Знать сколько времени требуется вашему компьютеру, чтобы выполнить инструкцию, получить слово из памяти (с пропуском кэша и без него), считывание последовательных слов с диска и поиск нового места на диске. (Ответы здесь.)
  • Займитесь языком стандартизация усилий. Это может быть комитет ANSI C ++ или может решить, будет ли ваш локальный стиль кодирования иметь 2 или 4 пробела уровни отступов.В любом случае вы узнаете, что другие люди как в языке, насколько глубоко они это чувствуют, и, возможно, даже немного о том, почему они так себя чувствуют.
  • Имейте здравый смысл, чтобы прекратить усилия по стандартизации языка как как можно быстрее.
Учитывая все это, сомнительно, как далеко вы можете пройти, просто книжное обучение. Прежде чем родился мой первый ребенок, я прочитал все How До книги, и все еще чувствовал себя бестолковым новичком. 30 месяцев спустя, когда должен был родиться второй ребенок, вернулся ли я к книгам на освежить? Нет.Вместо этого я полагался на свой личный опыт, который оказался гораздо более полезным и обнадеживающим для меня, чем тысячи страниц, написанных экспертами.

Фред Брукс, в своем эссе No Silver Bullet определила план из трех частей для поиска отличных разработчики программного обеспечения:

  1. Систематически определяйте лучших дизайнеров как можно раньше.
  2. Назначьте профессионального наставника, который будет отвечать за развитие потенциального клиента, и тщательно храните карьерный досье.
  3. Предоставляйте возможность развивающимся дизайнерам взаимодействовать и стимулировать друг друга.
Это предполагает, что некоторые люди уже обладают качествами, необходимыми для быть отличным дизайнером; задача состоит в том, чтобы как следует их уговорить. Алан Перлис выразился более лаконично: «Каждого можно научить лепить: Микеланджело пришлось бы научить, как этого не делать. Так и с великие программисты ». Перлис говорит, что у великих есть внутреннее качество, выходящее за рамки их обучения. Но при чем здесь качество взято? Это врожденное? Или они развивают это через усердие? Как Огюст Гюсто (вымышленный повар в Ratatouille ) говорит: «Готовить может любой, но только бесстрашный. может быть здорово.»Я думаю об этом больше как о готовности посвятить большой часть жизни на совещательную практику. Но может быть бесстрашный — способ резюмировать это. Или, как критик Гюсто, Антон Эго говорит: «Не каждый может стать великим художником, но великим художник может прийти откуда угодно «.

Так что покупайте книгу по Java / Ruby / Javascript / PHP; ты будешь наверное, получу от этого какую-то пользу. Но ты не изменишь свою жизнь, или ваш реальный общий опыт программиста за 24 часа или 21 день. Как насчет того, чтобы упорно работать над постоянным совершенствованием в течение 24 месяцев? Что ж, теперь вы кое-чего начинаете…


Список литературы

Блум, Бенджамин (ред.) Развитие талантов в молодежи , Баллантайн, 1985.

Брукс, Фред, No Silver Bullets , IEEE Computer, vol. 20, нет. 4, 1987, с. 10-19.

Брайан, W.L. & Хартер, Н. «Исследования по телеграфному языку: Приобретение иерархии привычек. Обзор психологии , 1899, 8, 345-375

Хейс, Джон Р., Полное решение проблем Лоуренс Эрлбаум, 1989.

Чейз, Уильям Г. и Саймон, Герберт А. «Восприятие в шахматах» Когнитивная психология , 1973, 4, 55-81.

Лаве, Жан, Познание на практике: разум, математика и культура в повседневной жизни Жизнь , издательство Кембриджского университета, 1988.


ответы

Примерное время для различных операций на типичном ПК:
выполнить типичную инструкцию 1/1000000000 с = 1 наносекунда
выборка из кэш-памяти L1 0.5 наносекунд
неверное предсказание перехода 5 наносекунд
выборка из кэш-памяти L2 7 наносек
Блокировка / разблокировка Mutex 25 наносек
выборка из основной памяти 100 наносек
отправить 2 Кбайта по сети 1 Гбит / с 20000 наносекунд
последовательное чтение 1 МБ из памяти 250 000 наносекунд
выборка из нового места на диске (поиск) 8000000 наносекунд
последовательное чтение 1 МБ с диска 20000000 наносекунд
отправить пакет из США в Европу и обратно 150 миллисекунд = 150 000 000 наносек

Приложение: выбор языка

Несколько человек спрашивали, какой язык программирования им следует изучить в первую очередь.Однозначного ответа нет, но учтите следующие моменты:
  • Используйте своих друзей . На вопрос «какая операционная система должна Я использую Windows, Unix или Mac? «, Я обычно отвечаю:» использовать что угодно ваши друзья используют «. Вы получаете преимущества, извлекая уроки из друзья компенсируют любую внутреннюю разницу между ОС или между языками программирования. Также подумайте о своих будущих друзьях: сообщество программистов, частью которого вы станете, если вы Продолжать. Есть ли у выбранного вами языка большое растущее сообщество? или маленький умирающий? Есть ли книги, веб-сайты и интернет-форумы получить ответы от? Вам нравятся люди на этих форумах?
  • Все просто .Языки программирования, такие как C ++ и Java предназначены для профессиональной разработки большими командами опытные программисты, озабоченные эффективностью выполнения их код. В результате эти языки имеют сложные части, предназначенные для этих обстоятельств. Вы озабочены обучением программированию. Вам не нужны эти сложности. Вам нужен язык, который был разработан таким образом, чтобы его было легко выучить и запомнить. одинокий новый программист.
  • Играть. Каким способом вы бы предпочли научиться играть на пианино: обычный интерактивный способ, при котором вы слышите каждую ноту, как только нажимаете клавишу, или «пакетный» режим, в котором вы слышите ноты только после того, как закончите целую песню? Очевидно, что интерактивный режим облегчает обучение игре на фортепиано, а также программирование.Настаивайте на языке с интерактивным режимом и используйте его.
Учитывая эти критерии, мои рекомендации по первому программированию язык будет Python или Схема . Другой вариант — Javascript, не потому, что он идеально подходит для начинающих, но потому что для этого есть так много онлайн-руководств, таких как Учебник Ханской академии. Но твой обстоятельства могут отличаться, и есть и другие хорошие варианты. Если твой возраст является однозначным числом, вы можете предпочесть Алиса или писк или Blockly (они также могут понравиться учащимся старшего возраста).Важный дело в том, что вы выбираете и начинаете.

Приложение: книги и другие ресурсы

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

6 лучших книг для изучения и освоения программирования и кодирования

Кодирование — неотъемлемая часть программирования, и все мы каким-то образом научились кодировать, следуя здесь и там примерам. Да, я говорю как о программистах-самоучках, так и о выпускниках информатики.Вы можете легко научиться программированию, если у вас есть целеустремленность, но труднее написать хороший код. Вы можете легко найти программистов на Java, C ++, Ruby или Python, но найти программистов, которые к тому же являются хорошими программистами, очень сложно. В некоторых университетах есть хорошая учебная программа и практические занятия, чтобы научить программированию лучше, чем в других, но большинство из этих великих программистов — программисты-самоучки, которые учились, читая книги, посещая онлайн-курсы и делая что-то самостоятельно.

Дело в том, что самообучение ОЧЕНЬ важно в области программирования и кодирования, вы просто не можете полагаться на свой колледж и университет, которые сделают вас опытным программистом, вам нужно приложить дополнительные усилия, чтобы выделиться из группы и того, что может быть лучше, чем изучая кодирование и мудрость программирования у тех, кто прошел тот же путь?

Дядя Боб — большой сторонник чистого кода и объектно-ориентированного дизайна, и столько, сколько я узнал о кодировании и программировании из его серии книг, я нигде не узнал.Мартин Фаулер — еще одно выдающееся имя в области проектирования, разработки и тестирования программного обеспечения, и его книгу по рефакторингу необходимо прочитать любому серьезному программисту.

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

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

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

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

1. Рефакторинг, улучшение дизайна существующего кода Эта книга написана на Java, поскольку это основной язык, но концепция и идея применимы к любому объектно-ориентированному языку, например C ++ или C #. Эта книга научит вас преобразовывать посредственный код в отличный код, который может выдержать производственную нагрузку и настоящий кошмар разработки программного обеспечения — ИЗМЕНЕНИЕ.

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

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

Одна вещь, которая очень помогла мне при написании лучшего кода, — это знание принципов проектирования SOLID, это небольшой набор рекомендаций, которые, если следовать им, приводят к лучшей сплоченности и слабой связи. Если вы не знакомы с ними, я предлагаю вам пройти курс SOLID Principles of Object-Oriented Design and Architecture на Udemy, чтобы изучить их.Они полностью достойны вашего времени и денег.

2. Чистый код Это моя любимая книга, и я снова и снова рекомендую ее своим коллегам-программистам, читателям, коллегам и студентам. Если вы спросите меня, какая лучшая книга по кодированию, разработке программного обеспечения и программированию в целом, то ЭТО ТАКОЕ.

Дядя Боб Мартин не нуждается в представлении, он написал серию книг по гибкой разработке программного обеспечения, некоторые из них от меня:

  1. Clean Code,
  2. Чистый кодер,
  3. Гибкая разработка программного обеспечения: принципы, шаблоны и практики,
  4. UML для программистов на Java
  5. Чистая архитектура,
  6. и экстремальное программирование на практике.

Хотя большинству его книг уже десять лет, они все еще ценны, и я уверен, что они останутся таковыми еще на 20 лет или, по крайней мере, до тех пор, пока объектно-ориентированное программирование не войдет в бизнес. Чистый код не только учит, ЧТО ДЕЛАТЬ, но и ЧЕМ НЕ ДЕЛАТЬ.

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

В нем также есть главы, объясняющие SOLID Principles of Object-Oriented Design , которые являются ключевыми для написания чистого кода. Фактически, я впервые услышал о них в этой книге, и с тех пор они очень помогли мне в написании лучшего кода.

Эту книгу должен прочитать любой программист. Хотя примеры приводятся на Java, что делает его еще более ценным для Java-программистов, он также одинаково полезен для других программистов, таких как C, C ++, Python, JavaScript или любого другого специалиста по объектно-ориентированному программированию.

3. Код завершен Думаю, это самая читаемая книга по методам кодирования. На высоте 10000 футов он выглядел как аналог «чистого кода» для разработчиков на C ++. Хотя я прочитал эту книгу еще до того, как прочитал Clean Code. Давным-давно один из моих друзей сказал мне, что в его небольшой компании каждый новый разработчик, который присоединяется к фирме, получает совершенно новую копию Code Complete.

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

Это обязательный к прочтению любой программист, но даже более того, он ДОЛЖЕН прочитать программист на C, C ++. Так же, как я рекомендую Java-разработчику сначала прочитать Clean Code, прежде чем читать Code Complete, я также рекомендую разработчику C ++ прочитать эту книгу, прежде чем касаться Clean Code.

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

Учитывая мой опыт работы с Java и стиль письма дяди Боба, я считаю, что он читает «Чистый код» чаще, чем «Завершенный».Как сказано в инфографике, «Завершение кода помогает разработчику писать более качественное программное обеспечение с кодом высочайшего качества».

Между прочим, если вы увлечены написанием чистого кода, вы также можете проверить Чистый код: написание кода для людей Кори Хаус на Pluralsight. Это редкий онлайн-курс, в котором не только рассказывается о написании чистого кода, но и рассматривается пример.

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

Хотя я не очень стараюсь следовать TDD, вы должны как минимум написать модульный тест для кода, который вы написали, а также для кода, который вы поддерживаете. Проекты также ничем не отличаются, кроме проектов с открытым исходным кодом, многие коммерческие корпоративные проекты внутри компании страдают от отсутствия модульного тестирования.

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

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

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

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

5. Ведущий разработчик программного обеспечения по бережливому производству В этой книге рассказывается, как добиться важных изменений в организации, занимающейся разработкой программного обеспечения, и сделать их устойчивыми. Он показывает, как заставить бережливое производство работать в реальных проектах, средах и компаниях. Том и Мэри Поппендик (poppendieck.com) обучают и консультируют по всему миру по принципам бережливого производства для программного обеспечения.

Ее подход определяет реальную ценность для бизнеса и позволяет командам разработчиков реализовать эту ценность, и ее новая книга «Leading Lean Software Development» написана для всех типов лидеров, напримерграмм. Руководители проектов, менеджеры программ, руководители высшего звена и другие.

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







6. Шаблоны проектирования, элементы объектно-ориентированного программного обеспечения многократного использования
Если вы еще не читали, я уверен, что вы слышали об этой книге.Это классические книги по шаблонам проектирования GOF (Банда четырех).

Мы должны быть благодарны банде четырех; Эрику Гамме, Ричарду Хелму, Ральфу Джонсону и Джону Влиссидесу за их прекрасное слово о создании, консолидации и внедрении этого в массовую разработку программного обеспечения.

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

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


Кстати, для доступа к этому курсу вам потребуется членство в Pluralsight, которое стоит около 29 долларов в месяц или 299 долларов в год. Сначала это может показаться немного дорогим, но это была лучшая инвестиция, которую я сделал в прошлом году.Он дает вам доступ к более чем 5000+ онлайн-курсам на Pluralsight по новейшим технологиям, что является ключом к повышению вашего мастерства как профессионального программиста.

Даже если у вас нет членства, вы все равно можете получить доступ к этому курсу бесплатно, взяв 10-дневный БЕСПЛАТНЫЙ пропуск , который дает 200 минут времени на просмотр любого курса.

А теперь я говорю об инфографике.

Источник: www.perceptionsystem.com


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

Другое Программирование Статьи, которые могут вам понравиться для изучения

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

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

index-of.es/

 Название Размер
 Android / -
 Галерея искусств/                  -
 Атаки / -
 Переполнение буфера / -
 C ++ / -
 CSS / -
 Компьютер / -
 Конференции / -
 Растрескивание / -
 Криптография / -
 Базы данных / -
 Глубокая сеть / -
 Отказ в обслуживании/            -
 Электронные книги / -
 Перечисление / -
 Эксплойт / -
 Техники неудачной атаки / -
 Судебно-медицинская экспертиза / -
 Галерея / -
 HTML / -
 Взломать / -
 Взлом-веб-сервер / -
 Взлом беспроводных сетей / -
 Взлом / -
 Генератор хешей / -
 JS / -
 Ява/                         -
 Linux / -
 Отмыкание/                  -
 Журналы / -
 Вредоносное ПО / -
 Метасплоит / -
 Разное / -
 Разное / -
 Протоколы сетевой безопасности / -
 Сеть / -
 ОПЕРАЦИОННЫЕ СИСТЕМЫ/                           -
 Другое / -
 PHP / -
 Perl / -
 Программирование / -
 Python / -
 RSS / -
 Rdbms / -
 Разобрать механизм с целью понять, как это работает/          -
 Рубин/                         -
 Сканирование сетей / -
 Безопасность/                     -
 Захват сеанса / -
 Снифферы / -
 Социальная инженерия/           -
 Поддерживает / -
 Системный взлом / -
 Инструменты/                        -
 Учебники / -
 UTF8 / -
 Unix / -
 Вариос-2 / -
 Варианты / -
 Видео/                       -
 Вирусы / -
 Окна / -
 Беспроводная связь / -
 Xml / -
 z0ro-Репозиторий-2 / -
 z0ro-Репозиторий-3 / -
 

книг, которые (в конечном итоге) могут сделать вас лучшим программистом


Абстракция

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

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

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

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

Programming Pearls от Джон Бентли — Это довольно старая книга. Первое издание датируется 1986 годом. По сути, это книга по дизайну, ориентированная на «проектирование в малом»: как писать эффективные алгоритмы, как думать о проблемах, как менять место на скорость и так далее. Он разделен на «столбцы», так как это был набор столбцов, ранее опубликованных в журнале «Сообщения ACM». Это строго техническая книга со множеством реальных экспериментов, и, читая ее, становится ясно, что она написана на основе личного опыта самого автора.Иногда к этой книге обращаются с критикой: теперь, когда машины стали быстрее и с памятью стоит недорого, эта книга уже не так ценна, как раньше. Судя по моему личному опыту, это неверно по двум причинам. Во-первых, если вы замените память на кеш, вы окажетесь в той же точке, где мы были 20 лет назад, и нет необходимости тратить машинные циклы впустую. Во-вторых, в зависимости от того, что вы делаете, 24 ГБ ОЗУ может быть небольшим количеством, например, когда вы пытаетесь кластеризовать более 30 ГБ необработанных данных.На этом этапе изучение того, как думать о макете структур данных, является важной необходимостью для завершения вашей работы.

Практика программирования Брайан В. Керниган и Роб Пайк — Практическая инженерия и разработка программного обеспечения с примерами на 5 различных языках, сжатыми менее чем на 300 страницах. 300 плотных и приятных страниц. Это еще одна книга, написанная на основе опыта двумя изобретателями Unix, языка программирования C, AWK, точки и т. Д.Он охватывает практические вещи: как отлаживать, как тестировать, как писать переносимый код, как профилировать код, как комментировать код, чтобы он был эффективным и не раздражающим, как выразительность языков программирования влияет на эффективность программы (т. Е. , торгуя временем программистов на машинное время), и все заканчивается описанием того, как, по сути, написать виртуальную машину / интерпретатор. Код, использованный в качестве примера, прекрасен: он необходим до крайности и выполнен в красивом стиле. Прочитав эту книгу, вы определенно станете лучшим программистом.

Мифический месяц человека и другие очерки программной инженерии Фредерик П. Брукс мл. — Эта книга бессмертна. Она была написана в 1975 году, а это значит, что эта книга старше меня. Когда вы его читаете — если вы разрабатываете программное обеспечение профессионально — вы сразу можете заметить, что мир программной инженерии не так сильно изменился за все это время. И на самом деле, эта книга рассказывает вам, почему по прошествии стольких лет она не сильно изменилась: хотя программные инструменты сильно эволюционировали и у нас появились языки программирования более высокого уровня, отладчики, способные дать точное представление о том, что происходит во время выполнения. время и профилировщики, способные точно сказать вам, где ваша программа проводит время; К сожалению, люди, занимающиеся разработкой программного обеспечения, не так сильно эволюционировали, и проблемное пространство не сильно изменилось.Программная инженерия — это, по сути, деятельность, интенсивно использующая мозг, и человеческий мозг не развился за такое короткое время. Даже если инструменты сильно эволюционировали, люди остались прежними, и все человеческие проблемы, такие как общение, разделение работы между дизайном, кодированием и тестированием, не изменились. Независимо от того, насколько лучше ваш отладчик сейчас по сравнению с тем, тестирование и интеграция (то есть тестирование в более болезненной форме) всегда будут занимать более или менее 50% процесса разработки, а кодирование ваших алгоритмов и структур данных — только 1/6. проектного времени, а остальное — дизайн.Если вы достаточно поработали в производстве программного обеспечения, вы знаете, что это верно сейчас, как это было, когда автор участвовал в проекте OS / 360 еще в 60-х годах. Еще один важный вывод из книги: именно данные формируют алгоритмы, а не наоборот.

Код: скрытый язык компьютерного оборудования и программного обеспечения by Charles Petzold — Это одна из моих любимых книг. Так меня бы научили компьютерной архитектуре.Он начинается с представления информации и чисел (с помощью ламп, пальцев и системы Брайля) и доходит до реализации языков программирования и их сопоставления с инструкциями процессора. Все это, включая то, как информация хранится в битах, как работают регистры и схемы, как построить арифметический сумматор с лампами и переключателями и как эти схемы отображаются на строительные блоки процессора. Компьютерные архитектуры объясняли «снизу вверх», исходя из проблемы, для решения которой они были изобретены, а не из самого решения, поскольку все другие книги по компьютерной архитектуре структурированы.Читая эту книгу, я значительно улучшил свое понимание представления информации и того, как это соответствие в схемах. Знание того, что на самом деле находится под капотом, помогает вам понять, как сгибать инструменты высокого уровня, чтобы заставить их делать именно то, что вы от них хотите. Кроме того, если вы уже много знаете о компьютерных архитектурах, это определенно книга, которая многому вас научит и навсегда изменит ваш взгляд на компьютер. Хотя волшебство того, как работают эти адские машины, исчезнет, ​​оно исчезнет навсегда.Действительно.

The C Programming Language by Brian W. Kernighan and Dennis Ritchie — Эта книга, написанная в 1975 году, попала в этот список не потому, что язык программирования C — это язык программирования, который вам нужно знать как инженер-программист, но потому что это самый блестящий пример того, как вы должны писать техническую документацию, и потому что он содержит одни из самых красивых и элегантных примеров кода, которые мне когда-либо посчастливилось прочитать за всю свою жизнь.Примерно на 250 страницах два автора описывают синтаксис языка, его стандартную библиотеку и рассказывают, как использовать язык для выполнения работы. Гимн краткости и ясности. Мне никогда не удавалось создать документацию такой красоты, краткости и ясности, как это могли сделать два автора. Я очень старался, но потерпел неудачу. Я, вероятно, продолжу читать эту книгу, пытаясь научиться делать то же самое, движимая одной лишь завистью, но это, вероятно, один из немногих случаев, когда зависть является положительным моментом, потому что заставляет вас читать что-то хорошее.Такая краткость, элегантность и ясность выражается в самих примерах кода. Я не хочу объяснять почему, но оставлю это для примера. Следующая функция вводит день, месяц и год и сообщает вам, какой день в году этот (например, 21 февраля 1978 г. — 52-й день 1978 г.):

 
статический график daytab [2] [13] = {
    {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
    {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};

int day_of_year (int год, int месяц, int день) {
    int я, прыжок;
    високосный = год% 4 == 0 && год% 100! = 0 || год% 400 == 0;
    для (i = 1; i  

Прагматика языка программирования от Майкл Л.Скотт — Вы не можете назвать себя инженером-программистом или просто программистом, если у вас нет естественной любви и любопытства к языкам программирования. Языки программирования — это абстракция, которую мы, инженеры-программисты, создали для того, чтобы управлять машинами и указывать им, что делать. Эта книга — моя любимая книга по этой теме. Он описывает или просто может упомянуть почти 100 языков программирования, рассказывающих, почему они такие, какие классы задач они предназначены для решения и как они их решают.Автор также находит время поговорить о синтаксическом анализе, абстрактных синтаксических деревьях, виртуальных машинах, оптимизации и генерации кода, а также обо всех технических деталях, лежащих в основе языка программирования и компилятора. Честно говоря, языки программирования и компиляторы, вероятно, лучшее, что вы можете найти в компьютерной системе, в основном потому, что люди, которые их реализовали, реализовали их для себя: они были самыми первыми потребителями этих языков, а затем им пришлось меньше как можно более болезненно, и заказчик этих программ был хорошо известен, и все требования были очень четкими.

Как лгать со статистикой Даррелл Хафф — Это единственная книга из списка, которая не посвящена программированию. Это даже не книга о статистике. Это книга, которая учит вас, какие вопросы следует задавать, когда кто-то представляет вам некоторые данные. А если вы разрабатываете программное обеспечение профессионально, к вам приходит кто-то и говорит: «Нам (вам!) Необходимо реализовать эту функцию, потому что об этом говорят наши исследования рынка». Хорошо, давайте начнем задавать правильные вопросы: как было проведено это маркетинговое исследование? Каков размер выборки? Что на самом деле спросили? Это средство или средство массовой информации? Какое стандартное отклонение? Вы, наверное, получили это сейчас.Более того, научиться задавать все эти вопросы на самом деле означает научиться мыслить нестандартно и развить критическое мышление, особенно в отношении своей работы.

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

Некоторые важные книги отсутствуют в списке (например, «Искусство компьютерного программирования» Дональда Кнута) не потому, что я не считаю их плохими.Только потому, что я их совсем не читал или потому что я еще не читал их как следует. Например, приведенные выше книги были прочитаны по крайней мере дважды от корки до корки, а некоторые из их глав были прочитаны более двух раз, потому что мне это было нужно, или просто потому, что мне просто понравилось читать их снова.

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

.