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

I used to think exactly like this -- that coding well required some inherent differences in thought structure -- but not since I really started watching the progress of those I taught. As you learn, you're not just picking up information, the way you think changes. I'm now quite convinced that effectively everyone can pick up these odd thought processes, whether they're the ones required for programming, reverse-engineering, or otherwise; it just may take more work for some.


I don't know - you read blog posts like the Spolsky one discussing this issue, and they claim that CS lecturers see a definate split between people that understand programming and people that don't, no matter how they try teaching the concept.

I personally believe that many people just can't grasp the ideas behind programming. But I would say that this is just because programming is hard - so hard that even those of us that are good enough at it to program for a living still struggle. It seems to me that the really good programmers are the ones that recognise just how rubbish they actually are at programming and try to do everything to make their code as easy to understand as possible. Functions that take up less than one screen, files that never have more than a thousand lines of code or so, using interfaces so that you don't have to understand implementation details, unit tests so that you can have confidence in a block of code and not have to doubt details when debugging, checking input values for functions. These are all things that you see in code written by those recognised as being good programmers, and yet they are all techniques that aim to reduce cognitive load when reading code. I don't think this is a coincidence.

So, if those of us that are good at this only just manage to get over the bar of adequecy, it stands to reason that there must be a lot of people that just don't make the grade, assuming a normal distribution of programming skill.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: