Обучение разработке встроенных систем без надзора [закрыто]

10

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

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

ОБНОВЛЕНИЕ: До сих пор я получил несколько полезных ответов, но я понял, что мне нужны некоторые конкретные указатели по этому вопросу.

Итак, вот мои конкретные вопросы:

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

Ответы:

3

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

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

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

  3. Попросите своего босса записать вас как минимум на 10 дней обучения в год . Не нужно объяснять здесь преимущества, если он отказывается, он тупой.

  4. Попробуйте перейти на 1-2 конференции или выставки, связанные с вашим бизнесом.

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

  6. Получить наставника . Конечно, это не самая легкая вещь для достижения.

  7. Зарезервируйте некоторое время на неделе, чтобы экспериментировать и заниматься исследованиями и разработками , пробуя новые технологии вещей, которые вы читаете в своих книгах, в сообществе, на выставках, тренингах и т. Д. ... ОЧЕНЬ важно практиковать то, чему вы научились.

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


источник
3

Сейчас я одинокий разработчик на работе, а мои товарищи по команде - эксперты по аппаратному обеспечению.

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

tcrosley
источник
0

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

Обмен стека и блоги

Удивительно, но у Stack Exchange нет собственного сайта вопросов и ответов для встраиваемых систем. Один из них был предложен около двух лет назад, но он все еще находится на этапе принятия обязательств, томясь без достаточного количества людей, подписывающихся для его поддержки. Если вы хотите что-то изменить, перейдите сюда:

http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development

Прочитайте предложение и, если вы согласны, нажмите «Принять», чтобы принять участие.

Linked In также имеет группу Embedded Systems, а также пару тесно связанных групп, которые могут представлять интерес:

Встроенные системы

Прошивка

РУКА

Веб-ресурсы

EETimes имеет особенности о встроенных системах.

http://www.eetimes.com/design/embedded

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

http://www.drdobbs.com/embedded-systems

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

http://www.arduino.cc/

Если вы - женщина-разработчик программного обеспечения или непросвещенный мужчина-разработчик, чьи встраиваемые системы - это в основном клуб "Good-Old-Boys", посетите этот сайт. Автор - выпускница Массачусетского технологического института, сделала резкие, из коробки (или иногда в коробке вещи, как ее зарядное устройство для iPhone Altoids-box), и, кажется, очень плодотворно в ее разработке, написании и видео блогах.

http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded# !

http://www.adafruit.com/tutorials

Многие поставщики будут иметь обширные коллекции таблиц данных, замечаний по применению, технических документов и бесплатных или ознакомительных копий инструментов разработки. В число ведущих компаний в этой области входят ARM, Atmel, Freescale, Intel, Microchip Technologies, NXP (ранее Phillips), TI и многие другие.

книги

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

Более современный справочник - Embedded Linux Primer. В первых главах обсуждается обоснование работы Linux на встроенных системах и некоторые из задействованных механизмов. Глава 3 содержит хорошее обсуждение процессоров + поддержка чипсетов и опций SOC (System On a Chip), которые можно рассмотреть для использования в современных разработках. На самом деле, цель движется, поэтому она дает отправную точку, которая является современной с публикацией книги. Глава 3 хороша, но должна быть дополнена некоторыми дальнейшими исследованиями в Интернете и обсуждением с поставщиками. Как правило, инженеры-электрики и ведущие разработчики программного обеспечения в проекте выбирают процессор, поэтому, если вы работаете в компании и изучаете встроенные системы, сделайте глубокий анализ выбранного оборудования.

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

DeveloperDon
источник
0

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

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

Единственный другой программист здесь - это то, что вы бы назвали старшим (потому что он на работе более 15 лет). Он работает совершенно иначе, чем я. И он до сих пор пишет искаженную форму C с классами, никогда не использует STL, не знает, что такое шаблон проектирования и т. Д. И т. Д. (Я, вероятно, скоро собираюсь задать вопрос по этому вопросу, у меня возникают трудности с попыткой заставить его принять хотя бы некоторые из моих методов ..)

Стейн
источник
-1 Для, возможно, хорошего смысла, но бессмысленного открытия «Если ты достаточно умен ...». Пожалуйста, давайте никогда не ставить под сомнение чей-то разум, особенно если нет очевидных доказательств. Я не думаю, что вашей целью было быть недружелюбным, но для Ольги это могло бы показаться таким. Похоже, что она опубликовала этот вопрос, а затем больше ничего не делала на Stack Exchange.
DeveloperDon
@DeveloperDon моя цель действительно состояла в том, чтобы не быть недружелюбным, но вы правы, когда я читаю предложение теперь, кажется, что я сижу на башне, являющейся всем превосходящим. Позорная вещь, поэтому я убрал ее.
Стиджн