Skip to main content

Learning Python - Where to start?

Hello my friends in this entry I'm not going to code as usual but rather to talk about some of the common questions that Python enthusiastic ask when they want a fresh start in learning Python. I will give you my personal recommendations based on my own experience learning this beautiful language and what comes next.



Where do we start?

In my experience the best way to start learning Python is through a MOOC (Massive Online Open Course), the advantages of taking an online course start by stating that the best teachers that you could find have an online course, who are they? Well, I'm not sure if they are the best in the world but they must be the best in the U.S.A., teachers from the first top computer science schools in this country, another advantage is that these online systems you can manage yourself your learning experience, from when to attend to class (watch the lessons), and deliver the homework and tests at your own pace, with automated grading, and finally communities and discussion forums will the proper staff to attend your doubts and questions.

Which courses do I recommend?

Well I learnt in the first online edition of 600x from edX back then in 2012-2013, this was a six months online course of Computer Science from MIT, nowadays this course is split in two courses 600.1x and 600.2x but you can still find them in the edX platform, you can open an account and audit the courses for free, if you want to pursuit a certification some charges are applied. This course covers the basics on Computer Science but is taught using Python, for new learners this is the best recommendation that I can give you.
Another course you can take to complete your learning experience is the set of Python courses from the University of Michigan in the Coursera Platform called "Learn to Program and Analyze Data with Python"; this set has 5 courses, one after the other, in which they cover from the basics of Python to its applications in databases, web data access, processing and visualization, this set of courses belong to a coursera specialization which has a price for certification, but you can take each course individually for free, here I you have the list of links.
1.       edX
2.       Coursera
a.       Specialization
                                                               i.      Programming for Everybody (Getting Started with Python)
                                                             ii.      Python Data Structures
                                                            iii.      Using Python to Access Web Data
                                                           iv.      Using Databases with Python

What's next?

This set of courses will prepare you for becoming a ninja in Python, from now on you need to go further with your learning based on which field you want to pursue in Python, remember that Python is a general purpose language, meaning that you can do almost anything with Python, so it will depend of you what do you want to do next with Python, I can give you some hints, you can become a backend developer, data scientist, data engineer, forensics, database programmer, between several profiles that you can have.
But either way you choose you need to feed your mind with an broad source of knowledge, because there is no default way of learning any of these skills, so you need to mix several way of learning, from online courses, tutorials, blog articles, books, youtube videos; because from now on you will learn Python from the experience of others developers, you will become a member of the large Python community.
Most of these skills even that they have a background theory, most of the time you will learn the use of the best set of frameworks that are applied in a specific field, by this I mean that if you want to become a backend developer you will expend a lot of time learning django or flask (both Python frameworks and libraries), in data science there are several frameworks and libraries that we will cover in future entries.
And that's it, we have covered enough for now, o thanks for coming by my new entry and I hope you have enjoyed this as much as I enjoyed writing it, stop by the comments if you want to discuss about this. Don't forget to share this with your Python Peers. Cheers my friends.

Popular posts from this blog

Multithreading web scraping with Python

Hello my friends today in this entry we are going to talk about a very trendy topic, web scraping and how to do it with our beautiful Python programming language, so open your Python Idle and get set because in this Tutorial Entry we are going to code once again.

Python Free Books

Hello my friends in an earlier post I talked about some dive deep Python Books that you could purchase to start learning Python, you can check that entry in this link, and now I have decided to write this entry to give you a list of online and free Python books.


These books are supposed to be hosted documentation; they are written in restructured text (reStructuredText) and translated into beautiful HTML or PDF with a tool called Sphinx. This documentation format is supposed to be used for writing your own packages and modules documentation, but experts also use them to write practical books and tutorials of different languages and they can be uploaded and hosted for free in different online platforms, one of them is read the docs website.

Singleton - Design Patterns in Python

Hello my friends, here in this quickly entry we are going to talk about the most basic but very useful Design Pattern and that is the Singleton, but first let's discuss as always a little about theory.
Design PatternsThis is the next step in the programing learning curve, after Object Oriented Programming there is a list of topics that you could learn next, I strongly recommend Python Design Patterns. Accordingly to the Wikipedia, “a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design”, in other words is the same code to the same kind of problems; in general we tend to find the same kind of problems when we are designing our software, and we tend to solve this problems with the same solution, in time and each time this solution is improved and finally is considered a standard or a pattern in software design, so it becomes a design pattern.