programming and the real world

<p>Achat, those resources look good. I am trying to keep my son engaged because there is really nothing that challenges him at school. Our cc does offer a class called OO programming using C++. There are other online classes I list in another post, I just don't know which class he should take.How do you get good at programming? Do you learn many languages? Stick with one? Or is the language secondary to the algorithm?</p>

<p>I'd stick to one. Digmedia suggested Smalltalk for OO programming. But if he already knows C++, I'd stick to it. But if you look at what texas137 posted, usaco has a lot of problems to solve. topcoder.com also has problems.</p>

<p>Texas, My son posted under my name last night on different forums, but didn't get much response. Thanks for the C++ tip. I guess he can start the usaco training materials in java and then after learning c++ decide which language he likes, right?</p>

<br>


<br>

<p>Sounds right to me. I think they are versions of the same thing anyway. My son seems to believe that C++ is more powerful than Java, and that the only reason the College Board switched was to make the AP course easier. </p>

<p>It's probably better to be really good at one truly powerful language than to know a little about several and be restricted to simple programs. Maybe instead of taking a course in another language, you son might like an algorithms course. My son says the language is secondary to the algorithms, but that's where his interest lies so it may not be true for everyone.</p>

<p>Java is good too! I wasn't recommending C++ or anything. I thought he knew C++.</p>

<p>What texas137 says. The algorithms are more important than the programming language and any powerful programming language such as Java or C++ will do. In the olden days, they used to use Pascal in colleges.</p>

<p>What is an aglorithms course ..math or cs? Is there anything online?</p>

<p>The community college's CS department would offer courses in algorithms.</p>

<p>We would need something online...we live in a small town.</p>

<p>I just talked to my son about this and got some additional tidbits of input from him. First he said "if the kid already knows Java, then Visual Basic and HTML will be beneath him". He also said that someone who already knows Java is halfway to knowing C++, and probably wouldn't need a whole course to learn it. He also said "if the kid already knows Java, he should just do stuff in Java", meaning learn algorithms, solve programming challenges, or write programs for fun. Unfortunately, he isn't sure that the USACO training materials work in Java. This is the first year that the USACO internet contests have supported Java. The intention is that the training materials will be made to support Java also, but he isn't sure where that stands. You should be able to figure it out pretty quickly by simply trying the first couple of problems.</p>

<p>U. Colo Boulder has a lot of online CS courses. They're expensive, though. And you are paying for credit, which you may not care about. There are also some online CS courses at <a href="http://www.utexas.edu/cee/uex%5B/url%5D"&gt;www.utexas.edu/cee/uex&lt;/a&gt;&lt;/p>

<p>texas137, your son is probably ready to be hired! I don't want to start a discussion here between the two languages C++ and Java, though! Would find rabid fans on both sides. :)</p>

<br>


<br>

<p>Probably true. My son can be overly opinionated about this sort of thing (he can go on and on about Dvorak vs. QWERTY keyboards ;-)).</p>

<p>Can you explain what you mean by learn algorithms. Do you mean by programming or taking a class?</p>

<p>"An algorithm is the abstract procedure which the computer follows to solve a problem, and which is completely independant from the language in which the program is written or the computer on which it is run" (from my son). There are classes in algorithms. You can also learn from a book or by working through the USACO training program (which may or may not work with Java). Once you start getting serious about algorithms, some math may come up along the way that an 8th grader may not have been exposed to. My son says it isn't much, and you could learn it when it comes up, but you might want to know.</p>

<p>btw - the USACO training program has the big advantage of being free. An online algorithms course is going to cost something like $700(UT)-$2000(Boulder). Might be worth making the shift to C/C++ if Java isn't supported there, even if he wouldn't otherwise.</p>

<p>it depends what you want to do with java.. like the others mentioned, you can study other object oriented things.. for example when i do my web sites i write them in PHP/HTML.. sometimes in asp.net, once you learn one thing it's easy to learn others, plus they all work so well together..</p>

<p>I came up with an even less technical explanation of what an algorithm is, in case any of you are as nontechnical as I am. (bear with me if you are highly technical and this sounds stupid)....</p>

<p>Take a simple arithmetic problem, like 8x7. There are different ways to think about the problem in order to get an answer. You can add eight 7 times. Or add seven 8 times. Or get the answer off a multiplication table. Or double seven 3 times. Or do some hybrid. Those are all algorithms. Depending on the problem, one algorithm may be a lot better than another one. Knowing lots of algorithms, or being able to come up with new ones, means that you can solve problems faster, or solve more problems, or solve more complicated problems. None of this has anything to do with whether the person solving the problem is working in French or Chinese, or whether they are going to say the answer out loud or write it in Roman numerals or base 13. First you have to solve the little puzzle of how you are going to think about the problem. That process is analagous to figuring out what algorithm to use to solve a computer problem.</p>

<p>RentACoder</p>

<p>Could you please explain rentacoder?</p>

<p>rentacoder matches free-lance and moonlighting programmers up with jobs. You can Google for more.</p>