Книги по it – Книги по IT, программированию (.NET, C#, HTML, CSS, PHP, Python, Java, JavaScript, C, C++, SEO, веб-дизайну), СУБД, сетям VoIP, IT безопасности,  графике и обработке видео, работе с программами, ПК, Mac OS, Linux, FreeBSD и другим ОС.

Содержание

Книги для системного администратора. Моя книжная полка / Habr

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


1
Начну с книги наиболее меня вдохновившей.
На одном из форумов, где общаюсь, я когда-то очень эмоционально написал — «Это самый мастхевнийший мастхев из известных мне мастхевов».
Юмор, стеб и полезный опыт — в этой книге есть все. Мой любимый автор, и к его трудам я еще вернусь.

Автор: Майкл Лукас
Название: «FreeBSD. Подробное руководство»



Людям, кричащим «бзда рип», советую идти лесом.
Эту книгу стоит прочесть.

2
Следующий труд тяжело описать в двух словах — это просто библия *nix админа.
В свое время я не выпускал эту книгу из рук, и сейчас она является «настольной».
Изложен колоссальный опыт, её необходимо читать читать и читать.

Авторы: Эви Немет, Гарт Снайдер, Трент Р. Хейн, Бэн Уэйли
Название: «Unix и Linux. Руководство системного администратора»


Для себя я приобрел её в оригинале.
Язык написания весьма сложен, но зато сразу +100 к английскому.

3
Теперь коснемся сетей.
В понимании основ эта книга была мне крайне полезна.
В первой части подробно расписаны основополагающие вещи — что такое IP адрес, MAC адрес, основы маршрутизации, как считать маску подсети без калькулятора и многое, многое другое.

Автор: Брайан Хилл
Название: «Полный справочник по Cisco»

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

Авторы: Виктор Олифер, Наталия Олифер
Название: «Компьютерные сети. Принципы, технологии, протоколы»


Как по мне, лучше пройти курс CCNA Exploration(есть на просторах Интернет во флеше), который здорово раскадывает все по местам.
Но упомянуть я её таки должен.

5
Вернусь к Майклу Лукасу.
Для общего развития следующие книги будут очень полезны.
Первая книга о OpenBSD. Потрясающая в своей простоте, безопасности и законченности ОС.
Только там я наконец-то оценил всю мощь и полезность команды man.

Было время, когда эта ОС стояла на моем домашнем сервере и книга была важным подспорьем.

Автор: Michael W. Lucas
Название: «Absolute OpenBSD»

Вторая о NetFlow.
Полезный текст в изумительном авторском стиле.
Хотите знать что за трафик у вас бегает — обязательно прочтите.

Автор: Michael W. Lucas
Название: «Network Flow Analysis»

6
Теперь пройдемся по специфическим, но никак не бесполезным, темам.
Если вы занимаетесь настройкой/поддержкой MySQL, то эту книгу нужно иметь под рукой.

Авторы: Baron Schwartz, Peter Zaitsev, Vadim Tkachenko
Название: «High Performance MySQL, 3rd Edition»


Масса тонкостей в настройке сабжа.

7
Почтовые серверы, куда же без них.
Эта книга во многом помогала и помогает.

Авторы: Р. Гильдебрандт, П. Кеттер
Название: «Postfix. Подробное руководство»

8
Продолжая тему предложу пару книг о IP телефонии.
Первая о Asterisk, самый полный и лучший источник информации по данной IP АТС.

Авторы: Russell Bryant, Лиф Мадсен, Джим Ван Меггелен
Название: «Asterisk: The Definitive Guide»


Давеча купил на амазоне в бумаге, доволен как слон после купания.

А если вы задумаете изучить FreeSWITCH, то без этой книги вам никак не обойтись.
Автор: Anthony Minessale
Название: «FreeSWITCH 1.2»

9
Считаю, что каждый *nix админ должен прочесть данный труд от столпа всея Unix.
Столько классных tricks and tips я не встречал нигде.

Авторы: Брайан У. Керниган, Роб Пайк
Название: «Unix. Программное окружение»


10
Разбавлю этот уютный *nix/networks/etc кружок книгой по Windows администрированию.
Не все со мной согласятся, но я считаю её плезной и мне она очень помогла на старте.

Автор: Петр Шетка
Название: «Microsoft Windows server 2003. Практическое руководство по настройки сети»


Все книги найдены на просторах Интернет, при желании каждый легко сможет найти самостоятельно…

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

Из комментариев.
k3NGuru написал:
«Я остался в восторге от этой книги.
Хорошо написана и показаны основные моменты администрирования Windows Server 2012»

Автор: Линн С.
Название: «Администрирование Microsoft Windows Server 2012»

Ovsiannikov написал:
«в своё время специально искал книгу просто по командной строке, без воды и рассказов про гномов и кеды.

очень понравилось, до сих пор настольная книга (буквально), хотя не открывал уже давно.»

Авторы: Jerry Peek, Shelley Powers, Tim O’Reilly, Mike Loukides
Название: «Unix Power Tools»

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

Автор: Томас А. Лимончелли
Название: «Тайм-менеджмент для системных администраторов»

urticazoku и xaryko советуют:
«Для начинающих админов и тех, кто решил сам освоить профессию к прочтению обязательна. Там разобрана куча вопросов с которыми придется столкнуться, даны рекомендации что делать в разных ситуациях, и все это подкреплено занимательными примерами.»

Авторы: Томас А. Лимончелли, Кристина Хоган, Страта Чейлап
Название: «Системное и сетевое администрирование. Практическое руководство»

Amet13 добавляет:
«DNS и BIND — К.Ли, П.Альбитц»
Книга незаменима для администрирования популярного named сервера, да и к пониманию DNS дает много.
Забыл о ней написать, исправляю.

Авторы: Крикет Ли, Пол Альбитц
Название: «DNS и BIND»

И еще одна от Amet13 — «Linux. Необходимый код и команды. Карманный справочник».
Сам не читал, Amet13 пишет, что:
«Linux. Необходимый код и команды. Карманный справочник — С.Граннеман (для начинающих неплохой хендбук) [2]»

Автор: Скотт Граннеман
Название: «Linux. Необходимый код и команды. Карманный справочник»

fkvf пишет:

«Для тех кто хочет в автоматизацию Python в системном администрировании
Книга правда немного старовата»
От себя могу сказать, что многое взял из этой книги, в том числе при написании Запуск локальных ssh/telnet/vnc клиентов по ссылке из карты Zabbix

Авторы: Ноа Гифт, Джереми М. Джонс
Название: «Python в системном администрировании UNIX и Linux»

sergmesh пишет:
рекомендую
Operating Systems: Internals and Design Principles
Описано не только как сделано, но и почему. Сравниваются возможности разных операционных систем, как устроены планировщики задач и тд

Автор: William Stalling
Название: Operating Systems: Internals and Design Principles

Камрад с форума sysadminz.ru под ником «oink :)» пишет:
Следующая книга это отличное введение в основы систем хранения данных, даёт обзорное представление о RAID, SAN (iSCSI/FC), технологиях резервного копирования и репликации, также является официальным учебным пособием к экзамену EMC Information Storage and Management Associate – EMCISA 10-001 education.emc.com/guest/certification/framework/stf/stf.aspx Минимум воды, минимум emc-специфичных технологий.

Автор(редактор): EMC Education Services
Название: Information Storage and Management: Storing, Managing, and Protecting Digital Information in Classic, Virtualized, and Cloud Environments

после неё хорошо идёт
Storage Implementation in vSphere 5.0 (VMware Press)

Автор: Mostafa Khalil
Название: Storage Implementation in vSphere 5.0 (VMware Press)

Отличное введение в технологии от M$ — даёт общее представление, не углубляясь в детали, немного более поверхостная, чем версия по 2003-му. После неё гораздо легче читать более специализированные книжки от M$. ЕМНИП, есть на русском.

Авторы: Mark Minasi, Darril Gibson, Aidan Finn, Wendy Henry, Byron Hynes
Название: Mastering Microsoft Windows Server 2008 R2

Самая главная книжка по vmware, после неё можно реально сдать тест vcp (в отличие от официальных книжек, которые идут в комплекте с курсом), и иметь достаточное представления об основах виртуализации, чтобы читать более специализированные книжки.

Автор: Nick Marshall
Название: Mastering VMware vSphere 6

Главные книжки для подготовки к RHCSA/RHCE, содержат все необходимые сведения для сдачи теста и дают достаточный обзор всех основ, чтобы можно было вкуривать маны и читать дополнительные книжки и документацию. В сентябре должна выйти новая версия по RHEL 7. Во второй книжке дополнительные лабы и preconfigured (хз, как это по русски сказать) виртуальные машины для упражнений.

Автор: Michael Jang
Названия: RHCSA/ RHCE Red Hat Linux Certification: Exams (Ex200 & Ex300) (Certification Press) и RHCSA/RHCE Red Hat Linux Certification Practice Exams with Virtual Machines (Exams EX200 & EX300)

Можно дополнить книжкой

Автор: Sander van Vugt
Название: Red Hat Enterprise Linux 6 Administration: Real World Skills for Red Hat Administrators


и видео от LinuxCBT.com www.linuxcbt.com/products_linuxcbt_el-6_edition.php или www.linuxcbt.com/products_linuxcbt_el-7_edition.php

habr.com

подборка популярных книг о программировании, языках, алгоритмах / ИТ-ГРАД corporate blog / Habr

В сегодняшнем материале мы собрали одни из наиболее популярных книг, отобранных самими разработчиками — резидентами Reddit, Quora, Stack Exchange, Stack Overflow и Hacker News.

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


/ фото Marketa CC



Об устройстве компьютера и разработке в целом




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


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

Крэйг Роу (Craig Rowe), руководитель группы разработчиков компании Dootrix, признается, что прочитал книгу только потому, что Джоэл Спольски (Joel Spolsky), автор блога Joel on Software и один из основателей Stack Overflow, назвал её маст-ридом. Сначала Крэйг сомневался, стоит ли читать книгу, ведь она вышла в 2000 году. Но в итоге прочитал и остался доволен: книга помогла ему заполнить пробелы по темам, упущенным во время обучения, а повествование в формате последовательности исторических событий позволило сделать чтение увлекательным.




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


Ещё одна книга об устройстве компьютера для читателей любого уровня. В ней доступным языком описаны общие принципы работы компьютера. Один из авторов блога WirelessMoves утверждает, что всего 30 минут с этой книгой позволили ему понять, как работает ЦПУ — блогер признает, что несмотря на опыт и теоретические знания, для него этот раздел был своего рода «белым пятном». Специфика книги поможет сделать то же самое даже тем, кто ничего не знает об электронике.

В книге есть множество практических задач, решение которых приводится далеко не всегда — некоторые видят в этом еще одно ее достоинство. В качестве дополнения к этой книге пользователи Reddit рекомендуют обратить внимание на издание The Elements of Computing Systems.




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

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

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



Об алгоритмах





Программист Филип Бьюак (Philip Buuck) утверждает, что эта книга стала самой захватывающей книгой о структурах данных из всех, что он когда-либо читал. Стивен Скиена (Steven Skiena), автор книги и профессор информатики Университета штата Нью-Йорк в Стоуни-Брук, на понятном языке объясняет читателю сложные вещи, а в конце каждой главы приводит массу упражнений.

Однако мнения резидентов Stack Overflow об этой книге разделились: кто-то уверенно рекомендует её начинающим, а кто-то советует только полистать первые 200 страниц. Кстати, Стивен Скиена в 1988 году вместе со своей командой придумал и описал концепцию, похожую на iPad, на конкурсе по разработке компьютера будущего.




Фундаментальная монография о принципах работы алгоритмов и о структурах данных от выдающегося учёного в области компьютерных наук, профессора, математика и идеолога программирования Дональда Кнута (Donald Knuth). Эту книгу читать не просто, однако по мнению резидентов Hacker News и Stack Exchange, она стоит потраченных усилий. Билл Гейтс был готов рассмотреть резюме каждого, кто осилит этот труд. У самого Гейтса на это ушло «несколько месяцев в условиях строжайшей дисциплины».

О тонкостях Linux





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

По словам Фила Булла (Phil Bull), исследователя в области астрофизики из NASA, проблема многих книг по Linux состоит в том, что они пытаются объять необъятное. Авторы часто мечутся между общим, но поверхностным материалом и описанием специфики конкретного дистрибутива.

Автор этой книги сумел найти баланс между данными о системе в целом и более детальной информацией. По мнению разработчика компании AppDynamics Фрэнка Клирли (Frank Cleary), книга помогла ему лучше понять, как взаимодействуют разные компоненты Linux, и применять полученные знания в работе.




По словам Дэйва (Dave C), системного администратора, разработчика и автора YouTube-канала tutoriaLinux, если вы хотите прочитать только одну книгу по системному администрированию, стоит выбрать эту. Книга станет хорошим справочником и позволит быстро найти нужную информацию благодаря удобному содержанию.

Резиденты Reddit отмечают, что она подскажет нужные инструменты и научит управлять популярными серверными дистрибутивами. Автор книги, преподаватель и инженер Эви Немет (Evi Nemeth) известна глубокими познаниями в области системного администрирования и сетевых технологий. Помимо работы в ИТ и преподавания Эви увлекалась яхтенным туризмом и ходила на своей яхте Wonderland в разные части мира. В 2013 году она вместе с командой отплыла на яхте Niña в направлении Австралии и пропала без вести где-то в пути.




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

Автор книги Майкл Керриск (Michael Kerrisk) — программист и создатель проекта Linux man-pages получил широкое признание за этот объемный (1500+ страниц) труд среди Linux-разработчиков. Федерико Лючифреди (Federico Lucifredi), менеджер дистрибутивов SUSE Linux Enterprise и openSUSE, называет эту книгу энциклопедией программирования под Linux.

А Джейк Эдж (Jake Edge), Linux-разработчик и редактор LWN.net, говорит, что, несмотря на внушительный объем, книга легко читается и простыми словами объясняет большинство ключевых моментов.


/ фото Wall Boat PD



О языках программирования





Знакомиться с C++ логично, следуя советам его создателя: Бьёрна Страуструпа. Автор подробно изложил в своей книге фундаментальные особенности и эволюцию языка. Первое издание книги датируется 1986 годом. Популярность книги с тех пор только росла: ее издавали 4 раза (последний в 2013) и перевели на 20 языков.

Питер Ли (Peter Lee), глава Microsoft Research, особенно рекомендует обратить внимание на книгу тем, кто хочет освежить свои знания о С++. Кроме того, Ли отмечает хорошую подачу материала, которая позволяет быстро и эффективно найти и изучить все, что нужно. Стоит учесть физические размеры книги (если вы предпочитаете бумажную версию): томик размером в 1300 страниц читать в транспорте или между делом будет не очень удобно.

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




На ста пятидесяти страницах этой книги авторы сумели уместить множество достойных советов. Джон Курлак (John Kurlak) из Facebook, жалеет, что не прочел ее, когда впервые столкнулся с JavaScript, потому что объем и подача материала хорошо подходят для начинающих. По словам Джона, книга будет полезна, если вы хотите изучить шаблоны проектирования на этапе знакомства с языком. Книгу традиционно включают в списки самых популярных: 178 упоминаний на Stack Overflow и 639 на Reddit.


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


Питер Купер (Peter Cooper), разработчик и автор книги Beginning Ruby, прочитал эту книгу целиком всего за 24 часа. По его словам, книга затягивает манерой письма: кажется, что её написал один из ваших друзей.

В отличие от своей предыдущей книги Design Patterns in Ruby в этой автор Расс Олсен (Russ Olsen) рассматривает не конкретные шаблоны проектирования на Ruby, а стиль и сущность Ruby в целом. Разработчик и автор блога Code inComplete Джейк Гордон (Jake Gordon) рекомендует эту книгу продвинутым Ruby-программистам, которые хотят убедиться, что они на верном пути.




Этот классический учебник также иногда называют K&R по первым буквам фамилий авторов. Первый из них — Брайан Керниган (Brian Kernighan), ученый, один из разработчиков Unix, соавтор языков AWK и AMPL. Второй — Деннис Ритчи (Dennis Ritchie), физик, математик, создатель С и один из ведущих разработчиков Unix.

Резиденты Reddit отмечают, что книга может стать вашим единственным туториалом по С, потому что дает исчерпывающее представление о структуре и особенностях языка. А программист Майк Тейлор (Mike Taylor) сравнивает эту книгу с группой Beatles: она популярна и популярность её абсолютно заслуженна.



О тонкостях работы и самосовершенствовании





Пользователи всех тематических площадок рекомендуют эту книгу к прочтению. Например, в этом треде на Quora её советует почти каждый пользователь. Автор книги — Робер Сесил Мартин (Robert Cecil Martin), известный как Uncle Bob, разработчик ПО, писатель и соавтор Agile Manifesto. Эта книга упоминалась на Stack Overflow 256 раз, помогла многим людям переосмыслить свой подход к работе.

Дрю Хувер (Drew Hoover), разработчик компании Atomic Object, отмечает, что несмотря на возраст, книга содержит мысли и идеи, которые не теряют своей значимости. Некоторые, однако, ругают книгу за излишнюю категоричность — поэтому Clean Code рекомендуют опытным программистам.




Эту книгу можно встретить почти в каждой подборке материалов для разработчика. И не просто так. Её автор Стив Макконнелл (Steve McConnell), генеральный директор компании Construx Software, дважды получал награду Jolt Excellence за выдающиеся книги о разработке ПО.

Один из основателей Stack Overflow Джефф Этвуд (Jeff Atwood) отмечает, что чтение этой книги означает, что вам нравится ваша работа, вы серьезно к ней относитесь и хотите совершенствоваться. А блогер и разработчик Джейсон Роэлл (Jason Roell) считает, что независимо от опыта, среды разработки или размера проекта, эта книга будет стимулировать мышление и поможет усовершенствовать код.

Осман Ахмед Осман (Osman Ahmed Osman), ведущий инженер Quora, утверждает, что в первый день работы в Google ему выдали именно эту книгу как гайд по написанию кода, и она здорово ему помогла. Среди минусов можно отметить объём — 900 страниц быстро прочитать не получится — и постепенное устаревание некоторых принципов, упомянутых в книге.




Самая популярная книга на Stack Overflow расскажет, что делать с legacy-кодом — устаревшим кодом, который не обновляется, но используется. Илай Бендерски (Eli Bendersky) пишет, что «книга содержит приемы, такие же ужасные, как и тот код, на доработку которого они направлены». Как отмечает Илай, 400 страниц книги содержат мало «воды», и читать ее «линейно», от начала до конца, сложно и не всегда полезно. Удобнее использовать книгу как сборник рекомендаций по работе с теми или иными проблемами legacy-кода.


Эта книга описывает решение задач объектно-ориентированного программирования и предлагает 23 шаблона для создания гибких и изящных решений самостоятельно. Из-за длинного названия её иногда называют «книга банды четырёх» (book by the Gang of Four).

Резиденты Stack Exchange называют ее канонической в плане изучения шаблонов проектирования. А начать знакомство с шаблонами пользователи Stack Exchange рекомендуют с книги Head First Design Patterns: A Brain-Friendly Guide. Несмотря на неоднозначную обложку, многие отмечают, что ее легко читать, что особенно важно при знакомстве с темой.




Этой книге уже 40 лет, но её до сих пор читают, обсуждают и включают в списки любимых книг программистов. Секрет популярности прост: технологии меняются, а люди — нет. Фредерик Брукс (Frederick Brooks), автор книги и ученый в области теории вычислительных систем известен тем, что руководил разработкой OS/360 в IBM и изложил в своей книге «закон Брукса»: если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше. Книга будет полезна всем, кто управляет проектами и задумывается о продуктивной работе.


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

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



А какие книги, полезные для программистов, порекомендовали бы вы?

Расскажите об этом в комментариях!



P.S. Вот ещё пара подборок из нашего блога на Хабре:
P.P.S. И несколько материалов по теме из нашего корпоративного блога:

habr.com

как читать и что именно

Начинающие программисты часто спрашивают, какие книги по программированию читать и как, чтобы лучше усвоился материал. Отвечаем на эти вопросы.

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

Зачем нужны книги по программированию?

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

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

Сперва определитесь, что планируете осваивать.

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

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

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

Другой пример:

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

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

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

Подытожим:

  1. Начинаете изучать что-то новое и не знаете, насколько оно сложное? Попробуйте для начала пробежаться по быстрым курсам, статьям и туториалам. Не помогло? Тогда ищите книги по программированию для основательного углубления в теорию.
  2. Уверены, что технология не является «rocket science» (сложной)? В этом случае книгу можно отложить до лучших времен, когда вы обрастете некоторым опытом: так она окажется намного более понятной и полезной.
  3. Если же точно знаете, что будет непросто (язык со сложными конструкциями, парадигмами, разработка под конкретную платформу, etc.), сразу ищите книгу, но также не забывайте о параллельной практике.

Как лучше читать книги по программированию?

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

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

Правило первое: только практика набивает руку.

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

Правило второе: перечитывайте.

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

Правило третье: пять книг не лучше, чем одна.

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

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

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

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

Какие книги по программированию читать?

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

Оригинал статьи

proglib.io

10 лучших книг по программированию по мнению Reddit

Проект Reddit Favorites проанализировал 3,5 млрд. комментариев и выделил самые упоминаемые книги по программированию, 10 из которых перед вами.

1. Роберт Мартин «Чистый код»

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

Оригинал

2. Стив Макконнелл «Совершенный код»

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

Оригинал

3. Брайан Керниган, Деннис Ритчи «Язык программирования С»

Книга по программированию от авторов языка C. В своё время она стала своеобразным классическим учебником по языку С и до сих пор является классикой для всех изучающих и/или использующих как С, так и С++.

На текущий момент книга переиздана уже в третий раз с учётом всех поправок и изменений в терминологии за прошедшее время.

Оригинал
В русском переводе

4. Джошуа Блох «Java. Эффективное программирование»

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

Оригинал
В русском переводе

5. Кэти Сьерра и Берт Бейтс «Изучаем Java»

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

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

6. Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му «Язык программирования C++. Базовый курс»


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

Оригинал
На OZON

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

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

Оригинал
В русском переводе

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

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

Оригинал

9. Харольд Абельсон, Джеральд Джей Сассман
«Структура и Интерпретация Компьютерных Программ»

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

Оригинал
В русском переводе

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

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

Том 1-3

Вас также может заинтересовать:

proglib.io

10 книг для программистов, которые хотят стать эффективнее

Хотите стать эффективнее? Мы подготовили подборку книг для программистов, которые стремятся лучше управлять рабочими процессами.

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

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

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

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

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

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

Легендарная книга, которую стоит прочитать всем, кто связан с программированием и управлением проектами в ИТ. Здесь описаны наиболее интересные случаи и главные проблемы в разработке, с которыми сталкивались авторы. Быть прагматиком в сфере IT – значит работать эффективно, и данная книга поможет этого добиться.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник: toster.ru — «Посоветуйте несколько книг для программистов»

proglib.io

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

read.kj.media

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО / Habr

Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием «самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения» и описанием:

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

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

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

1. Первое место с результатом ~1700 голосов заняла книга:


Совершенный код
Автор: С. Макконнелл

Тот самый Стив Макконнелл, которому приписывают фразу: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.«

Первое издание этой книги вышло в 1993 году, второе — в 2004. Первый русский перевод — в 2005 году.

«Энциклопедия хороших практик программирования. Совершенный код фокусируется на личном искусстве, мастерстве — тех вещах, которые мы интуитивно называем writing clean code. Это та книга, которая может 50 страниц описывать правильное форматирование кода и количество пробелов». Джо Спольски.


2. Второе место с близким результатом ~1500 голосов заняла книга:

Программист-прагматик. Путь от подмастерья к мастеру
Авторы: Э. Хант, Д. Томас

Первое англоязычное издание этой книги вышло в 1999 году. Первое русское издание — в 2004 году в серии «Библиотека программиста».

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


3. Третье место уже со значительным отставанием ~930 голосов заняла книга:

Структура и Интерпретация Компьютерных Программ
Авторы: Харольд Абельсон, Джеральд Джей Сассман

Книга на английском языке выложена авторами в свободный онлайн доступ и даже снабжена видео-лекциями.

Структура и интерпретация компьютерных программ преподавалась в Массачусетском технологическом институте, и этот курс имел влияние на весь мир по учебным программам компьютерных наук в течение последних двух десятилетий. На stackoverflow пишут, что книга буквально просветлит нас (will enlighten you) и после нее появится стремление писать великолепные программы. И что если все остальные книги делают из нас лучшего (better) программиста, то конкретно эта — сделает из читателя программиста.


4. Четвертое место со счетом ~790 голосов заняла книга:

Язык программирования C
Авторы: Брайан Керниган, Деннис Ритчи

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


5. И завершает пятёрку лидеров со счетом ~680 голосов книга:

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

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


На последующих местах расположились не менее замечательные книги, такие как «Паттерны проектирования» GoF, «Рефакторинг» Мартина Фаулера, «Мифический человеко-месяц» Ф.Брукса и т.д., книги действительно отличные, все их просто невозможно перечислить в одном обзоре.

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

Немного ссылок:

Оригинальное голосование.

Обзоры компьютерной литературы от Джо Спольски.

habr.com

Отправить ответ

avatar
  Подписаться  
Уведомление о