Less Wrong is a community blog devoted to refining the art of human rationality. Please visit our About page for more information.

whpearson comments on Polling Thread October 2017 - Less Wrong Discussion

3 Post author: Gunnar_Zarncke 07 October 2017 09:32PM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (13)

You are viewing a single comment's thread.

Comment author: whpearson 07 October 2017 10:53:36PM *  2 points [-]

I'm curious about take off, when a computer learns to program itself. I think there are a number of general skills/capabilities involved in the act of programming, so I am interested in how human programmers think they program.

Rank the general skills you think are important for programming

The skills I have identified are the following. I think each of them might be useful in different ways.

Ability to read stack overflow and manuals to get information about programming Ability to read research papers to get information about previous algorithms Ability to learn specific facts about the domain (e.g. if you ) Ability to keep a complex model of the domain in your head (e.g. what happens in a factory when a certain actuator is activated) Ability to keep a complex model of the state of the computer system (e.g. the state of the database or the sorted-ness of an array) The ability to use trial and error while programming (e.g. trying out the system with a certain parameter and getting feedback about that)

Most important

Second most important

Third most important

Fourth most important

Fifth most important

What type of programming do you mainly do?



Comment author: Gunnar_Zarncke 10 October 2017 10:00:51PM 0 points [-]

Currently (6 votes) it at first looks like Domainmodeling is leading. But depending on how lower ranks are weighed it could also be Stackoverflow or (my favorite) "Modelling the programs operation".

Comment author: Dagon 08 October 2017 02:47:12PM 0 points [-]

I'm not sure your description of "ability to get information" matches what I mean when I say "learn about ...". I'm also not sure how much is skill and how much is talent (which can be improved with directed practice, but I don't think can go from 0 to nonzero in an adult).

I'd say "ability to synthesize information across domains" is the key - you need to be able to read papers and figure out which apply and how to integrate those ideas into the systems you're building. The trial/error, stack-overflow, and such is necessary but not critical, and much of it will be automated in the medium-term.