Well, I have a biased view here. I&#x27;m a knowledge junkie and I love learning systems. In software, I _actually_ RTFM for every single tool I use even tangentially. (As a side note, reading tech documentation cover to cover is actually awesome). So instinctually my gut reaction is to say &quot;yes of course learn the system&quot;.<p>But as far as a more measured, less biased opinion goes: it depends on how professional you want to be. Most real consumer hardware doesn&#x27;t really have APIs in the same manner that arduino and other user-friendly platforms do; arduino is basically designed to make programmer hobbyists feel comfortable with hardware.<p>But real embedded systems are programmed on microcontrollers (generally, sometimes we use FPGAs or other exotic platforms) in assembly or a dialect of C. And there, you&#x27;re not so much &quot;using an API&quot; as you are manipulating output pins directly. So if you really want to work with high powered, professional platforms, you should certainly learn the stack.<p>Learning the stack is advantageous even with a friendly platform like the Arduino. At low power, most robotics are pretty easy to work with, very few surprises. But as you try and build bigger and more powerful robots, especially where motors are concerned, you start running into real electrical engineering problems (like back-EMF) that you _can&#x27;t_ fix with software. So if you aren&#x27;t comfortable with electrical engineering, the first time you attempt a more ambitious project you&#x27;ll find yourself at a brick wall that you don&#x27;t know how to get around.<p>So, unsatisfyingly, the answer seems to be &quot;it depends&quot; ;)