My journey to Python programming (1)
In my last blog, I mentioned that the first step in my journey to becoming a NLP engineer was going to be learning to code. Since Python is widely used in NLP and more generally AI, I decided that it was going to be my elective programming language.
How am I learning Python?
I personally chose to enrol in a nanodegree program by Udacity, called AI Programming with Python. It's not the cheapest of options, but it's nonetheless a very complete and helpful course, for reasons that I will outline below and in my following posts.
The nanodegree requires 10h of work a week and lasts about 3 months. It comes with a price tag of £837 upfront, or £329 a month. This is quite pricey compared to other courses that I mentioned in my previous blog, but keep in mind that Udacity often offers personalised discounts based on one's income and personal situation (e.g. student status etc.), which can reduce the price of up to 75%!
If you're interested in the program but cannot afford the full price, I suggest you apply for a discount and see what's proposed to you. The discount is not binding in any way and, once received, you've got one week to enrol at the proposed price.
What's this program's syllabus and why is it special?
The course curriculum is outstanding and does not only teach you Python as a programming language, but forces you to practice and get hands-on experience: as you can see in the video above, the course comprises two projects, for which you receive feedback. The course also gives access to help from mentors and peers and, unlike most programming courses, it additionally teaches you the basics of linear algebra and calculus.
For now, I have done the 'Introduction to AI programming', and I am currently doing the 'Introduction to Python for AI programmers' module, which includes the following:
- Why Python programming;
- Data types and operators;
- Data structures;
- Control flow;
- Intro to object-oriented programming.
This second module ends in a project, 'Use a pre-trained image classifier to identify dog breeds', which I'll have to handle in by the 1st of April.
I'll discuss the following modules in due course. For now, I must say I am quite impressed with the quality of the teaching and with the proposed exercises, which are neither too easy not excessively challenging. The lessons are delivered with clear, bite-sized videos. I really like the instructor, too :)
What are my short-term goals when it comes to Python programming?
I am due to finish my nanodegree program on the 17th of May. In the meantime, I am also taking the PCAP - Programming essentials in Python by the Cisco Networking Academy.
The course is free and lasts about 70 hours (although if you're already familiar with the programming language or are studying it at the moment, you'll go through it rather quickly). It's divided in two parts:
- Python essentials 1 (basic);
- Python essentials 2 (intermediate).
The course gives no hands-on experience, but it is quite detailed and very well designed and written, so I am using it to gain a completer understanding of Python. Also, it is intended to prepare you for the PCEP – Certified Entry-Level Python Programmer Certification and the PCAP – Certified Associate in Python Programming Certification, both of which I intend to take in the upcoming two months.
I like a challenge and also, I think the certifications will look great on my CV.
This is all for now, I'll come back with more details on the Udacity nanodegree once I've submitted my first project. By that time, I should have already sit my PCEP. Stay tuned!