I am not asking for comparison between the two microcontrollers just needs some advise on how to learn the professional language of programming microcontrollers. I am 34 and my projects are mostly at the hobby level.
This question will start the inevitable language wars! Arduino kind of uses C++, sort of. In my view, for embedded processing, C++ is the wrong thing to use. Most everything that I have seen is done in C. Note that the entire Linux kernel is written in C. The features of C++ don't necessarily apply to a microcontroller.
Anyway, here we go with the wars: C vs C++.
My needs had been fulfilled with the arduino not that I have a higher requirement in terms of processing power or memory. Just felt that most ppl prefer the STM32 in there projects than an arduino.
Yes, the STM32 is becoming quite popular because ST is making interesting development boards that are quite cheap. Some projects DO require more memory and more speed than the 8 bit ATmegas. Most don't. It is important to be able to work in either sandbox and to not take sides.
Does the professional models like the STM32 have libraries like the Arduino do ?
Yes, ST provides an entire universe to play in. CubeMX allocates pins and generates code plus there is a HAL (Hardware Abstraction Layer) {known as bloatware} and plenty of free tools. If you want to go down this road, buy a copy of "Mastering the STM32". The author will get you up and going in a real big hurry.
Here are the boards that work with the mbed platform. In this sandbox, you don't even need to install a toolchain, everything is done with a browser. Why do it this way? Because I can reach my project code from anywhere in the world from any machine I happen to have. Your code plus the mbed libraries can be downloaded to your local machine and you can use another toolchain if you wish.
https://os.mbed.com/platforms/But, as I said above, don't take sides. The ARM chips offer more speed and more memory but they are orders of magnitude more complex to program than a simple Arduino using the provided libraries. And don't fall in love with the idea of HAL code - it is a PITA to use and finding the documentation isn't always straightforward. More often than not, I write my own stuff rather than rely on code I have never seen. The HAL stuff is bloated simply because it tries to do everything for everybody.
At the chip level, you really can't write code for device drivers unless you have a fairly deep knowledge of hardware. That's why the Arduino libraries exist. The Arduino was designed for artists to mechanize their creations. They aren't expected to be hardware gurus.
To play in the embedded sandbox, you need to have skills in both hardware and software.