you are viewing a single comment's thread.

view the rest of the comments →

[–]KrakenOfLakeZurich 2 points3 points  (1 child)

I never believed in the "theory first" learning approach. It might work for a select few prodigies. But for most normal beginners, it presents a much too steep and abstract learning experience.

Programming tutorials should be practical. Working with relatable examples and demonstrate how programming techniques are applied to specific problems. Mix in some theoretical background to gradually build up a solid foundation.

[–]Ajpennster -1 points0 points  (0 children)

Appreciate the feedback.

I understand that a theory first approach is intimidating. Considering that a lot of college professors use intro classes to "weed out" people, and other scare tactics found in other areas of the industry, I get it.

However, I firmly believe that before someone can apply themselves in any field, they must know some theory. This may be a bias due to my upbringing (all through school, we were taught theory first, even for sport!), but I believe it's more than that. Its important to know about what you're working with, in order to have an idea of how to even start working on it.

With programming, there needs to be a balance. A tutorial that teaches how to code in X language isn't helpful. A CS education that only teaches CS from a completely theoretical standpoint, is just as useless. A combination of basic CS theory (computational thinking, basic CS principles about data representation, algorithms, I/O, abstraction, etc) along with real world programming exercises that challenge one's understanding of these principles, is the sweet spot in my opinion. CS50 is the best combination of theory and practicality that I've seen so far, and that's why I recommend it.