Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Из железячника в софтварщика
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > Образование в области электроники
Страницы: 1, 2
honeycomb0
Цитата(TSerg @ Oct 14 2015, 17:54) *
Кроме того, если инженер не прошел весь путь от идеи или ТЗ на изделие и до создания его, тестирования, приемки и внедрения - какой ты инженер? Так, мечтатель.

Я соглашаюсь на все 100. Отсюда и причина почему я не спешу бросать текущую работу.
Егоров
Цитата(TSerg @ Oct 14 2015, 19:54) *
Кроме того, если инженер не прошел весь путь от идеи или ТЗ на изделие и до создания его, тестирования, приемки и внедрения - какой ты инженер? Так, мечтатель.

Совершенно с Вами ага!
А рутина создания документации - наш крест. Нести его нужно молча и с усердием.
iosifk
Цитата(honeycomb0 @ Oct 14 2015, 17:45) *
Не любую документацию можно назвать творчеством. Если Вы описываете непосредственно кусок своего кода - это да. А если это составление таблиц тестов необходимых для сертификации, причем в строго заданном "корпоративном" формате - творчеством лично мне это назвать сложно. Но с творчеством так - это очень субъективный предметsm.gif

У меня был случай такой. Мне дали задание составлять таблицы заказа резисторов по результатам работы по проектированию плат коллегами. И это было бесконечное редактирование таблиц. Скурпулезная и нудная работа. Меня хватило только на 2 дня, после чего в ближайший выходной дома на ВСВ6 я написал программу, которая это делала автоматически...
А до этого, в другой фирме у меня был сюжет, когда надо было написать ответы на сотни писем. Ну, я "раскинул остатками" и написал программу, в которую подргружались примерно 80 текстовых файлов - фрагментов писем, которые я написал до этого вручную. И из них, как из Лего простыми кликаниями можно было собрать текст практически любого нового письма...
Я почти уверен, что если так посмотреть, то почти всю Вашу текстуху можно набрать из предыдущих работ...
Совет такой: посмотрите, что занимает больше всего времени и постарайтесь это автоматизировать...
AlexandrY
Цитата(honeycomb0 @ Oct 14 2015, 20:34) *
Я соглашаюсь на все 100. Отсюда и причина почему я не спешу бросать текущую работу.


Вот, кстати, моя новая статья, как за 2 часа! начать программировать K60 на Cortex-M4

Да, STM32 назойливо раздает очень дешевые, а кому и бесплатные отладочные платы.
Но софт для STM32 слабоват по многим критериям.
zltigo
QUOTE (AlexandrY @ Oct 14 2015, 23:23) *
Вот, кстати, моя новая статья, как за 2 часа! начать программировать K60 на Cortex-M4

https://www.youtube.com/watch?v=-X0TM7Te-AY
Совершено не важно, как быстро дело начинается, важно как заканчиватся.

alexunder
Очередная тема превратилась в священную войну, на этот раз спорят о том как правильно учиться программированию.
Вот бы мне столько свободного времени как у вас, господа! Глядишь, освоил бы что-нибудь новое за 10 000 часов...
AlexandrY
Цитата(zltigo @ Oct 14 2015, 23:48) *
https://www.youtube.com/watch?v=-X0TM7Te-AY
Совершено не важно, как быстро дело начинается, важно как заканчиватся.


Дела заканчиваются только у мертвецов. 01.gif

А если по делу, то современный софт переходит на модель по подписке. И для встраиваемых систем тоже.
Т.е. софтварный проект никогда не планируется заканчивать, а планируют подписываться на его разработку в течении там скольки то лет.
zltigo
QUOTE (AlexandrY @ Oct 15 2015, 10:09) *
Дела заканчиваются только у мертвецов. 01.gif
А если по делу, то современный софт переходит на модель по подписке. И для встраиваемых систем тоже.

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

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

TSerg
Я так и представил себе состояние чиновников Минобороны, когда оно получит навигационный комплекс с подпиской sm.gif
AlexandrY
Цитата(zltigo @ Oct 15 2015, 10:35) *
Тем не менее он заканчивется передачей заказчику и на момент передади должен полностью удовлетворить его нужды, даже те, о котрых он не думал.

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



Ну моя плата на "3-х реле" прямо сейчас демонстрируется на выставке в Германии.

А вы как будто из прошлого века вещаете, давно разработками то занимались?

Нынче даже продавцы не знают всех "фичей продукта". Про историю Volkswagen слышали?
В высокотехнологичных вещах нужды заказчику придумывает и внедряет в сознание маркетинг.

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


honeycomb0
Цитата(AlexandrY @ Oct 14 2015, 21:23) *
Вот, кстати, моя новая статья, как за 2 часа! начать программировать K60 на Cortex-M4

Я читал Ваши статьи про Kinetis на хабре, лежат в избранныхsm.gif Может быть, если подвернется отладочная плата, попробую эти камушки. На данный момент, лично для меня многое решает кол-во примеров/кода гуляющего в сети.
AlexandrY
Цитата(honeycomb0 @ Oct 15 2015, 13:54) *
Я читал Ваши статьи про Kinetis на хабре, лежат в избранныхsm.gif Может быть, если подвернется отладочная плата, попробую эти камушки. На данный момент, лично для меня многое решает кол-во примеров/кода гуляющего в сети.


Скачайте RTOS MQX для Kinetis и найдете более 70 проектов почти под всю периферию.
Они все будут иметь описание и одинаковый технический уровень реализации.

Это не то что для FreeRTOS 2-3 проекта с функциональностью которую вы в жизни не будете делать на STM32, как например видео-плейер или файловый броузер, это при том что там даже нет нормальной файловой системы.

А для Kinetis свободно доступна даже такая экзотика как ПО для сборки облака сенсоров - очень модный тренд нынче в свете всеобщей роботизации.
honeycomb0
Цитата(AlexandrY @ Oct 15 2015, 12:31) *
Скачайте RTOS MQX для Kinetis и найдете более 70 проектов почти под всю периферию.

Спасибо, обязательно гляну.
zltigo
QUOTE (AlexandrY @ Oct 15 2015, 11:17) *
Ну моя плата на "3-х реле" прямо сейчас демонстрируется на выставке в Германии.

Ну и что?
QUOTE
А вы как будто из прошлого века вещаете, давно разработками то занимались?

только что, и часа черeз два продолжу.
QUOTE
Я уже давно забыл как выглядит церемония передачи "продукта" заказчику.

Ну это понятно, что для передачи "трех реле" церемония была-бы странна. Но не все такими вещами занимаются, когда суть есть в управлении тремя реле, а все остальное уже маркетринг с цельнотянутыми примерами_из_операционки-библиотеками-стеками. "Три реле" тоже продукт и вполне, не будем вдаваться в причины, востребованнный. Только это совершенно не означает, что мир электроники и программирования на этом кончается. В конце концов все это счастье для того-же "RTOS MQX" для Вас тоже кто-то писал.
honeycomb0
Внимательнее приглянулся к Kinetis - очень достойная линейка. Приглядываюсь к плате FRDM-K64F, цена вполне демократичная - я думаю стоит поиграться. Странно, почему Kinetis на слуху не так распространнен как казалось бы должен? Видимо целевая ниша - "серьезные-не-гламурные" индустриальные решения?
Myron
Цитата(honeycomb0 @ Oct 16 2015, 06:15) *
Внимательнее приглянулся к Kinetis - очень достойная линейка. Приглядываюсь к плате FRDM-K64F, цена вполне демократичная - я думаю стоит поиграться. Странно, почему Kinetis не так распространнен как казалось бы должен? Видимо целевая ниша - "серьезные-не-гламурные" индустриальные решения?
Ну многие клюют на маркетинговые ходы, цены, доступность малых корпусов (с малым количеством IO), наличие планарных корпусов для пайки дома, иногда на эстремально малые токи (Atmel - до 30мкА/Мгц у некоторых проц.), а потом уже сменить семейство уже трудно. В промышленном мире Kinetis распространяется хорошо (у нас, например, выбраны семейства К64 и К65 для большинства переспективных работ).
ViKo
Потому что в большинстве случаев все равно, на каком микроконтроллере делать. Хоть на, прости господи, Атмеле. Технические характеристики изделия зависят от очень многих факторов. А еще есть и не технические...
zltigo
QUOTE (honeycomb0 @ Oct 16 2015, 15:15) *
Видимо целевая ниша - "серьезные-не-гламурные" индустриальные решения?

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


syoma
Присоединяюсь к тем, кто говорит, что без реальной задачи будет трудно что-то сделать, потому что применить знания:
Цитата
Знания общие (чтение):
- принципы ооп
- шаблоны проэктирования (например что-то от "банды четырех")
- системщина на линуксе
- сборка линукса (LFS чтиво)
- ОСи, теория (переоткрыть для себя книги Таненбаума)
- сетевые протоколы
- подноготная usb
- цифровая обработка сигналов

Специализированные знания (туториалы):
- удаленка на гите
- stm32fxxx, работа с перифирией
- работа с библиотеками от st: StdPeriph, HAL - решить с чем самому удобней.
- прикрутить любую из свободно доступных rtos
- перелопатить примеры с usb, ethernet...
- примеры работы с dma
- примеры настроек системного клока
- поштудировать реализации юзер интерфейсов
- читать, читать чужой код

в полном объеме в единичном проекте просто нереально. А держать все это в голове все время тоже нет смысла.
Мало того для того, чтобы решить какую-либо задачу не обязательно знать все обо-всем. Часто достаточно просто скачать пример и переделать его под себя.
В итоге вы окажетесь на уровне "плохого программиста", указанном zltigo:
Цитата
К программированию надо относиться СЕРЬЕЗНО и ПРОФЕССИОНАЛЬНО. Этого очень часто у железячников не происходит. Результат печален и выражается в том, самые плохие программисты получаются именно из железячников sad.gif sad.gif sad.gif. Это личный многолетний опыт наблюдения.
но уже не за 10 тысяч часов, а всего за 1000.

Но самое главное в другом - имея знания по железу, и нахватавшись знаний по программированию, вы имеете хорошие шансы перепрыгнуть этот уровень вообще и попасть на следующую ступень личного и карьерного развития - уровень системных интеграторов.
Хороших железячников много.
Хороших программистов тоже много
А вот тех, что может дать правильные задачи и тем и другим, гораздо меньше. Так как для этого нужно знать и одно и другое и часто принимать решения типа - реализовать ли это в железе или софте - что будет быстрее работать и легче в разработке и поддержке?
А как насчет ПЛИС vs DSP? Будете принимать решения и здесь, и не только на основе технологии или того, что умеете программировать.
Сталкивать отделы лбами и модерировать в нужном русле...
Короче это гораздо интереснее просто программирования.

honeycomb0
Спасибо syoma. Читая такой роадмап карьеры, все меньше опасаюсь за свои "два года вне софта":)
zltigo
QUOTE (syoma @ Oct 16 2015, 17:15) *
ступень личного и карьерного развития - уровень системных интеграторов.

Только как-бы "системный интегратор" это совсем не то, о чем Вы написали. В остальном да, так.
Myron
Цитата(ViKo @ Oct 16 2015, 07:16) *
Потому что в большинстве случаев все равно, на каком микроконтроллере делать. Хоть на, прости господи, Атмеле. Технические характеристики изделия зависят от очень многих факторов. А еще есть и не технические...
Про "большинство случаев" мнение ошибочное. Если для гаража - то наверное да.
Harbinger
Цитата(Myron @ Oct 16 2015, 20:00) *
Про "большинство случаев" мнение ошибочное.
Нечасто, но бывает, что по совокупности факторов выбор сводится к считанным единицам моделей МК, а то и вовсе к одному конкретному чипу. К счастью, со временем замена находится. sm.gif
ViKo
Цитата(Myron @ Oct 16 2015, 20:00) *
Про "большинство случаев" мнение ошибочное. Если для гаража - то наверное да.

Вы хотите сказать, что к выбору МК подходили научно, вычисляя экстремум многомерной поверхности технических, экономических, политических и мн. др. характеристик? Даже если душа стремилась в любимую сторону?
В моих изделиях стоимость МК составляет процента 3.
Myron
Цитата(ViKo @ Oct 16 2015, 12:26) *
Вы хотите сказать, что к выбору МК подходили научно, вычисляя экстремум многомерной поверхности технических, экономических, политических и мн. др. характеристик? Даже если душа стремилась в любимую сторону? В моих изделиях стоимость МК составляет процента 3.
У меня примерно такие же оценки по компонентам.
НО! Есть еще:
- Обеспечение интерфейсов - High Speed USB, Ethernet, CAN, LIN, и пр.
- Необходимость встроенных АЦП до 12-ти бит
- Быстрое "пробуждение" из спящего режима, необходимого из-за относительно высоких тактовых (с результатом в потреблении).
- Достаточный размер памяти - Флеш и Рем,
- Достаточное количество IO, больше, чем десяток.
- Програмное обеспечение ( с наличием драйверов и БЕСПЛАТНЫХ инструментов), которое поднимает стоимость изделий в 10-20 раз.
И цена ошибки здесь велика, а навеска дополнителных адаптеров опять таки усложняет процесс существенно. (Но, к счастью, не у вас)
Так что "экстремум многомерной поверхности" вычисляется легко.
syoma
Цитата(zltigo @ Oct 16 2015, 18:39) *
Только как-бы "системный интегратор" это совсем не то, о чем Вы написали. В остальном да, так.

Ну так напишите, что по-вашему - именно то
zltigo
QUOTE (syoma @ Oct 19 2015, 18:10) *
Ну так напишите, что по-вашему - именно то

Не знаю sad.gif. Я для себя использую словосочетание системный конструктор. А так в русском как-бы "системотехник". На английском
systems engineer, но этот термин загажен всякими программистами sad.gif.
syoma
Цитата(zltigo @ Oct 19 2015, 17:26) *
Не знаю sad.gif. Я для себя использую словосочетание системный конструктор. А так в русском как-бы "системотехник". На английском
systems engineer, но этот термин загажен всякими программистами sad.gif.

ИМХО на анлийском системный интегратор как раз довольно точно описывает эту функцию - https://en.m.wikipedia.org/wiki/Systems_integrator
Системотехник - это по-моему уровнем ниже.
В принципе пофиг, как оно называется, главное, что есть уровень выше железячника и эмбеддерного программиста. Правда потом оно все равно в менеджмент упирается.
zltigo
QUOTE (syoma @ Oct 20 2015, 09:06) *
ИМХО на анлийском системный интегратор как раз довольно точно описывает эту функцию...

Рисование некой "системы" из ЧУЖОЙ РАЗРАБОТКИ типовых железных и софтовых кубиков есть типичная работа для "девочек".
Какой уж тут "уровень" разработки в разработке соединения, например, готового микроконтроллера, с блоком питания и роутером?
alexunder
Цитата(zltigo @ Oct 19 2015, 17:26) *
Не знаю sad.gif. Я для себя использую словосочетание системный конструктор. А так в русском как-бы "системотехник". На английском
systems engineer, но этот термин загажен всякими программистами sad.gif.

Из своих наблюдений заключил что от system engineer не особо поляризован в сторону программирования, а соответствует как раз тому, что Вы выше описывали. В целом вполне себе благородная должность (сам на такой состою sm.gif).
zltigo
QUOTE (alexunder @ Oct 20 2015, 10:56) *
Из своих наблюдений заключил что от system engineer не особо поляризован в сторону программирования

Увы, под термин "system engineer" загнаны и "чистые" программисты - этот термин используется и как синоним system programmer sad.gif поскольку они занимаются software engineering.

syoma
Цитата(zltigo @ Oct 20 2015, 09:11) *
Рисование некой "системы" из ЧУЖОЙ РАЗРАБОТКИ типовых железных и софтовых кубиков есть типичная работа для "девочек".
Какой уж тут "уровень" разработки в разработке соединения, например, готового микроконтроллера, с блоком питания и роутером?

Кто Вам сказал, что это должны быть "типовые" кубики?
zltigo
QUOTE (syoma @ Oct 20 2015, 12:00) *
Кто Вам сказал, что это должны быть "типовые" кубики?

Термин интеграция сказал. На уровне системной интеграции НЕ занимаются разработкой оборудования. Выбрать готовое оборудование, нарисовать проект как все это соединить, обвешать проект согласованиями, разрешениями, заключениями, обучить своих специалистов настойке и монтажу, написать некоторое количество прикладного софта, или, скорее всего, на все эти работы нанять подрядчиков...
Как максимум покапать на мозги производителям оборудовния и софта чего-нибудь добавить и исправить.
Прочитайте хотя-бы свою ссылку.
TSerg
Изначально "интеграция" подразумевала объединение на техническом уровне готовых систем в целях создания единой IT-инфраструктуры.
Простейший пример: подключение к блоку типового персонального компьютера - клавиатуры, мыши, UPS, дисплея + возможно настройка оборудования.
В более сложных случаях - это объединение сетей, линий связи, центры обработки и хранения данных, системы безопасности и контроля доступом, электросети.

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

А еще написать спецификации для типовых и других испытаний и раздать работу всем разработчикам если готового оборудования нету и отвечать за все это дело в случае проблем с железом и софтом. Типичная работа для "девочки", как вы написали.
zltigo
QUOTE (syoma @ Oct 20 2015, 13:33) *
А еще написать спецификации для типовых и других испытаний и раздать работу всем разработчикам если готового оборудования нету и отвечать за все это дело в случае проблем с железом и софтом. Типичная работа для "девочки", как вы написали.

Да, именно так. На 95% совершенно бумажная рутинная "девичья" работа. Типа той-же интреграции в гастрономе разных продуктов питания для продажи. Тоже работа и тоже ответсвенность. И тоже где-то есть ну очень важный и очень ответственный пуп земли. Она мне АБСОЛЮТНО знакома и та часть, что не совсем уж девичья, занимает большую часть лично моего времени, поскольку "на поверхности" деятельности фирмы в которой я работаю, есть именно эта самая системная интеграция. Только оборудование по большей части свое позволяющее строить системы отличающиеся от того, что собирается из подручных компонентов, и соответственно отсекающее толпы системных интеграторов готовых собирать что угодно из чего угодно. А софт на всех уровнях вообще полностью свой, даже если оборудование OEM.
honeycomb0
Маленький update от меня. Пришла плата FRDM-64F (Kinetis). Должен сказать - мне очень понравилось. Да, eclipse немного тормознут по сравнению с Keil (на моей старенькой "печатной машинке"), зато запускается под linux и нет ограничении на код. Поигрался с генератором кода Processor Expert и мне показалось, что вопреки многим отзывам, порог вхождения ниже чем в stm32 (конечно, не учитывая кол-во кода в интернете) - без разжигания холиваров, это грубое imho. Очень удобно реализованны драйвера перифирии. Тем, кто не пробовал Kinetis - очень рекомендую, просто ради интереса.
AlexandrY
Цитата(honeycomb0 @ Nov 8 2015, 20:10) *
Пришла плата FRDM-64F (Kinetis). Должен сказать - мне очень понравилось.


Да вы сделали удачный выбор. Тут еще надо сказать, что на FRDM-64F находится интегрированный отладчик CMSIS-DAP с которым работает даже такая мощнейшая среда как ARM DS-5.
Также к CMSIS-DAP от Freesacle вы можете найти фирмваре которое превращает его в специальную версию отладчика J-Link.
J-Link предоставляет больше функциональности при отладке и особенно при использовании с IAR.

И я бы советовал приглядеться к IAR.
Компилятор IAR, кстати, легко встраивается в Eclipse c Processor Expert c помощью Add-On от IAR-а.
Но отладка все же не та.
honeycomb0
Да, под впечатлением от mcuoneclipse.com я сразу установил прошивку от Segger (наверное это тот же J-Link о котором вы упомянули).
Спасибо за наводку на Kinetis - действительно стоящая внимания платформа.
Enthusiast
Цитата(honeycomb0 @ Oct 13 2015, 01:59) *
А вопрос к уважаемым профессионалов простой - как Вы оцениваете перспективы подобных начинаний? Посоветуйте да подбодритеsm.gif

Позволю себе сказать несколько слов о ремесле программирования, исходя из собственного опыта.
1. Программы, на которых зарабатывают хорошие денежки, содержат в себе плоды труда десятков .. сотен инженеров в течении нескольких лет. Работники приходят и уходят, оставляя после себя исходные тексты программ, которые необходимо, увы, лишь чуточку видоизменять под новые требования рынка, переписывать всё слишком долго и дорого. Что из этого следует? То, что девяносто девять процентов времени программист читает код, написанный другими людьми, и лишь один процент времени вносит свои изменения в этот код. Это творчество? На мой взгляд, это такое же творчество, как умение чисто мыть унитазы. Причём, ходят "по-большому" в эти "унитазы", как правило инженеры из богатых стран, а вот "подмывают" за ними граждане из стран менее обеспеченных, готовых с радостью приняться за работу лишь бы денежки платили. Таково сегодняшнее распределение труда в отрасли разработки ПО.
2. Оценить своё отношение к подобной "уборке" вполне можно будучи схемотехником. В другой раз, когда "по наследству" достанется изделие для сопровождения, в котором всё вкривь да вкось, можно просто задать себе вопрос: улучшать никудышное изделие или переделать всё заново? Промышленное программирование сегодня - это "костылестроение" в чистом виде, творчеству здесь места, увы, нет. Впрочем, за блеск "унитазов" хоть платят сполна: зарплаты в отрасли разработки ПО одни из самых высоких среди инженерных ремесел. Почему платят хорошо? Я прихожу к мнению, что разобраться в сотнях тысяч строк кода способен далеко не каждый человек, за это и платят, чтобы сидели и разбирались, а не творили и придумывали. Вот так.
Myron
Цитата(Enthusiast @ Jul 11 2016, 16:07) *
То, что девяносто девять процентов времени программист читает код, написанный другими людьми, и лишь один процент времени вносит свои изменения в этот код.

Цитата(Enthusiast @ Jul 11 2016, 16:07) *
...разобраться в сотнях тысяч строк кода способен далеко не каждый человек, за это и платят, чтобы сидели и разбирались, а не творили и придумывали. Вот так.
Еще реже попадаются спецы, которые способны найти простое изменение кода при изчезающих малых вероятностях новых багов. Ведь как говорил папа OS-360/370 -"Каждый устраненный баг порождает два новых". Вот эти люди и получают хорошие деньги. Если стоит вопрос выбора, то лучше идти в массовые программные направления - банковсое ПО, там продуктов больше и людей требуется больше. Хотя там соревноваться придется с индусами, что очень не просто по ряду причин.
TSerg
Наверное, на мое счастье, почти никогда не "читал" чей-то код и не модернизировал его, всегда занимался разработкой своего.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.