"I am a software developper and know how to code,"
That's really great but some practices you may have to change because of the lack of RAM. The one I know and have seen most often, I call automatic-int. After a while the words we type are reflex motions, it's not a fault but it requires thought.
Don't use int where byte will do. When you see pin numbers stored in ints, that's someone who didn't think. Sure you can waste bytes but every time you do the habit to break gets stronger.
Don't use C++ classes that do dynamic allocation. Arduino has String class objects. They can play havoc with the heap. Smart thing is to use C char-array strings. If you arrange things right, you won't need to include string.h.
These things are good for processing streams, it's almost like they're made for it, LOL!
There is a basic approach to cooperative multitasking that works great on these boards that is where we steer those who are ready, be sure to hit tutorials and threads that teach it. For you, it should go quick but it is a different view -- think RTS vs turn-based games with turn based being the taught default.
You can literally run 100's of things at once with a low-end Arduino, as long as they aren't special high-frequency tasks, in which case fewer can run together but it's not a problem to blink leds, read switches and do serial read/print (printing is the big load there especially if you print 32-bit integers) and a few other things in void loop() that averages over 60KHz. If all I do is count and print times through void loop() every second, I get over 110KHz but that's doing only 1 thing. If I blink a led too, it drops to under 80KHz. So maybe you get an idea of what the chip can do?
You can add components and chips to Arduino to get more out of it. When people want to run 8x8x8 led cubes the usual route is to chain shift registers or led drivers on the SPI bus and then the code amounts to shoveling data to SPI every 30-40 ms, have to give it time for the human to see it.
I was a programmer who could change a lightbulb (ie, do some hardware) and really liked physics. Your mileage may vary but even basic DC electronics skills can get you far with Arduino. Being able to solder is a big plus too.
As to your model, look into Arduino Nano or Mini. They're small, easier fits than Uno but have the same chip. They have pins that fit in breadboards and also female jumper ends. Look up DuPont Cable, there's 3 variants of male and/or female ends. You peel off as many lines as you need to make custom cables and reduce the rat's nest.
Don't buy parts until you need them, your plans may change. I know a lot of people who buy just because it is -something- they can do. Resist any urge, if you want to test something then get that. The big exception is common components like resistors, caps, diodes, leds and transistors that you can get per-piece cheap in assortment packs that fill whole ranges of values or functions. How many of each in the whatever assortment is up to you but 10 each of 20 resistor values means being able to try loads of new circuits that a bag of 50 220 ohm resistors (the standard for leds here) just won't cover.
If you're in the US or Canada, DIPMicro has good prices and ships in 2-3 days. DigiKey and Mouser are two good parts houses with quick shipping but the big savings takes more like 3 weeks unless Chinese New Year is happening, then add 2 weeks to a month before you get your parts.
That's all for now and too much typing already. Good luck.