Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

teaching programming thinking instead of langauges #2

Open
brenna opened this issue Jun 11, 2015 · 2 comments
Open

teaching programming thinking instead of langauges #2

brenna opened this issue Jun 11, 2015 · 2 comments

Comments

@brenna
Copy link
Member

brenna commented Jun 11, 2015

On the topic of programming education, I think a lot of it - especially online courses - miss the mark in emphasizing syntax over problem solving. Problem solving and "thinking like a programmer" is a much harder skill to teach.

I taught a front-end dev bootcamp for a year and there was always a break down when students faced a sufficiently general problem ("write a program that does x"). They had the tools and knew what each tool did on it's own but didn't know how to break that problem down into smaller pieces and which tools to apply where and in conjunction with each other.

A quote from that Bloomberg "What is Code" article really drove this home for me. The author is talking about AI, but for beginner programmers even simple programs are challenging for this same reason:

The hardest work in programming is getting around things that aren’t computable, in finding ways to break impossible tasks into small, possible components, and then creating the impression that the computer is doing something it actually isn’t, like having a human conversation.

Don't know exactly what my "idea" is here, but I think any education initiatives i'm involved with in the future (maybe that means study groups #1) will make an effort to teach "thinking like a programmer," not just syntax.

@anandthakker
Copy link

Totally agree that this is super important to any attempt at genuine programming education, and it definitely seems quite challenging to construct an autonomous curriculum that truly supports it. (Heck, in my experience, it's not at all trivial to get this right even in a high school classroom where you can design problem sets on the fly each night in response to what students are doing in class.)

That said, a couple interesting models are:

  • Project Euler - problem based, nice increasing gradient of programming difficulty, but, with the problems being number-theory focused, maybe only motivating to a somewhat narrow set of beginners.
  • Projects the Hard Way - a new series that my colleague pointed me to... seems like a good idea, in a similar vein to Project Euler, but with a different genre of problems.

@brenna
Copy link
Member Author

brenna commented Jun 18, 2015

Thanks for sharing those resources, @anandthakker! I also think the Nodeschool workshoppers do a great job at this - making you think through the problem solving aspect right out of the gate.

The downside to models like this is that I occasionally get the feedback of "I just don't know where to start." It's a minority for sure, but I wish I had a better way to address that or prime learners for that type of thinking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants