May 2015

Volume 30 Number 5

Upstart - First Day

By Ryder Donahue | May 2015

About six months ago, I graduated from college with a bachelor’s in Computer Science. I had some success under my belt, including, but not limited to, being on the winning team of the Microsoft U.S. Imagine Cup, and publishing an app in the Windows Store that has earned more than 400,000 downloads.

When I got a job offer to work at Microsoft, I was excited to join the largest software company in the world. Given my portfolio and experience, I felt prepared for whatever challenge was thrown my way.

How naïve I was.

Every programmer understands the learning curve. Our daily work often involves encountering something unfamiliar or difficult. It becomes a constant war of knowledge acquisition and application. The learning curve I experienced at Microsoft challenged me on a whole new level. I had never seen, let alone worked on, such a large and mature code base that had so much information locked within tribal knowledge.

To give you some perspective, a week before I started working, I was writing about 2,000 lines of quality, production-level lines of code a day. After my first week of work, I had written about 10 lines. Which didn’t compile. The development environment alone took a couple of weeks to set up. This included setting up all the necessary software, source enlistments and, of course, the permissions ... so many permissions.

Given the type of software we write and maintain, I’m not sure if there’s a better way to ease the transition into enterprise software development.

This may paint a grim picture for new software engineers entering the professional field, but I can’t say enough about the supportive nature of everyone I’ve worked with at Microsoft. Like any workplace, the people you work with define the environment, and mine has been a blast. I can’t stress enough the importance of maintaining a positive attitude, and being able to have some fun both with the project and the team. When you spend more than eight hours a day, five days a week with them—and sometimes, a lot more—your team becomes your second family. It’s important to get along with them.

This column seeks to offer advice and guidance to developers just getting started, so I’ll leave you with some. My biggest regret as a young programmer was not participating in an internship, which is not only often paid, but provides invaluable, real-world experience. Had I taken a summer to intern with a company such as Microsoft, I might have learned a lot of lessons before my official career had even begun—and done so under far less pressure.

There are other options. For instance, contributing to a large open source project. You’ll enjoy the same shock I encountered, wrangling source code that’s likely older than you are and has more contributors than people you’ve met in your entire life. But you’ll get comfortable reading large code bases and that confidence will serve you well when you walk through the door on the first day of your new career.

Also, be prepared to struggle with your own expectations. For me, it was humbling to go from writing thousands of lines of code a day to just a handful, and sometimes spending half a day trying to get an application to compile. This was especially difficult when my teammates were confidently finishing work items left and right. But as a new employee, this is completely normal. Don’t be afraid to ask for help. Remember, everyone around you wants to see you succeed. Your teammates have all been through the same experience you’re going through and understand that you’ll have questions.

When I started at Microsoft I was told it would take three to six months to get grounded and gain a proper sense of direction. That sounded preposterous on my first day, as I had never needed that much time to adjust to anything! Having just passed my seven-month anniversary here, I’ve come to the conclusion that this bit of advice was spot on. The quicker you acknowledge and embrace the challenge of your new career, the less you’ll stress the small things and the more you’ll enjoy the journey.

Ryder Donahue is a software developer engineer at Microsoft. Originally from the Hawaiian Islands, he now resides in Redmond, Wash., with his fiancée and their cat, Marbles.