Python — con­sidered by many only as a tool to auto­mate simple tasks, by oth­ers con­sidered the most desir­able to learn. What is the reas­on­ing behind this? We have at least a few good answers. In an inter­view with Maciej Gro­madzki and Michał Turemka, we debunk myths, find out how it is used in the auto­mot­ive industry and … why it is per­fect for chan­ging your career path.

Maciej and Michał, Python accord­ing to a 2020 sur­vey of developers by Stack Over­flow, Python is in TOP3 of the most “loved” lan­guages what is behind it? Why is Python one of the most pop­u­lar pro­gram­ming lan­guages right now?

Python is simple – that’s its greatest advant­age com­pared to oth­er pro­gram­ming lan­guages. You don’t need any par­tic­u­lar exper­i­ence to start writ­ing Python code, prin­ciples are simple and easy to learn. That’s the main reas­on it has been taught to chil­dren in the Ele­ment­ary Schools. It isn’t just for begin­ner developers, but is an util­ity that even exper­i­enced developers tend to use to sim­pli­fy their tasks.

What are the chal­lenges of cod­ing in Python?

If you come from some low-level lan­guage, like C, it might take some time to get used to “everything’s an object” concept. Python is strongly object-ori­ented and this kind of ver­sat­il­ity might be con­fus­ing at first, but later you can take advant­age of that – ima­gin­a­tion is the only lim­it here.

What’s the entry level?

How much time would be needed to start as a Juni­or Python Developer? It depends on your pro­gram­ming exper­i­ence and how many hours a day you are will­ing to put into it. Assum­ing you are going to spend 40 hours weekly and you know the basics, i.e. from anoth­er lan­guage, it would be fairly easy to switch with­in a few weeks. Start­ing your jour­ney with cod­ing, on the oth­er hand, would take an addi­tion­al month or two to wrap your head around the the­ory behind it.

What do you value the most in Python?

Mostly cod­ing speed, as it allows you to do more in short­er time. Really help­ful is that Python is a mature lan­guage, with well writ­ten doc­u­ment­a­tion, cod­ing rules and big com­munity. That leads to a huge amount of 3rd party lib­rar­ies and pack­ages that can be used to achieve what’s needed. To be fair, if you want to auto­mate some­thing, most likely there is already a Python pack­age for that.

How’s the lan­guage performance?

It’s rather low, but being a top in per­form­ance wasn’t Python’s goal. In the end, it is a script­ing lan­guage, so would always per­form worse than com­piled ones. As men­tioned before, its main advant­ages are sim­pli­city, cod­ing swift­ness and ver­sat­il­ity. It allows cre­ation of simple, easy to main­tain solu­tions in cases where software’s reac­tion time is not so cru­cial. Cre­at­ing pro­to­types of solu­tions that would be later writ­ten in a bet­ter per­form­ing lan­guage, might also improve project’s devel­op­ment process.

Where is it used the most? What are the fields it’s under­es­tim­ated in?

Pop­u­lar opin­ion among vet­er­an developers is that Python’s only use case is to auto­mate tedi­ous tasks with a short, simple script. Con­trary to that, on the Inter­net you will mostly find com­plex pack­ages with thou­sands lines of code. Job offers have been shap­ing the opin­ion around Python drastic­ally – most of them are look­ing for either test­er or backend developer with Django, so for many people these have been the only applic­a­tions they know. Mean­while, it has been used in machine learn­ing and big data for a long time now, cur­rently spread­ing to oth­er domains.

Is Python used in Auto­mot­ive? If so, what are the use cases?

Mainly, it is being used in a test auto­ma­tion, thanks to the wide range of 3rd party pack­ages hand­ling vari­ous soft­ware and hard­ware APIs. Next to that would be pro­to­typ­ing, men­tioned earli­er, and all kinds of scripts, e.g. used to emu­late car’s intern­al com­pon­ents to ease soft­ware development.

In the same Stack Over­flow sur­vey, one in 3 pro­gram­mers indic­ate that Python is the num­ber one lan­guage they would like to be devel­op­ing with it. Would you recom­mend Python as a start­ing point of someone’s IT career? If so, for which pos­i­tions it might be useful?

For someone who is try­ing to switch careers and has very little know­ledge about IT industry or struggles to find the first job, learn­ing Python is a very good idea. There are many job offers for test­ers and the abil­ity to write Python code is nice to have, some­times even required, so it would be a great addi­tion to your resume. You will also find such offers at Codelab. Of course, this won’t close you the doors to oth­er job pos­i­tions – you can still hone your skills and take pos­i­tions as a Python or even oth­er lan­guage developer in the future.