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

I would argue that in order to link them together one must first understand the CS concepts and their uses. Once a person has that understanding, it becomes trivial to know when a naive solution is no longer the right approach. Once a normal person has the ability to see problem solving like that, they've pretty much got it.

That's not to say there's not a difference between all possible solutions and the people trying to find them. Some will be able to zip together the objectively most efficient solution right from the start. These are the true "superstars." People for whom doing something once is as good as doing it a million times (ie, they don't forget things). These folks are exceedingly rare and the rest of us will have to settle with kowing enough to know when we need a better way.




I get where your coming from, but many people can get all the individual concepts and still not make the connection.

If they want to double X, they are happy to use X + X, 2 * X, or X << 2 and map them all to the same place. So, if they suddenly can't use * because the CPU does not support it they are happy to use the other 2. And somehow this is the same skill where someone hmm database is to slow, let's do X.

It's probably a learnable skill, but it's just not directly part of CS classes. Someone can learn X XOR 1 is the same as X MOD 2, it's another to use XOR when they can't recall the MOD symbol.


Maybe I'm missing something but in your two examples, what you refer to as skill is just recall. I would argue that in the context of alternative solutions, the skill would be knowing when a better alternative is needed when it isn't immediately obvious. If I knew mod wasn't available yet I neded an analogous operation finding an alternative is trivial even if I don't recall it. I wouldn't call that a skill.


It might seem obvious if A and B do the same thing then you can use A or B to move on to the next step, but many people don't think this way.

For a non programming example, you can use the handle of a shovel as a long stick. This should be more or less obvious when looking at a shovel, but I have seen people ignore shovels when looking for a stick to do something.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: