Undergrad and most masters programs are still just going for information recall.
This is why PhDs are specific, intensive, daily, guided, etc.These are all the characteristics of skill aquistion.
Compare, say, with paino tuition. All skill acquisition is basically a form of apprentiship. PhDs are apprentice academics.
Ask yourself the simple question: after finishing this education what skillful activities can I actually do?
After primary education: reading, writing, remembering, etc. After secondary: basically the same. After tertiary: basically the same. After PhD: run a particular kind of experiment, analysis, etc. After 10 years in a programming team: solve professional programming problems. After 10 years with a piano tutor: play the piano.
The question "what can I do?" seems always answered with: not much. This should be quite shocking, and today it is -- really, that is the correct answer. Your BSc amounts to "not much".
You got some breath of knowledge, not everything is relevant but it helps putting things in perspective. This is crucial.
But the most important thing is that you've learned how to quickly adapt and pick up new things. This is what is valuable and in combination with a broad understanding is very much worth the education. It is okay if the understanding is shallow or even obsolete, point is you have the tools to recognize what you need to learn and you've learned how to quickly brush up on the relevant parts necessary to solve the problem at hand.
What kind of answer did you expect? My BSc amounted to me being very proficient in framework X? That would have been a waste of time and that is also what often is the alternative to an education.
People who self-learn are often very good at a specific tasks but have vast areas which for all intents and purposes is magic.
Maybe lack of education is why everything has to be made in javascript today?
It would require the whole process to be lead by a tutor in small groups. And each day you would work through experiments, mathematics related to them, writing reports about them. You would read books together, and work through their practice exercises together.
You would be set to individual practice as often as a piano student is. And tutored as often as a piano student is, or much more often, given the compressed time.
For computing, you would need daily tutored high-skill computer use. You need tutored programming. Your time would be mostly in projects, with seminars where you read through the theoretical things together. The tutor would be guiding your progress individually, dealing with your issues and showing you the skill of programming, etc.
The "lecture" is a spoken textbook delivered to hundreds of students. It isnt giving you any skills. It's not designed to do that. Mistaking it for skill acquisition, which is what most people do, is pathological.
> Maybe lack of education...
You've confused the worst excess of the current educational system (knowledge about a framework!) as what I am arguing for.
That is what we have now.
Skills are modes of thought, imagination, creativity, attention, deliberation, etc. They require a lot of training in each. To be a programmer is to think, imagine, attend to, and deliberate differently.
A framework has nothing to do with it. This is confusing "skills" with whoknowswhat, recalling how to solve a problem.
In your terms, all of education is at the moment, learning the API of a framework.
What it should be is how to think and act like a programmer.
All of education is learning the pattern of notes in beethoven's fifth.
What is should be is how to play the piano, and compose for yourself.
But so is the ability to do a job.
Some companies have the resources available to take a fresh grad that knows theory, concepts, and how to learn, and then get them up to speed on how to actually do the job they've been hired for. Some WANT people that only know how to learn and the concepts, so they can teach them how to do it the "X Company Way".
But a whole lot don't. A whole lot of companies need to hire people that can slot into a position and hit the ground running. A whole lot of companies need people that can deliver on the job description.
A strong Computer Science education will probably make you a significantly better programmer in the long run, but if you can't get a job or keep one because you aren't prepared to step in and do the job, it doesn't really matter.
- A PhD in Performance from the University of Indiana - A PhD in any technical field, from say, MIT - A PhD in comparative literature from Yale - A PhD in clinical psychology (which could be therapy-focused or research-focused), further subdividing it) from UC Berkeley - A PhD in EE/CS from Berkeley.
I have no doubt all of those PhDs will be able to do a lot. I have no doubt that some, but not all, of what said PhDs can do will be valued by employers. And that is why academia and scholarship are distinct from business and industry - they have different, but sometimes overlapping, aims. And a PhD is explicitly training to be a scholar/researcher - it’s not a professional degree, though it sometimes has value in a professional environment.