@Dmitriy419

Какие самые нужные, общие знания в программной инженерии и embedded разработке?

Доброго времени суток.
В данный момент мечусь между двумя направлениями - создание ПО и embedded разработка.
Так как не могу пока точно определиться с направлением, не могу нормально что-либо учить.Хотел бы узнать какие навыки в равной степени полезны в обоих направлениях.
Также был бы очень признателен людям, которые помогут определиться с направлением.Возможно расскажете о своем опыте работы или что-то в этом духе.
В embedded разработке привлекает материальность проектов, но в тоже время присутствует кодинг(который мне очень нравится).Программирование мне нравится из-за отсутствия особых требований в виде условий и возможность реализовать что-либо имея лишь ноут.В обоих отраслях мне нравится возможность создания чего-то нового.
С формулировкой вопросов у меня достаточно плохо поэтому заранее извиняюсь.
  • Вопрос задан
  • 626 просмотров
Решения вопроса 1
32bit_me
@32bit_me
Программист, встраиваемые системы
Я занимаюсь эмбеддед-разработкой очень много лет (лет 20 примерно), и если я мог бы выбирать сейчас, я бы выбрал просто программирование. По одной простой причине - больше платят. Раньше я разрабатывал и железо, и схемы, и платы, и вообще делал всё, вплоть до испытаний и документации, но уже много лет я всем этим не занимаюсь, а занимаюсь только кодингом, по той же причине - больше платят.
В целом, если вы хотите именно в эмбеддинг, начните с микроконтроллеров семейства Stm32, купите недорогую плату Discovery или Nucleo и разбирайтесь. Также необходимо будет знать основы схемотехники. Даже если вы не будете сами разрабатывать схемы, всё равно придётся разбираться с готовыми схемами, и нужно будет полностью понимать, как что работает. Уметь держать паяльник и работать с осциллографом также будет большим плюсом.
Потом можно будет освоить FPGA и язык Verilog, но это очень на любителя и только при большом желании, потому что с зарплатами тут вообще печаль.
И да, английский нужен обязательно, без вариантов. Чтение технического текста свободно, быстро и без словаря - в любом случае, разговорный - только для международных компаний или при работе на иностранного заказчика, но это как раз самое вкусное. Так что английский нужен.
А так, программирование, оно и есть программирование. Языки: С - чаще всего, С++ - иногда, С# и другие - для "верхнего уровня", но тоже не помешают. Алгоритмы могут спросить на собесе, но сильно их заучивать не стоит. Более важен практический опыт, чем теория. Операционные системы - для верхнего уровня - Windows, Linux, для нижнего - различные РТОС или "голое железо". В мощных железках - Linux, так что с ним лучше дружить очень хорошо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@vanyamba-electronics
В любой профессии самое важное - это школа. Без учителя, который тебе откроет путь в мир профессии, специалист будет только разрабатывать не реальные проекты, а пустые фантазии в своих мечтах.
Поэтому самое важное знание - это английский язык. Нужно бегло читать на английском, и желательно быть способным вести переписку на английском.

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

Третье самое важное знание для разработчика - это философия. В любом продукте есть философия. Философ сказал бы, что любой продукт - это просто плод философии разработчика. Apple, Google, Microsoft - это не только разные технологии, но и разные философии. Даже когда они создают свои продукты под одну и ту же технологическую базу, разница в философии разработки делает их продукты настолько непохожими на другие.

Четвёртое самое важное знание - это физика. Математика, философия - всё это спокойно может работать и на бумаге, но физику не обманешь. Любое устройство - это объект физического мира, и живёт по законам этой Вселенной.

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

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

Может сложиться образ эдакого супермена в голове читателя. Но тут важно понимать, что любое явление обладает набором параметров. Допустим по первому свойству у вас 3, по второму 4, зато по 5+. Это делает вас как разработчика непохожим на других разработчиков. И если для какого-то проекта нужно подтянуть английский, например, то приходится подтягивать по ходу.
Ответ написан
@lonelymyp
Хочу вылезти из минуса по карме.
embedded на мой взгляд даст по жизни больше геморроя и меньше денег. Плюс стандартная ситуация углубиться в какую-то одну область или платформу, стать специалистом, а по прошествии 5-10 лет окажется что наступил EOL того в чём ты стал гуру.
Так что я бы советовал сосредоточиться на программировании, больше шансов достичь успеха.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы