D
D
Dmitriy4192019-05-03 17:32:12
Electronics
Dmitriy419, 2019-05-03 17:32:12

What is the most necessary, general knowledge in software engineering and embedded development?

Good day.
At the moment I am torn between two directions - software development and embedded development.
Since I can’t decide on the direction yet, I can’t learn anything normally. I would like to know which skills are equally useful in both directions.
I would also be very grateful to people who will help determine the direction. Perhaps you can tell us about your work experience or something like that.
In embedded development, the materiality of projects attracts, but at the same time there is coding (which I really like). I like programming because there are no special requirements in the form of conditions and the ability to implement something with only a laptop. In both industries, I like the ability to create something -something new.
I'm bad at wording questions, so I apologize in advance.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
V
Vladimir T, 2019-05-03
@Dmitriy419

I have been doing embedded development for a very long time (about 20 years), and if I could choose now, I would choose just programming. For one simple reason - they pay more. I used to develop both hardware, and circuits, and boards, and in general did everything, up to testing and documentation, but for many years I have not been doing all this, but only doing coding, for the same reason - they pay more.
In general, if you want to get into embedding, start with microcontrollers of the Stm32 family, buy an inexpensive Discovery or Nucleo board and figure it out. You will also need to know the basics of circuitry. Even if you don't design circuits yourself, you still have to deal with ready-made circuits, and you will need to fully understand how everything works. Being able to hold a soldering iron and work with an oscilloscope will also be a big plus.
Then it will be possible to master FPGA and the Verilog language, but this is very amateurish and only with a strong desire, because with salaries there is generally sadness.
And yes, English is a must, no options. Reading technical text freely, quickly and without a dictionary - in any case, colloquial - only for international companies or when working for a foreign customer, but this is just the most delicious. So English is needed.
Well, programming is programming. Languages: C - most often, C ++ - sometimes, C # and others - for the "top level", but they also do not interfere. Algorithms can be asked at the social security, but you should not memorize them much. Practical experience is more important than theory. Operating systems - for the upper level - Windows, Linux, for the lower - various RTOS or bare metal. In powerful pieces of iron - Linux, so it's better to be friends with it very well.

V
vanyamba-electronics, 2019-05-03
@vanyamba-electronics

In any profession, the most important thing is school. Without a teacher who will open the way to the world of the profession for you, a specialist will only develop not real projects, but empty fantasies in his dreams.
Therefore, the most important knowledge is English. Reading English fluently is required, and it is desirable to be able to correspond in English.
The second most important knowledge for a developer is higher mathematics. Without it, you can neither estimate the labor costs, nor simply calculate the approximate value of the function. Moreover, you will not be able to understand why one project is successful and profitable, while the other has not advanced beyond version 1.2.
The third most important knowledge for a developer is philosophy. Every product has a philosophy. A philosopher would say that any product is just the fruit of the developer's philosophy. Apple, Google, Microsoft are not only different technologies, but also different philosophies. Even when they create their products under the same technological base, the difference in development philosophy makes their products so different from others.
The fourth most important knowledge is physics. Mathematics, philosophy - all this can easily work on paper, but you cannot deceive physics. Any device is an object of the physical world, and lives according to the laws of this Universe.
The fifth most important knowledge is religion. As a developer, I personally constantly encounter the fact that someone can simply declare my project an immoral phenomenon.
Why? I ask.
Because you are an immoral person, - they answer me, and there is nothing to be done about it - because the consumer does not believe in immoral me, but in this holy person. He translates old women across the road, and I have another deadline.
The sixth most important knowledge is programming languages. The more different languages ​​you write even small programs, the freer you are in choosing development tools.
An image of a kind of superman can form in the reader's head. But here it is important to understand that any phenomenon has a set of parameters. Let's say you have 3 for the first property, 4 for the second, but 5+ for each. This makes you as a developer different from other developers. And if for some project you need to improve English, for example, then you have to improve it along the way.

L
lonelymyp, 2019-05-05
@lonelymyp

embedded in my opinion will give life more hemorrhoids and less money. Plus, the standard situation is to delve into one area or platform, become a specialist, and after 5-10 years it turns out that the EOL of what you have become a guru has come.
So I would advise to focus on programming, more chances to achieve success.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question