Два вида специалистов

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

Один тип людей —это те, которые в основном «делают из конфеток говно». Другой тип — «из говна делают конфетки».

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

Я отношу себя ко второму типу людей. Для того чтобы что-то полезное сотворить, мне не нужны навороченные инструменты. Грубо: для того чтобы поморгать светодиодиком, мне не нужна AVR-Studio. Всё это делается на коленке. Для того чтобы подергать ножками STM32 или заставить работать USART мне ненужна стандартная библиотека периферии. Все это делается с помощью регистров, нужно просто не полениться почитать даташит и раз и навсегда разобраться с ними.

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

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

Помниться, создатели мостов во время испытаний вставали под своими детищами. И это было правильно!

О человеке нужно судить не по тем вещам (инструментам), которые у него есть, а по тому, что он с помощью этих инструментов создает.

Advertisements

5 responses to “Два вида специалистов

  1. Доброго времени суток, ув. Александр Антонович.
    Вышел на Ваш блог с kazus.ru, да и периодически просматриваю.
    Позвольте оставить Вам ссылку на видео:

    Радиолампа — своими руками!;
    Живёт во Франции радиоинженер и изобретатель
    Месье Claude Paillard. И создает своими руками электронные лампы.

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

  2. Да, есть такие 2 типа… Но есть и одно НО: хороший инструментарий — это уже половина работы, а потому библиотеки для DS1820 проще один раз скачать, изучить и положить в папочку, чтобы каждый раз когда они нужны, чик и готово. Башенка из 200 ровных правильных кубиков не упадет и в реале, а проблема кроется в использовании кривых библиотек без понимания того, что вообще там делается.

    • Мне кажется, что наиболее лучший вариант — это библиотека, предоставленная в исходных текстах, а не откомпилированная.

      Поясню на примере того же DS18S20. Иногда допустимо терять время на периодический опрос флага готовности результата, а иногда времени нет. Во втором случае единственный возможный вариант — это запустить цикл измерения у DS18S20 и заняться другой работой. По истечение 700-800 мс снова обратиться к датчику за результатом.

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

      Вообще разговор не должен идти в этой плоскости — должна быть библиотека или не должна. Всё зависит от поставленной задачи, от цели.

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

      Поэтому, если вы используете в своей разработке драйвер (с ума сойти!) или библиотеку для DS18S20, то вы наверняка либо ведете разработку очень сложного проекта в несколько десятков-сотен тысяч строк. Либо вы начинающий ардуинщик.

      В подавляющем большинстве случаев, в которых применяются средней мощности микроконтроллеры (МК с памятью 1-16 кБ и тактовой частотой 4-30 МГц) разработчики берут свои старые исходные тексты программ и адаптируют их под новые условия текущего проекта.

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

      Это же касается и LCD-экранчиков, и всевозможных UART-ов и так далее.

  3. Я зачастую пишу свои библиотеки/модули. В частности, если уж мы о DS18B20, то да, я для духовного развития написал модули 1-Wire для AVR и MSP430. И я также против бездумного использования слоев HAL (про Ардуино я вообще не говорю, там проблемы еще глубже).

    Тем не менее, я за разумную целесообразность. Вряд ли я при необходимости буду писать с нуля библиотеку для работы с FAT, когда есть FatFS, или пытаться реализовать оптимальный метод FFT, если для данной архитектуры он уже существует. Это достаточно сложные задачи. В частности, я пытался написать библиотеку для парсинга FAT, но понял, что доводить ее до состояния FatFS долго, а главное — бессмысленно, в то время как для более простых задач можно обойтись вообще без ФС. И так далее…

    А насчет инструментов — спорный вопрос. Я, например, могу работать и без осциллографа, но без оного уходят часы на отладку того, что с ним решается за пятнадцать минут. 🙂

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s