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."
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.
The best course he could take for computer programming is a touch typing course. And that's by a huge margin.
-1 Uncomfortable Truth
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.
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..."
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
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.
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.
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.