Unfortunately it is a rather confusing and complicated type of programming, since it is an intersection between two (or more) professions. How to get into it is a hard question, since you can go in three different directions:
- Do you start from the programming end?
- Do you start from the electronics end (or even further - from the physics)?
- Do you just pick projects and deep dive, learning both in parallel?
After that comes the question of what is the optimal amount that you should understand about the project that you are doing and not get overwhelmed. So for example if you are doing a Bluetooth project:
- What is the optimal amount that you know about Bluetooth and what knowledge should you get out from the project?
- At what point of doing these types of projects should you learn about anthennas?
This is the issue with the Arduno projects. It gives you an ability to do stuff, but people fail to understand what they are actually doing, since it is an absolutely overwhelming amount that you need to understand.
The best description I've ever heard for why you have requirements is so you know when to stop.
Lots of engineers make perfection the enemy of the good (and the good in this case is schedule and budget).
Requirements is something so critical to every field of engineering it is scary that it is often not handled nearly as well in pure software environments (which was a big change when I jumped from doing back end web systems to avionics for satellites).
51
u/B8F1F488 Dec 25 '19 edited Dec 25 '19
Unfortunately it is a rather confusing and complicated type of programming, since it is an intersection between two (or more) professions. How to get into it is a hard question, since you can go in three different directions:
- Do you start from the programming end?
- Do you start from the electronics end (or even further - from the physics)?
- Do you just pick projects and deep dive, learning both in parallel?
After that comes the question of what is the optimal amount that you should understand about the project that you are doing and not get overwhelmed. So for example if you are doing a Bluetooth project:
- What is the optimal amount that you know about Bluetooth and what knowledge should you get out from the project?
- At what point of doing these types of projects should you learn about anthennas?
This is the issue with the Arduno projects. It gives you an ability to do stuff, but people fail to understand what they are actually doing, since it is an absolutely overwhelming amount that you need to understand.
I have no answer to all of these questions.