6 ms·
That's the reason why CS classes and degrees exist. Or at least it should be. No company will pay you for several years just to learn complexity theory, write
by GuB-42 3y ago
That's the reason why CS classes and degrees exist. Or at least it should be.
No company will pay you for several years just to learn complexity theory, write sorting algorithms, study schedulers, rewrite UNIX tools, understand hardware architectures, etc... They want you to be productive right away, and the shortest path is just to follow recipes with the latest framework.
That's the point of education, universities teach you what you won't learn on the job. So that when you finally get to work, you will have a better understanding of what you are doing.
- VoodooJuJu 3y agoThis misses the mark. CS classes and degrees are akin to reading books about swinging hammers rather than just swinging the hammer.
- bruce511 3y agoA 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.
- josephg 3y agoThis is a fantastic metaphor. Thanks for this - I’m going to use it myself.
- tough 3y agoAs 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
- xmcqdpt2 3y agoDuring 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."
- sealeck 3y agoI suspect that they could write code, but I don't think this is so outrageous.
- NBJack 3y agoThis 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.
- c_crank 3y agoIf 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).
- deleted 3y ago[deleted]
- fma 3y agoLife pro tip...don't enroll in a university where your CS degree is akin to reading books about swinging hammers rather than actual hammering.
- adamredwoods 3y agoI 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.
- tough 3y agoCouldn't you have learnt them on your own thanks to your own curiosity and outside of a job setting?
- adamredwoods 3y agoSure, but it's not necessarily inherent to the job, so the level of effort needed is much higher.
- AdieuToLogic 3y ago> 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.
- iamapart 3y ago[dead]
- Lio 3y agoThis 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.
- c_crank 3y agoDepends 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.
- j45 3y agoThings like Javascriptin30.com (no affiliation) are plenty to learn how to code vanilla before learning why (or when) things like libraries and then frameworks may have value.
- bombolo 3y agoI see a lot of people online advising against taking CS degrees (in europe, where it's not economically impossible to study). They argue that bootcamps and quick courses are enough, or that chatgpt exists now so programming is a dead profession. I disagree, I think I've had a lot of use from having had education… but I might be biased. But I've had to explain things occasionally.
- bruce511 3y agoThe carpenter doesn't need a degree. The architect and structural engineer do. If you plan to be a programmer all your life, and a journey-man one at that, then feel free to learn-programming-in-21-days. If you're planning a career in software, then I think understanding fundamentals (database normalisation, the Order of a solution, the ideas of Coupling and Uncoupling, memory usage versus performance, the impact of CPU cache, multi-threading safely, operating system task priorities, compilers, and a good few more things that underpin the science behind building software, then a degree is helpful. Not because of the books, you can get those at home, but because of the structure (ie the path through the carriculim) the mentorship from professors, TAs and so on, and most of all the exposure to your peers - the wonder of collectively pushing each other to explore beyond the curriculum, beyond just this week's assignment. Most of all it teaches intellectual curiosity- that spark some people have to see something in code they don't recognise, understand the novelty of it, and go and find out about it. It's easy to keep up because you have the structural foundations to absorb new things all the time. ChatGPT can't do the things I do, and even calling it ChatGPT is a shallow understanding of why not. Broadly speaking LLMs are a tool I can use to learn new things, which is great, it knows how to weild many kinds of hammer. But it doesn't understand the nuance and context of building a whole building. One which has never been built before. Precisely because LLMs are good at regurgitating the past, but understand literally nothing, they only replace programmers who are good at regurgitating the past (writing code) but understand very little about what that code -means- (as distinct from what it -does-) Of course each College is different, and YMMV, but if you gave the time, and resources, and opportunity to do a formal degree, then I think it worth it in the long run. But like most things in life you get out what you put in. The curriculum is just the hint of a starting point to what you learn there, don't go to "be taught", go to suck the marrow from each moment, to actively "learn" from the challenges you set yourself.
- hutzlibu 3y ago"No company will pay you for several years just to learn" No, they never did. But to stay with the hammer metapher - young carpenters would indeed learn on the job, how to use a hammer and all the other tools. But they would not get the same pay (or even no pay and just food and housing). In general it used to be way more common, that companies invested in peoples learning, expecting payoff much later. But with high mobility nowdays, they seldom think it is worth it anymore. You teach and then they thank you and move on.
- monsieurbanana 3y ago> But with high mobility nowdays, they seldom think it is worth it anymore. You teach and then they thank you and move on. You mean you tell them you will teach them, require them to have the skills to begin with anyways, work them like any other employee but with a fraction of the cost promising them full employment at the end, and at the end thank them and tell them to move on? (keeping the first person tone of your post)
- xapata 3y agoFirst person: I, me, us Second person: You That's usually called perspective, not tone.
- hutzlibu 3y agoYes, something like that. On the other hand young workers usualy greatly overestimate their impact on getting things done and the work required to check their work. (I know I was like that)
- monsieurbanana 3y agoYeah... That's not wrong. On the other hand, those kind of "fake" internships are rampant here in France, specially with smaller companies or startups. From personal experience they don't bother checking their work. And how could they, the other employees are interns too.
- Asmod4n 3y agoIn germany you are expected to go on a three year apprenticeship when you want to do a job which needs practical skills. You work part time at a company and go part time to school, combined thats between 35 and 40 hours a week. You don't get paid that much during that time, but if someone pays for your room it's enough. Without going that route you literally don't get a full paid job.
- Lio 3y agoI agree but it's not that you won't need these things but that you don't know when or if you'll need them. For a professional MBA that's taken over a department, it's not so much that they won't pay you to learn what's not definitely part of the job but that they can get away without doing so. It appear superficially to be the low risk option. It's the same reason that manufacturing gets outsourced instead of invested in as a core competency that sets you apart from the competition. To a lot of people anything that makes the numbers go in the right direction is what's important. They'll even pretend that the sole fiduciary duty is to raise short-term profits at the expense of long term value. When so many of the world's largest corps are now hollowed out marketing operations reselling generic products, it's hard to argue against using the latest trending framework.
- sfn42 3y agoMan that is such a good point about outsourcing manufacturing. Damn.