The Wonderful Quest Of A New Programmer

Codecademy

I started with Codecademy’s Code Year track and have been learning programming progressively ever since. It took me months to start and almost one year to get into the habit of coding frequently.

By Dilys Sun (Student, Codecademy)

Congratulations on learning how to code! Chances are you have already envisioned how the coding knowledge may serve you. You are off to a great start, but now what? Here’s your starter battle chest of weapons and armors. Good luck on your new quest.

There is a plethora of free and openly flowing resources on the Internet (e.g. tutorials, podcasts, YouTube videos and blog posts). It is easy to get lost or overwhelmed. The key is to find your anchorage, somewhere to dock when you get overwhelmed or bored.

You may know me as the “Codecademy Girl” from the Crunchies 2012 awards. My story is very simple: I started with Codecademy’s Code Year track and have been learning programming progressively ever since. However, you may not know that it took me months to start and almost one year to get into the habit of coding frequently.

The Great Wall – Building a habit, one “byte” at a time

The irony of making a great intention into a great resolution is that it almost never succeeds in one big effort. It is best to start small and slowly chew up the books when dealing with complex subject areas like computer science and programming. After all, the Great Wall was not built in one day. A thin yet continuous curriculum stream will nurture your interest while keeping stress at bay.

I like using Codecademy and always go back to it for the fundamentals, reviews, interactive design, and occasional challenges or games. It serves as a good alternative especially when reading through tutorial books is not your learning style. I love the badges too! Tree House has a similar badge-based modular curriculum. The multimedia visual aids make the curriculum interesting and beginner-friendly. Any of the “classic” books and PDF’s in the last section of this post may serve as a learning guide (e.g. Learn Python the Hard Way, THW series).

The key is to anchor yourself somewhere, so that you can go back to the basics whenever you are overwhelmed. Whatever you do, preserve the kindling of fire – the minimum motivation to keep going. Even when you temporarily lose motivation, keeping the stream going will ensure that you can rekindle somewhere along the road, when new excitement ignites.

The Sword in the Stone – finding your weapon of choice

Millions have learnt how to program in school, but plenty of us have not, and that is quite okay.  We all have different learning styles, so it is natural that conventional education may not be our best match. There are platoons of education resources online and away from the desk: conferences, workshops, tutorials, Codecademy, Coursera, Khan Academy, iTunes U, and open education of MIT.

However, just because it’s free does not mean it is the best use of your number resource: time. Please carefully consider your favorite learning style and choose what is best for you.

  • Codecademy – interactive, bite-size coding lessons. Completion of a lesson is often followed with a challenge and a badge as a reward. Crunchies Education Startup award winner of 2012.
  • Coursera – a large collection of academic lecture videos and a full schedule of online classes with live forum, homework, exams, even certificate of completion.
  • Udacity – creatively designed, tailored video lessons teach fundamentals like programming concepts for non-programmers, but with a twist – Search Engine Optimization.
  • Khan Academy – a new programming section of short YouTube-like walkthrough tutorials.
  • Treehouse – a good destination for visual thinkers that also enjoy multi-media resources such as video casts, a badge-supported learning system, dotted with quizzes.
  • CodeSchool – an innovative, original curriculum re-designed into games to facilitate learning. Also the host of two popular get-started tutorials: Try Ruby and Try Git.
  • iTunes U – a large collection of academic lecture videos, fresh and raw from the lecture halls of top universities. Famous for hosting Stanford’s iOS app development lessons.

Tower of Babylon – choosing your first language

There is no shortage of programming languages out there, and they morph and evolve frequently. Thankfully, unlike building the Tower of Babylon, practicing “speaking” multiple programming languages may not be so confusing. Developers often agree that it is easier for them to learn new programming languages when they already know at least one really well.

Finding your perfect language is like finding that prince charming. It will take time. It is okay to pick one for the sake of getting started. Beginners sometimes prefer high level intuitive languages like Javascript and Python because they are more English-like and thus easier to understand than C or Java. Those who prefer C or Java, closer to machine language, enjoy learning about the hardware concepts along with the software fundamentals.

Learning programming involves a lot of self-help, so a language with a strong user community is preferred for beginners. I started with Javascript, found it relatively easy to hop to Python later on, and even to Ruby within a matter of months.

The Library of Alexandria – knowing the classics of modern programming

These “books” are all available online in free soft copies. They are the easiest to access, yet I list them last. A popular book series promotes learning coding “The Hard Way” because there is no other way to learn the taxing yet essential knowledge.

This is the era of education startups like Codecademy and Coursera, so we actually don’t have to wrestle with the books any more. They can still be handy though. I often go over THW series to brush up the fundamentals before a workshop, reference the Rails tutorial, and read the Poignant Guide for fun.

Women 2.0 readers: What are your tips & tricks for learning to program? Tell us in the comments!

About the guest blogger: Dilys Sun is a student at Codeacademy. She graduated from Stanford in 2010 with a Bachelor of Arts in Economics. She worked at Deloitte’s Technology Consulting practice for two years, first as an analyst and later promoted to Consultant. She has since then left her job to learn to code full-time. While not sure if a Product Manager or a Developer job awaits at the end of the bootcamp, she is excited to learn programming and found it a lot of fun. Follow her on Twitter at @i_stanford.