Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think pair programming with the beginner at the keyboard is the best thing I've worked with. As part of the student ACM chapter I've organized a lot of tutoring for non-programmers. Walking through my own thought process with the beginner in how to solve a problem seems to help a lot. For example, one thing I had to explain to a student was that figuring out how your program will work is often identical to figuring out how you yourself would do the problem (assuming you can solve the problem). One specific problem we were working involved essentially an itoa function. By using the Socratic method I managed to get the student to explain at the most basic level how they did operations on numbers. Once they got to the digit level, I handed them the well-known division + modular division algorithm for processing the digits of a number and they were able to build the solution from there.

I also think that one of the most important concepts is really poorly taught in computer science. A lot of what we view as "good code" is really just a series of idioms and conventions that we have all agreed upon. As the IOCC shows, there are really no rules forcing anyone to follow these conventions. With somebody looking over their shoulder and saying, you know, we usually express this pattern as this, it basically teaches them what they would have otherwise had to spend hours reading code learning.

That said, I'm not really sure what the best way to teach programming is. The most important thing one programmer can teach another is how to learn on their own, but I really have no idea how to teach that.



Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: