4 ms·
Well computer science is not only about programming. Programming is a big part of it and people without a degree might be good programmers, but do they really h
by kayoone 15y ago
Well computer science is not only about programming. Programming is a big part of it and people without a degree might be good programmers, but do they really have gone through all the math and theory by themselves or just skipped it alltogehter ?
For example most people without a degree might not know what Big O Notation is or how it works or why certain data structures are better than others.
So it depends much on the work someone is going todo, relativly simple programming tasks ? No degree required.
Working on something that scales to millions of users or has to run with exceptional performance ? A CS degree would atleast tell me the candidate has learned about the theory required for this.
Generally for a good CS grad its easier to get really good at programming, than making a programmer comfortable with all the theory.
Try to get into any of the TOP software companies in the world without a degree and i wish you good luck (not impossible though).
I say this as someone who quit half way into his Bsc to start a company btw ;)
- astrec 15y agoI think your point is generally true of computer science graduates, but there are a great many wishy-washy vocational IT degrees for which employer and employee would both be better served with an apprenticeship.
- nicpottier 15y agoMy experience interviewing says that a great many CS graduates still have no idea about Big O, or even really understand hashtables. That's from years of interviewing quite qualified candidates coming into AMZN BTW. They might have passed the class and test where that was covered, surely it WAS covered, but they didn't actually retain it in a meaningful way. I'm a dropout and worked at AMZN for a few years BTW. I don't think I would have had any problem working at Google or Amazon if I had wanted to either. Granted, I probably couldn't have worked at those companies as my FIRST job, but that isn't the argument. The argument is who is better off after four years, someone who attended university to get a CS undergrad, or someone who worked in the trenches. I'd say if there were more good apprenticeship positions available the latter would almost always be better.
- _delirium 15y agoI agree on the last point. I think this sort of stuff can be learned in an apprentice-type way, but not many positions currently do a good job of it. A great motivated way to learn big-O type analysis, for example, is to work on a system where a bottleneck gets improved from an O(n^2) to an O(n logn) algorithm, while working alongside someone who explains to you what that means, how you determined which algorithm was which, and why this is useful analysis to know how to do. A lot of non-degree programming jobs seem to lack both the challenge and the mentoring to make that happen, though, so you end up with people who learn more about how to bang scripts together out of snippets pulled off the web. That's actually also a pretty useful skill, especially if you become a very fast and skilled applier of band-aids, but it's not quite the same as a CS apprenticeship.
- nicpottier 15y agoGood point, and actually one I overlook too often in my own experience. I went to CMU for two years before dropping out, so I did get a decent grounding in data structures / algorithms etc.. And I absolutely agree that that grounding has been important and is hard to get in the trenches. Maybe we need to be arguing towards one or two year of school then apprenticeships? My housemate teaches a one year CS fundamentals course here in Rwanda. It is essentially the only real CS training available in the country, though there are plenty of people with degrees from the universities. But he does a pretty good job of covering the basics. I'm sure he'd confess that two years would be better than one, but I'm not sure he'd argue for more.
- Permit 15y agoI agree. The Co-op program I'm in allows me to switch between work and employment every four months. While I've found I learn more practical knowledge on the job, I've also noticed school forces useful concepts on me that I wouldn't have learned otherwise. This includes assembly level programming and the theory and math that you've mentioned. I think the decision to enroll in university or to abstain is is entirely dependent upon the degree.
- rdouble 15y agoWhich courses teach how to make something that scales to millions of users, or run with exceptional performance?
- kayoone 15y agoNone directly, but you learn how to rate the performance of an algorithm and basic concepts that atleast give you a starting point. Of course that doesnt say every CS grad knows how that works or none of the non-degree programmes knows how to do that, but a degree tells me atleast that the guy should have heared about the relevant basic concepts and gone through the theory...in theory