It’s been 4 busy months since I wrote my last article, unfortunately I wasn’t able to keep this site updated as frequently as I hoped. This was due to my workload juggling both the Master programme and this course, for reasons I will explain below.
Why Deep Learning?
When I first left the armed forces in 2017, I had taken up an introductory specialisation to Data Science in the R programming language. Although I enjoyed learning and felt great when I got the algorithm to work, I always regretted not completing the programme. I had given up just before attempting the Capstone project due to 2 reasons. Firstly, despite going through all checkpoints, I still felt that I lacked the technical competency for a standalone project. In addition, the workload at my new workplace had picked up, giving me less time to work on the project.
Over the next 3 years, I did not exercise these skills because my work did not require complex data analysis. Coupled with the sensitivity of data we handled, it was easier to use Excel’s PivotTables built into my work laptop. However, I still harboured an interest in deepening my technical skills here.
Hence, when the time came for me to rotate to another role, I picked the division that manages our digital product. To prepare myself for the change, I wanted to take up another course. The question was whether to re-visit data science or another field in AI/ML. Since deep learning was the area where I lacked knowledge, I decided to take it up. Furthermore, the pre-requisite of basic Python did not seem daunting since I had learnt R previously. As I will share later, I was sorely mistaken on this second point 😅.
My previous experiences with online learning were on Coursera, edX and Udemy. Although Coursera has a good curriculum supported by practicals, I felt their certification did not carry enough professional weight. edX was a bad experience for me overall – technical explanation was shallow, backend support for the teaching platform was poor (I ran into an error I couldn’t fix), and the last module never opened for enrollment (effectively shortchanging me of one module). I do not find Udemy comparable as their instructor and assessment requirements are far less stringent. Anyone can teach and assessments are limited to auto-graded MCQs.
Although it was much costlier, Udacity was the platform I went with. For me, the emphasis on practical work skills, rigorous mentor-assessed projects, top tier instructors from academia, and value-added career services were key differentiators. From a marketing perspective, calling their courses “nanodegrees” has a nice ring that lends some academic respectability compared to other courses. To help with affordability, Udacity runs frequent promotions with generous discounts on the course fee. They also offer full scholarships for some programmes.
Udacity operates on a per course subscription model. After choosing your programme, you decide on either a fixed duration package or monthly subscription. Depending on the programme, the length of the fixed duration package differs: in the case of deep learning it is 4 months. Do note that if you select this option, you cannot pause your subscription midway. The monthly subscription may be cheaper for you if you’re a full-time student or a fast learner. It also gives you the flexibility to pause at any time if something interrupts your studies. I chose the fixed duration package.
When I first decided on taking the course in January, I had thought my coming term would be light. Based on the administrative briefing last year, there was just 1 module scheduled. Unfortunately (fortunately in the long run), I was wrong. University administration had acted on my feedback of uneven workload faster than I thought. One of the core modules scheduled for term 1 of year 2 had been brought forward to this term. I now found myself in the unenviable position of taking 3 modules while juggling full-time work!
To make matters worse, I had trouble understanding the Python code used. I thus spent the first few weeks on Udacity’s free Python course just so I could understand the language. This delayed my progress until I was almost 1 month behind on project deadlines. At that point, I knew I had to get back to Deep Learning or risk not finishing. Even though I had not fully mastered Python, I felt I had sufficient grasp to finish the course. The rest I would have to pick up along the way.
Like all other platforms, Udacity’s course content is centred on short videos topping out at ~10 minutues in length. Each video has helpful visuals and animations explaining concepts in a simple manner. There are also short, ungraded multi-choice or short answer quizzes to test your understanding. What I really liked and helped my learning was the Workspace feature. In this containerised virtual environment, guided exercises on Jupyter notebooks allow you to practice writing code and training models without using your computer. Learning to troubleshoot and seeing how the code builds on itself really helped me.
The syllabus itself was also well structured, and you could see how everything links up and builds on earlier lessons. Starting with the basic principles of neural networks, you slowly progress through more complex architectures until getting to GANs. After each lesson, you practice in a project by building and training a network, mostly in a workspace. Thankfully, all projects are guided and broken into steps so you don’t code from scratch. This makes finishing projects achievable for newbies like me. Once you submit, Udacity gets real technical experts to review your project and give feedback. This helped increased my sense of mastery, keeping me motivated to finish the course (even though I was lagging behind deadlines).
Of course, there will be times when you run into errors you can’t stackoverflow or google out of. For such cases, Udacity provides both mentor and peer Q&A platforms for any problems you might encounter. I found the mentor Q&A platform (Knowledge) a real lifesaver for the platform specific issues I encountered in Workspaces. Mentors are very responsive, replying questions within a couple of hours even on weekends. Even if mentors could not address my queries, I would generally be able to find a similar question already answered on the forum.
Udacity also puts their money where their mouth is in helping students find employment. Every course has 2 optional projects where you can submit your Github and LinkedIn profile for professional review. Since I did not take this course as a stepping stone into a technical role, I did not spend much time on these projects. However, I can see how this would be very useful for students to improve their visibility and hireability. Even after you complete the programme, there is an active slack community with job postings and career advice for graduates
For all the above reasons, I really enjoyed learning on Udacity and would highly recommend their platform. If time permits, I hope to deepen my understanding in this field and take another course with them.