From my own experience...
When I was stuck in a dead end job (downright depressing at times, nothing related to software development at all) I learned to do software development in my free time learning programming languages (C & C++ but had learned Perl before), knowing about software development methodologies and practices (like Kanban, Scrum, Test Driven Development, etc) and knowing how to use most development tools (Visual Studio, Git, Compilers, etc). Books on the above helped immensely. Of course, it took a while to learn C & C++ as it's easier to slip up than say Perl/Python...
The fun bit was applying for a junior development role! When I applied to the place I work now originally (I hadn't put my self-taught software development skills to the test until then) I got turned down but did get a lot of good feedback on the exercise I did (which encouraged me a lot). I then went to a two week "huddle" where you worked as a team on a project and learned more things as you went along (also something good to go down on your CV).
It was at the end of the first week I found that I wasn't tiring out so much like I was doing in my old job and that was the point where I decided to get a job in software development due to less stress & not feeling tired out when I got home. Eventually I applied once again and got the junior development role (no more insane phone calls, yaaaaaay). Really good environment to be working in too.
If you've got questions from effectively a half-newbie in software development please ask... I feel like there's lots more to mention but this post would have gotten really wordy.
(If you are still thinking about it, I hope I haven't put you off)