4 ms·
I'll concede that most CS curricula are so far removed from practical development (intentionally) that it is not an immediate indicator of performance, but to s
by brettgriffin 1y ago
I'll concede that most CS curricula are so far removed from practical development (intentionally) that it is not an immediate indicator of performance, but to suggest that 85% of CS grads can't figure out a problem in unfamiliar territory seems ridiculous.
If there is a virtue to CS degrees, it's that most engineering tracks require an immense amount of coursework in hard sciences that require a high intellectual aptitude to complete.
I'm really struggling to believe that a majority of people can work through that material and then can't do the type of work that most developers do. And in the most difficult realms of development, I think you'd find a majority of the developers have advanced degrees in CS.
I think having a deep interest in software is more likely to yield traits you're describing (and described in the article). Some people who have that didn't study CS. A lot did.
- tesrx 1y agoI'm just curious: if you swap the arbitrary 85% out for a more generalized statement, would you agree or disagree with the OP's comment?
- hirvi74 1y agoI am not certain having a degree vs. being self-taught is the deciding factor in what is likely attributable to personality and motivational differences.
- austin-cheney 1y agoMost of my big corporate world experience comprises CRUD apps like these tasks: * query a database * run a web server, typically spring boot or a C# equivalent * run some ridiculously large browser framework like Angular or React Typically the end goal was just put text on screen and you need an entire army of developers to do it. Any suggestions that deviate from common patterns were met with hostility by other developers and ignored by product owners. The name of the game was hiring and firing. Almost no corporate developers were doing anything that could be called engineering. Most of the people that were interested in actual engineering were writing open source outside of work.
- kazinator 1y agoCS curricula being far removed from practical development implies that the coworkers you are sorrounded with who *are able to do practical development are all in fact self taught, whether they have CS degrees or not.
- sfn42 1y agoUniversity teaches theory, practice is necessary for a well rounded engineer. Most students only do what's required. Good students do more than what's required.
- ludicrousdispla 1y agoYeah, I think that most CS graduates that are good at coding are also self-taught (and probably started in grade school.)
- rachofsunshine 1y agoThe thing you're missing here is that these two statements are not contradictory: -- CS grads are, on average, better programmers than non-CS-grads. -- The average CS grad is not a very good programmer. My company does a standardized interview with a straightforward coding problem that is only a few steps above fizzbuzz level. In just the past few weeks, we've had candidates who: -- Had to look up basic syntax (defining a function) in the language they chose. -- Duplicated a reference a few minutes in and could not figure out the problem in the remaining twenty minutes. -- Couldn't extract the 2nd element of an array of five elements. These same candidates, on other portions of the interview: -- Knew nothing about common data structures (something that at the very least a CS degree should help with) -- Couldn't handle an intermediate SQL query fix involving a simple normalized schema -- Couldn't tell you anything about internals or security, and -- Didn't seem able to describe how they'd build a CRUD app. All of these candidates had CS degrees from respectable-to-good universities. Anecdotes are not data, but high-level data says the same thing. Our coding problem is very similar to the practice problem shown at [1] (though slightly harder). It doesn't require any tricky lateral thinking, deep language features, esoteric algorithms, dynamic programming, weird race conditions, or any of the other usual trivia BS - it's as straightforward a task as we could design. And if you look at how much progress people make (see [2]), it's not much. The vast majority of people we interview have CS degrees, and two-thirds of them still get ~nowhere. Meanwhile, the best interview we've done this month was with a guy who has been the sole developer for an ag business in rural Arkansas for the past decade. He has no degree and his previous two jobs were a sandwich shop and running a website for his church. (Specific details slightly fudged for the sake of candidate anonymity, but not in a way that materially affects the point.) [1] https://www.otherbranch.com/shared/practice-coding-problem https://www.otherbranch.com/shared/practice-coding-problem [2] https://ibb.co/CpznhK8m https://ibb.co/CpznhK8m
- hirvi74 1y agoI have a degree in computer science, and I have been a professional full-stack developer for almost 9 years. I could probably not solve the problem in your first link in 25 minutes. I know exactly how I would solve it, conceptually and what data structures I would use, but I am not sure I'd get the adjacent mines part correct on the first attempt. Then again, this is nothing like the type of problems I work on a daily basis.
- hirvi74 1y ago> "If there is a virtue to CS degrees, it's that most engineering tracks require an immense amount of coursework in hard sciences that require a high intellectual aptitude to complete." I do not disagree with you at heart, but I think there are so many pervasive issues with modern education that I am not certain a high level of intellectual aptitude is necessary anymore. Hell, I somehow have a computer science degree which I honestly do not deserve considering how little I understood (and still do not understand). Then again, I didn't go to some prestigious university for the astute either, so take it for what it is worth. Nevertheless, I feel like I learned a lot of information and was exposed to many topics at a surface level of understanding. However, there is little I learned that I couldn't have learned by just reading the textbook. In fact, most of my assignments and tests came directly from textbook or were similar enough. I was trying to brush up on data structures and algorithms last year. Not because I was looking for a job, but because I always wished I understood DS&A on a more fundamental/mathematical level. I like details and understanding the 'why' or 'how' more than the 'what.' I remember watching lectures of a professor on Youtube (Dr. Skiena at Stony Brook University). All I could think was how there is likely a slim chance in Hell that I would have made it through his class nor Stony Brook. Overall, I think most of the difference is down to desire and motivation. Many of my fellow students at the time, cared little about computer science or programming. Most did just enough to get the piece of paper so they could start making 'real money' as they often would say. If one is capable enough to teach themselves how to program, then I do not doubt those individuals are capable of learning computer science to a level equivalent to me. Sure, they might not obtain a PhD level of understanding, but then again, the vast majority of bachelor degrees do not either.
- JKCalhoun 1y ago> Hell, I somehow have a computer science degree which I honestly do not deserve considering how little I understood (and still do not understand). I still take on faith that a kernel is some black box, some thing that just … works. It seems to manage memory, threads to some degree, the file system…?
- MangoToupe 1y agoThe intellectual aptitude to get high marks is wildly different than the sort of type to solve problems.
- jdjnofk738373 1y ago> If there is a virtue to CS degrees, it's that most engineering tracks require an immense amount of coursework in hard sciences that require a high intellectual aptitude to complete. > I'm really struggling to believe that a majority of people can work through that material and then can't do the type of work that most developers do. In practice, the way maths and sciences are taught to CS students is without demand for any ingenuity. Most of the time, students don’t prove theorems, they only perform rote calculations according to an algorithm. The few proofs that do show up are things like a few very basic proofs by induction, where students are basically given the algorithm how to solve such a problem beforehand. Statistics, same story – fit a problem to one of the template solutions you were given earlier. Physics, same story. That’s what for me explains why in my experience maths graduates have been better programmers than CS graduates (as work colleagues). And why some people in this industry hold it as a badge of honour that they can’t invert a binary tree.