None of these require you to take a formal course. Get your hand on some good online tutorials or an ebook and then read, practice, repeat. You need to build some interest and continuously challenge yourself into building something that may seem tough. Keep writing new software and scripts - mostly those that intrigue you. Want to organize your photos online? Build one for it. Forget the idea of reinventing the wheel at this stage and infact, you may also look at other softwares source code and learn from them; they're are a great help at the learning stage. Though, I recommend learning through an ebook.