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

I think some people learn to think in a deeper more abstract way but many don't.

My team leader always describes database results like an imperative program "if it has this show do this". I have to translate that into "return the set where this happens". We will debate database schemas, and I can see that one version is essentially a normalized version of the other option and a join will transform it into the same table .

I think there are plenty of programmers who reach a basic level of understanding and no more. The one years experience 10 times type guy.



Indeed. A lot of programming jobs don't really require you to grasp deeper and more abstract ways of thinking - you can just glue together some StackOverflow answers with latest JS framework and collect your paycheck.

Not that there's anything wrong with that (I have some objections, but it's a topic for another discussions) - but it shows that just because someone knows how to code, doesn't mean he learns the important abstractions. As Bret Victor says, for "thinking the unthinkable", coding is a tool, not a goal.


This is very true. Someone who builds websites/CRUD screens and someone who programs for NASA might both call themselves programmers but they are very different jobs. I'm fairly good at the first one, but I probably wouldn't know where to begin for the second.


And even if you're working for NASA your job may not be inherently more difficult than CRUD, it's just different. Where I care about server latency, as NASA engineer you'll care about real-time guarantees. Where I care about UX, you'll care about code correctness, etc.

Ability to comprehend abstractions is a bit orthogonal to all of this. It starts to shine when you need to architect a complex system or model some real-life phenomenon.


I always wonder why CRUD is so looked down upon. I do the database for a sequencing center (so essentially CRUD - though its a moderately complex schema), and I work with a lot of bioinformaticians. Their code is often just counting stuff, and or applying some basic statistics. Usually the quality of code is really bad (often the script will only be run on one or two data sets, so that's not such a problem).

Now compare that to a decent web app written to a good standard. There can be orders of magnitude more complexity in the second, even if it is "only CRUD". Getting HTML, CSS, Js working together, maybe contacting the database over REST, maybe just getting standard HTML. Maybe there is some SQL that needs optimized. URLs need to be set up. It needs to be deployed on a server somewhere.

I think I could do the bioinformatics job with if I was given decent description of the problem, but I would be surprised if any of them could do mine without a serious amount of learning.




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

Search: