Slashdot Mirror


Summer Programming Courses Before Heading Off To College?

First time accepted submitter LiteWait writes "My son is heading off to college next year and although he is bright kid with a great background in math and science, he has indicated that he'd like learn some introductory programming skills this summer. The courses at the local universities are pretty sparse and most of the CS101-type courses I've seen offered are too general to meet his needs. Even though he is a self-starter I think he would benefit from actual courses/code camps/etc rather than just slogging through online samples and tutorials. I'd like some advice on possible options for code camps, online courses, or developer training."

183 comments

  1. Python by Kimomaru · · Score: 5, Insightful

    Python is considered by many to be a great entry-level language and it's also very popular in the real world. There are many good books on the subject, so it might make for a great self-taught experience.

    1. Re:Python by spongebue · · Score: 3, Informative

      If you go that route, I like Learn Python the Hard Way. I used it to learn Python from my Java background, but it's also great for those that have never programmed in their life. The basic programming structures (loops, conditions, classes, etc) are all covered and can be transferred to other languages, and it's not too strenuous despite its name (while still learning stuff, of course). Everything is very well narrated.

    2. Re:Python by ixidor · · Score: 1

      This. i came here to say this. pick up a few python books, read through some examples, pick a project and start. any book that covers basics will probably have a hello world in first chapter. cover loops, for,if,else,case,while,do ... variables, and variable types strings,arrays i started with this book http://www.lulu.com/us/en/shop/j-burton-browning/design-logic-and-programming-with-python-a-hands-on-approach-third-edition/hardcover/product-4519569.html

    3. Re:Python by ShanghaiBill · · Score: 2, Informative

      Python is considered by many to be a great entry-level language and it's also very popular in the real world.

      I agree that Python is a good first language. But there may be a better language for him to learn: The language used in the introductory course of the college he will be attending this fall. In fact, this "ask Slashdot" question seems silly. His best option is to contact the college he will be attending, get their list of summer courses, and pick one. That way he will not only be learning to program, but he will be learning the right language, the right style of programming (where right == "what the professors want"), and he will get full college credit for the course, and have a head start over his classmates. This will also help his GPA because summer courses are graded on an easier curve since they have plenty of students that flunked or dropped out during the regular school year. He will also learn his way around the campus, and be more comfortable during the fall semester.

    4. Re:Python by Kimomaru · · Score: 3, Insightful

      "The language used in the introductory course of the college he will be attending this fall."

      I'm sorry, I must disagree completely. You shouldn't leave it to the school you're attending to figure out which language is best for you, quite often educational institutons are the least in-touch with what drives the market or an industry. Ask programmers and professionals which language has the most value in the current market and industry. The school's opinion should almost rate dead last, not first. Every college graduate I know has agreed that there is practically no link between what's learned in school and how the real world works.

    5. Re:Python by F.+Lynx+Pardinus · · Score: 1

      The language used in the introductory course of the college he will be attending this fall. In fact, this "ask Slashdot" question seems silly.

      Absolutely, I would also recommend Dan Grossman's Programming Languages course on Coursera, which teaches a functional programming language, ML. My university used a functional programming language course in the second semester as a weed-out course for the CS major because it was so unlike anything the freshman had seen before and really required them to think. Knowing a functional language already can be a huge, huge advantage in your freshman year.

    6. Re:Python by muser8 · · Score: 1

      I'm not quite sure what your son's intended major is but if it is CS and he's half as bright and a self starter as you've indicated he should take the time to do something completely unrelated to programming/CS. There are a lot of 'tools' out there who know how to program but lack the insight and purpose that completely unrelated activities can afford.

      Managers, don't need someone who knows how to code. They need self starters who can learn the next technology and also understand the value of customer service, community service, or service to others in any capacity.

    7. Re:Python by Anonymous Coward · · Score: 0

      the only good feature of python is that it suppresses the enemies of the code formating - they just have to format their code or else it will not work properly. All languages should have that.

    8. Re:Python by chrismcb · · Score: 1

      I'm sorry, I must disagree completely. You shouldn't leave it to the school you're attending to figure out which language is best for you,

      If you are trying to get a head start on your schooling, and maybe making your first semester in school easier, you should absolutely leave it to the school you are attending. He'll have 4 more years to learn other languages, if the school isn't teaching the "right" languages.

  2. As a professional, I would say... by ShieldW0lf · · Score: 4, Interesting

    The best course he could take for computer programming is a touch typing course. And that's by a huge margin.

    --
    -1 Uncomfortable Truth
    1. Re:As a professional, I would say... by Bearhouse · · Score: 1

      Seconded.

      I'd also second the remark on Python...

      Get him a decent laptop, then spend some time with him setting it up to dual-boot into Windows 7 and BSD. OK,OK, just kidding, Mint then.
      More seriously, getting him to play around with using *x as a server rather than just as an alternative desktop to Win is, I think, a good idea.
      He'll never be out of a job later...

      One could also mention Eclipse *ducks*

    2. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      I'd second that. It will help him in a lot of his other classes as well.

    3. Re:As a professional, I would say... by seyfarth · · Score: 4, Insightful

      Having been a successful programmer for 35 years, I would discount the value of touch typing. It has been my experience that thinking is far more important than typing skills. Fast typing helps, but I think your son would find this boring. Taking whatever beginning programming course is handy will help. Well, I would dodge Cobol, Fortran and Perl. Perl is relevant but pretty ugly. Java, C, C++, Python, or Visual Basic would all be fun and useful. Just be sure that the course is for beginners.

      --
      Ray Seyfarth, ray.seyfarth@gmail.com, http://rayseyfarth.blogspot.com
    4. Re:As a professional, I would say... by mcmonkey · · Score: 1

      I'd second that. It will help him in a lot of his other classes as well.

      I thought about suggesting getting him hooked on Mudding as a way to learn touch typing (nothing like a fast-paced, text based, hack-and-slash game to keep his eyes on the screen and fingers on the keyboard), but that would not help him in any of his other classes.

    5. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      Disagree with the Visual Basic recommendation.
      Anyone coming from a VB background will have picked up way too many bad habits, necessarily.
      Variants? Really?

    6. Re:As a professional, I would say... by TeknoHog · · Score: 1

      This + Project Euler == Profit!

      --
      Escher was the first MC and Giger invented the HR department.
    7. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      1996 called. They want their variants back.

      Honestly, you are clueless. The .Net version of Visual Basic is a modern, object-oriented language in every respect.

    8. Re:As a professional, I would say... by AwesomeMcgee · · Score: 1

      Decent.. ugh, just to learn some coding all you need is a 486 with vi or emacs, immediately at his fingertips without delay will then be Lisp, Python, Perl, Ruby, Tcl, C/C++, Java, Haskell.. I'm not suggesting anyone dig up a 486, but the point stands, hell get the kid an rPi... don't tell this guy to trouble over whether or not to spend money and how much when he just needs to spend pocket change if he wants his kid to be able to code.

    9. Re:As a professional, I would say... by AwesomeMcgee · · Score: 1

      You know how much goes into thinking up mathematical strategies for structuring those things, I wouldn't say it doesn't help at all.. :)

      Also dead right, this will have you touch typing and reading so fast. IRC/MUD is how I learned to touch type, and I hit 140wpm if I know what I want to say.

    10. Re:As a professional, I would say... by Kimomaru · · Score: 1

      Use Ubuntu. Am I'M NOT kidding. ;)

    11. Re:As a professional, I would say... by ShanghaiBill · · Score: 4, Insightful

      Having been a successful programmer for 35 years, I would discount the value of touch typing. It has been my experience that thinking is far more important than typing skills.

      Your logic makes no sense. Learning to type faster is in no way going to diminish his ability to think.

    12. Re:As a professional, I would say... by Zordak · · Score: 4, Insightful

      Having been a successful programmer for 35 years, I would discount the value of touch typing. It has been my experience that thinking is far more important than typing skills. Fast typing helps, but I think your son would find this boring.

      Ah, see what you did here? A is useless. B is more important than A. (Which is orthogonal to whether A is useful in itself.) (And now the admission.) A helps, but is boring.

      A person can't program without thinking, but between two people who have identical thinking skills, the one who can type is the better programmer. Which means that typing is a great skill for a programmer.

      I used to think the way you do, that typing is a waste of time, that I could do without it. Then I took a typing class in high school because I needed to fill half a credit (this was 20 years ago). That's when I realized how much not knowing how to type had been getting in my way. It's like living in a country where you don't speak the language. Yeah, you may be able to get by, but it's a lot easier if you just learn to talk.

      I was also surprised at how easy it was. It takes only a few weeks to get to basic competence on the keyboard. After that, it's all repetition (with plenty of opportunity for repetition). The only way I can encode my thoughts faster than typing is speaking, and until Dragon get a little better, even that's a tossup. It's dumb for a kid not to learn to type today. He'll probably use computers in every job he ever has has. No reason to do it with a handicap.

      --

      Today's Sesame Street was brought to you by the number e.
    13. Re:As a professional, I would say... by spiffmastercow · · Score: 3, Funny

      This + Project Euler == Profit!

      returns false

    14. Re:As a professional, I would say... by mwvdlee · · Score: 2

      Just imagine all the extra thinking you can do when you no longer have to think about typing while typing. I'm sure you would have though this out yourself were it not for all the hunting and pecking you had to do while typing just then ;)

      A basic touch typing course should be a requirement for programmers. Not necessarily at high speed, just enough so they won't lose their train of thought while typing.

      Some people will say you have to think before you type it out. I agree. That's why I think about what I'm going to do next while typing out what I thought out before.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    15. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      On an IBM Selectric. Bzzzzzzzz....

    16. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      Clearly, he has lost his ability to think.

    17. Re:As a professional, I would say... by Moses48 · · Score: 1

      Having been a successful programmer for 35 years, I would discount the value of touch typing. It has been my experience that thinking is far more important than typing skills.

      Your logic makes no sense. Learning to type faster is in no way going to diminish his ability to think.

      Your logic makes no sense. Discounting the value of something in no way means that it would diminish the ability of another.

    18. Re:As a professional, I would say... by admdrew · · Score: 1

      I would discount the value of touch typing.

      I totally get where your intent behind this, but I would firmly disagree - the ability to type (and type well) is invaluable for kids these days, especially how many non-coding responsibilities developers have that require good writing skills (email/IM communication, maintaining documentation, etc), all of which are infinitely easier if you're a skilled typist.

      Perl is relevant but pretty ugly. Java, C, C++, Python, or Visual Basic would all be fun and useful.

      Seconded.

    19. Re:As a professional, I would say... by sparrowcz3 · · Score: 1

      Fast typing code looks cool but fast thinking beats it by a mile. I use a pencil & paper for algorithm design and then it doesn't matter how fast do i type because i have to type it only once.

    20. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      I'm a few years older than this kid and I was taught touch typing in school in first grade. Suggesting an 18 year old learn touch typing sounds as absurd to me as suggesting they learn to read so they'll be able to read the documentation. Are we really having people graduate from high school without knowing how to type?

    21. Re:As a professional, I would say... by Anonymous Coward · · Score: 1

      I'm 25 and I don't know anyone my age or younger that can't touch type. Assuming this kid is going to be some sort of CS major (though it isn't that clear based on the summary), I'd wager he can too. The only programmers I've met that can't touch type are the 40+ year old COBOL programmers we were displacing at my previous job. I wonder what is the average age of Slashdotters that a touch typing course is even a suggestion?

    22. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      It's funny how the only people that don't think touch typing is a benefit are those that cannot touch type. And this is not all peckers (not a derogatory term). Some peckers do want to learn and know it would help them.

      It only took me about 20 seconds to type this. Including this. And this.

    23. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      A great exercise in documentation as well. I wont even begin to write code unless the algorithms I plan to use are widely understood because the documentation is going to be crucial a few months down the line. Pencil, paper, ruler, and compass are essential tools that too many programmers dismiss out of hand. Even better is if you can find a flowchart stencil kit at a craft or hobby shop, beats Visio and DIA by a long shot.

    24. Re:As a professional, I would say... by anonymous_wombat · · Score: 1

      The best course he could take for computer programming is a touch typing course. And that's by a huge margin.

      That was the single most useful course that I took in hs.

    25. Re:As a professional, I would say... by cheekyjohnson · · Score: 1

      Are we really having people graduate from high school without knowing how to type?

      There's more than one way to type.

      --
      Filthy, filthy copyrapists!
    26. Re:As a professional, I would say... by vigmeister · · Score: 0

      Having been a successful programmer for 35 years, I would discount the value of touch typing. It has been my experience that thinking is far more important than typing skills. Fast typing helps, but I think your son would find this boring.

      Ah, see what you did here? A is useless. B is more important than A. (Which is orthogonal to whether A is useful in itself.) (And now the admission.) A helps, but is boring.

      You missed the implication that learning to think would be a better use of the kid's summer than learning ho to type even though the latter helps...

      --
      Atheist: Buddhist in a Prius
    27. Re:As a professional, I would say... by vigmeister · · Score: 2

      I think the kid would be better off learning touchscreen typing...

      --
      Atheist: Buddhist in a Prius
    28. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      1) If he needs a class to learn it, he's an imbecile.
      2) Whether it's valuable or not is up to the person to decide. I can type at about 70WPM with two index fingers alone, and I think that's more than enough considering I spend most of my time thinking about what to do next. Finishing a bit faster just isn't important, and you're grossly exaggerating if you say otherwise.

    29. Re:As a professional, I would say... by cheekyjohnson · · Score: 1

      It's funny how the only people that don't think touch typing is a benefit are those that cannot touch type.

      How do you know this? Have you personally interviewed every touch typist? Furthermore, it's not necessarily that people don't think it's beneficial; it could be that they don't think it brings with it a substantial enough benefit to put it in such high regard.

      --
      Filthy, filthy copyrapists!
    30. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      The kid can't learn to think in one summer. If he hasn't already learned that, he has bigger problems. He can learn to type in one summer.

    31. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      You missed the implication that learning to think would be a better use of the kid's summer than learning ho to type even though the latter helps...

      if the kid hasn't been learning how to think all his life, how is one summer going to change?

    32. Re:As a professional, I would say... by White+Flame · · Score: 2

      Good typing skills will

      1) As mentioned, free up his brain in not distracting it by having to think about typing.
      2) Leaving a stand-out positive impression about how good he is, among other amateur programmers at similar skill levels.

      I cannot impress the importance of #2 enough, when it comes to interviews or academic connections. Having a natural, comfortable demeanor while working makes you look more confident and competent than your hunt'n'peck sloppy-postured neighbors.

      Of course, his actual programming skills will be determined by his own self-study, and that will eventually overwhelm the other factors, but good typing skills will make him stand apart in a very *socially* competitive environment.

    33. Re:As a professional, I would say... by Thiez · · Score: 1

      > Fast typing helps, but I think your son would find this boring.

      Writing documentation is also considered boring by many, but learning how to type fast now will speed it up by a factor of two or three. Imagine how many hours of boredom will be saved over the rest of his life. Imagine the same advantage when communicating by email with other students and co-workers.

      I definitely considered my typing course to be fairly boring *at the time*, but looking back it is one of the most useful things I've learned in my youth.

    34. Re:As a professional, I would say... by DoctorBonzo · · Score: 1

      Really? First grade? Where was this? Were there special keyboards for little kid's fingers?

      I'd be impressed if I could believe it.

    35. Re:As a professional, I would say... by DoctorBonzo · · Score: 1

      ... as if *anyone* could learn touch SCREEN typing...

    36. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      Strange. To me, trying to take the factorial of a string keeps returning an error.

    37. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      A person can't program without thinking, but between two people who have identical thinking skills, the one who can type is the better programmer. Which means that typing is a great skill for a programmer.

      Of all the skills and character traits I look for when searching for a good programmer, typing speed is near the bottom of my list. There are no two persons with identical thinking skills, not even twins. Of course for my purposes I have been looking for somebody who can solve non-trivial programming challenges quickly, if I had been looking for somebody who could write the most pages of code in a day for billing purposes things might have been different.

      If somebody wants to improve their typing skills that is great. If somebody has the choice between learning to type faster or to learn some other aspect of development, don't choose the typing course.

    38. Re:As a professional, I would say... by Kaldaien · · Score: 1

      Really?

      I have never met anyone with an interest in computer programming who could not already locate any key on the keyboard by muscle memory. I always assumed it was a skill people would already have acquired before deciding to jump into software design. Like, a natural progression from crawling to walking and running.

      But if this was a bad assumption, then by all means :) I cannot imagine writing C code without a firm knowledge of where to find {, |, ~, etc...

    39. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      if the kid hasn't been learning how to think all his life

      If he was put through the public school system, the chances that he never 'learned to think' are quite a bit higher. Even one summer learning how to develop critical thinking skills can be helpful, I think. Public schools are amazingly inefficient (depending on the student; faster students learn more quickly), so even a teacher possessing moderate ability or quality self-education sessions can be extremely helpful.

    40. Re:As a professional, I would say... by Anonymous Coward · · Score: 0

      1) As mentioned, free up his brain in not distracting it by having to think about typing.

      As someone who can type fairly quickly, I can tell you that this isn't as big of an issue as you make it out to be. The time it takes you to type something is absolutely trivial compared to the amount of time it takes to think about what you're going to do next, and any time saved by learning how to type more quickly will also be trivial. It's just not worth worrying about.

      2) Leaving a stand-out positive impression about how good he is, among other amateur programmers at similar skill levels.

      If they think he's 'good' because he can type quickly, then that speaks volumes about how intelligent they are.

      but good typing skills will make him stand apart in a very *socially* competitive environment.

      No two people have the same thinking ability, so it's hardly that significant if one person can type faster than another. Again, superficial nitwits have no place in the workplace. Sadly, though, they're more common in some workplaces than I'd like them to be.

  3. Learn X The Hard Way by Anonymous Coward · · Score: 2, Informative

    A decent self-study course is the Learn X The Hard Way (originally X = Python, now Ruby and C are available as well):

    http://learncodethehardway.org/

    Focuses heavily on code-as-language, so the early exercises may remind you of typical foreign-language study: "type these things, explain what they mean, etc".

    1. Re:Learn X The Hard Way by megamerican · · Score: 1

      I would recommend Udacity's CS 101 course along with LPTHW .

      The thing I liked about that Udacity course is it is study at your own pace. You can do as little or as much as you want. On top of that you are building a web crawler throughout all of the Units.

      I'd also recommend code academy since they added a lot more python modules. It would be a good way to reinforce ideas he is learning whatever course he is going through.

      The good thing about LPTHW over the others is you are also setting up a programming environment on your own computer rather than using someone elses interpreter.

      --
      If you have something that you dont want anyone to know, maybe you shouldnt be doing it in the first place -Eric Schmidt
    2. Re:Learn X The Hard Way by Githaron · · Score: 1

      I concur with this. Udacity is an awesome learning tool. I took the AI course and it was quite education and fun. Since he is going to college to get a degree anyway, he doesn't need to worry about getting a widely renown and accepted degree during his pre-studies. Udacity hasn't been around very long and so far they do not have any proctored exams.

    3. Re:Learn X The Hard Way by Githaron · · Score: 1

      I take the last part back. They apparently have started offering optional proctored exams for some of their online classes.

  4. Online samples are pretty good by GodfatherofSoul · · Score: 1

    No only do they provide good instruction, but it'll also prepare him to learn skills on his own which is more aligned with what professional developers do on a daily basis.

    As for languages, I always recommend HTML for new programmers. It's simple, you get immediate results, you can quickly build practical applications, and it set up a foundation for further learning; scripting, networking, style sheets, etal.

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
    1. Re:Online samples are pretty good by HerculesMO · · Score: 1

      Disagree as somebody who started on HTML, because you don't learn the concepts that allow you to grow into a full functional programming language (ie, OO).

      The way I learned (and I'm still pretty young and learning programming from scratch now, coming around as a VB6 guy), is to take a simple idea and just work towards that goal. I'm currently migrating my knowledge from VB6 to .NET, and I'm finding that the online places are pretty good, and I really do like LearnVisualStudio.net myself, it's a pretty simple (and fun) set of courses that give you practical examples and ideas, and you work towards them while learning the concepts of OO and vocabulary.

      My challenge is taking VB6 era syntax and migrating that knowledge over to C#... it's not pretty especially since I'm a stubborn guy :) But if your kid is a blank slate, and you're not afraid of MS stuff (tools are free, easy to get started, lots of support, and college acceptance), then I'd say give it a go. MSDN is an invaluable (and free) resource. I do not envy the pains of getting started with Eclipse :)

      --
      The price is always right if someone else is paying.
    2. Re:Online samples are pretty good by Cenan · · Score: 2

      HTML for new programmers? That's a horrible idea.

      It's a document formatting specification, that nobody can seem to agree on, making it an unecessarily complex choice of "language" to begin with. And what would that teach anybody about encapsulation? Coupling and cohesion? Not to mention loops, recursion and simple stuff like flow of control?

      --
      ... whatever ...
    3. Re:Online samples are pretty good by CastrTroy · · Score: 1

      I second this. C# is a great language. There's a large community of programmers, the tools are free, the documentation is superb. Also, it's something that's used in industry which is always a plus. It's also extremely simple to get up and running. You can program console applications, GUI applications, web applications, and even games. Speaking of web applications, you can develop an entire web application without having to have any idea how to set up a web server. There's a lot of libraries built in so that you can do a whole bunch of stuff without going to look for third party libraries. It's really a great language to work in.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    4. Re:Online samples are pretty good by Anonymous Coward · · Score: 0

      He wants to learn a programming language, not a markup language.

  5. Start on the courses by the+eric+conspiracy · · Score: 3, Insightful

    The best thing to get a jump start would be to find out what texts are going to be used for his courses and to start on them.

  6. Let him play video games by Anonymous Coward · · Score: 0, Flamebait

    Or send him to a summer school in Europe.

    You only really learn to properly program when you're working on a project with other people. The rest is bollocks.

  7. Boredom by Anonymous Coward · · Score: 1

    Don't learn the material in too much detail before class; or else the actual class will be so boring that you'll never want to go.

    1. Re:Boredom by SJHillman · · Score: 1

      A good professor will work with a student who already knows the material to help them advance to the next level and to refine their code from functional to beautiful.

      Of course, not all professors are good.

    2. Re:Boredom by Anonymous Coward · · Score: 1

      Generally you don't get stuck teaching a 100 level programming course because you're good.

  8. Better to slog through online samples / tutorials by Anonymous Coward · · Score: 0

    It's far more profitable to slog through online samples and tutorials. Being a self-starter, he'll benefit more from developing a passion for the art of programming rather than developing implausible software assignments in an entry-level programming course.

  9. Calculators; Python by KermMartian · · Score: 2

    I've spoken to countless now-engineers and professional programmers who started learned programming by playing around with graphing calculators. They're ubiquitous, your audience is huge, and the built-in TI-BASIC language is surprisingly powerful. I'd definitely recommend he pursue that as a means to learn to think like a programmer, skills like structuring programs, prototyping with pseudocode, debugging, and all that. In fact, I wrote a book teaching those very skills. Alternatively, Python is a great beginner computer language in that the syntax is clear and cruft-free (yes, Java, I'm looking at public static void main()...) and crashes are generally graceful and easy-to-debug.

  10. I Got It All Right Here by eldavojohn · · Score: 5, Funny

    Even though he is a self-starter ...

    Okay, awesome! What you should do is get him a raspberry pi then pick up an HDMI cable, a cheap keyboard and cheap mouse (both of which should be wired as it lags to offload wireless processing to the pi) from monoprice. Right now, B&H Video has a deal where you get 2 x 16GB cards for $15 if you add two of these to your cart with free shipping. Okay, I've actually already bought several sets of this stuff from these exact same suppliers and handed them off to a bunch of kids that are loving them right now. So that's all legit. You'll need to have a TV or monitor with an HDMI in and it helps if you have a cheap webcam (one of the tutorials I'm gonna mention uses it). You'll also need a second computer with a way to access SD flash cards (pick up a USB toaster for $5 if you don't have this)> Optional would be male-to-female wires like these with any breadboard so he can tinker with making his own stuff -- you'll probably have to drop more cash on more electronic devices to interface with it if you go this route though.

    Next, you might consider this book but I prefer this one more. Okay then you send your kid here to get the hard float raspbian wheezy and you tell him how to figure out how to get it on the flash card to boot on the pi. There's a wiki for all this stuff. Then you send him here and make him do these tutorials. Then you make him read all the issues of the MagPi. And if he's smart enough, you buy him some more peripherals. There should be a lot more tutorials coming out for this device.

    Once he has all that stuff, you go to the liquor store. Now, the liquor stores around my house sell a lot of types of vodkas and Absolut is great but I've found that Sobieski satiates me just as well. It's made from this Dankowski rye that makes great gimlets. Try to buy a case of handles and haggle him down to ~$13 a handle (that stuff is really cheap). Then you go to the store and you get some of that Real Lime lime juice. Not the key lime shit, the actual lime juice. You're gonna need a decent blender because this thing is gonna be working all summer long. Also, a bag of hazelnuts. Go home and fill a cup to the top with ice and put in about one finger of lime juice. Fill the rest with Sobieski. Blend that shit up, garnish with a couple crushed hazelnuts to really dry that shit out and kick back. Trust me, your kid is going to come and talk to you about python and apt-get and registers and you are not going to want to have to deal with that. So just get good and fucking faced in the sun all summer long. Your kid will thank you for staying out of his hair. A summer of riproarin' fall down drunk? You can thank me later.

    --
    My work here is dung.
    1. Re:I Got It All Right Here by Bearhouse · · Score: 1

      Wish I had mod points. You'd get 'em all. Thanks for a great post.

    2. Re:I Got It All Right Here by burisch_research · · Score: 1

      Fantastic, lol!

      I was about to berate you for overcomplexification, however your proactive stance toward inebriation clearly indicated a propensity toward humorous intent. Can't mod you cos I've already posted!

      c

      PS the recommendations in the first part of the post are not applicable to a beginner.

      --
      char*f="char*f=%c%s%c;main(){printf(f,34,f,34);}";main(){printf(f,34,f,34);}
    3. Re:I Got It All Right Here by denvergeek · · Score: 1

      This is actually pretty damned good advice. I started off with beer, boredom. a bong, and BSD.

    4. Re:I Got It All Right Here by JBHarris · · Score: 1

      This is the best thing I've ever read on the entire Internet. Hands down.

    5. Re:I Got It All Right Here by Moses48 · · Score: 1

      If you do this, make sure you order now, as they are on 6 week backorder.

    6. Re:I Got It All Right Here by greg1104 · · Score: 1

      Almost right, except the best chemical to mix with BSD is acid.

    7. Re:I Got It All Right Here by olip85 · · Score: 1

      Hey what do you call a closed-source Raspberry PI? A Raspberry IP.

    8. Re:I Got It All Right Here by DQKennard · · Score: 1

      Now, see, if eldavojohn couldn't touch type, he probably wouldn't have bothered with this.

  11. Go for math courses, not programming by Anonymous Coward · · Score: 1

    College math is not the math he already knows. Math is much more important than programming and programming is much easier to pick up on your own. The difficult concepts are not in the basics. Programming is going to be taught from an introductory level onward anyway.

  12. Codecademy by djKing · · Score: 5, Informative

    Our daughter signed up for Codeademy (http://codeademy.com/)to help her with a CS course she was taking at UBC. She's in Arts but needed a science and CS fit the bill. She found Codeademy very helpful. She got an A+ in the CS course.

    --
    Free as in "the Truth shall set you..."
    1. Re:Codecademy by XxtraLarGe · · Score: 1

      Codecademy is o.k., but I think they start off on the wrong foot. It would be better if they went HTML->CSS->JavaScript instead of JavaScript->HTML->CSS. That way you could ease into things, and then incorporate JavaScript into your web pages from the get-go. For a beginner, they might not have any idea of what the point is behind learning JavaScript and how it is used in the real world.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    2. Re:Codecademy by Anonymous Coward · · Score: 0

      The site is Codecademy (http://codecademy.com)

    3. Re:Codecademy by TechieRefugee · · Score: 1

      For web development, I would absolutely agree. However, if they're not going into web development, then Javascript is a great place to start. I actually started out programming last January (2012) with Codecademy, and learned quite a bit about programming as a whole. I didn't bother with HTML, but with what I learned through Codecademy and Javascript, learning other languages isn't as hard as it would be otherwise.

    4. Re:Codecademy by XxtraLarGe · · Score: 1

      I'm not disagreeing with you necessarily, but the HTML & CSS segments shouldn't take anyone more than a week, then you could dive right into the JavaScript part.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
  13. doing it wrong by LodCrappo · · Score: 4, Insightful

    Sending a kid to a CS-101 type introductory class will very likely bore him to tears and possibly give him a lasting negative impression of programming.

    Why not help him pick a reasonable goal (somewhere in between "make a web page" and "write a new operating system) and then just let him code. Programming well isn't something you learn in a classroom, its learned by coding poorly a whole lot, and then learning how to do it better, and then learning how to do it even better, again a whole lot. At some point in that process a classroom might be involved and might even help, but not at the beginning.

    --
    -Lod
    1. Re:doing it wrong by burisch_research · · Score: 1

      Can't mod cos I've already posted. But Crappo has this exactly right! I'd suggest writing a simple game. Too bad we don't have text mode screens any more ...

      --
      char*f="char*f=%c%s%c;main(){printf(f,34,f,34);}";main(){printf(f,34,f,34);}
    2. Re:doing it wrong by Anonymous Coward · · Score: 0

      +1

      Tell him to write a game. One per week would be a good start. It doesn't have to be releasable, just written. Something simple, like tic tac toe, or solitaire would be a start. Then progress to things that require collision detection and crude 2d physics and animation.

      For good graphics, learn OpenGL.
      There's a massive quantity of tutorials at NeHe Productions.
      With OpenGL being used on tablets and web interfaces, it's the way to get an edge.

      For bad graphics, take a look at Dwarf Fortress.
      Even with text-only graphics that game brings in tens of thousands per year.

      Read Programming Pearls and Beautiful Code for unique ideas for approaching a problem. Take a look at the Fast Inverse Square Root for a good example of combining bit-level hacking with Calculus.

      Nvidia made the GPU Gems series available online. It has advanced concepts, but is currently down. Subsurface scattering is an amazing effect, as is Navier-Stokes simulations.

      MIT has a course on algorithms with video lectures.

      If none of that piques his interest, then he shouldn't be a programmer.

    3. Re:doing it wrong by LtNacho · · Score: 1

      This is what I would do as well. I got all the way through college with a pretty mediocre understanding of programming. It was after college when I found a project that I was interested in building on my own that I really actually learned. Then when I went back for my graduate degree it was incredible how much more I got out of it. So if he could work on something interesting for a while he'd have a big head start on many of his classmates and might actually look forward to his programming classes because they'd start filling in some blanks for him.

    4. Re:doing it wrong by F.+Lynx+Pardinus · · Score: 1

      Programming well isn't something you learn in a classroom, its learned by coding poorly a whole lot, and then learning how to do it better, and then learning how to do it even better, again a whole lot.

      I agree, but I think the caveat is that to improve, is you have to either see how others solved the same problem you did, or you need to get others' feedback on your code. That's something that you can get in a well-designed course (Dan Grossman's Programming Languages course on Coursera has a peer review section after each assignment), but you won't get if you're just programming by yourself.

    5. Re:doing it wrong by Anonymous Coward · · Score: 0

      You can also get it by reviewing others' code. There's plenty of it on the Internet.

  14. Udacity by CodeReign · · Score: 1

    Check out udacity courses. They are by far the best online courses I've seen covering many topics.

    1. Re:Udacity by davidannis · · Score: 1

      I've taken only one Udacity course and not in programming, so I have a n of less than one but I found the course I took less than ideal.

      On Udacity I took introductory statistics, as a refresher. I took classes in scientific stats, business stats and forecasting many years ago so I have some basis for comparison. I found that the course sometimes emphasized technique over understanding and broke lessons into small bite size chunks that were often so small that I questioned the utility since if a problem is broken into baby steps I can sometimes complete each step without understanding the approach to the whole.

  15. This cannot be underestimated by MikeRT · · Score: 5, Insightful

    When I got out of college, most of my older coworkers where shocked at how quickly I could type Java code because I learned how to touch type the non-alpha numeric characters pretty well. When you don't have to hunt and peck for those characters, you can actually type out code about as fast as you can think "I'd like to make this change..."

    If you want to drive this point home, get your son into a Perl class or doing Perl work. He'll go nuts if he doesn't bother to learn how to do this skill well.

    1. Re:This cannot be underestimated by Hatta · · Score: 4, Interesting

      Get a keyboard with unlabeled keycaps. I use a Das Keyboard with cherry blue switches that is completely blank. If you can't look at the keyboard as a crutch, you're forced to rely on muscle memory, which strengthens very quickly.

      --
      Give me Classic Slashdot or give me death!
    2. Re:This cannot be underestimated by vigmeister · · Score: 1

      Great until he moves to Europe :S ... Rediscovering hunt and peck is painfully slow :/

      --
      Atheist: Buddhist in a Prius
    3. Re:This cannot be underestimated by the_arrow · · Score: 1

      I would love to do that, but I don't think my wife agrees with that. :)

      --
      / The Arrow
      "How lovely you are. So lovely in my straightjacket..." - Nny
    4. Re:This cannot be underestimated by bemymonkey · · Score: 1

      Why? I'm typing this on a company keyboard (German layout) set to US-English right now. Other than the location of the backslash key, there's no difference whatsoever...

    5. Re:This cannot be underestimated by Anonymous Coward · · Score: 0

      Get a keyboard with unlabeled keycaps. I use a Das Keyboard with cherry blue switches that is completely blank. If you can't look at the keyboard as a crutch, you're forced to rely on muscle memory, which strengthens very quickly.

      Or just don't look. Self discipline is a critical skill for college. Why spend money on a device when you can learn two skills at once for free?

    6. Re:This cannot be underestimated by Anonymous Coward · · Score: 0

      Self discipline is a critical skill for college.

      That would depend on the college, really. Lousy colleges just baby you all the way through and/or just have you memorize material without really teaching you to understand it (and there are plenty of lousy colleges in the US). Really though, self-discipline is a critical skill for... just about everything; especially if you're self-educating.

  16. Come to Cambridge by mcmonkey · · Score: 1, Informative

    If you are in the Metro-Boston area, or trust your child in Cambridge for the summer, Harvard Summer School admits high school students and has 2 good courses this summer: "Great Ideas in Computer Science with Java" and "Intensive Introduction to Computer Science Using Java." The later sounds like a better match if you're worried about courses that are too simple or slow-paced. "Building Mobile Applications" may be more compelling than more traditional programming courses, but has a higher barrier in terms of prerequisite programming experience and required hardware.
    http://www.summer.harvard.edu/courses/subject/computer-science
    http://www.summer.harvard.edu/programs/secondary-school

    Unfortunately, if he is not near or cannot get to Cambridge, MA, USA, there does not seem to be any good distance courses offered this summer.

    Also, Harvard's CS50, Introduction to Computer Science, is available online. This includes lecture video, hand-outs, problem sets, and quizzes. This is a good option if he is truly a self-starter and will allow him to work at his own pace. This is not the usual online tutorial. This is the same lectures and materials presented to students of Harvard College and the University Extension.
    http://cs50.tv/

    At one point the CS50 lectures were also available on iTunes. I don't know if this is still true.

  17. Whatever you do (not completely related) by theRunicBard · · Score: 1

    Tell him to consider re-taking some intro courses at college. For instance, if he's "qualified" for MAT 102, maybe tell him to take MAT 101. It sounds lazy and counterproductive (it also sounds like you're trying to inflate your GPA), but I'm being serious. Oftentimes, you will find that high schools skip certain parts of a course that colleges don't. Alternatively, they teach at a different level. You can teach electricity and magnetism in such a way that a middle schooler will understand it in minutes (I = V/R is something an elementary school student can do), or you can create problems that play on obscure resistance rules to the point where one needs to read the book for an hour to understand what's going on. When this happens, you can quickly get lost and earn a bad grade. I would advise your son to go back a level in such courses, or at least carefully look at the textbook and sample assignments/problem sets to make sure he isn't getting in over his head. Besides, sometimes intro courses are a lot of fun ;)

  18. MS Office course by Billly+Gates · · Score: 3, Insightful

    I know I am about to be modded down, but hear me out.

    First off as a freshmen he wont even touch any programming course. More than likely he will take english for poets, speech, intro to worplace management, and Intro to computers 101.

    Most universities require you to take that ridiculous intro to computers 101 as many assignments today are group projects done in blackboard which use Outlook, Word, Excel, and even Powerpoint. They do this to emulate work which is a good thing to learn. I learned the Powerpoint slide rule, no more than 3 bullets per slide, etc from my biology professor believe it or not.

    In college excel is used in math, statistics, and computer science with datasets. Most bright kids today know how to type but do not know even how to set a margin in Word! They just tab all over the place and wonder why formatting errors occur etc. These can be bright kids but just are not used to doing office tasks on them.

    Have your son learn this and get a certificate in it so he can exempt from that course and save himself/yourself $2,500 in student loans. He can probably get his WPM typing up too so can get done with papers quicker too.

    1. Re:MS Office course by Anonymous Coward · · Score: 0

      I took my first programming course my first semester, and it counted as a replacement for the gen-ed requirement of CS 101. /shrug

    2. Re:MS Office course by Quirkz · · Score: 1

      I won't mod you down, but I will say it's not necessarily safe to generalize. It depends a LOT on the school. Mine had no generic required classes, and I actually could have taken a programming class first semester.

    3. Re:MS Office course by Anonymous Coward · · Score: 0

      First off as a freshmen he wont even touch any programming course. More than likely he will take english for poets, speech, intro to worplace management, and Intro to computers 101.

      What school did you go to? I have seen the CS curriculum of three different universities. Two of them had a "basic computer skills" class for freshmen, but most of the time was spent teaching basic UNIX skills. If a CS program doesn't teach programming in the first year, find a better one.

  19. Robocode by jkflying · · Score: 1

    Might I suggest he gives a shot at Robocode? If anything can give him motivation to program, making robots shoot each other will.

    --
    Help I am stuck in a signature factory!
  20. Don't Waste money on summer college course by Anonymous Coward · · Score: 0

    Harvard and Stanford both offer many introductory programming classes online for free.

  21. Z80 by burisch_research · · Score: 2

    Give him a ZX81 or Spectrum 48k and manual. Plus, no internet or anything else! Lock him in a dark room for 6 months. Presto, open the door and you have an IT expert.

    --
    char*f="char*f=%c%s%c;main(){printf(f,34,f,34);}";main(){printf(f,34,f,34);}
    1. Re:Z80 by Megane · · Score: 1

      I would be nice and at least give him something with a half-decent keyboard. Like a TRS-80. (But not the later Model IV where they moved the arrow keys around.) FWIW, with a TRS-80 Model I and a Z-80 reference card, I learned a lot of Z-80 assembly language with a lot of good code examples. But that "no internet" thing is important. Maybe a DVD-R with PDFs of the first few years of Byte magazine, but absolutely no internet.

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  22. does he want to take a course? by Anonymous Coward · · Score: 1

    if he hasn't expressed interest in taking a summer course, i wouldn't try to force him to. when i was a kid i love programming, but nothing in the world would have made me take a summer course. he'll have around 4 years of college to learn stuff. how about taking a trip to another country with him instead?

  23. Free online courses from Harvard, MIT, and Berkley by Anonymous Coward · · Score: 0

    There are a lot of free resources on the web. My nephew did this http://cs50.tv/2011/fall/ class when he was fifteen with iTunes U. It is from Harvard. I was impressed with the class and he followed a long and completed the class, I had the "joy" of reviewing his assignments. For someone completely new to programming that wants to learn with a classrom like structure I thought it was a cool resource.

    ~Rob

  24. Camp CAEN by KevinFlannery · · Score: 2

    Check your state school. I attended Camp CAEN every summer and learned tons. Something like this is the best way to get good at programming. http://en.wikipedia.org/wiki/Camp_CAEN

  25. Apprentice by Anonymous Coward · · Score: 0

    Find a real world coder and have him give you son some grunt work.

    1. Re:Apprentice by AwesomeMcgee · · Score: 1

      SERIOUSLY. Find someone who actually knows programming to get your kid writing code, this hands down has the highest transmission rate of The Bug. Someone who knows how getting him to do some piddly crap is more likely to give him The Bug than anything else hands down. Once he has The Bug, everything else will be taken care of. He'll plug himself into the internet and start downloading all on his own directly into his brain pan. CS and etc as very useful as they are, are no where near as valuable to someone who is "interested" as contracting The Bug.

  26. Coursera by Anonymous Coward · · Score: 0

    Look through some of the online course offerings on Coursera. There are a number on programming: https://www.coursera.org/category/cs-programming .

    It is a new initiative for sharing university courses for free on the internet. A number of universities have done courses on it.

  27. Not actually necessary by maas15 · · Score: 1

    In my educational career (which involved a lot of wandering between schools), I found that *every single school* forces you to re-take cs101, even if you already know the language, even if you've already (literally) take 4 other cs101 courses. So your son should be aware that taking a programming course won't get him into higher level courses. Of course, programming is a whole lot of fun, so if he wants to take a course for it's entertainment value, he should go for it. Check your local community college - I've had great luck with community college courses (though I've never tried programming courses at one, more like networking and IT courses). Don't even think about a vocational school. If possible, try to find one that teaches C/C++, since most computer science courses in college are in Java, which isn't that useful of a language. Avoid C# courses, since C# teaches poor programming habits. Lastly, and slightly off topic, if your son wants to avoid a college career of nomadically wandering between schools, then make sure he realizes that the main objective of school is to learn things, including things that aren't as much fun to learn (like African History or Music Theory).

    1. Re:Not actually necessary by maas15 · · Score: 1

      After a moments retrospect, see if your son can take a humanities course over the summer that will transfer to the new school ;).

    2. Re:Not actually necessary by HornWumpus · · Score: 1

      Why would anyone ever take 'African History' or 'Music Theory' except because they enjoyed it?

      Not like they meet any requirements for useful degrees or will get you a job.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  28. WHY? by Dahamma · · Score: 2

    He's going to college. Isn't the point of going to college to take courses?

    If he really wants to learn more about programming before/outside of college, the best way IS to be a self-starter and use the near infinite resources of the Internet to do it. If he doesn't want to do that, why force him? In either case, if as you say the local programming classes aren't very good, why not just let him wait to take one when he starts in the fall?

    1. Re:WHY? by gl4ss · · Score: 1

      no the point of going to college is to be a big showoff from day one.

      anyhow. just don't get him a summer job, cut his internet and leave some porno on his machine that's behind a cumbersome process that he'd better automate somehow.

      --
      world was created 5 seconds before this post as it is.
  29. SICP by bob0the0mighty · · Score: 1

    Get through half and you are a better programmer than most. https://mitpress.mit.edu/sicp/full-text/book/book.html

  30. But I Am Dead Serious! by eldavojohn · · Score: 4, Interesting

    PS the recommendations in the first part of the post are not applicable to a beginner.

    Believe it or not, I am dead serious about the Pi. There's a 13 year old kid from Lithuania staying with my boss and I brought over the exact same setup I mentioned above and just showed him briefly how scratch works. This was his e-mail to me a mere one week later:

    Sorry, that I didn't wrote a letter for you long time.
    I was working on Raspberry Pi and I am still working on it.
    I am learning to program some games, and I have made one already. It is just a simple game. Now it have some things that don't let it work, and I am trying to fix them.
    I made a little movie in the Scratch too.
    Raspberry Pi is a very good computer. Sometimes I am thinking how could it work being so small, and it's almost a real computer.
    I have heard, that root terminal needs a pasword to work. In this Raspberry Pi, I don't need pasword. When the program starts, it put a letter that I don't need pasword to run a program.
    Thank you for opportunity to work with this computer, it is so interesting and good.
    Sincirely,
    Aivaras

    I asked him if he needed the root password I setup Debian with, that's why he said it doesn't need a root password. The great thing about the Pi is that it's cheap and you can do as little or as much with it as you want! I'm 30 years old and I love it! Seriously, when I tally up all the stuff I listed in that post, it comes to under $60! That's like a PS3 game disc ... how can you afford not to buy this for your kid -- whatever the age or gender?

    --
    My work here is dung.
  31. Self-Starter by furchin · · Score: 1

    Sorry, he's not a self-starter. A formal education in computer science theory is one thing, but you say he wants to learn "some introductory programming skills". That's exactly the sort of thing he could pick up on his own, by following a tutorial or example online. There's no need for a course -- unless, of course, he's not a self-starter and needs to framework of a course for actually give him assignments that he does. There's nothing wrong with that, but you're not describing him correctly. If he is a self-starter, then you need to ask him what he's done to learn anything on his own.

  32. Enjoy his last minutes of freedom!!! by sureshot007 · · Score: 5, Insightful

    Tell him to stop worrying about college and just enjoy the summer. Once you go to college, it's all about studying and doing well, then summers are for working jobs to pay off some debt and have spending cash during the school year, then back to school....and once your graduate and get a job, all of your freedom is gone!

    Have him enjoy his last moments of freedom from responsibility and have fun with his friends.

    Besides, if I had a dime for every kid in Intro to CS that thought he knew how to program but couldn't grasp the idea of simple design patterns...I wouldn't have had to be a TA.

    1. Re:Enjoy his last minutes of freedom!!! by mrjatsun · · Score: 1

      mod this one up. Enjoy the summer time before college. Enjoy life. He has 4 years in college and intern jobs to learn. And if he's any good, and want's to sling code, he will most likely be working lots of hours after college.

    2. Re:Enjoy his last minutes of freedom!!! by jittles · · Score: 1

      Tell him to stop worrying about college and just enjoy the summer. Once you go to college, it's all about studying and doing well, then summers are for working jobs to pay off some debt and have spending cash during the school year, then back to school....and once your graduate and get a job, all of your freedom is gone! Have him enjoy his last moments of freedom from responsibility and have fun with his friends. Besides, if I had a dime for every kid in Intro to CS that thought he knew how to program but couldn't grasp the idea of simple design patterns...I wouldn't have had to be a TA.

      Bah! I worked full time, went to school full time, and did summer school every summer. I still had plenty of time to stay out late and have fun with all my friends, and graduated with honors. College is a great way time to learn about sleep deprivation, and how to sneak in cat-naps when no one is looking. Those 200+ student classes are a great place to get in an extra nap. You just didn't do it right. ;)

    3. Re:Enjoy his last minutes of freedom!!! by chrismcb · · Score: 1

      I think the best thing a kid can do, before going to college, is be a kid. Let him enjoy the summer, it might be his last chance to have a few months with almost no responsibilities. Spending some time over the summer picking up some skills may make his first semester easier. But it won't make him more money when he graduates.
      Let him go have fun.

  33. Udacity & Coursera by bobdehnhardt · · Score: 1

    Udacity and Coursera both offer free online college-level courses in programming. Udacity's focus is primarily on Python (at least in the courses I've taken), but it looks like Coursera's offerings include C++. Any of these should give him a good start in object-oriented programming.

    1. Re:Udacity & Coursera by Anonymous Coward · · Score: 0

      Yeh MOOCs are the way to go. IMO Udacity is the best for programming.

    2. Re:Udacity & Coursera by ChunderDownunder · · Score: 1
      OOP is one paradigm but I'm thinking of enrolling in Martin Odersky's functional programming course - a class taught by the guy who created the language isn't something you do everyday!

      Purists might contend that lisp, ocaml or haskell are the only ways to grok functional programming. Nevertheless, a functional/OO hybrid that runs on the JVM might be a nice complement to the ubiquitous Java courses this kid may encounter. (Do they still use Java as a teaching language?!)

  34. use math to learn code by Anonymous Coward · · Score: 0

    If he's good at math, he can tie learning programming into mathematical concepts..he might
    like codebymath.com....

  35. sounds snotty! by Anonymous Coward · · Score: 0

    "although he is bright kid with a great background in math and science, he has indicated that he'd like learn some introductory programming skills this summer"

    As written, this sounds like "although my son is a bright kid with a great background in math and science, he'd like to learn something that is not up to his capabilities!"

  36. Dippy name, excellent program by Anonymous Coward · · Score: 0

    The Summer Science Program is an astronomy summer-camp originally formed in the Cold War fears. Students observe Near Earth Objects, then use their observations to update the orbital determinations with Harvard-Smithsonian Small Bodies Institute. This means teaching programming, calculus, physics, and astronomy for direct application to a valuable real-world problem.

    I went in the dawn of time (2001), and it was the first time in my life I ever had to work hard. But the very best bit? Going through the program means joining the most spectacularly diverse, creative, and helpful alumni network I've encountered in universities, professional organizations, or other short-term projects. I regularly donate half my vacation days each year to volunteer for the program, making sure the next group of students continues to have high-quality experiences. Alumni also pick in with sufficient donations to keep student fees below-cost, and offer substantial needs-based scholarships. You can read more reviews of the program here.

    The program is open to international students who are rising juniors (entering their final year of high school).

  37. online courses? by hypergreatthing · · Score: 1

    Aren't there a bunch of do it yourself introduction to programming and practical application courses online? That are you know, free? The language isn't important, it's critical thinking, logic, basic and general understanding of computers that is. Syntax and language logic is the last thing you'd want to teach, but actually it's the most helpful when trying to do something to show that you're learning.
    If language is a consideration, i would recommend something that isn't painful (ADA), has object oriented programming in it (C++, C#, java, etc), can be used in a web based environment (all the rage), an understanding of xml and web apis.
    But just programming is boring. Get him experience with computer hardware, low level instruction sets, how to fix/put together his own computer, databases (SQL based) and some low level i/o programming. That should be a pretty basic round-a-bout education for starters. Then see what he's really interested in and let it fly.
    Just please don't get him excited about making video games, he'll be let down later in life or used and abused.

  38. artofproblemsolving by Anonymous Coward · · Score: 0

    artofproblemsolving.com offers some introductory programming courses that are probably great.

    There are excellent summer math programs for high school students; probably similar programs exist for computer science but I don't know what they are.

  39. C.A.R.E. by Tannasgh · · Score: 1


    Love your children? Coding Abuse Resistance Education may offer you some help. Many young people who are experimenting with certain types of Code, that go by street names such as Sharp, Thon, Groovy, Alef, Ruby, HaXe or Dot among others can be stopped or rehabilitated to work productive, high paying jobs in such industries as rubber chicken farming, silly putty testing or hardwood log whittling. C.A.R.E helps parents keep kids healthy, keep them free from late night pizza and excessively high caffeine drinks, late night gaming and gives them a chance to meet members of the opposite sex. Come on, they deserve every opportunity!

    Remember

    Just Say NO to Code!

  40. Get an internship. See if he likes it. by pla · · Score: 2

    [...] Even though he is a self-starter I think he would benefit from [...]
    [...] he has indicated that he'd like learn some introductory programming skills this summer [...]
    [...] the CS101-type courses I've seen offered are too general to meet his needs[...]


    Thuppathuppathuppathuppathuppathuppa...

    No offense, but one of those things doesn't jive. Either you want him to waste his last summer of freedom learning something his uni will already present at a painfully slow pace... Or you over-estimate his degree of self-starting.

    In college, I had two very distinct types of peers in my CS classes (no, I don't plan to make this into a "people who know binary" joke). Half of us already knew a few programming languages and casually discussed our latest projects (both in the "toy" and "real employment" senses). And half of "us" switched majors to Tech Writing (the "philosophy major" of STEM) after failing the first semester of Analysis of Algorithms (assuming they even made it past Intro to Programming).


    Perhaps he really does have an interest in programming, perhaps you want him to have an interest in a moderately in-demand and well-paid field. If you make him spend the summer grinding to get a leg up on the other freshmen, though, you can pretty much guarantee that if he graduates in 4-5 years, he'll have a degree in French Renaissance Literature. ;)


    More seriously, if he wants to figure out if he really likes programming, and wants to get an edge over his peers - Have him look for an internship (probably unpaid if he can't actually program yet).

  41. Try community colleges by ryen · · Score: 1

    I was in the same boat the summer before college. Wanted to learn more about programming but wasn't sure about it yet. I chose a course at the local community college which was affordable and no hassle to register for. It was C++ but focused on beginning programming which was probably not the best route to learn programming but it gave me a good start to everything. You might find more topical courses at community colleges if you're trying to stay away from the "general stuff".

  42. Open Learning by Anonymous Coward · · Score: 0

    Ive seen suggestions for other online courses, but not UNSW Computing 1 - The Art of Programming
    https://www.openlearning.com/courses/unsw/computing1

    It uses C and some custom assembler for 4/8 bit processors. Be forewarned: it's a computing course, not a programming course, so it won't teach you all the C syntax you'd ever want to know, but introduces you to how computers operate from a programming point of view.

  43. Land! by DL117 · · Score: 1

    You sound like a helicopter parent. You should back off your kid, and LAND.

  44. Simple by Anonymous Coward · · Score: 0

    Udacity.com

  45. 18 years old and doesn't code? by HornWumpus · · Score: 1

    Would you start a musical instrument at 18 and expect to compete with those that started 10 years earlier?

    That ship has sailed. He will never be a good programmer. It's just too late.

    Good programmers start coding as soon as they have the tools. These days they start as soon as they have the tools to get the tools. You can't stop them.

    Perhaps you should get him a book on marketing?

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    1. Re:18 years old and doesn't code? by Anonymous Coward · · Score: 0

      Bullshit. I never programmed before college. I went into school thinking I was going to do analog electronics. At the end of 4 years I had a job doing system software for a major hardware company.

      It doesn't matter if you don't know how to code before college. What matters is your ability to learn. I had caught up with and surpassed many of peers within 2 years.

    2. Re:18 years old and doesn't code? by HornWumpus · · Score: 0

      Sure you did. (Pats head.)

      Hint: Maybe 10% of programmers are good. The fact you made it into the pack doesn't make you good.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:18 years old and doesn't code? by Anonymous Coward · · Score: 0

      These statements are foolish and misleading.

      I learned to program C at a community college in my last semester in high school. I majored in EE, specialized in math and wrote a lot of VHDL and MatLab for signal processing applications. I didn't re-engage with higher-level programming for another 10 years. I now am proficient in C++ at a very high level and have written Java (Hadoop) well in the past. I am lucky and have worked hard.

      My point: it is never too late to learn new skills ... especially when the kid is just now 18! Programming (for me) is about clearly expressing solutions to puzzles. My training in college to write proofs, history papers, and think deeply about physics were all excellent preparation to solve challenging programming problems.

      My best recommendation would be to get him a writing tutor and study calculus. My path through college was much easier than the path that other students took because I was a semester ahead in the math. My path through work has been much more profitable than others because the writing and speaking abilities I developed in high school debate.

      (I agree with HornWumpus ... most programmers are terrible, but it isn't because they started late ... they were going to be suck programmers at age 18 or 25 or 12 ... doesn't matter).

    4. Re:18 years old and doesn't code? by Benaiah · · Score: 1

      There is more to a programming career then programming. When I did my CS degree there were heaps of kids who had already hacked together their own websites/programs/flavour of linux... And they had a massive head start. But there is more to coding then hacking, there is team work, development models and methodologies, test case development and discipline. Brilliant script kiddies found it hard to work in groups and definitely didn't get the best jobs at the end of the course. It was the asian kids, because no matter how good you are there is always an asian kid who's better.

  46. C and Python by Mullen · · Score: 1

    If I had to choose, I would choose C and Python. C is the classic and it's operation is found in all of the other languages, plus it has memory management (While going out of style, people should still learn). I would also suggest Python, because it is an Objective Oriented and great language to learn Objective Oriented programming.

    --
    Linux O Muerte!
  47. Algorithms instead of languages? by smprather · · Score: 1

    https://www.coursera.org/course/algo About the Course In this course you will learn several fundamental principles of algorithm design. You'll learn the divide-and-conquer design paradigm, with applications to fast sorting, searching, and multiplication. You'll learn several blazingly fast primitives for computing on graphs, such as how to compute connectivity information and shortest paths. Finally, we'll study how allowing the computer to "flip coins" can lead to elegant and practical algorithms and data structures. Learn the answers to questions such as: How do data structures like heaps, hash tables, bloom filters, and balanced search trees actually work, anyway? How come QuickSort runs so fast? What can graph algorithms tell us about the structure of the Web and social networks? Did my 3rd-grade teacher explain only a suboptimal algorithm for multiplying two numbers?

  48. Stanford ios Development course on iTunes U by Anonymous Coward · · Score: 0

    Go ahead and hate all you want, Linux FOSS zealots. But the IOS/Objective C development series on iTunes U is spectacular. Watch the 20 hours of videos, do the assignments. Know how to write iPad/iPhone apps before you even get to college. If he's truly a "bright kid" he'll be interested in having a marketable skill set. Who knows, he might have a great app idea and sell enough apps to pay for college.

    NOTE: It's wonderful that you could *also* learn how to write a Linux device driver, putz around with Python, etc. I've done that, do that too. But the moble app stores are a way for you to create a product and immediately get it to a massive, worldwide MARKET. The *Apple* store in particular is the best, fastest way to have a chance at immediate financial gain. But don't listen to me. I'm just a guy who runs a profitable software company with 80 employees.

  49. I'd be concerned if he doesnt know one yet by peter303 · · Score: 1

    Most self-motivated hackers and science types learn something well before HS graduation. And often something is now taught in HS computer classes. Half my freshmen college class knew some programming. And that was before there were home computers.

  50. Coursera, too by Quirkz · · Score: 1

    Coursera, too ( at coursera.org ). I know they have several programming classes in rotation. Not sure which ones will be available during the summer window, but it would be pretty easy to find out or keep an eye on as they open up. I dabbled with a class that involved Python programming to create computer games, and it was both well presented and slightly more fun than the average non-games-programming class. (Proper link: https://www.coursera.org/course/interactivepython - currently TBA.)

    Depending on timing, there may also be related topics (databases, math, logic, mobile devices, etc.) if he wants to take a couple of classes at once. I'm currently taking a databases class from Stanford (previously also released once via Coursera) that's proving educational and quite challenging.

  51. Let the Boy Live! by Irate+Engineer · · Score: 1

    The kid is in the prime of his youth with testosterone pouring out of his ears. Give him a 24 pack of condoms and let him play in the sun with all the nice girls that distracted him in science class. If he wants to tinker with coding, let him follow his passions in the direction of his own choosing. Let him be bored now and again and allow him to daydream a bit. It may give him more focus and direction than you realize.

    --

    Left MS Windows for Linux Mint and never looked back!

    Vote for Bernie in 2016!

  52. Learn Programming with Raspberry Pi by Anonymous Coward · · Score: 1

    Get your son a Raspberry Pi $35

    I work with college interns and use Pi to teach programming, networking, database and web servers.
    Most of the students we hire have practical experience colleges rarely provide this.
    Use magpi online magazine to learn all the programming you need.
    http://www.themagpi.com/
    Have him go through the Pi tutorials and Kahn Academy.
    http://www.geek.com/articles/chips/review-python-for-kids-is-a-playful-introduction-to-programming-20130117/
    http://www.khanacademy.org/science/computer-science

    He will learn alot on the web. Most college programs do not cover much quickly.
    I have a CS Grad degree and worked at Los Alamos on my thesis on Human Genome Project.
    My son is using Pi for building interface projects he is in college as a high schooler.

    http://www.raspberrypi.org/
    Pi Database

    http://www.jeremymorgan.com/tutorials/raspberry-pi/how-to-raspberry-pi-file-server/

    http://www.raspberrypiblog.com/2012/11/getting-started-with-databases-on-pi.html

    Web Server

    http://www.instructables.com/id/Raspberry-Pi-Web-Server/

    http://lifehacker.com/5963554/set-up-a-raspberry-pi-as-a-personal-web-server
    http://www.jeremymorgan.com/tutorials/raspberry-pi/how-to-raspberry-pi-web-server/

    Learning the basics of wireless networks would be a first step.

    http://www.raspberrypi-tutorials.co.uk/set-raspberry-pi-wireless-network/

    Network monitoring is an important job requirement.

    http://raspberrypi.stackexchange.com/questions/3802/raspberry-pi-as-a-network-monitoring-device

  53. Do what you need by Anonymous Coward · · Score: 0

    I learned programming by writing code for stuff I was interested in. I am now a senior systems engineer at one of the biggest tech companies in the world, and the software I write impacts over 200M users... All of that, and I still don't have a formal degree, yet earn in excess of $100K USD in salary. In addition to that, I am the sole author of significant tech patents, author of graduate-level text books, and many articles in tech publications (magazines). If you own any tech with chips in it, the software I wrote runs most of the factories that built those chips.

    In the end? If you like solving real-world problems, then programming today is the path to dealing with that. And finally? Have fun doing it! :-)

  54. Community Colleges by Anonymous Coward · · Score: 0

    Take a course or two at the local community college.

    Don't forget to submit the transcript to your University. Seriously. They demand the transcript, even if the courses do not transfer.

  55. Python Online Material by stefaanh · · Score: 1

    Starting off with the Google's Python Class, https://developers.google.com/edu/python/ , looking for "online course python programming" is the fastest and fun way to get a grip on what programming is.

    For the serious and the bitten, a free and open course aimed at students with little or no prior programming experience:
    Guttag, John. 6.00SC Introduction to Computer Science and Programming,Spring 2011. (Massachusetts Institute of Technology: MIT OpenCourseWare), http://ocw.mit.edu/ (Accessed 07 Feb, 2013). License: Creative Commons BY-NC-SA

    To go beyond syntax and algorithms, expose yourself to elegant open source python code and libraries

    --
    --------
    * Sigh *
    1. Re:Python Online Material by Anonymous Coward · · Score: 0

      This may be an unpopular opinion, but I think the MIT course is a horrible place for a new coder to start. While it's true that it's aimed at people without a ton of experience, I think it's too abstract for people who have yet to see what cool things they can make once they've learned to code. Much better to go with something like learn python the hard way, where you very quickly learn what concrete things you'll be able to use the code for (for example, making a simple game). I think it's better to focus on one thing (the coding), rather than trying to solve a math problem at the same time that you try to solve a programming problem. The MIT course is better left for later, once you already have some confidence in your Python skills. Plus, the LPtHW lessons are simple and encapsulated enough that a new coder will feel like they're progressing quickly and getting things right.

  56. jfcampos by Anonymous Coward · · Score: 0

    Try this>
    www.udacity.com
    or
    www.edx.org

  57. Structure and Interpretation of Computer Programs by Anonymous Coward · · Score: 0

    http://mitpress.mit.edu/sicp/ has full text of the corresponding book (which you might buy for more comfortable reading.) This was MIT's introductory programming course for many years, and is a brilliant exposition of many important ideas in computer science and programming. More recently, it was replaced by a course using Python rather than Scheme. Other possibilities emphasizing program design principles include "How to Design Programs", http://htdp.org/ , which was meant to improve on the MIT course. Some think it did, some do not.

  58. Don't Bother by Anonymous Coward · · Score: 0

    Don't bother. The fact that you/him are already considering a programming course indicates he is probably well ahead of the curve. My biggest disadvantage going into a CS program was already knowing how to program. It made the course (and the entire curriculum) excruciatingly slow. I eventually dropped CS and switched to a major I did not have prior experience with.

    1. Re:Don't Bother by vigmeister · · Score: 1

      This, but with a different conclusion. Learning programming meant I was able to do a different degree while working in the software industry and taking electives or doing a minor in CS. Eventually I ended up being competent in both areas which led to opportunities to dabble in an exponentially larger set of subjects...

      --
      Atheist: Buddhist in a Prius
  59. Can never know too much math by Anonymous Coward · · Score: 0

    If he already has a foundation in math, then just get him a book on logic or abstract algebra or some other kind of discrete mathematics. You can learn programming by practising a lot and discover a lot of the stuff that is common sense (like brain dead design patterns that are needed to work around the limitations of different programming languages) but he'll be hard-pressed to come up with logic or algebra all on his own unless he is a genius in the league of John von Neumann. People tend to think that programming is about knowing hardware and pointer arithmetic or design patterns or particular platforms. No, real programming is a mathematical activity first and foremost. Plus, if you work with a book, a pen and some paper you can work out in the sunshine and jump into the lake without having to worry about someone stealing your laptop. Oh, and it might ease the transition from school to college if he has already seen some of the stuff he's likely to encounter. Programming (as in coding some loops that don't to much) is the least part of a good CS education.

    1. Re:Can never know too much math by vigmeister · · Score: 1

      Seconded...
      oblig xkcd: http://xkcd.com/435/

      --
      Atheist: Buddhist in a Prius
  60. College Class by Anonymous Coward · · Score: 1

    I am currently a sophomore at BYU studying computer science. My High School did not offer any computer science classes because it was too small, so I didn't know any programming languages when I entered BYU (although I did know a good amount about computers). The introductory programming class (CS142 in my case) was perfect for me to learn C++ from scratch. It wasn't too fast or too slow, and I got a good understanding of programming and C++. I would suggest that instead of attempting to teach himself and potentially learning bad coding habits or burning himself out without guidance, he should take an intro programming class when he gets to school.

    TL;DR -- College Intro to programming courses are designed for people who don't know how to program, he should probably just take that.

  61. DigiPen Game Development Camps by ravyne · · Score: 1

    DigiPen offers a game development camp during the summer months, with roaming camps offered in many good-sized cities across the US, and many sessions in their home base of Redmond, WA. Your child may or may not be interested in developing computer games, but its an engaging way to present a good variety of CS topics and for your student to get their hands dirty with real code.

    The camps are taught by Digipen upperclassmen who typically are among the top students, and who attend ~4 weeks of training themselves, before leading their own classes. If you don't live in one of the metro areas their camps service (and don't have family who do that would let your child couch-surf for a week), their on-premise courses will usually hook camp-attendees up with DigiPen students (who's roommates may be home for summer) for room and board. Its not required to do so, but one advantage is that the student is usually willing to provide light tutoring/help with homework, or include your child in their usual (age appropriate) social activities. The school also provides social activities for camp attendees.

  62. IOI by rahenri · · Score: 1

    Since nobody suggested it, I learned way more from competing on IOI (http://www.ioinformatics.org/index.shtml) that my entire CS degree.

  63. The exact opposite of what you want to do. by lattyware · · Score: 2

    The number one thing that programmers need to learn, and from what I have seen, don't at University, is how to read documentation and apply the learnt concept to their code. The easiest way to learn to do that is to learn by doing. Programming is probably the easiest thing in the world that requires a fair amount of knowledge to do without formal education - the resources are vast and great. A mixture of a good language (personally, a huge fan of Python, and it's often considered a good language to learn, but really, anything with a large standard library will do), it's documentation, Google and StackOverflow will be enough.

    --
    -- Lattyware (www.lattyware.co.uk)
  64. Engineering student? by vigmeister · · Score: 1

    For a student with a strong math/science background, MATLAB might be useful to learn especially if he decides to pursue engineering. It helps you to learn fundamental programming (at least procedural programming) concepts while not requiring too much time to get up an running. The symbolic toolbox along with more traditional capabilities will also give him a massive leg up in doing assignments and projects because he can focus on learning concepts in most of his classes rather than executing procedural mathematical techniques (matrix operations and PDEs, I am looking at you...).
    P.S. I know a TI-xx can do some of this, but calculators are the slide rules of the 21st century...

    --
    Atheist: Buddhist in a Prius
  65. Re:Get an internship. See if he likes it. by wezelboy · · Score: 1

    Haha! At my university, they had "Information Systems Management" instead of "Tech Writing". Same thing though.

  66. MOOCs by Anonymous Coward · · Score: 0

    He may want to look into the many MOOCs that are being offered. The MITx/Edx introductory programming course using Python was very good. Coursera and Udacity also offer intro programming courses.

  67. Let him work a project ... and enjoy his summer by enjar · · Score: 1

    He just finished high school. He has a couple months till college. Why not do something enjoyable together? If you are really set on programming, maybe you can do a family web site of some kind? I do hate to break it to you, but online tutorials and samples are the way a lot of stuff gets learned nowadays. Or just by letting the kid run and go do stuff he finds "cool".

    You could also work on college life skills like laundry and cooking.

    But really, it's probably the last significant break he's going to have until he graduates. It's highly possible that next summer he will be doing an internship somewhere, then back to school, then off to work.

  68. My son is going to college by Anonymous Coward · · Score: 0

    Ask him to take C or C++ class at a nearby community college. They do baby sitting, but he can learn if he wants to. He can take it as an audit course without fear of passing or failing. Next ask him to take or audit "data structure " class. So, when he goes to class he will know what is syntax, logic and data structure etc. Also ask him to audit a "logic " class so that he will understand that an algorithm is created based on deductive logic based thinking. Ok he will have enough tool kit for his college. He needs to interact with others and learn to cooperate and coordinate his learning in a group setting. Loners are ultimately unhappy people to a large extent.

  69. Harvard & MIT by Anonymous Coward · · Score: 0

    Harvard and MIT are both offering a FREE "Introduction to computer programming(computer science)" online. You also get a certificate if you pass(60%).
    You can register on www.edx.org
    Enjoy!

  70. If You'd Asked A Couple Years Earlier by Greyfox · · Score: 1
    I'd have suggested checking around for a high school summer program. I did one at Rensselaer back in the mid 80's between my freshman and sophomore years and actually managed to pick up some useful stuff there. My high school computer teacher noticed the difference in my abilities the next year. So did I. I still have an assembly language textbook from that class, one of my few college textbooks that I kept all these year. Actually now that I think of it, my lisp book comes from that program, too.

    At this point he might just be better off just learning about the various tools he'll be using. The college courses seem to gloss over editors, build systems and debuggers. Being constrained by your setup wastes a lot of time. Learning the basic steps involved to compile code for C, C++ and Java, build systems (make, ant, maven,) editors, project layout and version control in advance would go a long way toward making the first few months a lot smoother.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  71. If you don't have the gumption.. by Anonymous Coward · · Score: 0

    ..to learn it on your own, more school isn't gonna help. Just go to college and have fun in the summer. Don't beat yourself over the head.

  72. Check local museams or libraries by Bob+the+Super+Hamste · · Score: 1

    It wouldn't surprise me if local museums or libraries in your area offer some introductory programming courses. I know in my area I see them from time to time and the cost is usually in the $100-$200 range. Also have you checked to see if there were any community education courses offered through the school district over the summer as again in my area they seem to have tons of these and send out a booklet with the listings a few times a year.

    --
    Time to offend someone
  73. Programming classes by Anonymous Coward · · Score: 0

    Hey,

    I have just read a couple of the comments and I didn't see this posted, which I was surprised. If you want free classes, you can look at https://www.coursera.org/category/cs-programming. Some of these may be to complex but classes are constantly added, so there might be one or two that will fit what you are looking for. They are typically taught by college professors.

    IMO, I wouldn't start with python. I would teach him a type casted language first, pick C or Java.

    Good luck to your son.

  74. Live online class from Art of Problem Solving by Anonymous Coward · · Score: 0

    He can look at online courses. One site to check out is the Art of Problem Solving (http://www.artofproblemsolving.com/School/classlist.php). The course is taught live with an instructor and meets online once a week. The next three month session starts on March 12. The price is reasonable -- $275.

    Introduction to Programming (http://www.artofproblemsolving.com/School/courseinfo.php?course_id=cs:intro)

    This course is an introduction to computer programming using the Python programming language. This course covers basic procedural techniques such as variables, data types, selection, iteration, and functions. It will also introduce students to object-oriented programming. We'll also look at various general programming concepts, such as algorithm design and debugging. By the end of the course, students should be able to construct a moderately-sized Python program.

  75. Touch typing is taught in elementary school! by sgtrock · · Score: 1

    Let's come up with some relevant suggestions, shall we?

    1. Re:Touch typing is taught in elementary school! by Kaldaien · · Score: 1

      I would have figured with all time kids waste on Facebook, Twitter, texting, etc... these days that any internet connected teen would already have this skill set whether taught in school or not :)

      I learned to touch type in IRC in the mid 90's, long before I decided to take up programming as a profession. I almost certainly would not have gotten involved in programming before learning to type.

  76. my opinion by forgottenusername · · Score: 1

    No classes, go someplace fun. Bring a laptop if he must and peck around at the myriad of online 'learn to program X' or something like the MIT open courseware compsci class (which uses python).

    The point is - the time between highschool and college is too precious to waste on some class, he should be out traveling as much as feasible imo. After college if he sticks with tech, he'll probably have the intro level jobs that take advantage of college kids by burning tons of hours and will look fondly on his time spent on pure vacation/downtime.

  77. how about by HPHatecraft · · Score: 1

    A book or course on critical thinking? Learning how to think, how to deal with data -- what is useful, what is bull -- is supremely useful.

  78. Sumer coding camps by PodcampWhit · · Score: 1

    I've sent my son to ID Tech Camps- he's learned a bit of C++ and to build ipod and iphone apps. They have classes at different levels, and the instructors are actual geeks who do this stuff for a living during the rest of the year, so I felt it was worth it, and he wants to go back again this summer, so.... he'll have a pastier complexion than his friends at other summer camps, but he's also happier.

  79. Too late by Anonymous Coward · · Score: 0

    If your son hasn't gone public with his startup by now then he is a total loser and should drop out of life altogether. Srsly.

  80. Lots of training (free and paid) courses available by Anonymous Coward · · Score: 0

    http://thecodeplayer.com/
    http://www.codecademy.com/#!/exercise/0
    http://www.khanacademy.org/cs/tutorials/all-tutorials
    http://teamtreehouse.com/
    http://education-portal.com/articles/Colleges_and_Universities_that_Offer_Free_Courses_Online.html
    https://www.coursera.org/
    http://www.udacity.com/
    https://www.edx.org/courses
    http://www.openculture.com/freeonlinecourses
    http://lifehacker.com/5974605/learn-beginner-and-advanced-htmlcss-skills-for-free
    http://www.openculture.com/free_certificate_courses

  81. Classes are useless by Anonymous Coward · · Score: 0

    Code camps are best.. you don't mention which area of the country you're living in, but they should be easy to Google.

    Code academy has some pretty amazing easy to follow, confidence building tutorials and lessons. Short of being able to find a code camp, doing his own stuff randomly and experimenting with various languages is likely going to yield the most useful experience for him.