3 ms·
And there’s a scary part to this. How much more are we losing out on because of what we don’t know? Can you justify going back for a masters in CS, not simply
by WhitneyLand 8y ago
And there’s a scary part to this. How much more are we losing out on because of what we don’t know? Can you justify going back for a masters in CS, not simply for any career reason, but just because of the theoretical power it could add to the foundation of your ability to solve problems and approach a broader set of them?
I find myself agreeing with most of the commenters here. Even for simple things like algorithmic complexity, I’ve watched colleagues choose data structures and algorithms with no regard for simple attributes that would make a big difference as soon as code gets out of the toy stage.
Why is it so hard to appreciate the importance of this?
The idea of seeing a doctor who never went to medical school would send us running scared. Hiring a developer with no formal computer science training? No problem, they’re smart, they’ll just pick it up as they go.
- badrabbit 8y agoIs the job a trade or a profession? People who see the job as a trade don't care about formal training.
- WhitneyLand 8y agoI find the distinction not very relevant to this question. Of course, there's more justification in more rigorously vetting someone's credentials and abilities who is building a bridge or performing surgery (although software development work has absolutely caused loss of life). However the question posed here is the value added by a solid theoretical grounding, and I believe it's not too different in terms of pure skills benefit. I bet I could wing it in a lot of professions whether it be developer or surgeon, the main difference being more people would die in the latter example. Considering only the benefit to a person's abilities of more rigorous training, I see no reason why skills would not increase similarly.
- Fej 8y agoWould you mind giving a couple examples? (Other than complexity, I suppose.) Still learning.
- WhitneyLand 8y agoCould go on all day, you can ping me privately if you like. There are other simple things, logic and circuits get you familiar with many things. How to take any language expression and change each term to invert it or manipulate parts of it quickly and knowing exactly what will happen. Compiler theory is helpful not much because many people end up designing languages but for other reasons. For example DSLs (small domain specific languages) are used all the time for different purposes. Learning about formal proofs of correctness. Again even though it's not widely done just being aware of it helps you understand the limitations and what's possible with the reliability of software. Some grasp of discrete math is required to work with lots of things like 3d graphics. Physics is a supplement that would just exclude you from a fair amount of jobs without some level of knowledge. No one is mastering all these things at an undergrad level. I'm sure I've forgotten tons of it. But just the exposure, knowing its there helps, and when you need to actually use it it's easier to jump back in and ramp up or go deeper.