Ask HN: how do you learn to code right?
I might know Java the language in and out, might pass any test with the highest score, and my code might be readable, might have low bugs, might be well designed, but I have no clue.
I find it so hard to find places that can really tell me what is the "right" way to do it.
for example, I was raised to believe Java OOP has the answer to anything, so I used my share of AbstractBeanProxyFactoryClass and Spring framework and thought this is what I should learn from, then there was Seam which influenced JEE 6, and then I learned about RoR which changed my mind a "little", then Scala, Play, then I learned that all that I was taught is wrong (Singletons, OOP, BDUF, multithreading in Java) or right (depending who you ask)
There are so many places to teach you how to code, I know how to code, I can code anything, but how do I learn to code right? if learning from a successful framework like Spring is "bad" and JEE, an industry standard, is something I should "not" be using as an example, if so many smart, educated, and experienced people are doing it "wrong" how do I know how to do it right?
for example, even the most popular web technologies site w3schools got a lot of criticism, e.g. http://w3fools.com
how do you know the good from the bad? what is the consensus?
what is the best book, open source project, mentor, forum, blog, hackathon, tutorial, podcast, meetup or academic course that taught you the best principles that made you a good coder.
Where can I just look at some code for common tasks with a wide consensus of the "don't" version vs the "do" version?