Jump to content
    

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

Всем привет!

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

Суть проблемы:

Нормальных специалистов не найти: они все уже устроены и дорого стоят.

Молодых специалистов нет: выпускники профильных ВУЗов («Электроника», «Автоматика», «Приборостроение») приходят с практически нулевой подготовкой.

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

Что мы видим на собеседованиях?

Честно, картина удручающая. У выпускников – голая теория без понимания сути. Они знают резистор и конденсатор, но на вопрос про транзистор или типоразмер SMD 0603 – слышат впервые.

С программированием еще печальнее:

ВУЗовская подготовка: Максимум – писали куски кода на ассемблере для устаревших платформ и запускали в симуляторе. При упоминании STM32, GigaDevice, NRF – полное непонимание.

Периферия – тёмный лес: Таймеры, АЦП, DMA, SPI, I2C, UART, USB, память – не знают.

Беспроводные технологии: Wi-Fi, BLE, LoRa – тоже мимо.

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

Идея и сомнения

Возник душевный порыв – создать фундаментальный курс программирования МК «с нуля». Не просто «сделай раз, сделай два», а дать ту самую базу, которой так не хватает.

Представляю его себе так:

Основы информатики: Архитектура, системы счисления, логика, арифметика, хранение данных, указатели, память. Всё с огромным количеством практики.

Язык C глубоко: Не просто синтаксис, а понимание моделей памяти, указателей, побитовых операций. Опять же – практика, практика, практика.

Электроника с нуля: От Закона Ома до транзисторов и стабилизаторов. Показать современную элементную базу (выводную и SMD), как она выглядит и как «живет» на осциллографе.

Программирование МК на реальных железяках: Взять не Arduino, а то, что реально используют в промышленности – STM32, GigaDevice, NRF. Подробно разобрать каждый блок периферии с лабораторными работами на учебных комплектах.

Работа, понятное дело, колоссальная. Но меня останавливает один главный вопрос: а нужно ли это всё сейчас в России?

Не получится ли так, что я вложу душу и время, а рынок настолько мал и не развит, что это никому не будет интересно? Сейчас все вокруг учат Python, JavaScript и Java. Электроника и «железо» остаются где-то за скобками, а профессия – в забвении.

За державу, честно, обидно. И за профессию тоже.

Что думаете? Сталкивались с такой же проблемой? Есть ли, по-вашему, запрос на такие фундаментальные курсы, или это мои личные фантомные боли?

Буду рад любому мнению – и от коллег-работодателей, и от тех, кто только начинает свой путь.


 

Share this post


Link to post
Share on other sites

Всё давно уже есть и буквами и картинками.

Хоть 100500 курсов сделайте, желание их слушать/смотреть не появится и тем более изучать за будущие 70 т.р.

Время на ветер. Берите готовые кадры и платите нормальные деньги.

Share this post


Link to post
Share on other sites

19 минут назад, learn1990 сказал:

За державу, честно, обидно. И за профессию тоже.

Так можно и до монастыря дообижаться:wink:

А вообще - лично я смысла не вижу. Если человеку что-то не интересно, вы его не заставите выучить все эти ваши побитовые операции и SMD-0603.

Share this post


Link to post
Share on other sites

3 minutes ago, Arlleex said:

Так можно и до монастыря дообижаться:wink:

А вообще - лично я смысла не вижу. Если человеку что-то не интересно, вы его не заставите выучить все эти ваши побитовые операции и SMD-0603.

Битовые операции и SMD0603 - это вообще не играет никакой роли.

Отсутствие логического мышления - вот основная проблема. А этому учат совсем по-другому.

Зайдите ради интереса в телеграмм https://t.me/proembedded и посмотрите на уровень развития.

Edited by whoami

Share this post


Link to post
Share on other sites

1 hour ago, learn1990 said:

Что думаете? Сталкивались с такой же проблемой? Есть ли, по-вашему, запрос на такие фундаментальные курсы, или это мои личные фантомные боли?

Буду рад любому мнению – и от коллег-работодателей, и от тех, кто только начинает свой путь.

Отвечу прямо, без обид. Никому эти курсы не нужны. От того, что Вы соберёте всё в одном месте и дадите потенциальному кандидату в профессиональные разработчики знания от того, что такое электрон до того, как соорудить измеритель с заданными характеристиками и от того, что такое бит и до того, как написать класс на Си++ с шаблонами с прелестями Си++20 - квалифицированных разработчиков больше не станет.

 

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

 

Некоторым, это очень важно, достаточно того уровня, который у них есть. Без желания расти далее. При этом, наблюдая таких людей, я не могу ничего сказать про них плохого. Они специалисты - но, скажем так, низкого уровня. Хорошие руки, умение подмечать мелочи, но не более. И надеяться, что такие станут расти - предубеждённое разочарование. Эти люди останутся на своём уровне. Они не станут разработчиками. Какой бы замечательный курс вы не создали. Один из таких людей мне недавно сказал (дословно): мне это не нужно, я не боец, вся надежда на тебя (на меня - в нашем диалоге). При этом я не могу сказать об этом человека ничего плохого как об исполнителе. Но не созидателе. Хотя, что-то предложить он порою может. Но не на высокому уровне полёта.

 

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

 

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

1 hour ago, learn1990 said:

За державу, честно, обидно. И за профессию тоже.

Это лишь слова. Мир уже не тот, каким был лет 20 назад. Скоро и разработчиков электроники может не остаться. А вы - радуйтесь. Вам меньше конкуренции.

1 hour ago, learn1990 said:

а профессия – в забвении

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

Share this post


Link to post
Share on other sites

2 часа назад, learn1990 сказал:

... но на вопрос про транзистор или типоразмер SMD 0603 – слышат впервые.

Для чего эту информацию требовать от соискателя на должность "программист"? Схемотехник не может объяснить это в рабочем порядке?

2 часа назад, learn1990 сказал:

... писали куски кода на ассемблере для устаревших платформ и запускали в симуляторе. 

Этр крайне печально слышать. Еще лет 10 назад, учась в универе по смежной специальности, запускал код на языке C, без HAL, на реальной демонстрационной плате, с МК от TI (правда, архитектура тоже устаревшая - ARM7TDMI). 

2 часа назад, learn1990 сказал:

... а рынок настолько мал и не развит, что это никому не будет интересно?

Поэтому большинство уже сейчас и выбирают "большое IT" - и вакансий больше, и зарплаты выше. 

Share this post


Link to post
Share on other sites

3 hours ago, learn1990 said:

Представляю его себе так:

Основы информатики: Архитектура, системы счисления, логика, арифметика, хранение данных, указатели, память. Всё с огромным количеством практики.

Язык C глубоко: Не просто синтаксис, а понимание моделей памяти, указателей, побитовых операций. Опять же – практика, практика, практика.

Электроника с нуля: От Закона Ома до транзисторов и стабилизаторов. Показать современную элементную базу (выводную и SMD), как она выглядит и как «живет» на осциллографе.

Программирование МК на реальных железяках: Взять не Arduino, а то, что реально используют в промышленности – STM32, GigaDevice, NRF. Подробно разобрать каждый блок периферии с лабораторными работами на учебных комплектах.

Кстати, а Вы один курс по этим направлениям сможете написать? Или найдутся альтруисты?))

И доносить все эти знания предполагается одному человеку? Или хотите несколько курсов?

Share this post


Link to post
Share on other sites

в идеале...

если надо студентов (в среднем один-два в год), которые потом будут работать

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

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

по-моему со штатом в 50+ программистов/инженеров - уже оправдано, будет дешевле, чем ХР, который шерстит всякие джоб.ру и т.п. обеспечивая те же 1-2 "молодых специалистов"

-----------

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

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

Share this post


Link to post
Share on other sites

7 часов назад, learn1990 сказал:

Суть проблемы:

Нормальных специалистов не найти: они все уже устроены и дорого стоят.

Молодых специалистов нет: выпускники профильных ВУЗов («Электроника», «Автоматика», «Приборостроение») приходят с практически нулевой подготовкой.

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

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

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

2) По статистике, из 100 выпускников инженерных ВУЗ-ов, собственно инженерами становятся человек 10, а разработчиками, в лучшем случае, 2-3 из них. Так было и в советское время, и сейчас, примерно, так. Остальные 90 настоящими инженерами никогда не станут. Да и, обычно, не особо стремятся к этому. Хотя инженерное образование, в дальнейшем, им может очень пригодиться. Пытаться сделать из них высококлассных инженеров, тем более, разработчиков - бесполезный труд. Если соискатель проявляет признаки "инженерного мышления", то, возможно, он будущий инженер и даже разработчик. Остальных нужно "отсеивать"...

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Эта работа должна выполняться несколькими специалистами в соответствие с нормами и ГОСТ-ми на каждый этап разработки, которые подробно описываются в ТЗ - основополагающий документ, определяющий, в первую очередь, объём, сроки и стоимость всей работы.

Share this post


Link to post
Share on other sites

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

Пример_1: я изучал MSP430, применял в дипломной работе. Мне была непонятна необходимость оцифровки аналогового сигнала через строго определённые интервалы времени. Сейчас понимаю, что это используется в цифровой обработке. Т.е. от АЦП переходим плавно к ЦОС со всеми преобразованиями Фурье и Лапласа, свёртками и развёртками, а для этого предварительно нужно освоить семитомник высшей математики от Смирнова и ТОЭ.

Пример_2: во время изучения ядра Cortex M3/M4 наткнулся на системный таймер. Чем он такой особенный? А оказалось, что он используется в операционных системах. Т.е. появляется ответвление в сторону теории работы ОС + соответствующая практика минимум на пару лет. 

Пример_3: изучили мы МК, далее нужно строить окружение, которому что-то нужно передавать: софт на ПК, на Андроиде, разные радиомодули и прочие игрушки. Т.е. появляется ответвление в сторону Delphi, C#, а это потребует изучения объектно-ориентированного программирования (+5 лет).

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

Так-то идея хорошая.
Если писать руководство по программированию МК, то можно взять какой-нибудь User Manual STM32, перевести все главы и после каждой главы поморгать светодиодами, т.е. написать практикум по пройденному материалу.
После подобного практикума со светодиодами писать второй том и перейти к более интересному материалу с использованием разных дисплеев, радиомодулей, карт памяти, звуковых декодеров и т.д.
Третий том посвятить сопряжения с ПК, смартфонами и интернетами.
Четвёртый том посвяти работе с нейросетями и квантовыми процессорами.  

 

8 hours ago, haker_fox said:

Скоро и разработчиков электроники может не остаться. А вы - радуйтесь. Вам меньше конкуренции.

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

9 hours ago, whoami said:

Зайдите ради интереса в телеграмм https://t.me/proembedded и посмотрите на уровень развития.

Это школьники?
image.thumb.png.19785f6a6ca38ba1d8a96ea5a828b681.png

Share this post


Link to post
Share on other sites

13 часов назад, whoami сказал:

Хоть 100500 курсов сделайте, желание их слушать/смотреть не появится и тем более изучать за будущие 70 т.р.

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

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

Edited by mantech

Share this post


Link to post
Share on other sites

10 hours ago, ДЕЙЛ said:

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

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

6 hours ago, mantech said:

ну а если там зумер-хренер хочет просто получать бабло, а сам ничего не изучать, то хоть на 10 курсов его направьте, все равно пустое...

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

Share this post


Link to post
Share on other sites

9 часов назад, haker_fox сказал:

Помню, в конце 90-х у нас дома еды не было по 3 дня (без шуток), но школу я не бросил, хотя было жутко тяжело.

Да уж 90е я тоже хорошо помню, ЗП у родителей не было по 4-5 мес, жрать было нечего, хорошо огород у бабушки с дедом, я в политех только поступил, хорошо хоть на "бесплатку", а так пришлось бы идти на стройку электриком по спец в ПТУ. Хорошо, люди добрые подсказали подработку, делать электронные табло, благо при помощи деда научился самостоятельно разбираться в логических МС, появились денежки и желание изучать новое...

19 часов назад, ДЕЙЛ сказал:

Это всё равно, что приехать в сибирский Нефтескважинск и гордиться тем, что ты единственный в городе электронщик. Только кому ты нужен там?

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

Edited by mantech

Share this post


Link to post
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...