2 ms·
> Someone with a decent bachelor's degree in computer science will have a depth and breadth of knowledge far in excess of where they'd be if they'd spent that t
by bradleyjg 8y ago
> Someone with a decent bachelor's degree in computer science will have a depth and breadth of knowledge far in excess of where they'd be if they'd spent that time teaching themselves web development on the job.
Also, zero professional judgement, and more likely than not, not even knowing what they are missing. Engineering curricula have their problems but at least fresh MEs and EEs IME realize that they don't know anything. Fresh CS grads come in and want to do a rewrite--in a language not used anywhere else in the company no less. Give me a self taught guy any day of the week and twice on Sundays.
- MaxBarraclough 8y ago> zero professional judgement, and more likely than not, not even knowing what they are missing. Engineering curricula have their problems but at least fresh MEs and EEs IME realize that they don't know anything. Fresh CS grads come in and want to do a rewrite--in a language not used anywhere else in the company no less I agree with all of this. I suspect it's due at least in part to the way the software world has an attitude of move fast and break things, whereas bridge engineers and aeronautical engineers are shown disaster photos to emphasise the point that If you screw up in your professional responsibilities, you may kill hundreds of people. You don't ask a fresh graduate to single-handedly design a bridge. If you did, I like to imagine they'd be sufficiently terrified that they'd decline, and not just because of the legal regulations. There is no such 'culture of responsibility' in the software world, excepting a few life-critical problem domains. I suspect universities could reduce the fresh graduate know-it-all effect if they made the effort: * Teach students about the cognitive biases that will cause them to overestimate their own expertise early in their careers * Related: teach them the principle of Chesterton's Fence (especially valuable in junior developers) Also, perhaps explicitly enumerate the skills that they simply will not have on day 1 in industry -- the skills that cannot really be taught in a university -- such as: * The ability to work effectively with with legacy systems that are large, badly written, use inconsistent style, and are poorly documented (like a boxer, much of a developer's job is simply to cope with chaos) * The ability to communicate effectively with non-technical customers (coursework is a poor simulacrum) > Give me a self taught guy any day of the week and twice on Sundays. Perhaps if you're hiring them for a 6 month stint, this might make good sense. I'm not saying a degree is a substitute for industry experience, I'm saying there's value in what's taught, and that developers are unlikely to ever learn those things on the job.
- bradleyjg 8y ago> developers are unlikely to ever learn those things on the job On the job, you're probably right. But if someone happens to be the type of person that sees a link about a new asymptotically fastest multiplication algorithm and ends up spending an hour reading about karatsuba multiplication then he or she is likely to catch up after too many years, and then pass the formally educated that aren't so inclined. So if you'll take a friendly amendment I'd say: - If you want someone for a six month stint, go self taught - If your company is using the tournament model and you churn through juniors in two or three years on average, go with CS grads (careful of those sharp edges though) - If you are looking to invest in employees for the long term, go with lifelong learners regardless of credentials
- MaxBarraclough 8y ago> she is likely to catch up after too many years, and then pass the formally educated that aren't so inclined. I'm not sure about this. It seems to me that this really downplays the value of attending a good university. Speaking for myself, I really can't imagine 'catching up with myself' had I not gone to university. I wouldn't have developed my writing skills. I likely wouldn't have seen what proper grown-up mathematics looks like. I wouldn't have seen how academics work, up close. I can't honestly say I would likely have studied the various dry-but-valuable topics that universities are known for. I'd probably have a much harder time reading computer science research papers. Additionally, universities teach students how to learn independently. I don't think this should be underestimated. > If you want someone for a six month stint, go self taught Well, kinda. If you want someone for a six month stint, and your choice is somehow between a green-horn graduate and a seasoned developer who never went to university, then sure, you're probably best off with the experienced developer. (Assuming of course that the problem domain doesn't require any particular technical specialism.) There's a reason large companies run training programmes for fresh graduates: they want people with formal training and the necessary working knowledge. > If your company is using the tournament model and you churn through juniors in two or three years on average, go with CS grads I'm sure this happens, but I'm not sure it makes any sense. I know it's the norm for software professionals to move jobs every few years to get the raise they deserve, but I'm not convinced this is in the interests of the employers. They have spend considerable effort bringing their replacement up to speed. > If you are looking to invest in employees for the long term, go with lifelong learners regardless of credentials I don't follow. Credentials reflect expertise and achievement, it's just that they aren't the whole picture. Do Google recruiters discount the grades of their applicants? No, they're looking for top-flight hires, and grades are an important part of that.