The questioner asked, "What should be my next step to becoming a better programmer?" In response, a dozen or more advisors suggested learning various technical skills. Most of the advice was good, but misdirected in a typical fashion, so I offered the following thoughts and references:
If you’re like most programmers, you’re already too involved in technical details and your ability to deal with other people is less than adequate. Studies of programmers at work show that typical programmers spend 70% of the time dealing with other people. (Agile programmers may spend even more.) [see, The Psychology of Computer Programming]
So, if you want to improve, perhaps you should devote some time to developing your People Skills. At the very least, you'll learn how to solve "people problems" more efficiently, thus leaving you more time, in a better mood, to do the technical work of programming.