How else should i start then? i need your opinion
Do you have the hardware knowledge and the coding skills to write at the bare metal level? If so, rock on! If you stay with the Atmel ATmega style devices, you will use C and avr-libc.
http://www.nongnu.org/avr-libc/user-manual/modules.htmlYou should Google around for projects using the ATmega328 and avr-libc. Duplicate them...
Arduino is denigrated because it makes things easy for beginners. Usually by experts who have been coding hardware for decades. And who says the code is bloated? Have you done a project where you have run out of room? Sure, it's possible, but unlikely for newcomers. Unless they try to solve world hunger on a uC using Deep Learning.
The issue with Arduino is simple: Can it solve the problem at hand easier than any other solution? Very likely! Everything that can be done with an Arduino has been done and the project is out on the Internet. Are they going to qualify for the Nobel Prize? Probably not.
The other day I was looking at the reference manual for some device (I have forgotten which). It was over 4,000 pages and there will be a test later. Sometimes quick and simple is the way to get things done. No, I wouldn't be expected to know all 4,000 pages but I would need to know some significant percentage just to get started. Things like turning on the power to peripheral devices and setting up clocks is a true learning experience, fraught with frustration.
Starting with a new platform, it might as well be ARM. All the big kids are using them and there are many choices. There is even a platform that serves a large number of boards and it's called mbed. Now is the time for all the online toolchain haters to come out...
You don't actually have to use the online toolchain, you can download the libraries and use a local toolchain. And, it's true that you won't have a debugger but after 50+ years of single stepping code, I think that is the least effective way to debug known to man. Printf() is a far better solution and it is portable across a lot of platforms.
One cool thing about online toolchains is that you only need a browser to program the device no matter where you are. Cloud computing I suppose.
https://os.mbed.com/Look in the hardware tab for a variety of boards that support the mbed way of doing things. Here's a nice little Arduino shield compatible board with a CPU having 2MB of flash and 1MB of RAM (but read the fine print, only 864 kB of RAM is user RAM... Based on the dual row edge connectors, it doesn't seem this board is particularly breadboard friendly.
https://os.mbed.com/platforms/ST-Nucleo-H743ZI2/Do not expect the simplicity and handholding of Arduino when you move to these other platforms. Sample projects just might not be as readily available. There are MANY other boards that support the 'mbed' concept. Pick something and start coding.
I like the LPC1768 incantation because it IS breadboard friendly. It doesn't have as much IO but all I need to add for TCP/IP connectivity is a MagJack. See my daughter card, attached. All I have to do is include the TCP/IP library in my project and it's off to the races.
ARM is the present RISC-V is coming on strong and may play a big role in the future. The one thing we can be sure of is that things will change.