4 ms·
The concepts you mention are fundamental and important to web and mobile programming, but a lot less fundamental to CS. Programming != CS, and that's fine. We
by jpmoral 11y ago
The concepts you mention are fundamental and important to web and mobile programming, but a lot less fundamental to CS.
Programming != CS, and that's fine. We need CS to push the boundaries of what we know and can do, and we need programming for the day-to-day work. The trick is knowing what the overlap is for the position you need filled.
- davnicwil 11y ago> Programming != CS, and that's fine Can't agree more. When I took my first job after graduating with a CS degree, I often complained that my degree hadn't taught me really anything useful about how to program with real teams, building real things to real timescales. Some years later my opinion changed. Of course my CS degree didn't teach me these things, but nor should it have. It was partly a foundation in the principles behind programming, partly an education in how to think about problem solving on a fundamental, quite abstract level. The things I gained from it provided a great base from which to learn how to write software in industry, and whether I realise it consciously or not, everything I have learned and continue to learn is augmented with the knowledge of the fundamentals behind it, which is really, really valuable. My opinion, and I'm more than willing to be challenged on this by anyone with counter-examples, is that learning to write software in industry, with teams, huge-scale systems, bosses, and deadlines, can only be done on the job. It's not something that can be simulated in a university, and indeed one actually never stops learning even once in industry. Things that are helpful on the job can only really be learned the hard way, by doing the job, failing, and seeing that a better way exists for next time, in a similar situation. There's never such a thing as 'the right way', only 'the right way for this situation' - and there are too many permutations and edge cases on what that could mean to be taught in a structured way in a degree. Therefore I don't think universities should be in the business of even trying to accomplish this. They should be in the business of producing graduates who are able to learn professional programming with a broad and deep knowledge of the fundamentals as a base, which is a very valuable thing. I think what the GP is describing is more like an apprenticeship than a degree, and who knows, maybe that (combined with at least some study of the most directly-related fundamentals) could be one future path for learning programming as a young school-leaver, in lieu of going to university. Perhaps a four-year apprentice would be quicker out of the blocks in their first 'real job' than a 4-year CS degree grad, and perhaps that's a much better, more economically viable way to train new programmers for standard, forms over data style web development or application development work. My point is teaching to the job is a completely separate thing from learning the mathematical and logical underpinnings of CS from nearly first-principles, and should be approached as such. Let a CS degree be a CS degree, don't try to morph it into a programming apprenticeship.