7 ms·
Computer Science departments have always said that they do not prepare students for work in IT [0]. As with most development team leaders, I have interviewed a
by marcus_holmes 5y ago
Computer Science departments have always said that they do not prepare students for work in IT [0].
As with most development team leaders, I have interviewed and employed CS graduates who are woefully unprepared for the reality of a job writing production-level code.
I don't see this as a condemnation of education per se. More that the common concept of education (that it prepares young people for their careers) is completely misaligned with academia's concept of education (that it trains young people in how to think, and how to conduct research).
[0] attribution for this is interesting and varied: https://quoteinvestigator.com/2021/04/02/computer-science/ https://quoteinvestigator.com/2021/04/02/computer-science/
- PathOfEclipse 5y agoThis might vary by school, but my undergraduate university had, in my opinion, a great computer science program which attracted many big-name companies to job fairs. There was definitely a focus on teaching practical and relevant things using relevant technologies. For those interested in research, there were also undergraduate research opportunities. IMO this is what a university education should look like for most people in order for it to stay relevant. There are otherwise far more too many people attending universities relative to the demand for researchers.
- bob1029 5y agoThis is the best model. I have been advocating for this forever. The university that I got my actual degree from was something that a SV company would scoff at. But, the education they were able to scrap together was far more effective in my day-to-day work than prior education I had received at a far more prestigious institution. Perhaps it was just me, but it always seemed like the less money I spent on my education the more effective it became.
- coldpie 5y agoI really wish I had understood this when I was 18. Would've saved me the four years and tens of thousands of dollars I wasted on a CS degree.
- deleted 5y ago[deleted]
- Terry_Roll 5y agoI dont really have any qualifications, never been to uni, in fact I clashed with the educational establishment, but I've worked on some very high profile systems, pioneered novel uses of technology and continue to do so. Remember it doesnt take any qualifications to set up a business.
- time_to_smile 5y agoThe academic culture of "we teach you to think not how to work" only makes sense for a world where the majority of people entering university are from wealthy, elite families such that the economic impact of attending college is negligible, and just an accepted tax to confirm social status. This was true for almost the entire history of college until after WW2. At those points in history the degree was worth it because it was a signal of your social standing. You would walk into the office as the boss simply because you had a degree. Today college is not elite. The vast majority of US high school students now go to college. 70% of those students take out loans to afford education. Because it is no longer elite "teaching you how to think" is no longer a great value proposition. Not to mention that most of the new grads I've met have failed to learn "how to think" as well as having no practical skills.
- jltsiren 5y agoAcademic education is not about what the university chooses to teach but about what the student chooses to learn. If you finish the degree by completing only the minimal requirements, that's your failure as a student. Many people need more guidance in their studies, because their motivation to learn for the sake of learning is not strong enough. For such people, many countries offer a parallel track of vocational higher education.
- cm2012 5y agoAlso research shows that "colleges you've been accepted to but didn't go to" correlates the same to future income as "colleges you went to". I'd say 80% of the signal value of college is the initial sorting vs the education.
- ryandrake 5y agoAren't there even earlier sorting events that have predictive value of what colleges you might be accepted to? I thought I read somewhere that "father's income" is the single best predictive signal of the entire chain of events that leads to one's prosperity and career success. If true, even college admission doesn't signal much in and of itself.
- 5y ago
- mywittyname 5y agoMy school had plenty of "vocational" classes available to CS (and other) students. The school even made an effort to keep the pre-reqs simple for these so that students from other disciplines could give them a shot (and maybe so that students could prepare for internships). Classes like, iOS development, back-end web development, intro to data science, etc. I'd be surprised if most universities didn't offer something similar. Even students at Ivy League school must want to get together with other students and learn to build useful software during their first year.
- marcus_holmes 5y agoLearning how to code is not the same thing as learning how to write commercial software at production level. There are lots of ancillary skills that must be mastered (git, testing frameworks, cloud deployment), lots of concepts that must be learned (dependency injection, the rule of 3, CPS, etc), and soft skills that must be mastered (how to accept criticism of your code, how to review other people's code, how to have a technical argument without getting emotional, how to tell your boss they're wrong). Like most professions, there's a lot of "extra" stuff around the core competency. Knowing Excel does not make you an accountant.
- iratewizard 5y agoYou'd be surprised how much of that you actually need to actually get a software project off the ground and into customer's hands. I've come into projects as the architect for refactoring what was built by someone who had only just learned to code. It was bad, sure, but they were bringing in enough revenue to hire me and get things on course. All with 0 knowledge of devops and 0 lines of test code coverage.
- dorchadas 5y agoThe question becomes at what point do we expect companies to train people and what point do we stop foisting that on universities? This ties into the bigger goal of what the purpose of university is and should be, but I personally think companies need to step up and start training again instead of expecting universities to cover most things they want/need.
- tengbretson 5y agoThat may be, but when I think back to some of the nonsense classes I took as "breath requirements" to make sure I was well-rounded enough to be a CS grad there was definitely some room in there to teach me how to use git.
- throwawaygh 5y agoMy biggest issue with new hires is that they can't write. I can teach you how to use git in an afternoon. I can't teach you how to write a thorough but concise email about a complicated topic. I can't teach you how to give a good presentation. (Or, I can, but it will take a lot longer than teaching enough git to get started.) (To be clear, all CS departments should teach students how to use git as a component of the intro programming sequence.)
- yunwal 5y agoMaybe an English course should've been included in your "breath requirements" ;)
- tengbretson 5y agoWell that's embarrassing. Truthfully though, an Android keyboard with a functioning "swipe" algorithm might be more effective for this one. I swear this used to work way better 5 years ago.
- ARandomerDude 5y ago> it trains young people in how to think, and how to conduct research But they don't. If they wanted to students to think more deeply, there would be more of an emphasis on formal logic, developing proofs, etc. rather than "write this in assembly." If they wanted you to conduct research, you would...conduct research. STEM degree fields are so obviously career-based. There's a reason Merck internships go to biology students, Lockheed internships go to aerospace students, Google to CS, etc. But when people call out universities on how poor of a job they do, they suddenly claim career-based education isn't the goal. It's a widespread CYA move by vastly overpriced universities.
- ivanbakel 5y ago>If they wanted to students to think more deeply, there would be more of an emphasis on formal logic, developing proofs, etc. rather than "write this in assembly." If they wanted you to conduct research, you would...conduct research. The claim that a university education doesn't do this feels very subjective. My CS course did all of those things. Every student was required to do a research project in their final year for a significant part of that year's credit.
- throwawaygh 5y agoHN comments on CS degrees are always a hot mess because quality in the United States is extraordinarily variable. At the high end, you have places like MIT/Stanford/UIUC//Harvey Mudd. As far as I can tell, none of the bad stuff that's said in these threads is even remotely relevant to the programs at those places^1. At the low end, you have branch campuses of state universities and small colleges where half or more of the CS courses are taught by mathematicians who did not study CS, have never worked on even academic code projects, and have never worked as anything other than an academic^2. This is pervasive in Data Science. You're way better off with a boot camp than a data science sequence taught by a desperate pure math PhD taking whatever work they can find. And there's everything in-between. A lot of these debates are probably happening between folks who went to good programs and folks who went to mediocre/bad programs. Not all, but quite a lot. So, when reading comments on HN about how useless or wonderful a CS program was, always ask (at least rhetorically) "where did you go?" I gave the big famous names because that's the easiest way to make the point. There are tons of really high quality programs whose names you won't immediately know. My intention here is not elitism... BUT!... It is 100% true that the quality of CS programs is incredibly varied. Way more than it was even 10 years ago. The rapid increase in enrollment and unwillingness to pay even half decent wages for CS faculty has caused an explosion of what I would characterize as fraud in CS higher ed. So, in the spirit of helping parents identify good programs without depending on name recognition/elite signalling alone: When deciding if/which college/university to send your child to, carefully read through CS faculty bios. Ideally there will be a good number of faculty with street cred in both academics and industry. In addition to checking out CS faculty buios, also check out the names of instructors in previous years' course schedules. For example, make sure that CS/Data Science courses aren't being staffed by math folks unless those people have significant industry experience in addition to their math phd, or work in an area of applied math where they're doing lots of coding, etc. Checking who teaches the courses in archived course schedules is more important than department bios! The department bios are a first check, not the final answer. Here's why: at many places you'll have a few half decent CS faculty who are just "fronts" for a department that is mostly staffed by way lower quality labor. It's the EXACT same bait and switch as consulting shops who have super experienced principal/senior-level engineers participate in the sales pitches and once the ink dries you're working with cheap grunts in a body shop. Three things to watch out for in particular: 1. Non-CS (usually math) phds without substantial industry expertise. They're teaching tons of intro DS/CS courses instead of taking a math job in industry or academia for a reason. 2. Folks with an online masters and maybe a year or two of full time industry experience. 3. Tons of CS courses being offered in the evenings or early morning by faculty whose names don't appear anywhere on department websites (these are industry workers doing ad junct labor... they can be EXCELLENT, and if you get a course taught by one of these people in the middle of the day it's often a gold mine. But if they're always teaching around the 9-5 schedule it signals that their employer considers this a side gig and the course's quality is probably going to depend on how busy things happen to be that quarter at the instructor's "real" job. Okay as an occasional stopgap or an option, but a huge warning sign if this is a standard modus operandi for core courses. Teaching well is a big job; doing that plus engineering without full employer buy-in is dangerous. Again, there's nothing wrong with the first two categories of folks teaching CS courses per se. The problem is that they just aren't worth the tuition dollars you're paying or the time you're putting in. Again, think about how much you will be spending. Repurposing math phds or junior engineers as CS faculty just isn't appropriate at those price points. At tends of thousands per year, your child deserves PhDs with industry experience or senior/principal engineers who have decided to start teaching full time. That's what is being sold to you! It's what every other deparmtent at the university gets! Don't pay shitloads of money for less. -- Footnote 1: Those "good" programs have other huge issues -- cost, stress, elitism. Most importantly, some of the best CS departments even at otherwise accessible universities are extraordinarily selective due to capacity issues. But the curricula are extraordinarily rigorous in terms of both theory and SE skills. The only complaint I've ever had about these hires is writing ability. Footnote 2: Warning: rant incoming! Honestly, regional accrediting bodies should probably start refusing to accredit CS/DS programs that aren't primarily staffed by faculty with either appropriate academic background or significant industry experience. And parents/students should consider civil suits when they enroll in an accredited program in CS that is taught by pure math phds with no industry experience and who have no business teaching CS or SE. The status quo is embarrassing for the entire industry. At the end of the day, universities need to start investing in good CS faculty or else face displacement by competitors who are willing to invest in human capital. Budgeting $80K for an instructional position pretty much explains why most CS departments are essentially fraudulent.
- chakkepolja 5y agoThe courses that teach SE tools (MIT's Missing semester) are well received. I can understand the resistance for focusing on specific frameworks or dumbing down the syllabus. What I think is there deserves to be one or two full pledged software engineering courses, teaching how to use testing, version control, software structure etc.. As always, you can start from basic commands / usage and reach to general concepts, it isn't that hard. And actually I believe US and European academia, at least the Ivy league and second tier colleges, do a decent job at teaching many required concepts. Come to a country like India, and you will see a C programming course that doesn't cover malloc or function pointers, a data structures course without proper introduction to algorithm complexity or difference between abstract data type and implementation, a java course that never properly teaches subtyping. I think students in US graduate decently equipped to write real world software compared to us. At least, I learned a lot of things by reading notes and Ppt of US universities. (most Indian colleges are woefully inadequate in teaching even the basic concepts for writing software, despite the CS courses being named CSE (comp sci and engineering), not just CS. Incompetence runs to the root in education system except few elite colleges. From that perspective I think CS depts saying that is a first world problem. Sorry for the rant.)
- aaron695 5y ago