I don&#x27;t have formal CS knowledge so everything I say might be wrong.<p>I came to realise that you only gain <i>grounding</i> by working with a stack&#x2F;framework&#x2F;set-of-tools every day. Everything else (reading a book, etc.) is just scratching the surface.<p>Since you can&#x27;t know everything about everything, I&#x27;d say that the best way to learn is to build something. But it&#x27;s one thing to build your own CRUD test-app to learn Rails and another thing to design an app that will need to stash 20 million entries per day in a DB. The choice of the DB becomes, suddenly, a complex matter. Same if you need to handle 100.000 req&#x2F;s ... You can&#x27;t really learn these things on your own.<p>The best thing IMHO to get good grounding is to <i>never</i> stop learning.