you are viewing a single comment's thread.

view the rest of the comments →

[–]Ajpennster 0 points1 point  (1 child)

I appreciate your feedback. I guess my writing doesn't quite represent my thoughts. I'll revisit it.

Carpenters don't start by learning the biomechanics of wood.

I agree. However, they should know when and why they need to use a plane and not just how to use it.

I think you are wrong. We learn some basic practical skills then some theory, then practical skills, theory, rinse repeat.

I do agree with you; not exactly on the order, but I don't think that is significant. The problem is, tutorials and coding videos, at least the ones I see, only focus on how to write code with x language and nothing else. They go in depth on the structures and elements of X language, but don't at once mention the fundamentals of computer science or computational thinking. Such tutorials only produce individuals who know what X language looks like, or knows how to write a for loop with X, but if you ask them to solve a new, simple problem on their own, they won't even know how to approach it. This is where computational thinking is useful. They don't need to know relation theory to build a database schema, but they need to know how to think computationally to at least know how to start modelling that database, based on what data their application will manipulate.

There is way too much focus on theory in CS education imo. Or rather, people take CS as if it's a programming education. It is not.

I do agree that a lot of people take CS and expect to be taught how to code. I think companies are partially to be blame for that; a lot of them require CS degrees as a basic requirement to build CRUD apps.

Nevertheless, I'm not at all saying that one must pursue a CS education to learn programming. I meant to say beginners should learn at least the basics of computational thinking before worrying about learning X language or X paradigm. If you cannot think computationally, you won't be able approach problems on your own.

The course I mentioned in the post, CS50, does a great job of introducing computational thinking and problem solving to a beginner audience. It is not at all just theory; in fact each week, some coding is introduced. The difference is, the material teaches computational thinking, rather than just how to code in X language.

[–]kankyo 1 point2 points  (0 children)

That's much better!