вторник, 20 октября 2026 г.

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

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

yurembo

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


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


Однако реальность оказалась ортогонально другой. И это еще было до наступления ИИ. Эйчары не обращали никакого внимания на написанные книги и другие публикации соискателя.

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

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

Я верил в будущее: развитие средств связи улучшит и расширит возможности удаленной работы. Однако реальность опять оказалась противоположной. Не смотря на улучшения и удешевления средств связи, удаленной работы стало только меньше.

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

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

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

четверг, 15 октября 2026 г.

100 ошибок C++ и как их избежать

Рецензия на книгу

«100 ошибок C++ и как их избежать»

yurembo 

«Что нового можно сказать о C++? Оказывается, очень много.» - из предисловия Джона Влиссидеса к книге «Современное проектирование на C++» Андрея Александреску, 2001.

25 лет спустя, можно выразиться точно так же: C++ развивается, появляются новые стандарты языка, новые версии компиляторов, разрабатывается великое множество софта с его помощью, а на поддержание унаследованного C/C++-кода затрачивается неимоверное количество человеко-лет.

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

Между тем летом в издательстве «Питер» на русском языке была издана книга Рича Йонца «100 ошибок C++ и как их избежать». После того, как я впервые пробежался по оглавлению, то решил, что это крайне стоящая книга. А теперь, прочитав её, могу предложить пару рекомендаций относительно нее. Она написана в стиле книг Скотта Майерса: «Эффективное использование C++», «Наиболее эффективное использование C++», etc. В них автор брал проблему или какую-то возможность языка и подробно её описывал.

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

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

Книга состоит из 12 глав, распределенные на три части. Первая глава представляет собой введение в материал. Ошибки, рассматриваемые в первой части связаны с неправильным использованием языка, когда разработчик может улучшить код и подходы к программированию, применяя современные возможности C++ и стандартную библиотеку шаблонов. Глава 2 посвящена классам и типам данных — с акцентом на проектирование классов и использование умных указателей. В главе 3 автор знакомит читателя с подводными камнями программирования в целом, а также с функциями языка, которые, возможно, стоит применять чаще. Глава 4 описывает недавние изменения в языке C++ и методы, облегчающие решение довольно распространенных задач.

Во второй части книги обсуждаются ошибки, унаследованные современным C++ от языка C, с учетом его исторических корней. Многие решения, рассмотренные в этой части, можно успешно адаптировать к современным условиям. Глава 5 посвящена привычкам и практикам, которые по инерции переходят из C в C++, несмотря на наличие более эффективных подходов. Глава 6 описывает устаревшие практики, популярные на заре программирования на C++, которые до сих пор сохраняются в некоторых современных кодовых базах.

Ошибки, приведенные в третьей части, отражают проблемы, часто встречающиеся в унаследованных кодовых базах, где разработчик не может применить современные методы. Некоторые из этих проблем можно решить, а качество кода — повысить. Глава 7 расскажет о правильном проектировании классов и связанных с этим проблемах устойчивости классов. Глава 8 рассматривает дополнительные аспекты проектирования классов и ошибки, которые могут неожиданно привести к архитектурным проблемам. Глава 9 описывает операции классов, которые при неверной реализации могут вызвать трудности. Глава 10 посвящена обработке системных ресурсов и проблемам, возникающим при неправильном управлении ими. Глава 11 анализирует сложности, возникающие при использовании функций и параметров. В главе 12 обсуждаются проблемы, характерные для классического C++, которые по-прежнему встречаются и в современных кодовых базах.

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

четверг, 1 октября 2026 г.

Путь на "Огонёк" и обратно

Путь на "Огонёк" и обратно

Юрий "yurembo" Язев

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

Между тем, день спустя, метеоцентр ПГНИУ выкатил новость о том, что сентябрь 2026-го года вошел в пятерку самых теплых сентябрей за последние 100 лет. Выборка получилось шире, чем у меня. Углубляться в новость я не стал, может быть так и есть, однако даже по моим оценкам этот сентябрь не самый теплый за последние 15 лет.

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

Затем я забрался на площадку строительства новой горнолыжной базы рядом с бывшим стартом санной трассы "Огонька" - 1200 м. Там уже и стартовой эстакады давно нет. Хотя она многие годы стояла там без дела. Потому что после строительства "новой" санной трассы в 1980-м году два верхних виража почти сразу отрезали, так как по причине их некорректной конструкции сани на них не разгонялись, вследствие чего их посчитали ненужными.



Далее по натурбанной трассе, тоже бывшей, я спустился на "большой" Огонек. Завернул в “Парк истории реки Чусовой”, увидел живую работу, новые строения и артефакты - парк продолжает свою жизнь даже без своего создателя, благодаря усилиям последователей. Около пруда дорога была перегорожена, рядом копался миниатюрный, почти карманный, экскаватор. Я посидел на стоящей там лавочке, сделал несколько фото.




После чего я отправился в Новый город, не мудрствуя лукаво, по автомобильной дороге, которая начинается с полуторакилометрового подъема. В любом случае он проще, чем краснопоселковская гора, по которой мне предстоял спуск далее: как же приятно спускаться с горы, в которую ты поднялся! Гоня на велике по шоссе со скоростью 55 км/ч,  можно сказать себе: "Ты молодец!" И, входя в поворот, отклоняешься от него. Но тут счастье заканчивается, перед тобой предстает медленно едующий автомобиль, за ним следует железнодорожный переезд, всё равно приходится сбрасывать скорость.

На часах: "час пик". Народ на автомобилях едет с работы домой - из Старого города в Новый. На бывшем заводском переезде столпотворение машин. Я подождал минут 15 на обочине, машины не собирались кончаться, поэтому я вступил в поток. Сначала проблем не было. Однако на мосту, по которому я ехал, прижавшись к бетонному заграждению справа, меня обгоняли автомобили, тоже следовавшие по обочине. Одна из машин - микроавтобус “Баргузин” проехала вообще вплотную ко мне. "Ни шагу пешком, только верхом".