internet3000 / ideas

A discussion repo for individuals wanting to promote evolutionary Internet ideas
34 stars 0 forks source link

teaching programming thinking instead of langauges #2

Open brenna opened 9 years ago

brenna commented 9 years ago

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 commented 9 years ago

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:

brenna commented 9 years ago

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.