| why not study both? or rather, encourage people to balance their diet according to their specific situation. learning two types of tools sharpens them both. in the case of design/implementation, it provides both short-term and long-term utility and enjoyment. for some people, that means learning an actual database and building something rather than consuming more information. for other people, that means learning more computer science concepts and meta knowledge/skills. cynically, i agree that fundamentals seem to be increasingly on shorter and shorter supply... but i suspect it's a wide world, and that what we're actually seeing is a WIIIIIIIDE spectrum of jobs (and interests!) all called "Software Engineer". besides, people can think for themselves -- that's the point of learning fundamentals (meta-concepts and thinking skills). the exact diet someone needs depends on where they are at currently, both technically and financially, and where they want to be. PS - the main article is about apprenticeships, which serve a way more important function than learning: getting a foot into the job market. for many engineers without work experience, they're not even getting a chance to interview without first getting a network and proven track record. |
Because no need. Technologies come and go all the time. They can be learned on the job anyway. With the right mental models that we developed by studying fundamentals, we get to pick up specific technologies quickly too. Studying in our spare time is an investment, so we need to treat our time as the most precious resource.