Alright
1) Pick a programming language (or maybe 2) and write a lot of code. I would recommend Python and JavaScript given your current skills
2) Stop using the ESRI examples to learn how to program Python and look at pure python for a while. Do some spatial operations using PostGIS/SpatiaLite and Shapely
3) Start thinking of yourself as a programmer who does spatial work and not a GIS analyst who does some programming
4) Bite the bullet and write code for things that might be quicker through the GUI - without writing code you will never get better
5) Follow and start to work on an open source project
6) Volunteer to write code for somebody - without a deadline and a concrete project it is hard to get going
7) Maybe take some programming classes - not a complete requirement but it might help
8) Read programming blogs and the normal stackoverflow to learn and see how programmers think
9) Get the book "Coders at work"
10) Write and read a lot of code
11) remember that it takes about 10,000 hours to become and expert at something - so start writing code and reading code
[Update] Thought of a few more last night
12) Be prepared to suck for a while - it is part of moving up the learning curve
13) Stop using desktop GUIs - Especially for some of your more basic GIS tasks like intersections and such
14) Did I mention you should write and read a lot of code?