My youngest son had to do some hard- and firmware development last year, for a project at his technical college.
As a meanwhile retired veteran of this art, I helped him to find information about Arduino IDE and Arduino Mega.
In doing this, I first got hooked myself to all this Arduino stuff and second, I found dronebotworkshop.com - for my opinion, the most comprehensive reference on this topic!
Rule of Thumb in hardware/software engineering:
From the estimated time to complete a project you need:
5% for the engineering itself
95% securing everything against any strange idea users can have
and the remaining
150% for finding and fixing bugs that you thought never could happen