In my case I wanted to text flight information to the family when one of us was traveling.
We were saving our flights in a google spreadsheet.
I hadn't coded anything beyond tutorials at this point, and had no real understanding of, well, anything.
It took me 6 months to write a script that would take data from the Google Sheet and use a free text api to send an SMS to 6 numbers.
I learned:
- APIs
- cron
- python scripting
- deploying to a server
Mind you, everything I learned, I've now learned a better way for. But at the time it was invaluable for confidence and building interest.
Good luck!
Pretty much exactly like what gets you into cooking, making music, gardening, building stuff around the house. You get in there, start doing it, fall flat the few few times of course... then start getting "less bad"...
... until one day, to your utter astonishment, people you never thought you could consider as equals start telling you you're actually pretty good. More specifically clients show their appreciation for your work (with money), and managers start letting you know how happy they are that they've finally found someone who gives a damn and has some idea as to how to actually do things right.
There are some crucial differences between software development and the personal / creative pursuits I mentioned, of course. One is that yes, the engineering (and math) aspects of software development do matter (a lot) and you cannot just learn these through sheer grit - you have to hit the books. Another (completely orthogonal) is that matter of finding clients (or someone to hire you) - for which working on personal / pro-bono projects (as others have mentioned here).
But the point I'm trying to make is -- aside from strategy, tactics (and a non-trivial amount of time with your nose buried in the books) -- what ultimately gets you "over the hump" is just getting in there and doing it.
aka JFDI.
Building small little personal projects just for fun. Taking an interest and trying to manifest it in the form of software.
You put something at stake by trying to make this little toy project work so every time you face a problem you're motivated to figure it out just so you can get to the next step. All the while you're learning from experience. This is a lot like how professional software writing is. Learning in real time from experience.
Find a project that is similar to a tutorial you've done. At first you may not stray far but with enough time you'll be combining concepts and creating things of your own.