My Advice to These High-School Interns
I sat patiently at the round table while eight high-school interns settled into their seats. This “speed networking” event allowed them fifteen minutes to ask me questions about my career in tech. “Welcome,” I said when it was time to begin. “Let me tell you why I’m sitting here with you today at this table.”
The event was put on by Saturday Academy, a great Oregon-based program that connects students in grades two through 12 with science, technology and math professionals. They have an apprenticeship program where high-schoolers do summer internships at local companies. I was at their Symposium event where the youngsters present their internship results. It’s a lot of fun to see how much sixteen-year-olds can absorb in a few weeks, and I highly recommend getting involved if you’re in the Portland area.
I quickly went through my career story to build a little credibility, and let them know it wasn't easy getting started. When I was their age my math teacher was kind enough to teach a programming class. It was so fun making simple little programs that I decided to major in Computer Science at college. Unfortunately I graduated in 2002, right after the dot-com bubble had burst. There weren't a lot of jobs available, and I was competing with people who had been laid-off from failing companies and were now taking any job they could find. “I wish someone had given me this advice,” I said to get their attention. “It might have helped me land a job earlier.”
At this point I looked to a student across the table and said, “So let’s pretend you just graduated from college and I’m looking at your resume.” I held up the imaginary document, inspecting it carefully. “Hmm… there’s nothing on it, except maybe this internship you just finished. If I’m the hiring manager, how do I know that you’ll be a good entry-level software engineer? What clues have you given that show your passion for programming? Is there any evidence?”
These are definitely the types of questions I ask myself when browsing through applications for a junior position, or any position for that matter. So, these were my tips:
Step 1: Build Something, Then Make It Pubic on the Internet
Even if it’s as silly as a webpage with a button that says “Jill made this button!” when you click it, nothing impresses quite like a working web app. These days you can build something for zero dollars using free PaaS offerings from services like Heroku or AppFog. Getting a super simple Android or iPhone app in an App Store is also an eyebrow-raising accomplishment. Why? Because it takes time and persistence. You have to get your dev tools set up. Even learning the basics can take a quite a while as you go through the tutorials. After you customize your app a little and make it do something cool, you’ll probably be proud of all the leg work you put into it, which brings me to my next tip…
Step 2: Blog About It, Maybe Even Tweet!
Blogging is also free on sites like WordPress. You can document your struggles to get your app working, and post links to the helpful tutorials and tools you found to get unstuck. It’ll be great evidence for your future employer, proving that you’re able to find relevant information and use it to overcome obstacles. If you have a Twitter account you can provide even more information about your interests, as tweeting is an easy way to share links about technology you think is cool and the industry trends you’re reading about. But, although many developers tend to be self-taught, there’s no substitute for getting advice from industry veterans. So…
Step 3: Go to User Groups
Most cities have monthly user groups for specific technologies. They tend to focus on specific languages (e.g. Python, Java, C#) or broader topics like DevOps and Big Data. In Portland we have Calagator, a site that lists upcoming events. I’m sure there’s similar resources for finding meet-ups in your neck of the woods. These events are great places to meet people working around your area. Feel free to ask them advice on how to do things, what tools to use, and which companies are hiring. They’re also well attended by recruiters, who are more than happy to help aspiring programmers find their first job. User groups are great for making connections, but it’s good to show some experience on your resume, which leads us to my final recommendation…
Step 4: Internships
At this point I was preaching to the choir, as these students already had one internship under their belt. It’s always fun to ask them, “What were some of the biggest lessons you learned over the summer?” Later in the day I attended their presentations, and several mentioned how strange it is to sit in a cube all week solving problems. It’s much different than going to class, and it takes a little getting used to. At my company we like to give our interns freedom to find their own solutions independently, then provide some guidance when they get stuck. Learning how to plan with others and execute individually takes a lot of practice. After your internship you’ll have some great real-world experience and another few bullet points to brag about on your resume.
That’s all my advice. It was a bit hard to get through all that in the fifteen minutes I had with each group. Perhaps I should’ve recommended contributing to open source projects? I’m sure there are other useful tips you could think of, so feel free to leave a note on the side if you’re so inclined. There’s a steep learning curve to climb for the next generation joining our ranks. I definitely recommend getting involved in local youth mentoring programs if you have the time. The internships I had were a huge help, and I’ll always be grateful to the folks who helped me get started in my adventures in software development.