I don’t know if I feel you. I went from working in systems management and as a network / security administrator for 15 years or so before I was fed up with it. I applied for a position as a C# / .Net / C++ developer and up until then I only used programming as a tool for system administration and the likes.
On my resumé I made it look a bit different though.
In three months I had to learn OOP principles, test driven development, Scrum workflows and much more.
When it comes to programming I feel it differs a bit from other learning tasks.
I believe that THE ONLY way to learn programming is by actually writing code, all the time. Make stuff, anything that does something useful, and implement it in the languages you need to learn.
My recipe for learning to program:
- Code all the time and make things work
- Refine, optimize and clean up the code
- Learn and apply common coding patterns and best practices via refactoring
- Start all over again, this time also implementing testing in the process
Now you know how to program.
After this initial learning period, expect to use at least 2–4 years of programming on a regular basis before you can deliver production quality code in critical projects.
There are NO SHORTCUTS. Experience is king.