Should I Learn Python or R for Data Science?

R vs Python

If you are someone who wishes to make a career in Data Science, then the ultimate question you have to face is, which programming language you should learn and why? There have been numerous discussions on public forums with people advocating for R or Python for plenty of reasons.

Though it completely depends on your choice, comparing both the languages on some grounds will surely help you make the right decision.

What are R and Python?

R is an open-source programming language developed for statistical analysis and computations.

Like R, Python is also an open-source programming language that was initially developed as a general-purpose programming language, and later branched out to be a language for Statistical Analysis and Machine Learning Modeling.

Let’s understand the difference between these two highly popular Data Science languages:

Ease of Installation

Well to start with, R packages are solely managed by CRAN (The Comprehensive R Archive Network) repository that manages the updated versions, their installations, and related documentation of R Packages. All the packages you install in R are stored in CRAN. Also, any new package to be added in R should be submitted to CRAN. Currently CRAN has over 16000 additional statistical packages. This is why it is easier to install R.

On the other hand, Python has two package management platforms, Conda and PyPI (Python Package Index) that include over 100k Python packages. There have been inconsistencies found in Packages, Libraries, and Versions while installing Python due to two repositories. Due to this reason, it is a little tedious to install Python.

Want to read about Python in detail? Read this riveting blog!

Robustness and Flexibility

R has all the features that Python has in terms of programming ability, statistical computing and modeling, but Python is more flexible and robust. Python is a better option when it comes to integrating it with web applications and production.

However, R is less robust and versatile, which is why it is limited to statistical computing and mathematical modeling.

Ease of Learning

One of the most frequently asked questions is “Which between R and Python is easy to learn?”.

Both R and Python have almost similar features, but when it comes to syntax, R is a little complicated and is better for someone who is already familiar with other programming language. On the other hand, Python has a relatively simpler and readable syntax and hence, for anyone who is about to start-off with a programming language, Python is a good option.

However, when the model building becomes complicated, it requires someone who is proficient in Python.

Speed of Processing

Usually Python is 8 times faster than R till there are up to 1000 iterations. When the number of iterations increases, R typically surpasses Python’s speed. In comparison to Python, R requires more lines of codes to perform a certain task, which make the programs more complex and bulkier.

Statistical and Analytics Ability

R was designed for statistical computation and Modeling purposes and hence it performs better for any level of complex computation. R has better statistical packages and libraries for dashboard than Python. Python being a general programming language somehow lacks the packages and libraries for Data Science. Python is better suited for modeling and machine learning, which is complicated in R.

Suitable Area

The focus of R is primarily into statistical analysis and hence it is better suited to academia and research. On the other hand, Python being the programming language for all purposes is suitable for tech industry. However, Python also comes with packages that can create an environment similar to R.

There are plenty of other grounds that differentiate R from Python. The following table will further clarify that!


Click here to continue

Python Career Guidelines: How To Become A Python Professional?

One of the familiar questions that we read these days on platforms such as Quora is: how do I become a professional Python programmer?

Yes, today many IT professionals are willing to pursue their career as Python programmer.The reason for the rise in such trend is because Python is emerging as the one of the most powerful programming languages of the present IT world.

Today we can see that more and more companies are relying on Python to develop their software projects across different industries. This programming language is being used in various fields such as Artificial Intelligence, Machine Learning and Data Science etc.

These are some of the factors that have led to offered huge career opportunities for young aspiring professionals across the world.

Source: Stack Overflow

We have also observed that many young IT professionals are looking for a right career guide that would help them to become a Python professional. Sowith an aim to help all such people all we are presenting here this blog to discuss a career guideline to become Python professional.

If you are new to the world of Python and are willing to learn it then we recommend to look into these online courses that contains a library of Python course that help you to learn this programming language efficiently.

In this blog, I will be covering the following topics.

  • Why Learn Python?
  • What are the career opportunities related to Python programming?
  • Top companies using Python Programming
  • Where Python developers can find jobs?
  • How Simpliv can help You to become a Python professional?
  • 5 Key Takeaways

Why Learn Python?

Python is a general purpose, object oriented, easy to learn programming language. There are many reasons why one needs to learn Python. Some of them are as follows:

  • Python supports Object-Oriented programming language
  • Python follows a easy syntax and hence has a simple coding structure
  • Python is considered as an easy programming language to learn for beginners
  • Python supports set of different libraries and API’s that will help the developers to build the software applications easily.

Now let us see some of the career opportunities of Python Programming.


Click Here to continue reading 

Learn Python Programming Fundamentals: A Beginner’s Guide [Updated 2020]

Python is one of the powerful, high-level, easy to learn programming language that provides a huge number of applications. Some of its features, such as being object-oriented and open source, having numerous IDE’s, etc. make it one of the most in-demand programming languages of the present IT industry.

According to TIOBE index, as of January 2020, Python is one of the popular programming languages. By looking at the popularity of this programming language, many IT professionals, both beginners as well as experienced alike, are willing to build their career as a Python developer.

No alt text provided for this image

Image source

Many people have daunting questions like:

  • How one can start to learn Python?
  • What are the fundamental concepts you need to know to learn Python?

With an aim to help similar concerns, Simpliv is presenting this blog to discuss about the various fundamental concepts of Python programming and take you along to start writing Python programs on your own.

Before proceeding further, at this point, we would like to suggest that you read blog (first blog in this series) on introduction to Python programming language.

No alt text provided for this image

Without further ado, let us quickly look at the topics we will be covering in this blog:

  • How to install Python
  • Basic syntax
  • Python identifiers
  • Python reserved words
  • Indentation
  • Quotations in Python
  • Comments in Python
  • Using Blank lines
  • Constructs
  • Python Variables
  • Python Data Types.

Let us look at the 8 Steps to install Python

Let us start by learning the steps to install Python. The following are the steps need to be followed while installing Python on Windows:

Step 1:

Download python.exe or zip bundle from Python official website

No alt text provided for this image

Step 2:

Select Downloads and download python.exe file for Windows.

No alt text provided for this image

Step 3:

Once the installer is downloaded, run the Python installer. Check on Install launcher for all users.

No alt text provided for this image

Step 4:

Select Customize installation. Check on all settings Document, pip, tcl/tk, python test suite, py launcher, for all users. Click on Next.

No alt text provided for this image


In detail to learn more about Python Fundamentals Read Here :

9 Reasons why you should Learn Python

Python is an important programming language that all developers should know. Many programmers use this language to make websites, produce learning algorithms, and perform different necessary tasks. The best way to learn Python begins with deciding what you want to build. Then you will want to find a course or resources to help you develop your idea. When learning Python, it is very important to start with an idea. If you try to create something that interests you, the process becomes more intense. Learn Python in just 9 simple steps with the Simpliv program.

1. Python is easy

Easy to learn, has a simple, even intuitive syntax (putting it simply: a way of writing the commands understood by a computer with a given programming language.) The syntax resembles the elements “from real life“ so the keywords are intelligible for every beginner, and at the same time, really close to these appearing in other programming languages (that’s why a switch to another language later is easier.)

When we specify the things to do, we often use a colon (“:“), and intersections — just like we give commands in Python blocks of code. By the way, it somehow forces us to build the good habits of making intersections. It makes our Python code look nice, legible, and clear.

First programme displaying “Hello World“


public class Main {
  public static void main(String[] args) {
    System.out.println("hello world");


print("hello world")

I leave it for individual judgement 😉 If you’ve installed Python already, check import this in a console, everything that inspires to code in Python in 19 lines.

2. Figure Out What Motivates You to Learn Python

Before you start learning Python, you have to ask yourself why you want to learn it. This is because the trip will be long and sometimes painful. Without sufficient motivation, you probably will not succeed. For example, I slept during high school and university when I had to remember the syntax and was not motivated. On the other hand, I stayed awake at night when I used Python to create an automated authoring site.

When you discover what motivates you, you will find a final goal and a path that will take you there without trouble. You do not have to define a specific project, but simply a general area that interests you when preparing Python.

Select an area that interests you, for example:

  • Data Science / Machine Learning
  • Mobile apps
  • Web sites
  • Games
  • Hardware / sensors / robots
  • Scripts to automate your work

Discover one or two areas that interest you and you are ready to stick to it. They will align their learning with them and eventually build projects.

3. Python is fast

Nope, I don’t mean to compare Python’s speed to other programming languages. There will be moaning that there are faster ones, for sure. Python is fast compared to interpeted languages but it’s not important for the beginner.

You can learn Python fast, and it’s available off-the-shelf.

You install Python, and you can immediately start writing your code. You run a console, write python, and you’re already welcomed with an encouraging sign “>>>“ — Write something, try me, come on! No need to read about choosing a programme, an environment, a compiler versions.

You don’t want to install Python but want to try your hand at a console? Go ahead: Python shell online or


This GIF is here not accidentally. Mr. Robot is an excellent TV series about hackers, and there’s a big portion of IT world involved in it. It wasn’t directed with a lick and promise like most of productions of this kind. We can trace quite a lot of cybersecurity devices here. There’s a scene where a code in Python is quickly written straight in a console or file that Darlyn uses.

Creating penetration tests in Java — OK but how would hacking in a real life look like? There’s a scene in Mr. Robot: FBI cruises the corridors: Wait a sec, I’ll just compile this.

4. Python is productive

Working with the Big Data (collecting it, analysis, processing, usage) is the future. The more data you have to process, the more important is the management of used resources, and code’s effectiveness.

Python makes generators accessible, both as the expressions, and the functions. The generators enable iterative data processing — the element after the element. It doesn’t sound too attractive until you notice that “ordinary“ iterative data processing requires a list. A list takes up the memory. A really big list takes up a lot of memory. The generators allow to gather the data from a source one element at a time, and their transfer via a whole data processing chain, skipping a mechanism related to the storage of iterative list.

Even if working with the Big Data sounds like an abstraction for you for the time being, think of all these given consents to data processing, marketing, academic work or even the politics (e.g. Donald Trump won the elections thanks to Big Data.)

5. Professional skills

There are many languages for educational purposes such as Scratch or Logo. Surely, they can help you with learning the logics of programming, some of them gets to the schools, and it’s a good trend. However, no matter how advanced is the stuff you do with them, nobody will take it seriously (unless you’re a teacher, and you want to introduce programming lessons to your students.)

So reach for Python! It’s really approachable, and will immediately give you a concrete professional asset — programming.

After all, you don’t want to develop your skills with Python? Chill, you’ll easily “get lower“ to C, jump to Ruby (its syntax is really similar) or move towards front-end, straight into JavaScript arms. Python integration with other languages? No problem. Additional solutions? Sure, there are many options. Jython (Python implemented in Java) works everywhere where Java does. IronPython is a Python implemented in .Net.

6. Remuneration

Let’s talk about money. It’s not an interview so let’s put it bluntly — the main reason people change their field is a wish to earn more, and the sums in IT world may impress.

Python is second on a list of well-paid languages in USA. We analyse an average annual wage, the fact that Python is an easy language to learn, and things become clear.
Despite the fact that these statistics doesn’t correspond with Polish trends, Python programmers can’t complain about their earnings. I see a bright future for them, especially because the trends usually come to us “from the West.“

7. Possibilities

As I said, you can make use of Python in every way. It’s high time for examples.

Arduino or Raspberry Pi

In both cases you can code in Python. A lot of fun, immense possibilities. DIY projects are easily accessible on YouTube, and really rewarding.


Ethical hacking, penetration tests, security systems analysis, software development — these might be your tasks as a Security Specialist

Internet of Things

Actually, you can make the gadgets for your house on your own or work in this field profesionally.


Collecting information about the users and its analysis with your own data or Facebook API,  Google, Twitter, better ads targetting.


Data processing on mathematical and statistical level, working with results of laboratory experiments in the field of genomics, chemistry, geoinformation, etc.


Software testing, automated testing, debugging, everywhere where you can — out of laziness — write the code that would carry out the code the tests for a tester.


As far as Data Scientist positions are concerned, Python is one of the most often required languages.

Machine learning, AI

The fields that involve processing of a huge amount of data. Python is the future of machine learning, they say.

Web development

More effective backend than popular PHP, and the frameworks that make you do your work faster, e.g. Django or Flask.

Many, many more could come to our mind. Even in a field of games which isn’t, at least at first, associated with Python, one can find a suitable position (gameplay programmer).

8. Python III The Mighty

Because Python is easy, you cannot do with it more? By no means! It’s application really varies. Python has the power so the companies such as Google, Dropbox, Spotify or Netflix use it in their applications.


Dropbox is completely written in Python , and it ensures its compatibility with every operation system. It has around 400 millions of users. For many of them, it’s one of the first applications they install on their computers. Not only a desktop application but also Dropbox server side code is written in Python.


Google uses a huge amount of technologies: C++, Python, and Go among them. Supposedly, someone said in Google office: Python where we can, C++ when we have to.


Spotify and Netflix

Similarly to Google, Spotify and Netflix employ different languages. In Spotify, it’s mainly Java but Python is used for things like their Web API, data analysis which is not only related to users (DNS server’s recovery system, payment system, content management system.) Netflix uses a mix of Java, Scala and Python, simultaneously giving their programmers the autonomy of choosing the language that is most proper where a given problen occurs. Where we can find Python there? In analytical groups, and real-time event service.

Where else Python is used?

Facebook, Instagram, Yahoo, Quora, Pinterest, Disqus.

9. Materials and community



You’ll easily find a lot of learning materials, mainly in English. Python documentation is rich, and really coherently written. The books doesn’t become outdated as quickly as in the case of web technologies.

The beginners like support, and Python community is active, also in Poland (numerous events, Facebook groups such as Python Poland, Python: Pierwsze kroki, Python szukam pracy, and also my group, Python: nauka). There’s also a strong female community: PyLadies, PyCode Carrots, Django Girls.

Useful Resources to Learn Python

If you decide to learn Python in 2019 then here are some of the useful Python books, courses, and tutorials to start your journey in the beautiful world of Python.

Learn Python GUI with Tkinter: The Complete Guide

Python 1200: Practice for BEGINNERS

Learn Python from Basic to Advance with Projects in a day

Python For Beginners With Exercises

Python Programming Tutorials For Beginners

Learn Python in a Day

Learn Programming with Python in 100 Steps

Python for Beginners: A Python Mega Course with 10 Projects

Learn Python Programming – Easy as Pie

Spark for Data Science with Python

Machine Learning, NLP & Python-Cut to the Chase

Image Processing Applications on Raspberry Pi – From Scratch

Python for Beginners 2017

Selenium with Python

Guide to Python Programming Language

Python GUI Programming Projects using Tkinter and Python 3

Complete Python Course Go from zero to hero in Python

The Python 3 New Features from Python Enhancement Proposal

Learn Python Programming

Selenium WebDriver With Python 3.x – Novice To Ninja

Learn Python 3 from scratch to become a developer in demand

Learn Python Django – A Hands-On Course

Python Programming & Data Handling

Python for Beginners

Create Your Calculator: Learn Python Programming Basics Fast

The Complete Python Training for 2019: Work on 10 Projects

Fundamentals of Python for Data Mining

Python for Data Science, Data Analysis & Visualization: 2019

Python For Beginners In Arabic تعلم لغة البايثون

Curso Completo De Machine Learning: Data Science en Python

Complete Python Beginners Bootcamp: Python Deluxe Edition

Python Acelerado

Python Pro – Python Basics for Machine Learning

GUI Automation using Python| Python Automation

Data Structures and Algorithms in Python

Machine Learning Basics: Classification models in Python

Python Automation for Everyone – Learn Python 3

COMPLETE Python Bootcamp 2019

NEW Python 3.7 Mastery course [FAST TRACK] – Programming language

Build Full Download Manager | Python & PyQt5

Learn Python 3 Programming in සිංහල

Python Programming for Absolute Beginners: Quickly learn python

Building Movies Site With Python & Django – IMDB Clone

That’s all for this article on the important reasons to learn Python in 2019. As I said, it’s important to know programming and coding in today’s world and if you don’t know coding you are missing something and Python is a great way to start learning to code.

For programmers who already know Java or C++, learning Python not only will make you a polyglot programmer but also gives you a powerful tool in your arsenal to write scripts, create a web application, and open the door to the exciting fields of data science and machine learning.

In short, if you could learn just one programming language in 2019 then make it to Python and to start with, The Complete Python MasterClass is the best course.


So these are my 9 reasons why it’s worth learning Python. Surely, there are more. What are yours?



15 Best Programming Languages to Learn in 2019 (for Job & Future)

Table of Contents

The most important skill to learn in today’s world is to know how to write a computer program. Today, computers have entered in almost every industry. Be it the autopilot in an aircraft or digital speedometer in your bike, computers in various forms surround us. Computers are extremely useful for an organization to scale up well. Gone are the days of pen and paper. Today, in order to store and access your information, you absolutely need computers.

The programming and developer community are emerging at a rate faster than ever before. Various new programming languages are coming up that are suited for different categories of developers (beginners, intermediate, and experts) as well as for different use cases (web application, mobile applications, game development, distributed system, etc).

Let us take a look at best Programming Languages to learn in 2019 for a job and for future prospects:



Python undoubtedly tops the list. It is widely accepted as the best programming language to learn first. Python is fast, easy-to-use, and easy-to-deploy programming language that is being widely used to develop scalable web applications. YouTube, Instagram, Pinterest, SurveyMonkey are all built-in Python. Python provides excellent library support and has a large developer community. The programming language provides a great starting point for beginners. Talking about those who are looking for a better job, you should definitely learn Python ASAP! A lot of startups are using Python as their primary backend stack and so, this opens up a huge opportunity for full-stack Python developers. Here is a sample Python “Hello World!” program:

  print “Hello World!"

Yes, Python is that simple! Anyone who wishes to join a startup should master Python programming.



Java is another popular choice in large organizations and it has remained so for decades. Java is widely used for building enterprise-scale web applications. Java is known to be extremely stable and so, many large enterprises have adopted it. If you are looking for a development based job at a large organization, Java is the language that you should learn.

Java is also widely used in Android App Development. Almost any business today needs an Android Application owing to the fact that there are billions of Android users today. This opens up a huge opportunity for Java developers given the fact that Google has created an excellent Java-based Android development framework – Android Studio.



C/C++ is like the bread and butter of programming. Almost all low-level systems such as operating systems, file systems, etc are written in C/C++. If you wish to be a system-level programmer, C/C++ is the language you should learn.

C++ is also widely used by competitive programmers owing to the fact that it is extremely fast and stable. C++ also provides something called as STL – Standard Template Library. STL is a pool of ready-to-use libraries for various data structures, arithmetic operations, and algorithms. The library support and speed of the language make it a popular choice in the High-frequency trading community as well.


JavaScript is the “frontend” programming language. JavaScript is widely used to design interactive frontend applications. For instance, when you click on a button which opens up a popup, the logic is implemented via JavaScript.

These days, many organizations, particularly startups, are using NodeJS which is a JavaScript-based run-time environment. Node.js lets developers use JavaScript for server-side scripting—running scripts server-side to produce dynamic web page content before the page is sent to the user’s web browser. Hence now with JS, you can use a single programming language for server-side and client-side scripts. If you are looking for that cool tech job at your favorite startup, you should seriously consider learning JavaScript.

Go programming language

Go programming language

Go, also known as Golang, is a programming language built by Google. Go provides excellent support for multithreading and so, it is being used by a lot of companies that rely heavily on distributed systems. Go is widely used in startups in Silicon Valley. However, it is yet to be adopted by Indian companies/startups. Those who wish to join a Valley-based startup specializing in core systems should master Golang.


R Programming Language

R programming language is one of the most commonly used programming languages for Data Analysis and Machine Learning. R provides an excellent framework and built-in libraries to develop powerful Machine Learning algorithms. R is also used for general statistical computing as well as graphics. R has been well adopted by enterprises. Those who wish to join “Analytics” team of a large organization should definitely learn R.


Swift is the programming language that is used to develop iOS applications. iOS-based devices are becoming increasingly popular. Apple iPhone, for instance, has captured a significant market share and is giving a tough competition to Android. Therefore, those who want to serve this community can learn Swift programming.



PHP is among the most popular backend programming language. Though PHP is facing a tough competition from Python and JavaScript, the market still needs a large number of PHP developers. Those who wish to join a reasonably well old organization as a backend developer should aim to learn PHP programming.



C# is a general-purpose programming language developed by Microsoft. C# is widely used for backend programming, building games (using Unity), building Window mobile phone apps and lots of other use cases.




MATLAB is a statistical analysis tool that is used in various industries for Data Analysis. MATLAB is used widely in the Computer Vision and Image processing industry as well.




Ruby is another scripting language that’s commonly used for web development. In particular, it’s used as the basis for the popular Ruby on Rails web application framework.

Beginners often gravitate to Ruby because it has a reputation for having one of the friendliest and most helpful user communities. The Ruby community even has an unofficial saying, “Matz is nice and so we are nice,” encouraging members to model their kind and considerate behavior on Ruby’s chief inventor Yukihiro Matsumoto.

In addition to the active community and its straightforward syntax, Ruby is also a good language to pick up thanks to its association with great tech businesses. Twitter, Airbnb, Bloomberg, Shopify and countless other startups have all built their websites using Ruby on Rails at some point.


SQL (es-que-el) stands for Structured Query Language, is a programming language to operate databases. It includes storing, manipulating and retrieving data stored in a relational database.

SQL keeps data precise and secure, and it also helps in maintaining the integrity of databases, irrespective of its size.

SQL is used today across web frameworks and database applications. If you are well versed in SQL, you can have better command over data exploration, and effective decision 


Rust is a bit of an upstart among the other languages on this list, but that doesn’t mean it’s not a valuable language to learn. Stack Overflow’s 2019 Developer Survey found that Rust was the most loved programming language among developers for the third year in a row, with 78 percent of Rust developers saying that they want to continue working with it.

Developed by the Mozilla Corporation, Rust, like C and C++, is intended primarily for low-level systems programming. What Rust adds to the mix, however, is an emphasis on speed and security. Rust emphasizes writing “safe code” by preventing programs from accessing parts of memory that they shouldn’t, which can cause unexpected behavior and system crashes.

The advantages of Rust mean that other big tech companies, such as Dropbox and Coursera, are already starting to use it internally. While it may be a bit more difficult to master than other beginner languages, Rust programming skills are likely to pay off handsomely as the language’s popularity will only continue to rise in the near future.


Objective-C (ObjC) is an object-oriented programming language. It is used by Apple for the OS X and iOS operating systems and their application programming interfaces (APIs). It was developed in the 1980s and came in usage by some of the earliest operating systems.

Objective-C is object-oriented, general purpose. You can call it hybrid C because of the features it adds to C programming language.


If you are thinking seriously about Android App development, then Kotlin is the programming language to learn this year. It is definitely the next big thing happening in the Android world.

Even though Java is my preferred language, Kotlin has got native support, and many IDEs like IntelliJ IDEA and Android Studio are supporting Kotlin for Android development.


Even if you learn just one programming language apart from the one you use on a daily basis, you will be in good shape for your career growth. The most important thing right now is to make your goal and do your best to stick with it. Happy learning!






Future Scope Of Python Programming

Python is a high level and multi-paradigm programming language designed by Guido van Rossum, a Dutch programmer, having all the features as conventional programming languages such as C, C++ and Java have.

It is one of the fastest growing languages and has undergone a successful span of more than 25 years as far as its adoption is concerned. This success also reveals a promising future scope of python programming language.

In fact, it has been continuously serving as the best programming language for application development, web development, game development, system administration, scientific and numeric computing, GIS and Mapping etc.

Why Is Python So Popular?

The reason behind the immense popularity of python programming language across the globe is the features it provides. Have a look at the features of python language.

Future Scope Of Python Programming.jpg

(1) Python Supports Multiple Programming Paradigms

Python is a multi-paradigm programming language including features such as object-oriented, imperative, procedural, functional, reflective etc.

(2) Python Has Large Set Of Library and Tools

Python has very extensive standard libraries and tools that enhance the overall functionality of python language and also helps python programmers to easily write codes. Some of the important python libraries and tools are listed below.

  • Built-in functions, constants, types, and exceptions.
  • File formats, file and directory access, multimedia services.
  • GUI development tools such as Tkinter
  • Custom Python Interpreters, Internet protocols and support, data compression and archiving, modules etc.
  • Scrappy, wxPython, SciPy, matplotlib, Pygame, PyQT, PyGTK etc.

(3) Python Has a Vast Community Support

This is what makes python a favorable choice for development purposes. If you are having problems writing python a program, you can post directly to python community and will get the response with the solution of your problem. You will also find many new ideas regarding python technology and change in the versions.

(4) Python is Designed For Better Code Readability

Python provides a much better code readability as compared to another programming language. For example, it uses whitespace indentation in place of curly brackets for delimiting the block of codes. Isn’t it awesome?

(5) Python Contains Fewer Lines Of Codes

Codes are written in python programming language complete in fewer lines thus reducing the efforts of programmers. Let’s have a look on the following “Hello World” program written in C, C++, Java, and Python.


While, C, C++, and Java take six, seven and five lines respectively for a simple “Hello World” program. Python takes only a single line which means, less coding effort and time is required for writing the same program.

Future Technologies Counting On Python

Generally, we have seen that python programming language is extensively used for web development, application development, system administration, developing games etc.

But do you know there are some future technologies that are relying on python? As a matter of fact, Python has become the core language as far as the success of these technologies is concerned. Let’s dive into the technologies which use python as a core element for research, production and further developments.

(1) Artificial Intelligence (AI)

Python programming language is undoubtedly dominating the other languages when future technologies like Artificial Intelligence(AI) comes into the play.

There are plenty of python frameworks, libraries, and tools that are specifically developed to direct Artificial Intelligence to reduce human efforts with increased accuracy and efficiency for various development purposes.

It is only the Artificial Intelligence that has made it possible to develop speech recognition system, autonomous cars, interpreting data like images, videos etc.

We have shown below some of the python libraries and tools used in various Artificial Intelligence branches.

  • Machine Learning- PyML, PyBrain, scikit-learn, MDP Toolkit, GraphLab Create, MIPy etc.
  • General AI- pyDatalog, AIMA, EasyAI, SimpleAI etc.
  • Neural Networks- PyAnn, pyrenn, ffnet, neurolab etc.
  • Natural Language & Text Processing- Quepy, NLTK, gensim

(2) Big Data

The future scope of python programming language can also be predicted by the way it has helped big data technology to grow. Python has been successfully contributing in analyzing a large number of data sets across computer clusters through its high-performance toolkits and libraries.

Let’s have a look at the python libraries and toolkits used for Data analysis and handling other big data issues.

  • Pandas
  • Scikit-Learn
  • NumPy
  • SciPy
  • GraphLab Create
  • IPython
  • Bokeh
  • Agate
  • PySpark
  • Dask

(3) Networking

Networking is another field in which python has a brighter scope in the future. Python programming language is used to read, write and configure routers and switches and perform other networking automation tasks in a cost-effective and secure manner.

For these purposes, there are many libraries and tools that are built on the top of the python language. Here we have listed some of these python libraries and tools especially used by network engineers for network automation.

  • Ansible
  • Netmiko
  • NAPALM(Network Automation and Programmability Abstraction Layer with Multivendor Support)
  • Pyeapi
  • Junos PyEZ
  • PySNMP
  • Paramiko SSH

Real-Life Python Success Stories

Python has seemingly contributed as a core language for increasing productivity regarding various development purposes at many of the IT organizations. We have shown below some of the real-life python success stories.

  • Australia’s RMA Department D-Link has successfully implemented python for creating DSL Firmware Recovery System.
  • Python has helped, an online travel site, in reducing development costs and time.
  • also uses python in rating the accuracy of weather forecast reports provided by companies such as Accuweather, and The Weather Channel.
  • Python has also benefitted many product development companies such as Acqutek, AstraZeneca, GravityZoo, Carmanah Technologies Inc. etc in creating autonomous devices and software.
  • Test&Go uses python scripts for Data Validation.
  • Industrial Light & Magic(ILM) also uses python for batch processing that includes modeling, rendering and compositing thousands of picture frames per day.

There is a huge list of success stories of many organizations across the globe which are using python for various purposes such as software development, data mining, unit testing, product development, web development, data validation, data visualization etc.

These success stories directly point towards a promising future scope of python programming language.

Top Competitors Of Python

The future scope of python programming language also depends on its competitors in the IT market. But, due to the fact that it has become a core language for future technologies such as artificial intelligence, big data, etc., it will surely gonna rise further and will be able to beat its competitors.

Tiobe Index

According to Tiobe Index for October 2017, python is among the top five popular programming languages and has left behind Php, Swift, Javascript, Perl, Ruby, R.

The only languages which are slightly ahead of python in terms of popularity ratings are Java, C, C++, and C#. These figures will shortly be going to change after seeing the growing popularity and high adoption of Python programming language.

PYPL Index

Another Index that measures the popularity of programming languages is PYPL. And according to PYPL(PopularitY of Programming Language) index, Python has secured the second position in India and Germany, Java being the only language ahead of it.

But in other countries like U.K, U.S.A, and France, Python has seized the top position beating its toughest competitor Java in terms of popularity.


According to, python is at the 5th position in the list of 31 frameworks and programming languages in India with a market share of 1.6 percent.

The top three competitors of Python in India are listed below along with their market shares and current websites.

  1. ASP.NET
    Market Share- 39.53%
    Current Websites- 41,052
  2. Java
    Market Share- 4.03%
    Current Websites- 4,186
  3. C#
    Market Share- 1.97%
    Current Websites- 2,042

Websites Developed Using Python

As you already know that python programming language is used for web development, so here are some of the world’s most popular websites that are created using python.

  • Youtube
  • Quora
  • Instagram
  • Pinterest
  • Spotify
  • Flipkart
  • Slack
  • Uber
  • Cloudera
  • Zenefits

Organizations Using Python Language

There are many small and big organizations and startups as well that are immensely using Python to improve their productivity and meet customer requirements.

Even the governmental organizations are using python to maintain and add more functionality to their website. USA’s CIA(Central Intelligence Agency) is one of them.

We have jotted down some of the world’s biggest organizations that are continuously deploying python and its development frameworks to deal with their chief areas of production.

(1) NASA-

It uses Workflow Automation System(WAS), an application written in python and developed by NASA’s shuttle support contractor USA(United Space Alliance).

NASA also uses Python for its various open source projects such as APOD(Astronomy Picture of the Day) API, PyTransit, PyMDP Toolbox, EVEREST etc.

(2) Google-

It uses python for its internal systems and API’s and for reports generation, log analysis, A/Q and testing, writing core search algorithms, just to name a few.

Youtube which is subsidiary of Google, Inc also uses python for viewing a video, accessing canonical data, controlling templates of the website etc.

(3) Walt Disney Feature Animation

Walt Disney Feature Animation uses python as a scripting language for most of its animation tasks and related production.

(4) AlphaGene, Inc.

AlphaGene is a biotechnology company based in the United States which deals in gene and protein discovery. It uses python for its bioinformatics and tracking system.

(5) Red Hat

It is a multinational computer software company based in the United States. It uses an installer, Anaconda, written in python for installing RHEL(Red Hat Enterprise Linux) and Fedora operating systems.

Apart from using python-based installer Anaconda, most of the system configuration tools in RHEL and Fedora operating systems are written in python. These tools are used to change the state of the newly installed operating system.

For example, Firewalld is a configuration tool used for the dynamic management of the firewall and provides an essential support for network/firewall zones.

(6) Nokia

Well, you all are already familiar with this popular vendor of mobile phones in the world. It is basically a Finnish IT, consumer electronics, and telecommunication industry.

It uses PyS60(Python for S60) and PyMaemo(Python for Maemo) for its S60(Symbian) and Maemo(Linux) software platforms.

(7) IBM

IBM is an American-based multinational computer manufacturing company. It is using python for its factory tool control applications at its micrus semiconductor plant in East Fishkill. These tools are used to handle data collection, material entry etc.

(8) SGI, Inc.

SGI(Silicon Graphics International) is a U.S-based computer hardware and software company. It also provides high-performance computing, data analytics, and data management solutions.

It uses python for its Linux installer being derived from Red Hat’s Anaconda installer.

This Linux installer is used in several Linux-based products of SGI such as ISP, workstations, system console, clustering, servers etc.

(9) Yahoo! Maps

It is an online mapping portal developed at Yahoo!. Many of its mapping lookup services and addresses were written in python.

This clearly shows that python programming language is currently one of the most popular and widely used languages which is influencing the IT sector and has a vast scope in the future.

Career Prospects In Python Technology

With the advent of Information Technology, the career opportunities associated with python programming language have grown significantly. In fact, IT organizations are looking for candidates having an excellent core and advanced python skills.

This has resulted in an increased demand for python professionals who can easily perform the programming tasks given to them. This also depicts a better career scope for python programmers in the future.

Here we have listed some of the python job profiles along with their respective salaries(according to and in India.

Python Developer- Rs. 336k per year

Software Engineer- Rs. 543,840 per year

Senior Software Engineer- Rs. 909,651

Software Developer- Rs. 524,032 per year

DevOps Engineer- Rs. 634,345 per year

Data Scientist- Rs. 816,147 per year

Why Python Programming Language Has Bright Future?

  1. Python has been voted as most favorite programming language beating C, C++ and java programming. Python programming is open source programming language and used to develop almost every kind of application.
  2. Python is being used worldwide as a wide range of application development and system development programming language. Big brands and search engine giants are using python programming to make their task easier. Google, Yahoo, Quora, Facebook are using python programming to solve their complex programming problems.
  3. Python programming is versatile, robust and comprehensive. Python is high-level programming language and easy to learn as well as it reduces the coding effort compare to other programming languages.
  4. Python programming is used to write test scripts and tests mobile devices performance. It is one of the most versatile languages these days. Python programmers are most demandable in the IT industry these days and get paid more compared to another language programmer.

Resources to lean Python


Best Way to Learn Python (Step-by-Step Guide)

Python is a very popular language.

It’s also one of the languages that I recommend for beginners to start with.

But how do you go about learning this language?

The best way to learn Python is to understand the big picture of all what you need to learn before you dive in and start learning.

In this article, I divide the path of learning Python into 6 levels.

Each level covers a subset of the language that you need to master before you move on to the next one.

My focus on this article is for you to be a competent well-rounded programmer so you can easily get a job at any tech company that you choose.

But don’t worry, you don’t need to go all the way to level 6 in order to get your first job 🙂

Let’s get started.

Level 0: The Beginnings

This is the level you begin at if you are an absolute beginner.

And by absolute beginner, I mean someone who has never coded before in Python or any other programming language for that matter.

If you are coming from a different programming language, then you should skip to level 1.

In this level, most of the concepts you will be learning are general programming concepts. The fundamental skills that will bootstrap you as a programmer.

This means that these concepts are not really exclusive to Python but can be extended to other programming languages as well.

You see, a lot of programming languages are very similar and knowing what’s common (and what’s not) between programming languages will help you transition into a different one in the future.

So what are some of these general programming concepts that I am talking about?

Some of these fundamental concepts are variables, data types, operations, functions, conditionals, and loops.

If you understand what these concepts are, then skip to level 1.

Otherwise, Let me give you a very brief introduction about what these concepts mean.


Variables are essentially storage for data in your program.

More accurately, it’s a way of giving a name for data for later use.

Let’s look at an example.

# variables
msg = "Hello World!"
# this code outputs Hello World! on the screen

In the Python snippet above, we define a variable msg that stores the value Hello World!

This allows us to later print Hello World! on the screen by just using the variable name that stores this value instead of having to type the value Hello World! every time we want to use it.

Data Types

We talked about variables as storage for data, now let’s talk about data.

In Python, data has types.

For example, in the code snippet above, the data Hello World! has a specific type that Python (and other programming languages) call string.

String is simply a sequence of characters.

But strings aren’s the only data type in Python, there are also integersfloating-point numbersbooleanliststuples, and dictionaries.

By the end of level 0, you need to be comfortable with these data types and understand when (and how) to use them in your program.


Operations is how you manipulate and change data in your program.

In other words, your programs needs to operate on data and produce more data, that you also operate on, until you reach the final outcome.

This is just the lifecycle of any program.

In Python, and all programming languages, there exists at least ArithmeticComparison, and Logic operations.

# an example of an arithmetic operation
x = 5 + 2

# an example of a comparison operation
y = 3 > 4

# an example of a logic operation
z = True or False


In order to write any program that is useful, you almost always will need the ability to check conditions and change the behavior of the program accordingly.

Conditional statements using ifif else, or if elsif else gives you this ability.

Here is an example of an if-else statement in Python.

>>> if 3 > 5:
...   print('3 is greater than 5')
... else:
...   print('3 is not greater than 5')
3 is not greater than 5


A function is essentially a block of Python code that only runs when it is called.

You can pass parameters into a function as input and a function can return data as output.

In Python you define a function using the def keyword.

Here is an example of a hello world program using a function say_hello

def say_hello(msg):
  # this is the function
  # msg is the input parameter
  print(f'hello {msg}')

# calling the say_hello function

# output:
# hello world

So this was an example of the fundamental concepts that you should learn at this level.

But most importantly, what you really need to do in order to master this level is to use the above concepts to solve problems.

You will never be a good programmer if all what you do is read books or take courses.

You need to practice solving problems so get your hands dirty and start solving simple problems using Python. You can start by solving Project Euler problems.

I can’t stress enough the importance of mastering level 0.

The reason for that is, this level lays the foundation and the fundamental concepts for not only mastering Python, but mastering any other programming language as well.

So even though this is level 0, don’t take it lightly.

Level 1: Object-oriented Programming

Everything in Python is an object.

You either heard this already, or you are destined to hear about it 🙂

But wait a minute, what exactly is an object?

There are many different ways, models, or paradigms to write computer programs.

One of the most popular programming paradigms is called object-oriented programming (OOP).

In object-oriented programming, an object refers to a particular instance of a Class.

And a Class is like a blueprint of the state and actions that an object can take.

For example, in Python a Person Class might look something like this.

class Person:
  def __init__(self, name, age): = name
    self.age = age
  def get_name(self):

The class declared above describes the state and actions of any Person object.

For example, any Person object will have a name and an age.

In OOP’s terminology, name and age are called the object attributes.

You can also call get_name() on any Person object to return the name of the person.

We call get_name an object method.

In other words, a Python object has attributes and methods that are defined in the object’s Class.

Here’s how to create a Person object

>>> p = Person('Alice', 22)
>>> p.get_name()

Object-oriented programming is essentially one way of structuring and designing your code.

However, I want you to understand that it is not the only way, and it is not necessarily the best way.

In order to learn OOP in Python, you need to progress through a few steps.

Step 1: Learn the concepts of OOP

As I mentioned earlier, OOP is a programming paradigm, a way of structuring and designing your code.

OOP concepts are not exclusive to Python so the concepts you will learn will easily transition to any other programming language.

Some Examples of these concepts are inheritanceencapsulation, and polymorphism.

So make sure you understand these concepts at an abstract level first before you jump into Python’s OOP.

Step 2: Learn about Python’s Classes and Objects

In this step, you need to apply the abstract concepts you learned in the previous step but specifically in Python.

Get comfortable with writing Classes and creating Objects.

Write classes that inherit from other classes and investigate the attributes and methods of the objects created.

Step 3: Solve Python problems using OOP

This is a crucial step.

In this step you want to learn how to use OOP to design and structure your code.

And as a matter of fact, this step is more of an art than a science. That means the only way to get better is through practice, practice, and more practice.

Again keep solving more problems using Python, but try to structure your solutions in an object-oriented way.

The more you practice, the more you will feel at ease with OOP.

Here is a good course on Simplivicon that pretty much covers level 0 and level 1.

Level 2: Concurrent and Parallel Programming

The days of single core processors are far gone.

Nowadays whether you are buying an off-the-shelf laptop or a high-end server for your business, your processor will definitely have multiple cores.

And sometimes, your program needs to take advantage of these multiple cores to run things in parallel.

This can potentially lead to an increased throughput, higher performance, and better responsiveness.

But let me be clear about one thing here, if high performance and increased throughput is of high importance, Python isn’t really the best language out there that supports parallel programming.

In this situation, I would personally go for golang instead (or good old C).

But since this is an article about Python, let’s keep our focus on Python.

Before you dive in and write your first parallel program, there are some parallel processing concepts that you should learn about first.

Here are some of these concepts.

Mutual Exclusion

When you have some data that is shared across multiple threads or processes, it is important to synchronize access to these shared resources.

If you don’t, a race condition can happen which might lead to unexpected and sometimes disastrous consequences. I will talk more about race conditions later.

Mutual exclusion means that one thread blocks the further progress of other concurrent threads that require the use of the shared resource.


Locks is one of various implementations of mutual exclusion.

To understand what locks are, you can think about them from a conceptual perspective.

If a thread wants to access a shared resource, this thread must grab a lock before it’s granted access to that resource.

And after it’s done with the resource, it releases this lock.

If the lock is not available because it is grabbed by another thread, then the thread has to wait for the lock to be released first.

This simple concept guarantees that at most one thread can have access to a shared resource at a time.


A deadlock is when your program comes to a complete halt because some of the threads can’t progress further because they can’t acquire a lock.

For example, imagine Thread A is waiting on Thread B to release a lock. At the same time, Thread B is waiting on Thread A to release another lock that Thread A is currently holding.

In this dire situation, neither Thread A nor Thread B can progress any further so your program is hosed!

This is what a deadlock is.

And it happens more often than you think.

To make the situation worse, it’s also one of the hardest problems to debug.

Race conditions

As I mentioned earlier, a race condition is a situation that arises when accessing a shared resource isn’t protected (for example, by locks).

This can lead to disastrous unexpected outcomes.

Take a look at this example.

import threading
# x is a shared value
x = 0
COUNT = 1000000

def inc():
    global x
    for _ in range(COUNT):
        x += 1

def dec():
    global x
    for _ in range(COUNT):
        x -= 1

t1 = threading.Thread(target=inc)
t2 = threading.Thread(target=dec)


Here is what the code above does. There is a shared global variable x that is initialized to 0.

Two functions inc and dec run in parallel. inc() increments the value of x 1 million times whereas dec() decrements the value of x 1 million times.

By quickly going through the code, it can be concluded that the final value of x should be 0… but is it?

Here is what I get when I run the above code.

 $ python3
 $ python3
 $ python3
 $ python3

The reason why this is happening is because the shared resource x is not protected (by locks for example).

Python’s Parallel Programming

Only after you’re comfortable with the concepts discussed above that you are ready to learn how to write concurrent programs in Python.

First you should learn how Python’s definition of multiprocessing is different from multithreading. (By the way, this is completely unrelated to threads and processes from an OS perspective).

To understand this distinction between multiprocessing and multithreading from Python’s view, you will need to learn and understand the global interpreter lock (GIL).

You will also need to learn about the threadingqueue, and multiprocessing Python modules.

All of these modules provide you with the primitives you need to write parallel programs.

Level 3: Socket Programming

By now you should be very comfortable writing Python code that runs on a single machine.

But what if you want to write code that communicates with other machines over a network?

If you want to do that, then you need to learn about socket programming.

And for that I highly recommend you learn about the basics of computer networks first. Here’s my favorite book.

After you learn the basic networking concepts, you can use Python’s libraries to write code on one machine that communicates with code on another.

It’s like magic. I still remember the exhilaration I felt the first time I had two laptops communicating back and forth to each other over a Wifi network.

Follow these three steps to get started.

Step 1: Write an Echo Program

In this step, you will use Python’s socket module to write a simple TCP server on one machine and a TCP client on another.

Make sure they are two different computers and that both of them are connected to your home network.

The idea of the Echo program is simple. The client side reads a message from the user and sends this message to the server over the network.

At the server side, when this message is received, the server echoes the same message back to the client.

Think of the Echo program as the Hello World program but for socket programming.

After that you can move on to more complex programs.

Step 2: Play around with HTTP

Once you’re comfortable with writing simple TCP client-server applications, you can start using Python’s requests module to send and receive HTTP messages.

This is especially useful because the vast majority of web services these days provide an HTTP API interface that you can interact with programmatically. For example, Facebook, Twitter, and Google maps all have HTTP API interfaces that your code can communicate with.

And if you feel a little more adventurous and want to take this a bit further, you can also scrape the web with BeautifulSoup.

Step 3: Know thy tools

When you write a networking program, sometimes your program will work at the first time.

But sometimes it won’t.

When that happens you need to equip yourself with the tools necessary to troubleshoot what’s going on.

Here are some of the most popular networking tools that you will need.

ping is used to check the connectivity between your machine and another one.

netstat is a versatile networking tool that allows you to, among other things, monitor network connections both incoming and outgoing.

tcpdump is one of my favorite tools for learning networks. It tools allows you to listen to, capture, and analyze real packets going into and out of your computer through any network interface.

Wireshark is a nice GUI interface that does pretty much everything that tcpdump can do. I recommend starting out with Wireshark before moving on to tcpdump just because it’s a little more user-friendly.

And like I said, to understand what all these Get, SYNSYN ACKFIN mean you need to learn networking fundamentals first.

Level 4: Data Structures and Algorithms in Python

If you reached this level, give yourself a pat on the shoulder.

Because by now, you have the skills that enable you to solve a wide variety of problems.

However, something is missing.

You are still not seasoned enough at writing efficient code.

What do I mean by that?

For example, you don’t know how to modify your code to make it run faster. You can’t even analyze why it is slow in the first place.

This is normal.

The knowledge you have learned so far in the previous levels are not enough for you to have a solid understanding of what performance really is, and how to modify your existing code to make it run faster.

Don’t believe me? Look at this simple code that calculates the nth Fibonacci number.

def fib(n):
    if n < 2:
        return n
    return fib(n-2) + fib(n-1)


The code looks simple enough and very straightforward, right?

Try using this code to calculate fib(100) [SPOILER ALERT: it will take an extremely long time]

Now let’s make a simple modification to the code.

def fib(n, d):
    if n < 2:
        return n
    if n not in d:
        d[n] = fib(n-2, d) + fib(n-1, d)
    return d[n]

print(fib(100, {}))

This time all it took was a few milliseconds and you will get the answer, which is 354224848179261915075 just in case you’re wondering 🙂

I used what’s called dynamic programming to solve this problem and make it run astronomically faster.

Well I hope you are convinced by now that you should learn data structures and algorithms.

The skills that you are going to learn at this level are some of the major differentiators between average coders and solid programmers.

You will need to learn about linked liststreesstacksqueuesgraphshash tablesrecursiondynamic programming, searching and sorting algorithms, etc…

Once you master these concepts, you are steps away from getting a software engineering job at any tech company of your choice.

I really mean it!

Level 5: Python Coding Interview Practice

Congratulations! Now you have what it takes to apply for any software engineering job in any tech company in the whole world.

You only need to pass this dreaded coding interview.

In fact a series of them.

If you are at this level, I have written an in-depth article about how you can prepare for a coding interview.

A typical coding interview will assess your problem solving skills, communication skills, knowledge of data structures and algorithms, in addition to how good and efficient you are at translating your thoughts into code.

The best way to pass coding interviews is to give yourself an ample amount of time to prepare.

The more you prepare, the better your interview experience will be, and the more likely you will land your dream job.

Simpliv is an excellent resource with a ton of coding interview questions.

Simpliv allows you to submit your Python solutions to the coding questions and get an instant feedback about the validity and the efficiency of your solutions.

After you start working, you will learn a lot on the job and you will start gaining extensive experience in a very short amount of time.

This is when level 6 starts.

Level 6: Advanced Python

If you want to venture into the territory of Python fluency and take your skills to the next level, then I highly recommend the “Fluent Python” book.

This book assumes you already have a solid understanding of the basics of Python.

In Fluent Python, some of the concepts that you already learned from introductory books are covered from a different angle, in more detail, and with greater depth.

In addition to that, you will learn some new concepts as well.

For example, some of the new concepts that you will learn in this book are

  1. Higher-order Functions: explains how functions can be used as first class objects in Python
  2. Control Flow: covers the topic of generators, context managers, coroutines, and concurrency
  3. Metaprogramming: essentially this is writing code that manipulates code. Some of the topics discussed here are decorators and meta-classes

Optional 1: Python Libraries and Frameworks

Now you have all the basics covered, you are a Python pro.

Well done.

But the journey doesn’t end here, Python has a ton of useful libraries that can help you even more.

Knowing what libraries to use and when to use them can save you a lot of time and effort and enables you to have the breadth of knowledge that is required to choose the right tools for the right job.

So let’s talk about some of the most popular Python libraries and frameworks.

1. Building API services with Python (Flask)

These days, the way large and scalable web applications are built is by creating a bunch of smaller applications that communicate with each other.

This architecture is called a micro-services architecture [buzzword alert] and each of these smaller applications is called a service or micro-service.

These micro-services can communicate in various ways but one of the most popular methods is HTTP.

In other words, each one of these services will expose an HTTP API that other services will be able to talk to.

With that said, it’s a very good investment to learn how to create API services in Python.

And one of the most popular Python libraries that make this super easy is Flask.

Here is a good tutorial about Flask.

2. Building Web applications with Django

Django is a full-fledged web framework that allows you to create an entire web application (both front-end and back-end) in Python.

By learning Django, you will also be introduced to some concepts that are very popular in other web frameworks in other languages like MVC (model-view-controller) and ORM(object-relational mapper).

MVC is a way of structuring and organizing your web application whereas ORM is a technique that bridges the gap between object-oriented programming and accessing data in a database.

And while we’re at the topic of ORM, It’s worth mentioning that you should take a look at SQLAlchemy which is a very popular, and widely-used ORM library in Python.

So roll up your sleeves and go ahead, create your first web application 🙂

3. Machine Learning Libraries

Python has become the de-facto language for machine learning and data science.

This comes as no surprise given the maturity of Python’s machine learning libraries.

If you want to be a data scientist, I highly recommend learning the mathematical and statistical fundamentals of machine learning first before learning the ML libraries in Python.

Introduction to Statistical Learning is an excellent place to start.

If you prefer a video course instead, then you should take Andrew Ng’s ML course on Simpliv.

Once you have the basics covered, start playing around with these Python libraries.

1- scikit-learn This library has everything under the sun when it comes to ML algorithms.

2- Tensorflow Another very popular open source machine learning framework.

3- pandas A popular data analysis library.

Optional 2: Python Implementation (CPython)

Python in an interpreted language.

This means that your Python code doesn’t get compiled down to a machine code directly, but first it is compiled to an intermediate language, called byte code, which is later interpreted by another piece of software called the interpreter.

Do you want to see how the bytecode looks like for a simple Hello World program?

Let’s create a source file

print("hello world")

Here is how to view the bytecode for the above source code

$ python3 -m dis
2           0 LOAD_NAME                0 (print)
            2 LOAD_CONST               0 ('hello world')
            4 CALL_FUNCTION            1
            6 POP_TOP
            8 LOAD_CONST               1 (None)
           10 RETURN_VALUE

This bytecode will then be interpreted by an interpreter. This is when it gets executed and you finally see hello world printed on your screen.

There are various Python implementations for the compiler and the interpreter.

However, CPython is the default and most widely-used one. It’s written entirely in C.

It is both an interpreter and a compiler as it compiles Python code into bytecodebefore interpreting it.

So why am I talking about Python implementation?

Do you really need to know this nitty gritty details of Python to be a Python master?

Honestly, the answer is no.

But if you are curious about how Python’s list, tuples, functions,.. etc are implemented, and if you are willing to learn a new language (C) along the way, then may be you should consider contributing to CPython.

And if you don’t know how to get started, then I highly recommend Philip Guo’s 10-hour course on CPython.

Finally, whatever level you’re at, good luck in your Python learning journey :).


Featured Posts

Top Steps to Learning Python the Right Way

What is Python? Why Programmers Should Learn Python in 2019?

Top Steps to Learning Python the Right Way