Лучшие книги по программированию
Повысьте свои навыки кодирования с этим подбором лучших книг по программированию. Они признаны экспертами отрасли и публикациями в области технологий и ранжируются по количеству рекомендаций.
100 книг в списке
Сортировать по
Количество статей
Макет
Находясь на переднем крае программирования, книга «Программист-прагматик» абстрагируется от все возрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса — требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы — от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.
Представлено в 27 статьях
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.
Представлено в 24 статьях
Рекомендовано
Wes McKinneyСовершенный код
A Practical Handbook of Software Construction, Second Edition
Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО — с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код.
Изложенные в книге методики и стратегии помогут вам:
проектировать с минимальной сложностью и максимальной продуктивностью;
извлекать выгоду из групповой разработки;
применять методики защитного программирования, позволяющие избежать ошибок;
совершенствовать свой код;
применять методики конструирования, наиболее подходящие для вашего проекта;
быстро и эффективно производить отладку;
своевременно и быстро обнаруживать критические проблемы проекта;
обеспечивать качество на всех стадиях проекта.
Представлено в 21 статье
Эта книга — азбука компьютерных технологий. Шаг за шагом автор знакомит читателя с сущностью кодирования информации, рассказывает об истории возникновения компьютеров, на практических примерах помогает освоить основные концепции информационных технологий, подробно излагает принципы работы процессора и других устройств компьютера.
Написанная живо, доступно, иногда иронично, книга богато иллюстрирована, состоит из 25 глав и предметного указателя.
Издание адресовано в первую очередь студентам вузов (как гуманитарных, так и технических), а также всем, кто интересуется принципами создания и работы компьютеров.
Представлено в 13 статьях
Рекомендовано
Scott HanselmanПодход к улучшению структурной целостности и производительности существующих программ, называемый рефакторингом, получил развитие благодаря усилиям экспертов в области ООП, написавших эту книгу. Каждый шаг рефакторинга прост. Это может быть перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект или даже предотвратить распад плохо спроектированной программы.
Мартин Фаулер с соавторами пролили свет на процесс рефакторинга, описав принципы и лучшие приемы его осуществления, а также указав, где и когда следует начинать углубленное изучение кода с целью его улучшения. Основу книги составляет подробный перечень более 70 методов рефакторинга, для каждого из которых описываются мотивация и техника испытанного на практике преобразования кода с примерами на Java. Рассмотренные в книге методы позволяют поэтапно модифицировать код, внося каждый раз небольшие изменения, благодаря чему снижается риск, связанный с развитием проекта.
Представлено в 13 статьях
Рекомендовано
David Heinemeier Hansson"The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem."
- Steve McConnell, author, Code Complete
When programmers list their favorite books, Jon Bentley's collection of programming pearls is commonly included among the classics. Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that
Programming Pearls
has been so highly valued by programmers at every level of experience.
In this revision, the first in 14 years, Bentley has substantially updated his essays to reflect current programming methods and environments. In addition, there are three new essays on (1) testing, debugging, and timing; (2) set representations; and (3) string problems. All the original programs have been rewritten, and an equal amount of new code has been generated. Implementations of all the programs, in C or C++, are now available on the Web.
What remains the same in this new edition is Bentley's focus on the hard core of programming problems and his delivery of workable solutions to those problems. Whether you are new to Bentley's classic or are revisiting his work for some fresh insight, this book is sure to make your own list of favorites.
Представлено в 13 статьях
Рекомендовано
Jeff AtwoodФундаментальный труд известных специалистов в области кибернетики достоин занять место на полке любого человека, чья деятельность так или иначе связана с информатикой и алгоритмами. Для профессионала эта книга может служить настольным справочником, для преподавателя - пособием для подготовки к лекциям и источником интересных нетривиальных задач, для студентов и аспирантов - отличным учебником. Каждый может найти в ней именно тот материал, который касается интересующей его темы, и изложенный именно с тем уровнем сложности и строгости, который требуется читателю.
Описание алгоритмов на естественном языке дополняется псевдокодом, который позволяет любому имеющему хотя бы начальные знания и опыт программирования, реализовать алгоритм на используемом им языке программирования. Строгий математический анализ и обилие теорем сопровождаются большим количеством иллюстраций, элементарными рассуждениями и простыми приближенными оценками. Широта охвата материала и степень строгости его изложения дают основания считать эту книгу одной из лучших книг, посвященных разработке и анализу алгоритмов.
Представлено в 12 статьях
Мифический человеко-месяц или как создаются программные системы
Essays on Software Engineering, Anniversary Edition (2nd Edition)
Эта книга - юбилейное (дополненное и исправленное) издание своего рода библии для разработчиков программного обеспечения во всем мире, написанное Бруксом еще в 1975 году. Тогда же книга была издана на русском языке и давно уже стала библиографической редкостью. В США полагают, что без прочтения книги Брукса не может состояться ни один крупный руководитель программного проекта.
Если вы никогда не слышали об этой книге, вы можете поискать ссылки на нее в Интернете (Frederick P. Brooks, The Mythical Man-Month). Вам все сразу станет понятно. Вот, например, как отзываются об этой книге заказчики крупнейшего зарубежного web-магазина Amazon.com.
Фредерик Брукс - профессор вычислительной техники в школе бизнеса Кенан университета штата Северная Каролина в Чэпел Хилл. Он известен, прежде всего, как `отец IBM System/360`. Помимо этого, Брукс занимался разработкой в IBM архитектуры компьютеров Stretch и Harvest.
В 1985 году Фредерик Брукс, Боб Эванс и Эрик Блох были награждены Национальной медалью в области технологии за проектирование разработки операционной системы Operating System/360.
Доктор Брукс был членом национального и военного комитетов по науке, основал в Чэпел Хилл факультет вычислительной техники и возглавлял его с 1964 по 1984 годы. В настоящее время он занимается преподаванием и исследованиями в области архитектуры компьютеров, молекулярной графики и виртуальных сред.
Представлено в 12 статьях
Учитесь извлекать максимум пользы из унаследованных систем, повышая их производительность, функциональность, надежность и сопровождаемость!
Можете ли вы без особого труда изменить код и тут же получить ответную реакцию на внесенные изменения? Насколько понятен этот код? Если вы ответите на эти вопросы отрицательно, значит, вы имеете дело с унаследованным кодом и понапрасну тратите время и средства на разработку.
В своей книге Майкл Физерс предлагает полноценные стратегические приемы эффективной работы с крупными базами унаследованного нетестированного кода. В основу этой книги положен материал, подготовленный автором к известным семинарам, организуемым компанией Object Mentor, включая приемы, которым автор обучил сотни разработчиков, технических руководителей и тестирующих программное обеспечение подчинять себе непослушные унаследованные системы.
В этой книге освещаются следующие вопросы:
Представление о механизмах внесения изменений в программное обеспечение, включая ввод новых свойств, устранение программных ошибок, улучшение структуры кода, оптимизацию производительности.
Перенос унаследованного кода в средства тестирования.
Написание тестов, препятствующих внесению новых ошибок в код.
Применение методов, подходящих для любого языка или платформы, с примерами кода на Java, C++, C и C#.
Точное выявление мест в коде, где требуется внести изменения.
Работа с унаследованным кодом, который не является объектно-ориентированным.
Обращение с приложениями, у которых, на первый взгляд, нет вообще никакой структуры.
Кроме того, в этой книге представлены 24 способа разрыва зависимостей, помогающих работать с элементами программного обеспечения обособленно, чтобы сделать внесение изменений в код более безопасным.
Представлено в 10 статьях
Рекомендовано
Julia EvansThe Definitive Guide to Java Platform Best Practices--Updated for Java 7, 8, and 9 Java has changed dramatically since the previous edition of Effective Java was published shortly after the release of Java 6. This Jolt award-winning classic has now been thoroughly updated to take full advantage of the latest language and library features. The support in modern Java for multiple paradigms increases the need for specific best-practices advice, and this book delivers. As in previous editions, each chapter of Effective Java, Third Edition, consists of several "items," each presented in the form of a short, stand-alone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. The third edition covers language and library features added in Java 7, 8, and 9, including the functional programming constructs that were added to its object-oriented roots. Many new items have been added, including a chapter devoted to lambdas and streams. New coverage includes
Functional interfaces, lambda expressions, method references, and streams Default and static methods in interfaces Type inference, including the diamond operator for generic types The @SafeVarargs annotation The try-with-resources statement New library features such as the Optional interface, java.time, and the convenience factory methods for collections Register your product at informit.com/register for convenient access to the web edition eBook, updates, and/or corrections as they become available.
Представлено в 9 статьях
Приемы объектно-ориентированного проектирования by Erich Gamma
Структура и Интерпретация Компьютерных Программ by Harold Abelson
Веб-дизайн by Steve Krug
Паттерны проектирования by Eric Freeman
Карьера программиста by Gayle Laakmann McDowell
Предметно-ориентированное проектирование (DDD) by Eric Evans
Выразительный Javascript by Marijn Haverbeke
Язык программирования C by Brian W. Kernighan
Идеальный программист by Robert Martin
Сам себе программист by Cory Althoff
Изучаем Python by Eric Matthes
Человеческий фактор by Tom Demarco
Искусство программирования, том 1 by Donald E. Knuth
Javascript и jQuery by Jon Duckett
The Complete Software Developer's Career Guide by John Sonmez
Coding Games in Scratch by Jon Woodcock
Путь программиста by Z. Sonmez John Et Al
Java Concurrency на практике by Brian Goetz
Искусственный интеллект by Stuart Russell
Изучаем Java by Kathy Sierra
Шаблоны корпоративных приложений by Martin Fowler
Rapid Development by Steve McConnell
Eloquent Ruby by Russ Olsen
Python для детей by Jason R. Briggs
Изучаем программирование на Python by Paul Barry
Легкий способ выучить Python by Zed Shaw
HTML и CSS by Jon Duckett
Python by Luciano Ramalho
Practical Object-Oriented Design by Sandi Metz
The Go Programming Language by Alan A. A. Donovan
R for Data Science by Hadley Wickham
Изучаем Python, том 1 by Mark Lutz
The Well-Grounded Rubyist by David A. Black
Code Your Own Games! by Max Wainewright
Coding for Kids by Adrienne Tacke
{Вы пока еще не знаете JS} Познакомьтесь, JavaScript by Kyle Simpson
Непрерывное развертывание ПО by Jez Humble
C# для профессионалов by Jon Skeet
The Effective Engineer by Edmond Lau
Компиляторы by Alfred V. Aho
Типы в языках программирования by Benjamin C. Pierce
Ruby Under a Microscope by Pat Shaughnessy
Concurrency in Go by Katherine Cox-Buday
Head First C by David Griffiths
Swift Programming by Matthew Mathias
The Art of R Programming by Norman Matloff
Artificial Intelligence for Games by Ian Millington
Absolute Beginner's Guide to C by Greg Perry
Hello Ruby by Linda Liukas
Кодеры за работой by Peter Seibel
Operating System Concepts by Peter Gagne Galvin Abraham Silberschatz
The Joy of PHP by Alan Forbes
Principles of Information Security by Michael E. Whitman
Zero Bugs and Program Faster by Kate Thompson
Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook by Workman Publishing
The Little Schemer by Daniel P. Friedman
Эффективный и современный С++ by Scott Meyers
Алгоритмы на Java by Robert Sedgewick
A Smarter Way to Learn JavaScript. The new tech-assisted approach that requires half the effort by Mark Myers
Machine Learning with R by Brett Lantz
Экстремальное программирование by Kent Beck
Быстрая разработка программ by Robert C. Martin
Python Cookbook by David Beazley
C Programming by K. N. King
В работу с головой by Cal Newport
Командная строка Linux by William Shotts
Scala by Martin Odersky
Metaprogramming Ruby by Paolo Perrotta
Язык программирования C++ by Stanley B. Lippman
Ruby on Rails Tutorial by Michael Hartl
Программирование by Bjarne Stroustrup
Design Patterns in Ruby by Russ Olsen
R Packages by Hadley Wickham
Creative Coding in Python by Sheena Vaidyanathan
C in a Nutshell by Peter Prinz
The Elements of Style by William Strunk Jr.
Сила привычки by Charles Duhigg
Дизайн привычных вещей by Don Norman
Игровой движок by Jason Gregory
Linux API by Michael Kerrisk
Pragmatic Thinking and Learning by Andy Hunt
Создаем нейронную сеть by Tariq Rashid
Expert C Programming by Peter van der Linden
My First Coding Book by Kiki Prottsman
Освой самостоятельно SQL за 10 минут by Ben Forta
Lift-the-Flap Computers and Coding by Rosie Dickins
Экстремальное программирование by Kent Beck
C by Samuel P. Harbison
25 Scratch 3 Games for Kids by Max Wainewright
The Little Book of Julia Algorithms by Ahan Sengupta, William Lau