1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Книга «Программирование без дураков»

Программирование без дураков

Купить в магазинах
  • В данный момент нет в продаже.
Рейтинг
Общая оценка
Ваша оценка
  • Читали: 0
  • Хотят прочесть: 0
Метки:
Описание
  • Издательство: Питер
  • ISBN: 9783897215672

Хотите научиться программировать «less wrong»? Тогда эта книга – для вас. Ведь программирование – это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом – зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует. Познакомьтесь с разнообразными традициями, существующими в различных языках программирования, узнайте, как, практически не спотыкаясь, передвигаться по этой пересеченной местности. Со знанием дела и юмором авторы погружаются в обсуждение ложных путей, неверных суждений и ошибок, тем самым значительно облегчая жизнь любому начинающему и бывалому программисту. Обо всём этом и не только в книге Программирование без дураков (Пассиг Катрин, Яндер Йоханнес)

Средний балл:

Рецензий на книгу «Программирование без дураков» пока нет. Уже прочитали? Напишите рецензию первым

Средний балл:

Отзывов о книге «Программирование без дураков» пока нет. Оставьте отзыв первым

Цитат из книги «Программирование без дураков» пока нет. Добавьте цитату первым

К сожалению, в данный момент издания нет в продаже 🙁

Интересные посты

Сегодня, 14 октября, в истории

В этот день родились: 1840 — Дмитрий Иванович Писарев (на фото), русский публицист и. Читать далее

2 дня 22 часа 4 минуты назад

Жанровый эксперимент

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

1 день 12 часов 49 минут назад

Нам всё равно, как говорил Заратустра

Я решила отвлечься от ужасов XXI-го века ужасами IV-го века. Начала читать армянский исторический. Читать далее

5 дней 1 час 33 минуты назад

Выбираем автора ноября

Пришло время выбрать автора ноября. Убедительная просьба голосовать за того автора, которого вы. Читать далее

Книга «Программирование без дураков»

Возможно, вы хорошо знаете о проблемах, которые есть в вашем коде. Возможно, у вас уже даже сложилось представление о том, что нужно или не нужно делать в будущем, чтобы стать хорошим программистом. «Нет ничего страшного в том, что вы плохой или средненький программист, — пишет Стив Макконнелл в книге Code Complete. — Вопрос заключается лишь в том, как долго программист может быть плохим или средненьким, не осознавая при этом, что можно делать лучше». Почему же зачастую так сложно перейти к этапу определения проблем и нахождения способов их устранения?

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

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

Читать еще:  8 советов для более эффективной работы с Git

Глава 19 Не делай сам

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

Вот неполный список команд PHP, которые я по незнанию написала сама:

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

Внимательные читатели распознают в этих проблемах оборотную сторону важных программерских добродетелей, перечисленных Ларри Уоллсом (о них мы говорили в главе 2): лени, нетерпения и переоценки собственных сил. Эти качества программиста превращаются в достоинства лишь тогда, когда специалист начинает использовать их к месту. Тот, кто самостоятельно пишет все свои инструменты, не озаботившись предварительным исследованием, упускает время, которое можно было бы потратить на создание чего-то действительно полезного, еще не существующего. Ведь первая рабочая версия собственной функции расчета даты, движка для блога или инструмента для учета рабочего времени пишется на удивление быстро, но стоит только начать ею пользоваться, как поразительно быстро всплывают какие-то частные случаи, баги, пожелания по расширению… А когда с кодом начинают работать другие люди, его поддержка может отнять у вас огромнейший кусок жизни. Согласно известному эмпирическому правилу опытный программист с учетом обдумывания, тестирования, отладки, оптимизации и документирования пишет примерно десять строк отточенного кода в день (кстати, у писателей схожая ситуация). Неопытный разработчик, вероятно, успеет не больше.

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

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

Что делать

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

Читать еще:  Восстановление данных с sd карты после форматирования

- Читаешь документацию по языку, используемому в данной предметной области. Может быть, удастся найти перекрестные ссылки на нужное решение.

- Смотришь список всех функций или функций из определенной тематической области и надеешься, что нужная функция будет иметь говорящее название. Так, функция array_rand из приведенного ранее примера легко отыскивается в документации по языку PHP на сайте php.net в разделе «Функции массивов».

- Сверяешься с книгой, в которой перечисляются стандартные решения. Для этого хорошо подходят сборники рецептов от издательства O’Reilly (в оригинале такие книги называются Cookbook). В них формулируются типичные вопросы, возникающие при программировании, ответы на которые даются в форме рецептов.

- Забиваешь проблему в поисковик и ищешь решение на таких сервисах, как stackoverflow.com, где сразу множество пользователей предлагают решения одно элегантнее другого. Например, я наткнулся на функцию array_rand, задав запрос «how to» «random element» array php.

- Заходишь на сайты github.com или sourceforge.net и ищешь в описаниях свободных проектов написанный на интересующем вас языке. Существует огромная вероятность того, что ваша проблема уже решалась. Затем выясняешь, как авторы проекта справились с задачей.

- Когда накопишь некоторый опыт, то и в сравнительно новом языке представляешь, какие функции есть в распоряжении. Остается уточнить их названия и технические детали. Уже не придется формулировать в поисковике какой-нибудь тяжеловесный запрос вроде «how to» «random element» array php. Вместо этого достаточно спросить: array_rand in python, чтобы найти питонский эквивалент уже знакомой команды PHP.

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

Для Хаброжителей скидка 25% по купону — Comp

Книга «Программирование без дураков»

Методы профилактики и ремонта промышленного оборудования

Название: Методы профилактики и ремонта промышленного оборудования
Автор: Воронкин Ю.Н., Поздняков Н.В.
Издательство: Академия
Год: 2010
Страниц: 240
ISBN: 978-5-7695-7356-9
Формат: PDF
Размер: 10.4 Мб
Язык: русский

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

Справочник по черчению

Название: Справочник по черчению
Автор: Чекмарев А.А., Осипов В.К.
Издательство: Академия
Год: 2013
Страниц: 352
ISBN: 978-5-7695-9771-8
Формат: PDF
Размер: 10 Мб
Язык: русский

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

Гидравлический привод металлорежущих станков

Название: Гидравлический привод металлорежущих станков
Автор: Ермаков В.В.
Издательство: М.: Машгиз
Год: 1963
Страниц: 324 с.: ил.
Формат: PDF
Размер: 52 Мб
Язык: русский

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

Программирование на языке Паскаль. Задачник

Название: Программирование на языке Паскаль. Задачник
Автор: Ускова О.Ф.(ред.)
Издательство: Питер
Год: 2005
Страниц: 334
ISBN: 5-318-00553-5
Формат: DjVu
Размер: 10.7 Мб
Язык: русский

Читать еще:  Beacon manager что это за программа?

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

Название: Лаборатория хакера
Автор: Бабин С.
Издательство: БХВ-Петербург
Год: 2016
Страниц: 239
ISBN: 978-5-9775-3535-9
Формат: PDF
Размер: 34 Мб
Язык: русский

Рассмотрены методы и средства хакерства с целью понимания и применения соответствующих принципов противодействия им. В виде очерков описаны познавательные эксперименты, которые может выполнить в домашних условиях каждый желающий, начиная со старшеклассника и студента. Используемые программы, как правило, бесплатны. Теории дан минимум, зато книга насыщена практическими приемами по разнообразным темам.
Описан ряд способов перехвата паролей, взлома Wi-Fi-сетей, дальнейшие действия злоумышленника после проникновения в локальную сеть жертвы. Рассказано о шифровании данных, способах сохранения инкогнито в Интернете, методах взлома паролей из базы Active Directory. Много внимания уделено изучению хакинга с использованием смартфонов. Подробно рассмотрены практические методы генерации и использования радужных таблиц.
За счет подробного описания настроек, качественной визуализации материала, преобладания ориентированности на Windows-системы (для примеров с UNIX подробно описывается каждый шаг), книга интересна и понятна любому пользователю персонального компьютера: от начинающего до профессионала.

Название: Компьютерное конструирование в AutoCAD 2016. Углубленный курс
Автор: Перепелица Ф.А.
Издательство: СПб.: НИУ ИТМО
Год: 2015
Страниц: 269
Формат: PDF
Размер: 7,7 Мб

Учебное*пособие*предназначено*для*развития*навыков *работы*в*программе*AutoCAD*2016 и используется при изучении дисциплины «Системы автоматизированного проектирования» при обучении магистров по направлению подготовки 09.04.02 «Информационные системы и технологии».

Akys Taylor. Сборник книг

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

Издательство: Akys Taylor Publishing
Год издания: 2015
Страниц: 143
Формат: pdf — 12,29 Мб
Язык: английский

Woodworking
Tiny Houses Plans
Tiny Houses Tips
Tiny Houses

Программирование без дураков

Название: Программирование без дураков
Автор: Катрин Пассиг, Йоханнес Яндер
Издательство:Питер
Год: 2017
Страниц: 416
ISBN: 978-5-496-02023-7
Формат: PDF
Размер: 11.5 Мб
Язык: русский

Хотите научиться программировать «less wrong»? Тогда эта книга — для вас. Ведь программирование — это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом — зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует. Познакомьтесь с разнообразными традициями, существующими в различных языках программирования, узнайте, как практически не спотыкаясь передвигаться по этой пересеченной местности. Со знанием дела и юмором авторы погружаются в обсуждение ложных путей, неверных суждений и ошибок, тем самым значительно облегчая жизнь любому начинающему и бывалому программисту.

HTML5 и CSS3. Разработка сайтов для любых браузеров и устройств (+code)

Название: HTML5 и CSS3. Разработка сайтов для любых браузеров и устройств (+code)
Автор: Бен Фрейн
Издательство: Питер
Год: 2017
Страниц: 272
Формат: PDF
Размер: 35 Мб
Язык: русский

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

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector