Having a project that I personally cared about.<p>In my case I wanted to text flight information to the family when one of us was traveling.<p>We were saving our flights in a google spreadsheet.<p>I hadn't coded anything beyond tutorials at this point, and had no real understanding of, well, anything.<p>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.<p>I learned:<p>- APIs<p>- cron<p>- python scripting<p>- deploying to a server<p>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.<p>Good luck!
It sounds kind hokey to say it, but "what gets you into developing software is... developing software".<p>Pretty much exactly like what gets you into cooking, making music, gardening, building stuff around the house. You get in there, start <i>doing it</i>, fall flat the few few times of course... then start getting "less bad"...<p>... 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 <i>clients</i> 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 <i>and</i> has some idea as to how to actually do things right.<p>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).<p>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.<p>aka JFDI.
I learned that if I follow the tutorial exactly I don’t care as much about what I am doing. Instead, I’ll swap out file names and functionality to something I’m more interested in working on. The small gap between my project and the tutorial means I have to really think about what I’m doing at each step, and at some point I’ll be able to keep progressing without the tutorial.
Pick some simple project and just do it. For me it was a tick-tack-toe on a browser. Building that during a weekend taught me more than all the courses I had studied before that. I started learning JS 5 years ago and have been working as a software developer 3 years now.
I'm a self-taught developer and went from 1 Lynda course to a career in software. I owe most of my learning to tinkering.<p>Building small little personal projects just for fun. Taking an interest and trying to manifest it in the form of software.<p>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.
I did the MDN Django tutorial and then modified it to create a personal blog. From there I wrote some simple scripts at work to monitor machines. I then combined them into a Django app.<p>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.