V
V
voiceble2018-08-27 00:24:40
Programming
voiceble, 2018-08-27 00:24:40

Necessary knowledge for embedded developer'a?

Good day. I'll get right to the point: it provides an exhaustive list of directions for learning to program microcontrollers (directly subject-by-subject, including which programming languages ​​you should learn). I want to start from the very beginning.
I am also interested in such things as: is it worth learning to write program scripts for Arduino, can it help to abstract in the chosen development area and get the very basics?
Do I need to learn how to solder and understand microcircuits, theristors, testers and other hardware in order to work as an embedded programmer?
Do you need knowledge of Linux programming? Reading vacancies more than once met the requirements of knowledge of working with Linux.
Why is this all: I want to learn programming for cars. According to my diploma, I will graduate in a specialty related to cars, before that I studied Javascript on my own, I was interested in the web, but by the age of 20 I wanted to go into a more serious environment than to engage in website slapping somewhere in the galley.

Answer the question

In order to leave comments, you need to log in

7 answer(s)
A
Anton Gerasimov, 2018-08-30
@voiseble

Offtopic: there is usually more money in web development, especially in the Russian Federation (but globally too). If it doesn't bother you, read on =)
C++, Linux, Verilog are all good, but I would do this after you work for a while and understand where you want to grow.
Absolute must, IMHO:
If you master to some extent (the main thing is not to get carried away) this set, then you can work in firmware. And then you can already develop where your soul lies, and where there will be career opportunities - Linux, C ++, electronics, DSP, whatnot.

L
LampTester, 2018-09-27
@LampTester

I want to start from the very beginning.

Correctly. If you want to become a professional, you need to start with basic theory. "There are no royal paths to geometry."
No. Arduino is a toy. Everything you need to learn is safely hidden there so as not to injure the delicate minds of casual lovers. You will take the time to learn it, and then you will take the time to unlearn what it teaches you. Especially if you want to program for reliability-critical applications (cars).
Yes, definitely. A good embedded programmer should be able to develop hardware himself. Moreover, in projects that are not too complicated (or in solutions that are very critical in terms of optimality), the hardware developer and the programmer are the same person.
In general, an embedded programmer is more of an electronics engineer (somewhere by 80% or even more) than a programmer.
Optional would be a plus.
As for the learning process, it is approximately identical to the learning process of an electronics engineer.
1. Full course of general physics. Necessarily. Without it, nowhere, it is the basis of everything. After it, 98% of elementary questions disappear and a harmonious picture of the world appears. Mathematics - without fanaticism, but in sufficient volume to understand the course of physics.
2. Basic course specifically in electronics. Here you can look towards the classics - Horowitz and Hill are the first that comes to mind.
3. Programming. Without fanaticism. It is not necessary to study numerical methods and memorize classical algorithms at night (although it will be useful to imagine how, for example, the Runge-Kutta method works), but it is necessary to develop algorithmization skills. There are a lot of tutorials on this topic, much more than on electronics.
4. Signal processing is also needed. In writing programs for controllers, all sorts of digital filters are very common (especially when processing a signal from sensors), it would be necessary to understand how DSP methods work.
5. Special questions. Controller architecture, standard interfaces, etc. This is already necessary.
In addition, sufficient English to understand technical literature and communicate at an intermediate level. A simple test is free reading of documentation and resources like hackaday.
But the most important thing is desire. Only it can provide a sufficient amount of practice.

S
Saboteur, 2018-08-27
@saboteur_kiev

In a large embedded, C++ is very common
. But embedded is not necessarily microcontrollers - many devices come with quite full-fledged architectures and OS based on Linux - smart TVs, copters, autopilots, etc.
If you want to do small things, then Arduino can help you get used to it, but you need to learn how to deal with the specification.
You can learn how to solder at a minimal level, but if you work in a company, you will most likely work with engineering copies, where everything will already be soldered and you will only need to be able to work with ports.

S
Sergey Sakhno, 2018-08-27
@Punk_Joker

1. C, C++
2. It’s better to start right away with stm32 (The architecture is popular, and specifically these MKs are corny more material, and it’s easier for a beginner to figure it out)
3. Skills in working with a multimeter, oscilloscope, logic analyzer
4. Device and memory allocation ( a very necessary thing when debugging)
5. Basic concepts in the field of circuitry (you often have to deal with circuits)

V
vanyamba-electronics, 2018-08-28
@vanyamba-electronics

I started with Arduino. That is C/C++.
Then I decided to connect 2 microcontrollers. They began to hover. I had to master the AVR8 assembler.
Then came the turn of Verilog and VHDL.
Then I began to write my own Forth interpreter for AVR8, but I realized that the task is too complicated for assembler, I should try to write it in C ++. It turned out to be even more difficult than I could have imagined.
I had to remember the theoretical part - compilers, interpreters, etc.

A
Alexey, 2018-09-20
@poweruser

If auto - do not forget about CAN. You can play with the "raspberry" (there are also a lot of "shields" for it). Yes, and know what to hold a soldering iron for. :)

Z
z3akycb, 2020-01-02
@z3akycb

Imbedid is not only microcontrollers, everything has been done on x86 for quite a long time - it’s clear why - there are ready-made real-time operating systems for them, and write code there, at least that C, at least in Delphi, at least in assembler.
And all these microcontrollers, due to their underdevelopment in terms of resources, will die off soon, like Australian marsupial wolves.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question