Мне интересна сфера робототехники. Знаю, что нужно будет учить физику (механику, электродинамику), электронику, некоторые области высшей математики, программирование, области изучения искусственного интеллекта, скорее всего пригодится математическое и компьютерное моделирование. Потом наверное нужно будет писать системы поддержки принятия решений.
Учусь в шараге, самостоятельно изучаю С, Python, математический анализ, линейную алгебру, теорию вероятностей, начал недавно лекции ФПМИ МФТИ по дискретной математике.
Цели на лето: начать изучать программирование микроконтроллеров на С.
Что еще нужно учить, чтобы стать хорошим инженером в этой области? Есть ли у Вас какие-нибудь рекомендации по литературе (можно на английском) ?
Учить просто так для галочки смысла нет. Гораздо интереснее будет учится, если у вас будет цель.
Например. Цель - сделать роборуку.
Начинаете прорабатывать план -- что для этого нужно.
Потом по мере конкретизации плана, вы сами поймете что вам учить и в каких объемах.
Для разработки механики - кинематика, механика, сопромат
Для разработки "мозгов" - всё что связано с проектированием электрических схем.
Для программирования - любой системный ЯП. ASM, C, C++, Rust и набор библиотек для работы конкретным микроконтроллером + умение читать даташиты. В некоторых случаях можно и более высокоуровневые языки применить, но тут уже надо на эти случаи смотреть.
PS: Rust действительно хорош. Советую начинать с него, а не с ардуино. Тк он сочетает в себе читабельность, безопасность, и эффективность.
Важно понимать, что нет такой профессии как разработчик робототехники. Разве что вы не главный конструктор большого проекта. Любой конечный продукт в этой области это результат совместной работы специалистов разных направлений. Я к тому, что самый прагматичный подход для развитии, если Вы конечно не наследник олигарха - это получать знания в направлении конкретной специальности. Открываете сайты поиска работы (например, тот же headhunter) и ищете близкие по теме вакансии. Обычно в описании вакансии указаны требуемые знания и навыки. Там уже можно и литературой озаботиться. А обучение "в общем" обычно не приводит к хорошим результатам.
Кстати, чтобы стать хорошим инженером в любой области нужно решать практические задачи. Практика это единственный критерий истины.
Да, я понимаю, что всё это не делает один человек. Допустим, если я буду писать программное обеспечение для компьютерного зрения или же писать код для управления отдельными частями машины, мне всё же хотелось бы понимать каким образом работает вся эта система.
Буду практиковаться как можно больше.
Понимание как работает система в общем не обязательное условие для эффективной деятельности. В этом и есть смысл профессиональной специализации. Каждый человек умеет решать ограниченный круг задач и делает это хорошо. Можно расширять круг решаемых задач и расти в опыте и знаниях, но принцип останется тем же самым. Более того, в больших проектах ни один человек не знает как работает система в целом на достаточном для её воссоздания уровне )
Для направления низкоуровневого программиста могу посоветовать изучить основы электроники, компьютерные архитектуры, алгебру/дискретную математику, языки С/С++. Этого хватит для практики на Arduino. А дальше уже можно искать профессиональное применение своим знаниям и доучиваться по мере необходимости.
Лезть в прикладной ИИ без нескольких лет опыта в программировании, хорошем знании высшей математики и теории алгоритмов я бы не стал.
Лезть в прикладной ИИ без нескольких лет опыта в программировании, хорошем знании высшей математики и теории алгоритмов я бы не стал.
В свое время, невероятное количество разработчиков выросло на таких инструментах как логарифмическая линейка
Позже ее заменил калькулятор.
Эти ребята применяли результаты вычислений во многих революционных разработках, тем самым освободившись от теоретического хлама несовершенных вычислений.
Тогда они даже во сне не представляли что применяли прототипы будущих No Code платформ, которые сегодня набирают обороты среди нового поколения разработчиков.
Примеры таких решений уходят в глубокую историю с момента открытия счетных механических устройств в т.ч. японские счеты Soroban, которые преподают в начальных классах многих мировых элитных школ. Пример такой робототехнической платформы.
Если имеется представление о бинарном логическом сигнале, а так же ориентация в модульных компонентах, которые широко представлены на Ali, особо ничего учить не требуется, но нужно вложиться в правильный софт, а точнее среду разработки, не требующую от Вас знаний в языках программирования.
Все внешнее I/O управление под OS Windows 10 (LTSC).