Enter Store - AP Online Classes - Who We Are - Volleyball - PHAA diploma Program
Ideas for helping kids who are thinking about computer programming jobs in the future...
I’m opting to share today an email correspondence my son Jacob and I had recently with a homeschooling mother from the Chicago area, writing for ideas about how her son might get a future job in the computer programming field (hopefully at Google, where Jacob works). I think many of these ideas may be helpful to others, too—and lots of links for further info and programs. I think this also ties in a bit to Kathy Wingert's wonderful piece (just below this one) on how to help a 'science kid' when you yourself weren't necessarily a 'science person' yourself. By helping our kids have good opportunities, encouraging them to learn on their own, and keeping alert to new options and other people and tools, our kids can indeed 'take off' in the field of their dreams. Enjoy!
First the email from the homeschooling mom:
And now here’s my response, followed by our son Jacob’s response.
Hi Sherri-- Thanks so much for writing, and thanks too for looking over our website. Hope you found some of the articles there a good help to you.
Our son Jacob majored in computer science at Carnegie Mellon University, and first worked at Microsoft as a programmer for about 5 years, and now has been with Google for about 3 years (he definitely prefers Google, though Microsoft had been his 'dream job' while in high school/early college).
Jacob *always* played around with computer programming-- my husband knew a bit, and showed Jacob some basics when he was about 8. The rest is history. By 5th and 6th grades Jacob was winning some national computer programming competitions for kids (see http://www.uwp.edu/sws/usaco ). Jacob had good materials to use-- programming books with software included, so that he could teach himself and 'play around' with ideas. He basically experimented with programming almost *daily* every day of his homeschooling years at home.
Things are a bit different now, with different languages being used, and more of an emphasis on working in teams of students to complete parts of 'bigger projects' using the JAVA language, use of the Internet, etc. Jacob is almost 30, so things were a bit different when he was growing up, and his [See the article on our website by Cynthia Lang and AP Computer Science...] programming tasks were all individual efforts. He rarely (never???) had much in the way of commercial computer games, so if he wanted something, he programmed it... and was incredibly creative about it all. He was also VERY advanced in mathematics, and that certainly helped with all his programming tasks (started learning calculus in 8th grade, say.... something NONE of my other 3 ever would have attempted-- or thought was great fun!). A very strong math background is key for getting into a good computer programming major in college.
Jacob was the sort of kid who could just *look* at those nifty 3-D pictures from 'Magic Eye' and figure out how to program his own.... and then proceeded to do so, in all sorts of contexts. I felt amazed just being able to *see* them.... it would never have occurred to me to try to understand how they are programmed!
I myself know nothing at all about programming computers (except what I overhear), though my husband was pretty fluent in it all (though Jacob pretty quickly went far beyond what my husband knew... and my husband was all self-taught in the field...).
I'd suggest some goals to have in mind-- prepare your son to take AP Computer Science eventually, buy some good current books on programming (maybe starting with things like the 'Dummies' series if need be...). Check out local community college programming classes, or summer 'camp' type programming courses for teens. Oh, and here's a website from one of my evaluation students in PA, who's very advanced in programming and website design-- you might want to contact him for good ideas, too. He's very knowledgeable: http://www.benlind.com This is his page which describes what he does for his paid work (he's a 10th grader!) in website design. This next link is Ben's page about other computer-related things, with lots of info for people getting started in the field: http://www.tutwow.com
Best wishes to you all, and especially to your son! My son actually helps do interviews for new staff at Google sometimes-- maybe I'll see if he could share what they are looking for. -- Susan Richman
And now on to Jacob’s response to Sherri’s letter:
Here are some tips for how to get a job in Computer Science.
1. Start programming and write a lot of code. Most employees at Google starting programming in high school or earlier and have written a lot of programs for fun in addition to programs they write for work.
2. Java is a good language to get started with as it is relatively easy to learn and has lots of great tools and documentation on the web. There are plenty of good free resources to get started writing programs in Java. Google and many other large companies write a large portion of their code in Java. Many universities now use Java for all of their computer science courses. [Editor's note from Susan: Java is also the language used in AP Computer Science now]
Some links on Java:
<-- Eclipse is a good free text editor that makes it easy to develop Java apps.
http://math.hws.edu/javanotes/ <-- free online textbook on getting started with java (not sure how good it is but it seemed reasonable after a quick glance)
After you are familiar with the basics of using Java, GWT (Google Web Toolkit) provides an easy way to use Java to create web applications. This will let you write Java apps and easily share them with your friends over the web.
You'll want to use the free Google app engine product to serve the applications you create.
3. Make sure you study a lot of math. Computer science and math are very closely related. Discrete math is more important for most programming than linear math.
4. Once you have around a year of programming under your belt, start trying online programming competitions. Some competitions such as topcoder.com let you do practice problems on their website and compete in weekly informal competitions.
Placing well in these sorts of competitions will really help you get into a good computer science college program and will help with programming internships and full time jobs.
5. Most of all. Make sure that you find the programming you do while in high school fun.
Contests and Scholarships
Evaluations & Portfolios
High School Conference
Math by Kids
Museums and PA Resources
PA Cyber Charter Schools
PHAA Diploma Program
PreK - 6th grade
Sports and Fitness
Writing Club Ideas