Hacker News new | past | comments | ask | show | jobs | submit login

Not just no time, but making even otherwise fun things mandatory with a volume that's overwhelming can suck the fun out of it and/or make it seem dull.



At one point I came to the realization that "reading is supposed to be fun". But it wasn't for me during school. At all. I hated every minute of it.

It made me wonder if children in the future will be forced to watch movies and play video games in their "literary education" and whether they will hate watching movies and playing games because of that.


Funnily enough I recently came across an online discussion asking why people used to like khan academy, when today “everyone hates it”. The poster was about 15, from memory, and apparently it was standard practice in their experience to use khan academy within classes or as assigned homework.


The thread seem to be missing even stronger case, that was true for me: making otherwise fun things mandatory, period. The volume doesn't matter; that a book was assigned as mandatory at all deterred me from reading it. Same with homework, which I was spectacularly good at avoiding.


Same here, absolutely. And the fact that that highly appraised literature seems to be mostly a fringey group of self-centered 'intellectuals' that think they're so important that their drivel must be spoon-fed to teenagers.


Yup. I initially thought that it would be a good idea for me to major in Computer Science. For some reason I majored in Finance after a few years of electrical engineering courses. I don't think I'd be programming today if I had to be force fed programming assignments.


Computer Science is actually kinda of lousy for teaching the things most programmers can do. To the point where if I was hiring, I'd rather hire someone who's less experienced and self-taught, but with some sort of "interesting" background, where "interesting" is almost anything that teach's critical thinking about abstract concepts and how to articulate ideas. Could be anything from a Journalism degree to someone who spent a decade working their way up the ranks of a machine shop from operator to foreman.

I can tell you the last time I had to write a singly-linked list implementation though. October 17th, Nineteen Ninety Never.


Well, a singly linked list is actually one of the most important data structure I've found :).

From there, one can modify it to implement tries.

And then one can understand trees, arborescences etc.

The rest is about algorithmic complexity (speed and size) which I never remember but that's easy to look it up.

It's true that someone who does simple frontend engineering (for example) might not need to know too much about that.

But for instance, it was just a couple weeks ago that I've realized a markov chain is just a bunch of linked lists (a DAG, Directed Acyclic Graph).

I've found Computer Science to be a very nice framework to think about the world.


Yes, but the most important lesson about data structures is to let someone smarter than me implement them, and just use the widely known, well documented, battled tested one.


I decided to jump on this bandwagon a while back and asked ChatGPT to do some tedious legwork for me with a bunch of geo-search primitives. I'll say the CS and general CS expertise came in very handy because boy this thing was wrong. Not obviously wrong but subtly and confidently wrong. :-)


Agreed. The things I look for most when hiring programmers (assuming they have a resume showing they have the skills) are attention to detail, empathy, and ability to communicate without feeling like I'm arguing all the time or pulling teeth.

Empathy tends to win here: you need to understand why people are using the software and how they are using it to make good decisions.

Communication tends to be better with people that have empathy.


> I can tell you the last time I had to write a singly-linked list implementation though. October 17th, Nineteen Ninety Never.

The point of writing (and working with) linked list implementations in a CS2 course is not because linked lists are something you'll have to implement yourself later (although there are certain areas of systems programming where return values of various system calls are, effectively, linked lists).

The point of working with LLs in CS2 is because they are an extremely simple data structure that you can inspect the entire implementation of; and their use of references/pointers gives practice with that concept before upgrading to the concepts of trees and (linked) graphs; and their fundamental structure and properties are so different from array-type list implementations that they provide a good first example of two different implementation strategies that can produce exactly the same output/result but with different space and time usage properties; and the parallel implementations are also a motivation for abstracting interface away from implementation and keeping data private and interface public.

So, that's why I teach linked lists in CS2. I try to be very up-front with my students about that; sorry to hear that your professors maybe weren't. I pretty solidly agree that a LinkedList per se is not particularly useful to a working software engineer; but that's not why we teach them.


Yes, I also find that physicists don't make the best auto mechanics. Mechanics never need to derive the equations of astronomical motion when repairing an engine block.

Why do you believe that Computer Science is less "critical thinking about abstract concepts and how to articulate ideas" than Journalism?


Having worked with CS people and having worked with journalists.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: