I am often asked by a number of students, colleagues and friends about how they can get started with a career in software development or leverage the power of computer science in their domains (Manufacturing, Robotics, HR, Operations, etc.). Most of them want to get started with learning Python programming. So here are my thoughts on how someone can master the python programming language.
Firstly, it highly depends on the need for learning the programming language. It could be for a project that you want to implement in which case you may have to learn python based on a speciality like Python for Data Science, Python for Web Development, Python for Cybersecurity, so on and so forth.
However, most of the people learn python hoping to secure a job where they need to have working knowledge of the language. In that case, it is enough to learn Python programming without any focus on specialisation.
The next question is the learning process that is credible enough and accepted by majority of the companies. I usually divide this into the following three.
With a zillion (figure of speech) online courses available for anyone with a Computer / Smartphone and Internet access, the barrier to learn Python programming language is almost negligible (given the motivation for one to learn). I recommend self-paced online learning with access to a mentor optionally if you can afford it because
- Not everyone learns at the same pace
- Some prefer to experiment a lot to understand the concept fully before they move on to the next topic
- It costs much lower compared to in-person training
- You can learn even at 2AM with your pizza and pyjamas on
The definitive next question is where to learn from. There are 2 options for this based on pricing (Free / Paid). Here are my recommendations and comments on them.
Free Python learning resources
This is a gem of the resources where you can start with the basics and master the Python basics with atmost understanding. You can also master Python for certain specialisations here. I use this resource as a reference material very often even to this day.
A beginner friendly resource for you to learn the basics of Python and optionally learn the advanced stuff. While learning with this resource, you wouldn’t have to install Python in your computer since the explanation of concepts are followed by a built-in code editor (although I would recommend installing and playing with it locally). The Webpage also markets a DataCamp’s free Intro to Python course which you can checkout and enrol into if you have the time for it.
Paid Python learning resources
Had I been enough self motivated a few years back to learn from one of the free resources, I wouldn’t have come across codecademy. But honestly, I found learning here to be such a wonderful and playful exercise. Gamification of the learning process here pushes you to learn quickly with good exercises and projects. Codecademy costs Rs.1500/month within which you can learn the basics of Python and even the specialisation modules or other helpful stuff like Git, Web Development, etc.
This Python for programmers learning path includes most of the stuff needed for a beginner to master python and develop simple applications. The learning path also covers of data structures and file handling in detail, Software testing and packaging etc. The monthly subscription costs $47/month or $120/year.
You know how the saying goes! Practice makes a man/woman perfect. This is 100++% true while learning computer programming. Although you might practice all the concepts while learning, understanding a scenario and writing a program for it very important – especially considering the time it takes to execute and the memory your program consumes (too advanced while learning, so I won’t emphasise much on it).
The only resource I will recommend to practice is
The more problems you solve in hackerrank, the more points you get. A 400+score gets you a Python badge. In addition to this, you can also attend a test here and get a certificate. While you are on this stage, collecting the 400+ points, make sure you solve problems of all difficulty level and topics.
Its arguable if KFC offers the tastiest chicken, Dominos offers the best pizza and Chetan Bhagat the best author. However something that is common among these brands and others is that they sell well. So in addition to your talent and hardwork, it is highly recommended that you demonstrate / showcase the skills through contribution to projects (open source or otherwise), certifications, badges, blogs, knowledge sharing videos, etc.
To begin with, these are my suggestions:
The practice from hacker rank will let you share the 5 star Python badge and certificate using your Hackerrank profile, here is mine https://www.hackerrank.com/sufiankaki. This does not cost anything, and on top of it most of the developer community considers the credibility someone gains by earning the badge. I have had students who would literally spend more than 20 hours per week on Hackerrank solving challenges, participating in competitions and have eventually ended up in roles that pays them Rs.25 Lacs+ as a fresher
W3 Schools Python Certification
Although W3Schools lets you learn Python for free, if you are interested in getting a certificate from them, you can go through a test that costs $95 and earn it. I haven’t seen a lot of people taking this route, but I would say its a good way of giving back to W3schools for their amazing platform
This is LearnPython’s evaluation platform where you can register for a test and get certified. You can either register to get one certification for $79 or to get all the LearnX’s offered certifications at $99
In my opinion, this is a serious certification one can take to prove their expertise in Python. This is the certification I recommend to my students. It has multiple levels of certification and there are learning materials associated with it (available both digitally and in-person). Depending on the level of certification (Entry, Associate or Professional), the exam fee will be accordingly. For the exam, you will have to take a proctored test either online or in-person.
Let me know if this was useful and if there are other resources that you recommend!