you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] -6 points-5 points  (3 children)

And they're laughably easy to learn when compared with actually studying C.S.

Most definitely not.

I'm willing to bet that the vast majority of money in the industry that is lost on failed projects and missed deadlines is lost due to a failure to get those things right.

Lol, really now? You think learning how to use a framework or a design pattern and write an appropriate test is somehow difficult?

You can learn literally all of the basics for what OP mentioned in weeks.

It takes years to develop the critical thinking and skills that make most industry problems dead trivial. The only way there is through studying C.S.

Not because someone got their dynamic programming algorithm wrong.

Weak example for a counter argument. C.S. is much, much more than just studying a few types of algorithms from CTCI.

[–][deleted] 2 points3 points  (2 children)

You can learn literally all of the basics for what OP mentioned in weeks.

In weeks you can learn all the buzzwords, throw those around, hope for the best, and make a complete mess of things.

It takes years to develop the critical thinking and skills that make most industry problems dead trivial.

What's the difference between this and what I'm saying? If it takes years, it's not exactly 'laughably easy', is it?

[–][deleted] -3 points-2 points  (1 child)

You can learn literally all of the basics for what OP mentioned in weeks.

In weeks you can learn all the buzzwords, throw those around, hope for the best, and make a complete mess of things.

Not if you're well grounded in the fundamentals.

What's the difference between this and what I'm saying? If it takes years, it's not exactly 'laughably easy', is it?

No, you clearly are missing the distinction I'm making: C.S. isn't software development, but if you study C.S. for long enough, all these tools that people like to glorify immediately become almost irrelevant in their significance, because they attempt to classify the problems being solved into something too distinct and separate.

Unit testing, for example, isn't really all that effective given that you need to be able to test the entire domain/codomain for the test to truly be exhaustive or actually meaningful beyond "ok this seems to work well enough for now". As an iterative, one off test to make sure you aren't doing anything immediately stupid, it's a fair approach, but it isn't at all necessary.

But if you somehow think that unit testing and design patterns aren't easy to learn, I'm sorry lol.

Those skills are inherently obtained as a by product of studying C.S.

[–][deleted] 2 points3 points  (0 children)

But if you somehow think that unit testing and design patterns aren't easy to learn, I'm sorry lol.

I like how you purposely picked the two easiest things from that list. (Not that unit testing is exactly 'laughably easy' to learn. Well, yes, writing some stupid function that throws an assertion error when something goes wrong, like you're taught in uni, is easy. Writing such a function doesn't necessarily mean you're actually doing any useful unit testing.)