4 ms·
Not only that, the CS stuff they teach now is woefully behind the times apart from what you get at a few high profile colleges. Kids coming straight out of coll
by Simon_ORourke 2y ago
Not only that, the CS stuff they teach now is woefully behind the times apart from what you get at a few high profile colleges. Kids coming straight out of college CS courses not knowing GitHub for instance.
Then again some colleges seem to think training folks for the workforce to somehow demean their efforts.
- masklinn 2y ago> Kids coming straight out of college CS courses not knowing GitHub for instance. That’s… not really surprising? Why would a CS course teach github? Hell I’d be surprised if a CS course taught git, that’s more of a CE subject, and not an amazing one either.
- zarathustreal 2y agoColleges focus on teaching things that require study to learn, things that you won’t really understand without intentionally analyzing them. Algorithms and data structures are great examples. An individual is never going to invent A* on the spot without an education, for example. Learning how to use the tools of the trade, e.g. OS, IDE, version control, etc, is not something you need to spend $50k/yr to have a Ph. D. Teach you, it’s something you pick up on your own. A lot of younger adults these days seem to think that college entitles you to a well-paying job, possibly due to the messaging from previous generation(s), but that is not (and never has been) the case.
- deleted 2y ago[deleted]
- thaumasiotes 2y ago> An individual is never going to invent A* on the spot without an education, for example. What? A* is a brute force solution. Here's a complete description of A*: A* is a breadth-first search in which we use weighted path length, rather than unweighted path length, to calculate tree depth. Tons of people will invent it on the spot. The algorithm is just "let's try everything, in order of desirability, until something works".
- zarathustreal 2y agoLook brother you’re not winning any points by implying that you’d be the guy to invent A* on the spot. Without formal education you’re almost certainly not even dealing with concepts like breadth-first search, trees, or nodes, so no, a ton of people will not be inventing it on the spot. Edit: most people don’t even think about recursion as a possibility until taught about it in a formal setting, and even then it’s typically a struggle to understand. Even using a queue, that’s a data structure that a person with a task to do isn’t likely to spend the time to invent on the spot.
- hnfong 2y agoI agree the vast majority of people aren't going to invent A* on the spot. But I don't understand your emphasis on "formal" education. I'm pretty sure a sufficiently smart high school kid interested in the subject could learn all these topics online in a couple months without enrolling in any college.
- thaumasiotes 2y ago> Without formal education you’re almost certainly not even dealing with concepts like breadth-first search, trees, or nodes, so no, a ton of people will not be inventing it on the spot. If you're not dealing with nodes, you won't be inventing A* on the spot because you don't have a problem to which it can be applied. But otherwise, it's literally a breadth-first search with the queue replaced by a priority queue. > Even using a queue, that’s a data structure that a person with a task to do isn’t likely to spend the time to invent on the spot. A to-do list is as simple as data structures get. A heap is complex, but if you want to insist on developing everything used by the algorithm from scratch, the person faced with this problem is likely to just use a sorted list. Try it out. Ask some people how they'd find the shortest path between two points through a weighted graph (use whatever terminology you want); see what they say.
- meragrin_ 2y agoWhat particular value is knowing GitHub? Git maybe, but GitHub is just too specific.
- 0x445442 2y agoYeah, just spitballing here but it seems like they could make DAG version control systems a unit of study in an algorithms course.
- loudmax 2y agoYes, students should learn the craft, not the tool. The craft here is understanding how to use a version control system, particularly when working on a team. In a practical sense, this usually means learning to use `git`, but it could also be Mercurial or something, and it certainly doesn't need to be a proprietary front-end.
- zarzavat 2y agoIn a country with free university tuition, I agree. In a country with paid tuition, universities need to provide education that provides the fastest path to paying off student debt, otherwise they are doing their customers a disservice in life. Far too many programmers exit from university without the skills that industry needs. If universities are places for free learning that's okay, but if you're paying $$$ for such a degree and been saddled with a mountain of debt then I think you've been robbed.
- hnfong 2y agoOne could flip your argument on its head and argue that, in countries with free (or subsidized) university tuition, because taxpayers are paying for the tuition, universities should teach things that are demonstrably valuable to provide graduates with a fast path to becoming a productive ($) person in the workforce. If somebody wants to learn "useless" things, they can do so with their own money. (Not that I disagree with your general thesis though. I just think it applies to free uni tuitions as well...)
- probably_wrong 2y agoIf you think CS is bad just wait until you see how bad Software Engineering programs are. Fresh graduates cannot explain the halting problem, the Church–Turing thesis, the maximum flow problem... some can't even formally demonstrate that a function's precondition implies its post-conditions!
- la_fayette 2y agoFine, ask any software engineer employed in a sillicon valley startup or any fortune 500 company if they ever required to explain or use these concepts...
- probably_wrong 2y agoI don't think it's such a crazy idea to suggest that if someone wants to get a highly-paid job as a Software Engineer then perhaps they should get a Software Engineer degree from the Software Engineering department. Or put differently: ask any computer science professor employed at a University if they ever required to explain or use CI/CD, or ask Geoffrey Hinton how different his work on backpropagation algorithms would have been if he had had AWS.
- wakawaka28 2y agoThe point of teaching cool theory to undergrads is not to enable them to explain it. Professors study for PhDs to prepare to explain it. The point of teaching theory to undergrads is so that they are aware of the implications of the theories, and so they don't waste time on projects that are obviously doomed to fail.
- nsagent 2y agoI frequently recommend MIT's missing semester to students [1]. I agree it sucks they don't teach this material, though to be fair they also neglected it when I was in undergrad a quarter century ago. I remember learning it on my own because I wanted to become better. That autodidact proclivity has served me well over the years. [1]: https://missing.csail.mit.edu/ https://missing.csail.mit.edu/
- ghaff 2y agoYou could probably argue that there would be a benefit to a semester or two of basic training/bootcamp for theory-heavy engineering curricula (not just CS) especially for students who are going in essentially cold. Probably CS is a particularly extreme example in that there's no formal expectation that an incoming freshman has done any real programming. Though even in something like mechanical engineering it's not like students have worked on cars or been in a machine shop.
- kcplate 2y agoIt’s been that way forever. In CS most colleges have always been about 2 beats behind current industry.
- wakawaka28 2y agoAre you kidding? Practical training isn't exclusively the domain of "a few high profile colleges." In fact, the more high profile your college, the less likely it is that you'll get practical training. I refuse to believe that there are many schools teaching CS that don't even cover the basics like how to commit something to git. You also make it sound like Github (which is just a commercial Git hosting service) is advanced "CS stuff" that you can't grasp without having this knowledge handed to you at an elite school. Most professionals and students of CS literally learn most or all of it in their spare time.