At our university, we teach students the basics of microcontrollers by working with Arduinos. These are extremely easy to use, and therefore offer a simple introduction to the use of microcontrollers. You can start setting up your project and writing code within minutes. This is why working with an Arduino gives you a lot of satisfaction.
However, this advantage has a number of major drawbacks.
The biggest disadvantage is that you don’t learn to work with individual parts. If you don’t work with product development, that’s okay. However, we do this in computer science and engineering, and that’s why it’s important that you learn that.
If we look at the datasheet of the Arduino Uno, we see how complex it works under the hood.
If you have worked with the Arduino Uno before, then it is recommended to have a detailed look at this datasheet. (Although this one is actually a mess. It might be easier to look at this datasheet of the Arduino Due).
You can use the Arduino without knowing how an AD converter works, or without knowing how the SPI communication to the ADC works. One risk of this, is underestimating how difficult this can be.
When you finally start developing your own product, you’ll notice that it’s usually not that easy to connect these kinds of things yourself.
If you’ve only worked with an Arduino, this is a pretty complicated experience. However, this is the truth for all students who have only worked with Arduinos at university. When I started this project, I only had experience with Arduinos. For me this was much more instructive than anything I had ever done with an Arduino.
If you really want to be able to design products on this scale in the end, it’s better to ignore the Arduino and just start developing with real parts. Otherwise, you’ll have to learn to rebuild after your prototype. If you are just a hobbyist and want to develop small prototypes, I would definitely stay with Arduinos.