Qualms With Modern Education
By modern education, I mean the typical high school and college education system. In particular, I am talking about more fast paced industries, such as software engineering (which is my bread and butter). College will probably do you well if you are in an industry that is well established, and has existed for more then 100 years (which is not the case with computer science [1]).
With that in mind, lets go over some of the issues I have with college, high school, and the state of learning as a whole.
Expensive
College is not free [2]. Bootcamps, depending on the one you go to, will charge too much, or hardly give you enough to get a job (they are really hit or miss. Do your research on a boot camp before you apply).
The true irony about computer science is that there is an almost infinite amount of free learning material, all you need to do is go to the right place.
Out of Date
Many colleges are slow to update course material, which quickly goes out of date. That is why languages like C, C++, and Java are so commonly taught in school, because the material doesn't need to change very often.
Languages like JavaScript, TypeScript, and Python, have ecosystems that are moving at a million miles an hour, and no colleges can keep up with the shear breadth of changes to the core language, the "best practices", and so on.
You also won't see the bleeding edge languages and technologies in most colleges, things like Rust, Docker, Golang, Git, etc. Technologies like Docker and Git are vital to most developers, yet it is not taught in most colleges (that I have seen at least).
No Clear Path Forward
This primarily applies to high schools, but colleges as well. People getting into computer science might not know exactly what they are looking for, or don't know what to do, and as a result, end up taking courses that don't align with what they actually want to study. Even for people who already know what they want, they can't just take the classes they want.
For people going the self taught route, it is even harder, because there is a firehouse of information available to you at all times. Having a mentor is probably the single best way to learn quickly.
And that brings me to my final point:
Not Specialized Enough
An auditorium of people is a lot different then a one on one with a mentor or a tutor. Too often people are to afraid to ask questions as they occur, and would rather confer with their colleagues then with the teacher (which is totally understandable). In this post COVID era, online school is becoming even more popular, including asynchronous courses. For me, being able to rewind, speed up, pause, and slow down a pre-recorded lecture is a life saver, and makes learning much more enjoyable.
Fin
I won't end on a bad note, so I will offer some methods for fixing the situation:
Apps and services catered to a specific field or study: Apps like Duolingo make it easy to learn at your own pace. It makes learning fun as well, which is really good for people who need motivation to keep at it.
Apprenticeships and internships: Real world experience will always stand out more then a college degree IMHO. Obviously there is some wiggle room in this, but someone who has a track record of working as a programmer, doing a job, learning from others with more experience as them, that is where the learning happens.
[1]: One could argue that computer science has been around for a lot longer, if you take into account theoretical research, and/or mechanical computers. For most people, the term "computer science" involves programming, writing code, and doing your work at a desk (or something that resembles a desk).
[2]: At the college I attended (briefly), I could test out of a class, but I would not get the credit for it. And, I had to get 90 credits to get the bachelors degree, meaning there was a fixed amount of money I needed to pay to get the degree. This only incentivizes you to take easier classes, since the only upside is that you learn more, at the cost of more stress.