Scott’s visit to the Udacity office!

We love celebrating our students’ accomplishments! Meet Scott, a Udacity student and software developer at Prezi. Scott was a mathematics grad student when he discovered Udacity, took Intro to Computer Science, Web Development and Design of Computer Programs, and started his incredible journey towards becoming a developer.

Scott wrote to us about his journey from graduate studies in mathematics to working as a developer:
“You guys provided me with an entry point into the wonderful world of programming, where I can create things which up until now I thought of as black magic. I’m excited about my future, curious about how I’ll be using my programming skills in 10 years, and I’m just generally a happier guy. So thanks a million and long live Udacity!”

Scott is continuing to learn while on the job as a developer at Prezi:
“I feel very fortunate to have landed a job where they hired me despite the obvious holes I have in my education compared to fresh CS grads. Prezi recognized that I could learn quickly, that I liked to stretch myself, and that I had the potential to grow within their company.  They’ve had me read classics like the UNIX programming environment, C, and Data Structures and Algorithms all while gaining lots of on-the-job experience.  My first project actually involved creating a django web app from scratch which used Google APIs to sync employee contact information. So I got to use lots of Python 🙂
I’ve adopted Peter Norvig’s philosophy that there’s no rush to become a better programmer. Take 10 years to do it.”

Students first!

Scott also has some advice for other online learners who want to become developers. Read on:

1. Learn with a friend.

I had a friend who started to program about the same time as I did, and I suggested that we meet up and try to do some challenges from projecteuler.net. We met many times over the last year, discussing what we’ve learned, sharing tips, etc. We even took 2 Udacity courses around the same time.  Being able to discuss things with him was invaluable and certainly accelerated the learning process for both of us.

2. Never go too long without doing some actual coding.

It’s easy to spend a lot of time reading/watching something new, but if you don’t actually code it, chances are you’ll forget it. Intersperse your long-term study plan (like a Udacity course) with one-day challenges like from projecteuler.net or (later on) hackerrank.com.

3. Have a personal project as a long term goal.

I knew that my big web app ideas would never be realized if I had never built a web-app before.  So I decided that, once I felt ready enough, I would first create a small personal website to practice what I learned, and then I would try to create something slightly more complicated (but still not too ambitious). This ended up being a study tool for my Hungarian students at hungareader.appspot.com.
You will learn far more while working on your personal project than in any individual homework assignment. Your projects also serve as proof that you know how to code when you apply for a job later.

4. Keep your goals in mind when looking for what to study next.

It’s easy to get overwhelmed by the wealth of study material out there, and it’s difficult to decide what you “should” study. The point is that there’s no right answer.  All you can do is think about your goals and ask yourself “Do I really need to know this?” If you don’t think so, then only read enough to get a basic understanding of what it is you don’t know and then move on (like in the earlier blog post here about making your unknown unknowns into known unknowns).

5. Return to fundamentals.

Prezi saw that I could learn and create, but they recognized that there were some serious holes I should fill. I felt it too, listening to my coworkers throw around many words I wasn’t familiar with.  They gave me classic books to read to supplement my knowledge, and now I understand why these topics are so important.  For example, it’s pretty important that you are no stranger to your command line on the job.