My advice is: don't try too hard to make your first mechanical keyboard your "endgame" keyboard.
These are keyboards that get recomended here often (I haven't tried them):
Kul ES-87
WASD V2 and WASD Code
Leopold FC750R
CM Storm Quick Fire Rapid
Ducky Zero or Ducky Shine
CM Storm Novatouch (topre)
RealForce 87U (topre)
Rosewill RK9000
All of those keyboards are miles ahead in quality compared to any rubber dome, and they are compatible with all keycap sets, because they have standard bottom rows (1.25 units of width for CTRL,ALT,Win,Menu, and 6.25u for the spacebar), except for the RealForce but in the case of the RealForce it already comes with some of the nicest stock caps (PBT).
The Kul has now top cases in blue, red and white colors available.
Filcos are harder to get, I didn't put them on the list.
Thermaltake does make mechanical keyboards too, but now has started to use Kailh switches instead of Cherry switches. Corsair, Razer and Steelseries keyboards are not fully compatible with keycap sets because of their bottom rows. If gaming keyboards are all you can get, then there is nothing wrong with that, they are still better than any rubber dome keyboard for the typing experience.
I'm thinking of buying a Kul with brown switches in the near future.
The problem with the "I want an endgame keyboard" mentality is that there is no single keyboard that will give you the combined experience of trying many different switches by itself. Sure, at the end of your journey, there will be one or two keyboards that you use the most, as your daily drivers. Most people here have more than one keyboard and rotate them for inspiration.
I want to add something more: It's very nice that you are getting into programming, but you don't need a mechanical keyboard for programming. Of course you'll enjoy yourself more with a mech, but it is not necessary at all, so beware of using the keyboard hobby as an excuse to procrastinate learning programming
Cheers and good luck!!
.KeyHopper.