Hacker News new | ask | show | jobs
by djrobstep 3035 days ago
Because education as a system isn't designed for actually learning, it's designed for perpetuating a meaningless and arbitrary game of credentialism to justify the socio-economic hierarchy.

And to babysit children so that their parents can spend more time participating in capitalism.

3 comments

I guess you're down-voted for both having a non-obvious opinion and phrasing it in a hostile way.

You are correct however, but it's more understanable than you make out.

Rather, the education system is designed to impart the skill of information recall -- which was essential to actually acquiring the target skills (ie., you needed to remember lots about chemistry before doing any). Remembering sentences about a skill has no relationship to being able to do it, only, that as you're learning to do it, those will be an aid.

That hasnt been true for less than 20 years, perhaps 10 with the prevalence of smart phones in 2007.

The whole system is set up to impart the skill of recall and grade according to your ability to recall. There is a implicit general awareness that you're actually not aquiring the target skills.

eg., after 5-7 years of french in the UK, no 18 year old can speak french. And so on for every subject.

The same is true all the way up until PhD. It's our historical model of what education was for: giving you the library up-front.

The skills were to be obtained in employment, and with any self-motivated practice.

Today that is painfully ridiculous, and there's really almost no value in it. Leaving the warehousing, grading and certifying functions of educational institutions their only apparent use.

PS. There's an argument to say education hasn't needed to be this way since the advent of public libraries, cheap books, which is still late 20th C. This is plausible enough too. Our template of education is still basically a mix of medieval and Victorian, with the presumption that books are hard to obtain or difficult to survey oneself.

note that primary/elementary schooling isnt set up this way: it is deliberately skilling. This makes it very effective and very important.

eg., after 5-7 years of french in the UK, no 18 year old can speak french. And so on for every subject. The same is true all the way up until PhD.

Those seem like a series of stridently unrelated and evidence-free statements.

Completely unsupported, in fact.

Of course no foreign part-timer can speak French like a native, but able students can certainly hold a basic conversation and read French to a reasonable level.

Language degrees include an exchange program which offers extended full immersion, so it's simply nonsense to say that a graduate in French won't be able to speak it.

But... the problem with CS is that it has no idea what it is. Most engineering degrees have well-formed requirements, which include a lot of math and domain-specific detail.

The sciences and math have a core curriculum which hasn't really changed all that much for fifty years or so now.

CS has... what? What's the basic skill set, what are the core requirements, and how are they recognised?

No one agrees. Employers mostly want "Minimum Viable Developers" who can crank out code using the Framework du Jour.

Academics do what academics do.

You can certainly make the case for any one specific curriculum, which will include a mix of theory and programming projects in various languages and environments.

But there's really no such thing as a definitive core CS skill set. For everyone who says "You should know C" someone else is going to say "Bad example - learn this teaching language instead."

And so it goes for the rest. Machine code? Compiler theory? DSP? It's all optional.

At the same time, CS has spent far too little time on the psychology of programming and system design. There's a fair amount of unicorn chasing, in the form of tidy concepts like type theory and side-effect free coding, but far too little research into designing languages and practices that are verifiably better at managing concurrency, handling versioning, and minimising avoidable bugs.

So the "learn theory vs learn by practice" question is a side issue, and can't be answered unless there are specific goals. For now, there's no such thing as a "qualified developer" in the sense that there are qualified (actually chartered) engineers.

Until there is, how can anyone decide which teaching approach is better when there's limited agreement about what needs to be taught?

School gives some a useful fiction, which is primary motivational. E.g. campus, classrooms, professors make you feel better about spending your time on some esoterica.

The other benefit is subject gate keeping. Departments at least in STEM, don't offer pointless classes.

An autodidact might not know what's valuable and might not always muster the energy to get through. They also might not have the integrity to give themselves a fair test.

So yeah, school is useful beyond addressing the scarcity of books.

School is useful insofar as its guiding and motivating, yes.

This is tutoring.

Everything else it does is a waste of time. That's where you'll find most of the actual time spent though, and it is certainly not an educational aim. The aim is to grade on recall. It is not to motivate, or guide.

>The aim is to grade on recall.

No. At best this means you had a terrible experience, and are generalizing in ignorance. At worst you are dug into a position and are willing to defend it without integrity (a sadly popular and often successful approach).

Many (most?) of my tests were open book and they were hard because they were puzzles requiring you to have absorbed the book to the extent that you could reason beyond it. The tests would probe our understanding of an idea by asserting a small change in the initial assumptions, and have us complete the derivation with that new assumption. Test questions were novel complications of the problems in the book.

That was my experience, and it was a good one. I'm sorry you didn't get that.

This is my current experience as well, open book open notes means be familiar enough with the concepts at play that when I ask you to do something fairly specific, you can reason out a series of commands/functions to get the job done.
I don't know why this is downvoted. I think that Bryan Caplan's book The Case against Education - Why the Education System Is a Waste of Time and Money (https://press.princeton.edu/titles/11225.html) makes a pretty strong argument to support the related points.
Most people on hacker news have (as far as I've noticed) very much enjoyed their university programs and will defend them quite vehemently. Often these programs were quite high quality, with lots of close contacts with TA's and professors.

Further, for people who did theoretical CS or math programs, it can feel quite frustrated working in a field with so many "self-learned" people and find that these are often ignorant of what they don't know.

Finally, many people here have Ph.D.'s or have worked in academia or teaching in various ways.

This all results in people being somewhat skeptical of advice to "don't do school".

On the flip side of this, many of the most capable and intelligent people I have worked with had no degree (or a non-CS one, e.g. fine art is particularly common), and when I try to think of times my algorithms, OS, networking, maths, or even data structures courses have been directly beneficial to my daily work, I have little to show.

Those all had knock-on effects and have indirectly made me more capable and confident in my analyses of performance or occasionally in troubleshooting, but it is very rare that I spend a day doing something deeply theoretical, and it is conversely very common to spend days hitting my head against walls with configuration, integration, or versioning of build/deploy/test components and dependencies. My CS theory is no good there, only methodical troubleshooting and asking for help in IRC are effective, and anyone can learn that by doing.

Yeah, I'd agree with this. You see it play out in interviewing when the "academics" ask questions that are quite useless in determining whether or not someone is qualified to build a web app.

It's as if interviewers are just stroking their own ego trying to recreate the relationships they encountered in academia only with the roles reversed.

Even for the people getting Phds in, say, mathematics? Or the undergrads studying mathematics en route to getting their Phd?
PhD is skilling in academic skills.

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".

The answer is that you've learned to learn.

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?

No, a BSc in physics should and can impart actual skills in physics.

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.

A BsC in Computer Science imparts actual skills in computer science. Which is not the same as software engineering. Someone with a BsC in physics couldn’t fill the role of a mechanical or electrical engineer (not least because those engineering professions are regulated).
Not sure what education consists only of lectures?

Also, you've misread me completely. When I talked about learning framework X I explicitly said that it was a waste and that education will give you something much better.

Learning to learn is an important skill.

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.

Ability to do a job and education are orthogonal skills. No, you don't necessarily learn how to do a job during your education but that is a skill quickly picked up (or never learned) after. As is the case for anyone not getting any education.

> Some WANT people that only know how to learn and the concept, so they can teach them how to do it the "X Company Way"

Those companies would do well in not hiring people with ambitions that have not had any education, correct. But part of getting an education is avoiding having such mindless jobs.

I have always felt that these takes highly overstate how difficult practical part is. It is significatly easier then it is made up to be.

Also, you should not expect even seniors to hit the ground runing, unless you hire on total complete match of both culture, code style and exact libraries being used. In which case you should not be surprised about there being lack of qualified applicants. Even experienced seniors need to learn every single time they change a job and thus also tech stack.

Moreover, many agile companies are basically organized to cater to unexperienced programmer.

There’s simply a huge range of PhD programs out there - I think that makes such a broad conclusion difficult to conclusively assert. Some concrete examples which spring to mind:

- 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.

I am describing education as a system. Plenty of real learning happens within it, but this is not what the system is optimized for or what it depends on.