Add this one to the drawer of semi-meaningless certificates!
This took me several months longer than I had expected, but it’s done now: I graduated from Udacity’s Introduction to Programming Nano-degree or IPND. I’ve always liked Udacity’s free courses ever since I did their very first offering, “Intro to Computer Science” or CS101. They make sure to intersperse lots (and lots) of practice with the fun bite-size videos explaining concepts or techniques.
The IPND (estimated to take around 190 hours to complete) takes you on a tour of a variety of languages, programming tools as well as ways of thinking about coding. You learn basic HTML and CSS (for making standalone websites), Python to do more tricky computational things, and some ways to use Python and HTML/CSS combined together. Each unit is divided into a learning stage and then a practical project that you have to build on your own. This is where you prove you’ve mastered the skills that were taught, and you get lots of useful feedback from the examiners / reviewers of the projects.
At the end of the project you get to choose an ‘elective’, a specific area of programming that takes your interest. Current options include:
- Front-end developer
- Back-end developer
- iOS developer
- Android developer
- Data analyst
I wrote earlier that I had chosen the data analyst elective, but this turned out to be far harder than I’d expected so I changed to the back-end developer part. As part of this elective, I learnt about databases, SQL and how to code so that my databases were interacting with Python code.
The course as a whole was — with the exception of the data analysis elective — pitched at just the right level: not too hard but also not too easy. I enjoyed pretty much the entirety of the materials and I really felt like I was growing my skill and capacity as I went through the course.
Of course, spending a few months doing a nano-degree for an hour or two every day does not make a functional programmer. I have a small project I want to code with what I learnt so far, so I’m taking time to do that. I’m also trying to keep my Python fresh by tackling a challenge problem each day over on Codewars.
When learning a skill like coding, there’s a strong temptation to just keep doing more courses. It’s a little like riding a bike with training wheels. It feels safe, protected from the ‘real world’ somehow. But ultimately that’s not going to help me grow, so I’m forcing myself to actually do something practical with my skill before I take another course.
Udacity’s IPND is not cheap at $200 / month, though if you finish the course within 12 months they give you 50% of the tuition money back. That means that you’re actually paying $100 / month for the course, and it’s a strong incentive towards completion. I took a little longer than three months to complete, but you could probably get it all done in two months if you didn’t have a lot of other things going on at the same time. You can do all of the courses they offer for free, though you miss out on the practical side of the tuition, the interactions with one-on-one mentors and the forum support. I used all of that stuff a lot, so all in all it was worth it for me.
There are lots of ‘intro-to-programming’-type courses and materials available, so you should do your research first depending on what you want to do with it later. I really want to do the data analysis nano-degree; this is a full degree requiring an average/estimated 380 hours of study time. It made sense for me to do my initial studies within the Udacity ecosystem, though in this interim period I’m making sure that I’m getting exposure to other resources:
- DataCamp has a great set of Python and R tutorials which I’m looking forward to exploring
- Codewars (mentioned earlier) offers many challenges which test my command of code as well as of maths, logic and reasoning.
- FreeCodeCamp’s excellent (free) course will help me become more comfortable with coding web-facing projects, with the added bonus of connecting coders to non-profits along the way who could benefit from my skills.
For the moment, that’s enough to be getting on with before I start the next nano-degree…