MDS-800

Нужно прочитать

Andrey Koleshko. Rake Task Management Essentials.
Bala Paranj. Test Driven Development in Ruby.
Travis Swicegood. Pragmatic Version Control Using Git.
Paul Baker et al. Model Driven Testing Using the UML Testing Profile.
Steve Freeman, Nat Pryce. Growing Object-Oriented Software, Guided by Tests.
Jeff Langr and Tim Ottinger. Agile in a Flash: Speed-Learning Agile Software Development.
Ben Klemens. 21st Century C.
Brent Laster. Professional Git.
Ian Dees, Matt Wynne, Aslak Hellesoy. Cucumber Recipes. Automate Anything with BDD Tools and Techniques.
Shankar Garg. Cucumber Cookbook.
Dr. Mark Fisher. ARM Cortex M4 Cookbook.
Howard Johnson. High-Speed Digital Design: A Handbook of Black Magic.
Marty Cagan. Inspired: How To Create Products Customers Love.
Ли Атчисон. Масштабирование приложений. Выращивание сложных систем.
Роберт Мартин. Чистая архитектура. Искусство разработки программного обеспечения.
Яцек Галовиц. С++17 STL. Стандартная библиотека шаблонов.
Ivor Horton, Peter Van Weert. Beginning C++17.
Scott Meyers. Effective Modern C++. 42 Specific Ways to Improve Your Use of C++11 and C++14.
Tags:
MDS-800

Перлы с собеседований

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

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

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

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

Перлы с собеседований

Неожиданные затруднения у кандидатов вызывает ответ на, казалось бы, простой вопрос: является ли язык C подмножеством языка C++? Или другими словами, любая ли корректная программа на C является корректной программой на C++?

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

Забавно, что почти все декларируют знание писаний Страуструпа. При этом полностью игнорируют важнейший документ, который целиком посвящен совместимости C и C++: https://isocpp.org/files/papers/N0007.pdf
MDS-800

Перлы с собеседований

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

- Как вы тестируете свой код?

Кандидат приободряется, в голосе возникает уверенность:

- Разумеется, отладчиком!

Ну да, чем же еще, собственно... Следующий вопрос:

- А как же в таком случае вы отлаживаете свой код?

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

Прощай, МТС.

В пятницу попрощался с сотрудниками из ростовского филиала МТС.

Проработал в этом коллективе шестнадцать с половиной лет. Начинал в составе фирмы ЦТС, затем вместе с прочим движимым имуществом был продан в МТС (в период распухания последней во всероссийском масштабе).

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

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

А в понедельник подписываю обходной, получаю документы и иду оформляться на новую работу.
MDS-800

Инструмент системного моделирования

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

Многие определения UML (например, приведенное в Википедии) гласят:

UML (англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
Я настолько привык к этому определению, что до поры нимало не сомневался в его справедливости. Поэтому, когда недавно перешел к разработке встроенных систем, с энтузиазмом попытался использовать UML для построения моделей как аппаратной части, так и системы в целом. Весьма неприятным открытием было то, что реально попытки системного проектирования заходили в тупик. Поиски методологии в литературе и Сети также ничем не увенчались. В то же время иметь на системном уровне такую же мощную и выразительную нотацию, какую UML предоставляет для программной части проекта, было бы весьма заманчиво.

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

На повестке 1) изучение SysML, 2) поиск подходящего инструмента моделирования (весьма желательно open source), 3) внедрение практики системного моделирования в процессы лаборатории, где начну трудиться буквально через считанные дни.
MDS-800

Вести Мордора

Совершенно случайно наткнулся на заметку:

Ученики СУНЦ НГУ выиграли медали Международной математической олимпиады в Индии

В Международной математической олимпиаде в г. Лакхнау (Индия) IYMC - Mathematica - 2018 команда СУНЦ НГУ была единственным представителем России. В составе команды были Ханина М (11-8 кл), Оглоблин И (11-2 кл), Степанов И (11-1 кл). Руководитель команды - преподаватель кафедры математических наук ММФ и СУНЦ НГУ Львов Антон Павлович. По результатам олимпиады в индивидуальном зачете золотую медаль получил Иван Оглоблин и серебряную - Мария Ханина.

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


Вот так скромненько. Участвовало 78 команд со всего мира. Наши ребята сделали всех, но в новостях я об этом почему-то не услышал. Видимо, трудная судьба Кокорина для страны важнее.
MDS-800

Мы все учились. Понемногу.

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

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

Во время работы в МТС регулярно проводил собеседования с кандидатами в разработчики программного обеспечения (в основном C# и Java). Побеседовал с несколькими десятками кандидатов с различным опытом - от вчерашних выпускников вузов (а порой и старшекурсников, ищущих подработку по специальности) до ветеранов пенсионного возраста. В целом, конечно, картина удручающая. Лишь единицы обладают минимально необходимой квалификацией. Был даже кандидат физ-мат наук, не имевший понятия об объектной парадигме, но уверявший, что он сугубый практик и изучает все по ходу, как только оно понадобится в текущем проекте. Ну-ну...

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

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

Дальше интереснее. Без ответа остаются вопросы о том, что такое напряжение и ток. Круглые от изумления глаза в ответ на непристойное предложение написать и решить дифференциальные уравнения, описывающие процессы в RC-цепях. Кое-кто способен нарисовать вольт-амперную характеристику P-N перехода, пусть и не с первого раза, но объяснить механизм его работы и рассказать ту же модель Эберса-Молла - увольте. Претендент на разработку FPGA не может нарисовать синхронный двоичный счетчик. Апофеоз наступил, когда выпускник, недавно стажировавшийся на полупроводниковом производстве, заявил, что не проходил квантовую механику (речь зашла о механизме туннельного пробоя в P-N переходе, который классическими представлениями вряд ли можно объяснить). На физфаке университета, Карл!!!

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

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

Tags:
MDS-800

Книга "The Haystack Syndrome".

Автор: Eliyahu M. Goldratt.
Название: The Haystack Syndrome.
Издательство: North River Press, 2006.
ISBN: 978-0884271840



Книга гораздо компактнее, чем ее предшественники из серии "Цель", и не содержит лирики, только логичные рассуждения автора.

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

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

Вместо нагромождения заумных величин, которые непросто получить и еще сложнее использовать в дальнейшем, Голдратт предлагает три простых показателя:

  1. Скорость генерации дохода.

  2. Связанный капитал.

  3. Операционные расходы.


На этом простом базисе строится весь механизм контроля достижения Цели.

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

Следует заметить, что существует неофициальный перевод книги на русский язык, в изобилии рассыпанный на просторах интернета. Этот перевод выполнил в 2003 г. некто Андрей Степенко. Рекомендую воспользоваться им в том случае, если у вас с английским дело уж совсем из рук вон плохо и это единственный доступный способ ознакомиться с книгой. Перевод, как это обычно водится в бескорыстных самодеятельных переводах, выполнен некачественно (сказать "небрежно" не слишком корректно, поскольку не исключено, что человек действительно старался), и многие конструкции не то чтобы ставят в тупик, но при чтении о них "запинаешься" и задумываешься, что бы это значило. Если можете себе позволить, читайте оригинал (впрочем, это универсальная рекомендация).

Рекомендую тем, кого заинтересовала серия "Цель" и кто хочет разобраться, как подходит к задачам экономики человек со здоровой головой.
MDS-800

Навеяло...

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

Если же вам стало немного грустно, как и мне в свое время, примите мои искренние сочувствия: видимо, вам тоже довелось испытать это лично.

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

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

Прошло, наверное, с полгода. Пронесся слух о втором этапе аудита. Ко мне привели другого эксперта (впрочем, с тем же лоском, уверенностью и, главное, с таким же, если не с тем же самым, ноутбуком). С тем же задором юноша-2 принялся задавать примерно те же вопросы. Услышав, что его коллега уже проделал этот путь, юноша-2 очень удивился; впрочем, он оказался не знаком со своим предшественником и никаких артефактов у него не унаследовал. Ну что же, надо так надо... Юноша-2 оказался не менее старателен и так же тщательно разрисовал те же диаграммы. Дрессируют их в инкубаторе на славу, взаимозаменяемость полная.

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

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

А мне почему-то жалко людей, которые вынуждены контролировать/консультировать по вопросам, в которых они ни бельмеса не смыслят, людей, которые не один год работают в этой области. Понимаю, что никто их силком на этот позор не тянул, но все равно жалко. Хотя не исключаю, что с их точки зрения жалок скорее я...
Tags: