Review: Udacity AI Programming in Python nanodegree (Part 1)
By now, many of you will know that I am a language professional on an up skilling journey: it is indeed my intention to leave academia and move to tech in early 2023. In case you missed my previous posts about this, you can check them out here and here.
The course that I chose to up skill in Python is the AI programming in Python nonodegree from Udacity. Compared to other courses that only teach you the syntax of Python, this nanodegree has the advantage to be very hands-on, and teach tools and libraries that are capital for those who wish to move into AI: intermediate Python, NumPy, pandas, Matplotlib, PyTorch, but also some calculus and linear algebra! Basically, the foundations to start building your own neural networks.
The nanodegree takes about 3 months at a 10-hour-a-week pace to complete, possibly 4 if one's a complete beginner in coding. It is composed of two macro parts, each associated with a capstone. Here, I will be reviewing the first part.
Part I of AI Programming in Python: Introduction to Python
The fist part of the nanodegree goes over the fundamental syntax of Python, and includes quite thorough lessons on:
Intro to Python
Data types and operators (arithmetic operators, variables and assignment operators, integers, floats, booleans, comparison operators, logical operators, strings and string methods, types and type conversion, basic debugging);
Data structures (lists and membership operators, mutability and order, list methods, tuples, sets, dictionaries and identity operators, compound data structures);
Control flow (conditional statements, boolean expressions for conditions, for loops, building dictionaries, iterating through dictionaries with for loops, while loops, break and continue, zip and enumerate, list comprehensions);
Functions (function definition, variable scope, documentation, lambda expressions);
Scripting (installing python using anaconda, configuring git bash to run python, running and editing a python script, programming environment setup, scripting with raw input, handling errors and exceptions, debugging practice, importing local scripts, the standard library, techniques for importing modules, third-party libraries, experimenting with an interpreter);
Intro to OOP, object oriented programming (procedural vs object oriented programming, classes, objects, methods, attributes, OOP syntax, commenting OO code, magic methods, inheritance, modularised code, making packages, virtual environments, putting code on Pypi).
Interesting, among the OOP exercise is the creation and publication of a package, i.e., a collection of Python modules. Definitely a cool addition to a young programmer's portfolio! Andrew, who you can see in the screenshot below, is the instruction for this module:
Each video lesson indeed comes with numerous coding exercises, and the possibility to ask support from a tutor in case one gets stuck. The lessons are easy to follow and quite engaging, and the instructors' speech is slow enough for non-native speakers of English to follow easily (but never boring!). Here's a screenshot of a video lecture taken from one of the control flow lessons. This instructor, Juno, covers all topics except OOP:
Conveniently, all videos include captions, thus making them accessible also to those with a hearing impairment. Well done, Udacity!
The first capstone
In the first capstone project, the learner tests their Python skills by working with three different pre-trained image classifiers. What is required from the learner is that they write their own Python script to identify different dog breeds.
The capstone is hard and can be overwhelming at the beginning! The instructions are quite clear but I often wondered whether I would have managed to complete all tasks so quickly without any previous programming experience (I had basic to intermediate Java skills to start with). Regardless, the prerequisite lectures do present all topics needed to succeed in the project, so if you're a beginner you'll probably only need a little more patience than those who already have some programming skills!
What you'll learn (the hard way) during the capstone project:
how to utilise while loops (without getting forever stuck in them);
how to name your variables in the most understandable of ways;
how to comment your code to make it accessible not only to others but also to yourself;
how to use dictionaries and lists and all sorts of methods associated with them (boy, what a struggle!).
At the end of the project, you'll be encouraged to publish it on GitHub. However, since they don't teach you how to do so, you'll have to figure it out yourself. GitHub is quite straightforward to use and you can learn its basics using this free tutorial from Udacity.
If you're curious, you can check out my GitHub repo by clicking on the following link: https://github.com/CaterinaBi/udacity-ai-programming/tree/main/program.
Last but not least, once you submit your code for review, it comes back to you quickly with a thorough review and many tips to improve your code! I must say I was really impressed by how quickly the review came, and how personalised it was.
Summary and evaluation
The best and worst features of the first part of this nanodegree are listed below. Please click on the tiny symbol to the left of the titles if you can't see the listed elements.
What I liked
1- The Python videos (Juno is a superstar!);
2- The Python exercises, as they don't require the user to be a geometry or maths genius to solve them;
3- The capstone project, despite the fact that it was absolutely overwhelming at first;
4- The Udacity nanodegress can be quite pricey (about 1000€ each), but you can ask a discount based on your personal financial situation - as a student, you can get a discount of up to 75% of the total price!
What I disliked
1- No thorough introduction to Git and GitHub is offered, despite the learners' need to showcase their projects to potential employers;
2- The capstone project was unbelievably hard for those with no previous programming experience (I think I managed to survive it just because I had some experience in Java programming before I started the nanodegree).
In short, the first part of the AI Programming in Python Udacity nanodegree is for me a 4-out-of-5 star course:
This part of the nanodegree would be a solid 5/5 if it weren't for the complexity of the capstone, though. Good job, Udacity, definitely recommended!
It is noteworthy that it is possible to complete this nanodegree's syllabus using the Python Essentials 1 course from Python Institute, which is a completely free resource! While the contents covered in the two courses are basically the same, Python Institute's is more theoretical, and can help you achieve a more thorough understanding of Python programming.
Beware, though! Python Essentials 1 includes exercises but no capstone, so it's not a good resource on its own if you aim at building a portfolio to showcase your programming skills to potential employers.
In the upcoming weeks, I'll post a review of the second part of the nanodegree, and its second capstone project (😱). Brace yourselves! For now, thank you for your time, do not hesitate to contact me if you have questions and/or wish to discuss your move out of academia.
#udacity #nanodegree #programming #python #developerportfolio #capstoneproject #pythonprogramming #artificialintelligence #imageclassification #pytorch #AI #careerswitch #careerchange #upskilling #womenintech #womeninlinguistics #womenintechnology