How to become a better programmer?
yannis: Before making any suggestions I would ask what is the definition of a better programmer?   Since this can be a bit subjective I will suggest that you strive to become an 'expert programmer'. It is difficult to even define what an 'expert' is, but normally one would recognize an expert as someone that effortlessly accomplishes a task. Some characteristics of experts from psychological studies are:1. Experts such as chess grandmasters rely on a vast store of knowledge of game positions. They tend to organize this information in chunks, which can easily be retrieved from long-term memory. The same is true for other experts from sports to mathematics.2. They also typically engage in years of effortful study, continually tackling challenges that lie just beyond their competenceIn my opinion you need to accumulate both, ie, expand your store of knowledge, as well as continually striving to handle situations where the task in hand is beyond your ability.At this point in your  experience my personal recommendation is to actually focus on number 2, for example refactor  some PHP code into OOP, to give you another angle of programming as well as tackle JavaScript for the same reason.The 10-year rule states that it takes approximately a decade of heavy labor to master any field. As one that has gone through a couple of 10 years:) the best advise I can give is 'learn to program' rather than learn 'to-days-popular-framework-or-language'. Think about it as similar to writing a book, knowing English will not turn you into an author. Practice will as well as motivation.