Мова програмування для Hardware Engineer

Прошу вибачити якщо ця тема вже обговорювалася тут раніше.
Мені 15. Хотілося б отримати відповідь на таке питання: Якщо б ви зараз починали навчатися на Hardware інженера, яку б мову програмування ви обрали?

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

C, Python, Verilog та вміння писати промпти до LLM які будуть давати відповіді по першим трьом

Взагалі найбільшим «золотом» є поєднання навичок написання прошивок і знання елементної бази. Тому чистий С опціонально з плюсами, можливо Python десь пригодиться.
Але тут зустрічаються і «чисті» вакансії, де програмування не передбачено. Просто з програмуванням їх в 10 разів більше, бо часто компанії не розуміють що ембеддед програміст найефективніше працює в парі з hardware engineer.

Взагалі найбільшим «золотом» є поєднання навичок написання прошивок і знання елементної бази

То для роботодавця золото, а для виконавця що ширший стек вивозиш, то гірші умови. Як екстремальний приклад, предметна сфера у вигляді фізики напівпровідників (замір в динаміці зміни бар’єрної ємності після різкого стрибка напруги на переході, для аналізу параметрів радіаційних дефектів), розробка всього необхідного аналогового фронтенду і його фізичне виготовлення, написання прошивок для мікроконтролера і FPGA для власне роботи того заліза, написання керуючого софту з драйверами на ПК і написання софту з матстатистикою і нейронними мережами для аналізу отриманих данних.
І все це щастя за 100-300 баксів. В державній оборонці буде примітивніше, може навіть до 2к за FPGA чи програмування на стандартних мовах для вебу буде, але цінність чомусь так і не проявляється в грошах чи інших видах компенсації.

Для разработки систем на FPGA, чипов и валидации разработок часто используются Verilog, VHDL и SystemVerilog. Лучше начать с Verilog и позже возможно изучить SystemVerilog. VHDL сейчас встречается всё реже, целесообразность его изучения в вашем возрасте под вопросом.

Це мови опису апаратури інтегральних схем. Є трохи різниці в «програмуванні». Наприклад весь код виконується одночасно в загальному випадку. Хоча воно дійсно дуже схоже на мову програмування і багато хто плутає. Тим не менш це є створення логічної схеми і ви описуєте просто зв’язки між якимись і-не логічними елементами. Типу як креслення схеми на папері, тільки кодом.
Взагалі тема цікава але більше про dsp і матапарат, що досить рідкісне явище на ринку праці.

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

Hardware — чи Embedded та System programming ?
При розробці архітектур процесорів та контролерів і відповідно інших мікрочіпів є специфічні мови опису типу Verilog, за допомогою яких вже програмні пакети генерують електричні схеми, що з них вже роблять безпосередньо чіпи зазвичай на замовлення в Тайвані. В цілому цим займається не таке вже і багато компаній, здебільшого за кордоном в Україні з цим не густо, бо і з самим виробництвом чогось складного теж і перспектив через 5-6 років коли ви вийдете на ринок праці, особисто я не бачу.
Щодо Embedded — тобто програмування вже готових виробів на основі міконтролерів архітектур як то STM32, Arduino і тому подібне, то тут безперечно C та Assembler під архітектуру ARM.
Взагалі це дуже Тайваньска тема станом на зараз і якщо в це йти — то виключно за кордоном.
Де будуть перспективи найближчі 5-10 років насправді дуже велике питання для усієї галузі, тобто ми не знаємо. Знаємо що зараз розвивається — де ж попит, це суб підряд чи партнерство до великих в дуже великих корпорацій BigTech, тобто в тих технологіях які вони виводять на ринок. Скажімо у Microsoft це C#/.NET та ще TypeScript а також Azure, Amazon та партнери — історично Java та AWS, Google — Node, Go lang та GCP. Увесь AI від усіх технологічних гігантів BigTech — Python та С++. Цім комерційним мовам фактично усім більше 10 років, тому можна брати за основу будь яку.
Станом на зараз як перша мова програмування в цілому найбільш перспективна — Python.

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

У більшості випадків ніякого замовлення не буде. Тому що можна брати готові FPGA.

в Україні з цим не густо

Не густо, так. Наразі три вакансії: jobs.dou.ua/vacancies/?search=fpga

Коли я випускався за цією спеціальністю, то було нуль. :)

До речі, можна ще шукати роботу як hardware engineer subject matter expert в софтверні компанії, які пишуть CAD-інструменти.

Хто зна комусь же треба працювати і в : ARM, AMD, Apple, Atmega, Intel, Nvidea, Qualcomm, Samsung і т.д. і розробляти самі чіпи, плати і т.д. В нас нещодавно було модно робити лампові та інші пристрої для музичних інструментів і програвачів і т.п. Коли це кастомшоп чи мала серія ексклюзивного девайсу — то в цілому можна і вийти на прибутковість навіть, при умові вірного сучасного маркетингу.

Verilog більш практичний, можна з нього починати, але в реальності вибору не буде, і треба знати і Verilog, і VHDL. Але це безпосередньо для hardware. Але ж Ви не будете контролер для воріт робити з двома кнопками, відповідно, треба буде й софт хоча б для дебагу, ну і якийсь UI, тощо. Відповідно, практично немає просто ізольованих hardware engineer — це завжди всього потрошку плюс більш глибокий фокус на hardware.

Тому треба знати хоча б трохи C/Arduino, Python, JS/TypeScript, HTML/CSS тощо. Краще йти проєктним шляхом: оберіть якийсь девайс, який вам буде цікаво зробити, і реалізуйте для нього повний стек — від заліза до UI. Відповідно, зачепитеся за все потроху.

Але hardware — це дорого і потребує місця, умов тощо. Якісь FPGA-шні eval-борди — це сотні доларів, плюс осцилографи, купа модулів для прототипів, мотори тощо. Можливо, краще комусь на хвіст сісти та в якійсь лабі чи хакерспейсі примоститися :)

Ну і, як інші написали, хардкорний hardware — це ще й купа математики, симуляцій і алгоритмів, які розробляються задовго до реального заліза. І там купа своїх специфічних тулзів та мов програмування.

Ну і чарівний синій дим, а можна і без ока залишитися :) Тобто risk profile зовсім інший у порівнянні з софтом :)

Для справжнього хардвару треба вміти будувати моделі в Matlab/Simulink чи іншими нішевими інструментами володіти, і в цілому власне хардвар значно складнішу базу потребує, ніж якісь конкретні мови. У вузі все розкажуть і покажуть.

Значно важливіше, обрати правильний вуз, бажано не український, а то все одно доведеться вчити Javascript або Go, коли мілтек підпаде під демілітаризацію по договорняку, а іншого хардвару немає.

Підписатись на коментарі