Advice to a college sophomore programmer
Background: One of the new responsibilities I have at Groupon is getting lots of awesome developers to work here. [If you are or might be an awesome developer, email my work address - peterc@groupon.com - and check out the job openings at http://groupon.com/jobs ] So I’ve put myself out as a representative of Groupon’s dev team, announced hiring, answered questions, etc. In one week, two people have responded asking about summer internships.
[HILARIOUS UPDATE: I left off one sentence that has confused at least one person so far. Groupon doesn't have an internship program right now. We're just barely starting on campus recruiting for college graduates. The friendly advice was a consolation prize since I couldn't help with the internship. Sorry for the confusion!]
Here’s some advice I gave them through email that I thought was worth posting publicly:
- If you’re already reaching out to companies when you’re a sophomore , you should be commended for being so on top of your career this early in school. Too many people wait until two months before (or even after) they graduate. Even if you don’t get the internship, you make an impression.
- If there’s an established technology you’d like to learn, a book is still a good place to start. There’s a balance of theory and practice, it will be edited and consistent, and give you a complete end-to-end look at the technology. But don’t just read the books, do the exercises in them. If you want to learn Rails, the book Agile Web Development with Rails has you build a complete ecommerce website and you can do it in a week or so. Sometimes doing comes before understanding (or rather, you can’t understand without doing). EDIT: How do you tell the good tech books from the bad? Ask someone who is good at that technology. Too shy? O’Reilly and Pragmatic Programmer books are generally good, and you can often get good recommendations by searching on StackOverflow or SearchYC.
- On that note, PLEASE don’t wait for a class to learn a new language or technology. CS classes have their place, giving you a broad foundation of principles and practice in certain specific subjects. But many techniques (e.g. source control), technologies (e.g. server administration, nginx configs, etc), and languages (many schools teach only C and Java) won’t EVER be covered in school. In the workforce, you’ll have to learn stuff on the fly and on your own for your whole career, so you need to start learning things outside of class now if you want to be decent.
- Don’t just focus on specific languages or frameworks, learn some general programming skills. Books like Structure and Interpretation of Computer Programs (free online at http://mitpress.mit.edu/sicp/full-text/book/book.html) , Clean Code, The Pragmatic Programmer, etc are great for that.
- If you glossed over that last point, go back! Reading SICP, watching the video lectures, and doing the exercises will make you a fantastic programmer.
- Learn at least one “obscure” language. It will help you learn things that are hard to learn in mainstream languages like Java. I’m partial to Lisp and the book Land of Lisp is a great, fun way to learn that language.
- Find a project. It doesn’t have to be something meaningful or important, just do it! Write a scraper to find the nearest Starbucks to you. Make a group management website for your study groups. Write software to control a LEGO mindstorm robot. Just do something, post projects online, put code up on GitHub, and write something about what you did, and put it on a blog. This gives you a public record of interest in programming outside of work, which is very, very appealing to employers and probably the number one thing in getting to an interview. It will also give you practice writing and show you how you improve over time.
- Get involved with developers in your area. If there are meetings in your area, you can find them in 5 seconds thanks to the other Big G. If you can’t find any, it’s because those things take time and hassle to arrange. Volunteer to help with the meetings, find locations, etc, or organize your own. That stuff isn’t hard, it just takes time and the confidence to do. That way you will generate a lot of goodwill and make connections with people you can work with and learn from.
So there you go. $100 worth of books to buy, a years worth of homework, and you will have made yourself more appealing to employers than most college graduates!
Bonus points: If someone answers you saying “We’re not ready now but get in touch next year”, make sure you do it!


Hey Peter,
Thanks for the advice. I’m a senior and I sent you an email two weeks ago with similar questions – it’s entirely possible it never got delivered though as I’m having SPF difficulties. Best of luck at Groupon, and hopefully talk to you soon.
Best,
Kevin
Kevin Burke
17 Jan 11 at 3:41 pm
[...] Advice to a college sophomore programmer (pchristensen.com) [...]
SICP « ahmasmi
18 Jan 11 at 6:50 am
[...] Advice to a college sophomore programmer (pchristensen.com) [...]
Languages – 2 | soft starts
22 Jan 11 at 3:43 pm
[...] ã€è‹±æ–‡åŽŸæ–‡ã€‘ï¼šAdvice to a college sophomore programmer [...]
ã€è½¬è½½ã€‘:给想当程åºå‘˜çš„大二å¦ç”Ÿçš„建议ï¼_邹嘉åšå®¢
15 Feb 11 at 11:56 pm
[...] Advice to a college sophomore programmer [...]
给想当程åºå‘˜çš„大二å¦ç”Ÿçš„建议
16 Feb 11 at 4:48 am
[...] Advice to a college sophomore programmer åˆ†äº«æ–‡ç« TwitterDiggFacebookDeliciousStumbleUponGoogle BookmarksLinkedInYahoo [...]
给想当程åºå‘˜çš„大二å¦ç”Ÿçš„建议
16 Feb 11 at 10:14 am
[...] 英文原文:Advice to a college sophomore programmer [...]
给想当程åºå‘˜çš„大二å¦ç”Ÿçš„建议 | DoMyself(DM)
16 Feb 11 at 10:36 am
[...] 原文:Advice to a college sophomore programmer [...]
给想当程åºå‘˜çš„大二å¦ç”Ÿçš„建议 | 对她说:
18 Feb 11 at 11:24 am
[...] 导读:本文是从《Advice to a college sophomore programmerã€‹è¿™ç¯‡æ–‡ç« ç¿»è¯‘è€Œæ¥ã€‚本文作者Peter在Grouponå…¬å¸çš„一项新èŒåŠ¡æ˜¯ä¸ºå…¬å¸æ‹›å‹Ÿä¼˜ç§€çš„å¼€å‘äººå‘˜ã€‚åŒæ—¶ï¼Œä½œä¸ºå¼€å‘团队的代言 人,他还负责å‘布招è˜ä¿¡æ¯ã€å›žç”问题ç‰ã€‚在过去的一周,他对两个询问å¤å£å®žä¹ 工作的å¦ç”Ÿè¿›è¡Œäº†å›žå¤ã€‚ [...]
给想当程åºå‘˜çš„大二å¦ç”Ÿçš„建议 « æ— çŸ¥çš„æˆ‘
2 Mar 11 at 9:34 pm
[...] think when programmers sophomore Suggestions Introduction: this article is from theAdvice to a college sophomore programmer"This article translation.In this paper the author Peter Groupon company in a new position for [...]
To think when programmers sophomore Suggestions
8 Oct 11 at 12:16 pm
[...] two emails I sent, with the personal bits removed. This is similar to earlier advice I wrote to a college sophomore and someone whose resume was misrepresenting [...]
Mentoring Made Easy at What's In Peter's Head
30 Apr 13 at 6:44 pm