Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This misses the mark. CS classes and degrees are akin to reading books about swinging hammers rather than just swinging the hammer.


A lot of people think CS is "learning how to program in xyz."

In fact programming is just a tool used to implement CS ideas and demonstrate their application in the real world.

In my degree we spent maybe the first 6 weeks on actual learnjng-to-program (in turbo pascal.) Then another later on in Scheme. In 3nd year we did C, I don't recall what instruction we had there - maybe a week? Then 2 weeks in 3rd year where we did 10 different languages in 10 days.

Language was considered a distraction from the science part.

No, it's not reading books about swinging hammers. We were learning about physical forces on wood, and by wood, and other construction materials. We learned the difference between a spice rack, the drawer, and the 40-floor building to house the spice rack.

Sure we wielded the hammer like Thor. But the focus was on the hammered not the hammer.


As someone who hasn't learnt CS -the good way-

I'd wager that I'm interested in a niche of CS, mostly the internet, and websites, and apps and what not. So when I tried to learn C and code unix tools I just felt miserable tbh.

Science !== building

I agree langauge and syntax are just distractions from the -building- part.

In software engineering there's infinte hammers and you can build new hammers out of old hammers btw


During my PhD (not in CS) I met a CS PhD who was working on parallel algorithms. At the time I was struggling with large-scale simulations and HPC stuff so I got very interested. I asked him what programming languages he used.

"Oh I don't know how to code. We don't write programs in CS Theory."


I suspect that they could write code, but I don't think this is so outrageous.


This is honestly part of the reason I abhor statements around "AI/ML will make software developers irrelevant in [insert catchy timeframe]"; the complexity in many (if not most) systems is not the coding. The interaction, the boundaries between systems, the agreements between them, and the subtle nuances among; this is where Things Get Hard.

Then there are the requirements gathering that lead us down this road. And the stakeholders that forgot important details. And that one team that has a hard production dependendency on an obscure DB table you only keep around because it simplifies a join somewhere.

Teach students of CS the latter, and they have a much greater opportunity to be successful.


If LLMs keep improving at the current rate and get to the point where they can reduce hallucinating to a reasonable level, I don't see why they couldn't take on the challenge of abstract system architecture. It's still a problem that can be stated in natural language, which they keep getting better at 'understanding' (at least in the sense of giving more coherent answers).


This is a fantastic metaphor. Thanks for this - I’m going to use it myself.


> CS classes and degrees are akin to reading books about swinging hammers rather than just swinging the hammer.

Computer Science is akin to learning how to forge a hammer, what materials to use in said hammer, and then determining what size and shape is applicable for a given task.

Sometimes the specified hammer is made. Most times it is not.

"Swinging hammers" is rarely, if ever, considered.


Life pro tip...don't enroll in a university where your CS degree is akin to reading books about swinging hammers rather than actual hammering.


I think the "hammer" metaphor is insufficient to cover why one would get a degree or not. I learned a number of fascinating things about computers in University that I would have never gotten on the job.


Couldn't you have learnt them on your own thanks to your own curiosity and outside of a job setting?


Sure, but it's not necessarily inherent to the job, so the level of effort needed is much higher.


This sort of fits with your analogy. When I did my Manufacturing Engineering degree all I was interested in was CNC, CAD/CAM and rapid prototyping tools that existed before modern 3D printing.

After a career completely unrelated to manufacturing I've come back to basic metalwork as a hobby. What interests me is working with non-computer driven tools like lathes and mills.

What really surprises me is how much can be achieved just with hand tools like saws, files and chisels. I have books on filing as a way to shape metal by hand.

This is worth knowing because sometimes it's sometimes the quickest way get something done. Especially, when the first part of an alternative process would be "order tool X from the internet".

So it goes with solving problems with software. It's sometimes quicker to implement something I learnt on my second degree in CS than to spend time searching to see if a well supported library covers exactly what's needed for a very specific, temporary use-case.


Depends on the university. My experience was that you spent more time then not having to swing, often in ways that would be applicable to actual carpeting rather than building wooden Monads nobody wants to use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: