Vladimir_Nesov comments on I want to learn programming - Less Wrong

7 Post author: benelliott 26 March 2011 10:40AM

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

Comments (53)

You are viewing a single comment's thread. Show more comments above.

Comment author: Vladimir_Nesov 26 March 2011 09:03:00PM *  0 points [-]

I should point out the USACO training pages

Actual past mainstream competitions in the training mode is a good fit for what I meant to reference, assuming there is enough of both simple and hard problems in there.

Project Euler looks to be more basic?

From skimming the problems, I got the impression that there are more tricky-math problems than classical algorithmic problems with graphs, strings, languages, geometry, dynamic programming, rote technical skill, etc. There are many sites that are more traditional in this sense, and hence are better suited as companion material for studying the classical algorithms, I'm just not familiar enough with the present resources to name one from the top of my head.

Also note that USACO training pages require using one of C, C++, Java, or Pascal, not any of the languages people are recommending.

For the purposes of these algorithmic problems, a bare minimum of C is sufficient, and you're going to learn it anyway, so could as well do that from the start. Programming language choice is more of less irrelevant for studying algorithms, and a more powerful language could even be a handicap (you shouldn't use the conveniently in-built algorithms if you want to understand how they work and how to develop analogous things on your own). So something simple like a basic subset of C or Java-without-libraries might be better.

A more powerful/convenient language is more important on the stage where you learn to implement complicated ideas (which corresponds to the next phase involving studying SICP, on my list).

Comment author: Sniffnoy 26 March 2011 09:04:37PM 1 point [-]

Oops, deleted my comment. Reposting it for context:

In addition to Project Euler, I should point out the USACO training pages - that's where I learned a lot of basic algorithms, data structures, techniques, though I never did make it past chapter 3, IIRC. (The whole thing has been overhauled in the intervening years and I now can only access the very beginning - apparently it now requires solving each problem in a section to move on rather than just most of them...) Project Euler looks to be more basic? Also note that USACO training pages require using one of C, C++, Java, or Pascal, not any of the languages people are recommending. So in conclusion this may be more useful later rather than now...