4 ms·
We might have a definition problem, where some institutions that offer what amounts to a technical education (i.e. with almost no mandatory "theoretical" course
by brut 10y ago
We might have a definition problem, where some institutions that offer what amounts to a technical education (i.e. with almost no mandatory "theoretical" courses) call themselves "colleges".
In the workplace I definitely experience the difference between one who received a formal education, in the sense of raw theory, and one who studied how to "do" things. Both are useful, but they serve different purposes.
- donw 10y agoFrom my experience working in management over the past decade, I can say with some confidence that most computer science programs excel at pushing out people that can not, in fact, code in the real world. Sure, they can solve ACM-style challenges and spit out Dijkstra on a whim, but I can't recall the last time I needed to deliver on a business objective that mapped to either of those things. This is not to say that understanding computer science is bad! Having a deep understanding of the underlaying theory and technology is a requirement to attain mastery. But being able to ship maintainable, well-factored, and properly-tested code in a collaborative environment is far more important to me than having memorized every algorithm in TAOCP. I mean, if I can have both skillsets, I'll totally take both skillsets, but given the choice between the two, I know that a wizard-level software engineer with very weak algorithms skills will, in general, bring a lot more value to a project than a wizard-level computer scientist that can't write code that the rest of the team can maintain. About the only time that a computer science wizard is useful to me, is if I already have a team of solid software engineers, so that they can mentor each other and lift the overall skill level of the team. What universities really need to start doing is including a multi-year track built into their curricula whereby students build and maintain production software over the course of their studies, with quarterly rotation between teams.
- brut 10y agoI share your concerns, but I absolutely disagree with your last proposal: Universities should stay universities. There's a reason why civil engineers aren't pouring concrete and installing cables etc in a new hospital, for example. There are vastly more competent people for the tasks, and they all went to technical school (electricians, etc). I actually think Universities do a disservice to their students if they promise them a curriculum that "leads to a job". You should go to University if you want to continue your formal education, not "to get a job". If you just want to get a piece of paper that lets you get a job, mentor with someone, go to a technical college, learn to "do" something. But Universities should teach how to think, that's about it, IMO. If you can find a job after should have no impact on the curriculum.
- donw 10y agoThen we need to build an entirely separate practical education track in the United States, similar to how things work in Germany. We could base it in community colleges to leverage existing mindshare and infrastructure. I would actually love to see this, but haven't yet thought through in-depth how it would work in the US. Because right now, nothing like this exists, and until it does, the primary focus of most university students is to indeed "get a job".
- thehardsphere 10y agoYou mean like trade school? I'm not familiar with the German system, but the description of "practical education track" sounds a lot like trade school. Of which there are many in the US but are considered undesireable in comparison to college.
- mtaksrud 10y agoThis.
- speeder 10y agoI am from Brazil, here people demanded that I should go to university to get a degree to get a job. I can say now that trusting the adults was stupid idea, I ended getting student loans, got a degree, but no job. I am 29 now and my government job registry is still empty.
- throwaway_374 10y agoEqually to blame is the industry hiring process. ACM HackerRank and Codility challenges are often the first stage before you're put through a whiteboard. As a result, a competent programmer has no incentive to actually continue training in best practice, rather optimise for the interview process. I flat out refuse to do any interviews with this silly competitive programming hoop jumping. As a manager, what is your hiring process?
- codingmyway 10y agoWhy not produce useful software needed by wider society as part of the course? Whether it's open source which will give them the github credentials or something like CodeForAmerica that fixes needed public works. The problem is the dog eat dog narrow mindedness of seeing everything as a competition and not learning anything about collaboration and serving others. Something a lot of CS grads would benefit massively from, I know I would have.
- donw 10y agoAlso a good idea.
- andrei_says_ 10y agoOr clearly defined apprenticeship programs. Which may not be part of universities.
- lawpoop 10y agoThere really needs to be a division in American universities between Computer Science and Software Engineering, the same like you would find between Physics and Mechanical Engineering.