Vladimir_Nesov comments on I want to learn programming - Less Wrong
You are viewing a comment permalink. View the original post to see all comments and the full post content.
You are viewing a comment permalink. View the original post to see all comments and the full post content.
Comments (53)
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.
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.
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).
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...