Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Education Programming

Summer Programming Courses Before Heading Off To College? 183

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."
This discussion has been archived. No new comments can be posted.

Summer Programming Courses Before Heading Off To College?

Comments Filter:
  • Python (Score:5, Insightful)

    by Kimomaru ( 2579489 ) on Thursday February 07, 2013 @04:26PM (#42823903)
    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.
    • Re: (Score:3, Informative)

      by spongebue ( 925835 )
      If you go that route, I like Learn Python the Hard Way [learnpytho...ardway.org]. 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.
    • Re: (Score:3, 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 pr

      • Re: (Score:3, Insightful)

        by Kimomaru ( 2579489 )
        "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. Ever
        • 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.

    • Starting off with the Google's Python Class, https://developers.google.com/edu/python/ [google.com] , 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/ [mit.edu] (Accessed 07 Feb, 2013). Li

  • by ShieldW0lf ( 601553 ) on Thursday February 07, 2013 @04:27PM (#42823915) Journal

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

    • Comment removed (Score:5, Insightful)

      by account_deleted ( 4530225 ) on Thursday February 07, 2013 @04:43PM (#42824133)
      Comment removed based on user account deletion
    • 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*

      • 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.
    • by seyfarth ( 323827 ) on Thursday February 07, 2013 @04:58PM (#42824309) Homepage

      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.

      • by ShanghaiBill ( 739463 ) * on Thursday February 07, 2013 @05:31PM (#42824823)

        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.

        • 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.

      • by Zordak ( 123132 ) on Thursday February 07, 2013 @05:33PM (#42824851) Homepage Journal

        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.

      • by mwvdlee ( 775178 )

        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

      • by admdrew ( 782761 )

        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.

        Second

      • 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

      • by Thiez ( 1281866 )

        > 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

    • This + Project Euler == Profit!
    • 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.

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

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

      • 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.

    • 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...

  • Learn X The Hard Way (Score:2, Informative)

    by Anonymous Coward

    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".

    • I would recommend Udacity's CS 101 course [udacity.com] 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 env

      • 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.
  • 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.

    • 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 simpl

      • 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
    • by Cenan ( 1892902 )

      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?

  • by the eric conspiracy ( 20178 ) on Thursday February 07, 2013 @04:30PM (#42823961)

    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.

  • by Anonymous Coward

    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.

    • 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.

  • 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 [manning.com] teaching those very skills. Alternatively, Python is a great be
  • by eldavojohn ( 898314 ) * <eldavojohn@noSpAM.gmail.com> on Thursday February 07, 2013 @04:37PM (#42824053) Journal

    Even though he is a self-starter ...

    Okay, awesome! What you should do is get him a raspberry pi [newark.com] 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 [monoprice.com]. Right now, B&H Video has a deal where you get 2 x 16GB cards for $15 [bhphotovideo.com] 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 [amazon.com] 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 [amazon.com] but I prefer this one more [amazon.com]. Okay then you send your kid here [raspberrypi.org] 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 [elinux.org] for all this stuff. Then you send him here and make him do these tutorials [cam.ac.uk]. Then you make him read all the issues of the MagPi [themagpi.com]. 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.

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

    • 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.

      • by eldavojohn ( 898314 ) * <eldavojohn@noSpAM.gmail.com> on Thursday February 07, 2013 @05:10PM (#42824471) Journal

        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?

    • This is actually pretty damned good advice. I started off with beer, boredom. a bong, and BSD.
    • This is the best thing I've ever read on the entire Internet. Hands down.
    • If you do this, make sure you order now, as they are on 6 week backorder.

  • by Anonymous Coward

    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.

  • Codecademy (Score:5, Informative)

    by djKing ( 1970 ) on Thursday February 07, 2013 @04:38PM (#42824063) Homepage Journal

    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.

    • Codecademy [codecademy.com] 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.
  • doing it wrong (Score:5, Insightful)

    by LodCrappo ( 705968 ) on Thursday February 07, 2013 @04:42PM (#42824123)

    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.

    • 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 ...

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

    • 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

    • 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 [coursera.org] - currently TBA.)

      Depending on ti
  • Come to Cambridge (Score:2, Informative)

    by mcmonkey ( 96054 )

    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 term

  • 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
  • MS Office course (Score:3, Insightful)

    by Billly Gates ( 198444 ) on Thursday February 07, 2013 @04:47PM (#42824185) Journal

    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.

    • by Quirkz ( 1206400 )
      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.
  • Might I suggest he gives a shot at Robocode [robowiki.net]? If anything can give him motivation to program, making robots shoot each other will.

  • by burisch_research ( 1095299 ) on Thursday February 07, 2013 @04:51PM (#42824233)

    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.

  • by Anonymous Coward

    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?

  • 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 [wikipedia.org]
  • 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 -
    • by maas15 ( 1357089 )
      After a moments retrospect, see if your son can take a humanities course over the summer that will transfer to the new school ;).
    • 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.

  • by Dahamma ( 304068 ) on Thursday February 07, 2013 @05:08PM (#42824425)

    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?

    • by gl4ss ( 559668 )

      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.

  • 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 se

  • by sureshot007 ( 1406703 ) on Thursday February 07, 2013 @05:14PM (#42824545)
    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.
    • 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.

    • 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. ;)

    • 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.
  • Udacity [udacity.com] and Coursera [coursera.com] 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.

    • OOP is one paradigm but I'm thinking of enrolling in Martin Odersky's functional programming course [coursera.org] - 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?!)

  • 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

  • by pla ( 258480 ) on Thursday February 07, 2013 @05:36PM (#42824923) Journal
    [...] 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).
  • 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".
  • You sound like a helicopter parent. You should back off your kid, and LAND.

  • 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?

  • 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.

  • 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.
  • 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 themse
  • 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.
  • 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 math

  • 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

  • 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

  • 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.
  • 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

I tell them to turn to the study of mathematics, for it is only there that they might escape the lusts of the flesh. -- Thomas Mann, "The Magic Mountain"

Working...