There are a few golden rules on how to become a proficient coder. But, it varies a lot from person to person, mainly depending on his/her background. Which has got to do with what a person knows already.
If you ask me knowing all the subjects (specially software subjects) of Computer Science is like your golden standard. Typical Engg. stuff. Invincible, stable, reliable, always there to guide you. Programming experience, Debugging experience is also vital. This you already have a little.
I did my major from Delhi College of Engg., Delhi University. '1999.
The more you study diverse related areas of Computer Engg. (focus more on software engg.), the better. Now that might be a little tricky at your standpoint.
There is nothing like good amazing books. They are your greatest asset. Memorizing is something you need least. You might have to refer tons of articles, docs etc. even after a lot of memorizing.
Taste is also vital, style, likings. Design Patterns, Architecture Patterns.
It’s not simple, straight-forward, trivial. Ideally it takes years to master all of various items I have talked about from beginning. I have spent 18. Out of which 12 yrs. are in Software Development.