Python — con­si­de­red by many only as a tool to auto­ma­te sim­ple tasks, by others con­si­de­red the most desi­ra­ble to learn. What is the reaso­ning behind this? We have at least a few good answers. In an inte­rview with Maciej Gro­madz­ki and Michał Turem­ka, we debunk myths, find out how it is used in the auto­mo­ti­ve indu­stry and … why it is per­fect for chan­ging your care­er path.

Maciej and Michał, Python accor­ding to a 2020 survey of deve­lo­pers by Stack Over­flow, Python is in TOP3 of the most “loved” lan­gu­ages what is behind it? Why is Python one of the most popu­lar pro­gram­ming lan­gu­ages right now?

Python is sim­ple – tha­t’s its gre­atest advan­ta­ge com­pa­red to other pro­gram­ming lan­gu­ages. You don’t need any par­ti­cu­lar expe­rien­ce to start wri­ting Python code, prin­ci­ples are sim­ple and easy to learn. That’s the main reason it has been tau­ght to chil­dren in the Ele­men­ta­ry Scho­ols. It isn’t just for begin­ner deve­lo­pers, but is an uti­li­ty that even expe­rien­ced deve­lo­pers tend to use to sim­pli­fy the­ir tasks.

What are the chal­len­ges of coding in Python?

If you come from some low-level lan­gu­age, like C, it might take some time to get used to “everything’s an object” con­cept. Python is stron­gly object-orien­ted and this kind of ver­sa­ti­li­ty might be con­fu­sing at first, but later you can take advan­ta­ge of that – ima­gi­na­tion is the only limit here.

What’s the entry level?

How much time would be needed to start as a Junior Python Deve­lo­per? It depends on your pro­gram­ming expe­rien­ce and how many hours a day you are wil­ling to put into it. Assu­ming you are going to spend 40 hours weekly and you know the basics, i.e. from ano­ther lan­gu­age, it would be fair­ly easy to switch within a few weeks. Star­ting your jour­ney with coding, on the other hand, would take an addi­tio­nal month or two to wrap your head aro­und the the­ory behind it.

What do you value the most in Python?

Mostly coding spe­ed, as it allows you to do more in shor­ter time. Real­ly help­ful is that Python is a matu­re lan­gu­age, with well writ­ten docu­men­ta­tion, coding rules and big com­mu­ni­ty. That leads to a huge amo­unt of 3rd par­ty libra­ries and pac­ka­ges that can be used to achie­ve what’s needed. To be fair, if you want to auto­ma­te some­thing, most like­ly the­re is alre­ady a Python pac­ka­ge for that.

How’s the lan­gu­age performance?

It’s rather low, but being a top in per­for­man­ce wasn’t Python’s goal. In the end, it is a scrip­ting lan­gu­age, so would always per­form wor­se than com­pi­led ones. As men­tio­ned befo­re, its main advan­ta­ges are sim­pli­ci­ty, coding swi­ft­ness and ver­sa­ti­li­ty. It allows cre­ation of sim­ple, easy to main­ta­in solu­tions in cases whe­re software’s reac­tion time is not so cru­cial. Cre­ating pro­to­ty­pes of solu­tions that would be later writ­ten in a bet­ter per­for­ming lan­gu­age, might also impro­ve project’s deve­lop­ment process.

Whe­re is it used the most? What are the fields it’s unde­re­sti­ma­ted in?

Popu­lar opi­nion among vete­ran deve­lo­pers is that Python’s only use case is to auto­ma­te tedio­us tasks with a short, sim­ple script. Con­tra­ry to that, on the Inter­net you will mostly find com­plex pac­ka­ges with tho­usands lines of code. Job offers have been sha­ping the opi­nion aro­und Python dra­sti­cal­ly – most of them are looking for either tester or bac­kend deve­lo­per with Djan­go, so for many people the­se have been the only appli­ca­tions they know. Mean­whi­le, it has been used in machi­ne lear­ning and big data for a long time now, cur­ren­tly spre­ading to other domains.

Is Python used in Auto­mo­ti­ve? If so, what are the use cases?

Main­ly, it is being used in a test auto­ma­tion, thanks to the wide ran­ge of 3rd par­ty pac­ka­ges han­dling vario­us softwa­re and har­dwa­re APIs. Next to that would be pro­to­ty­ping, men­tio­ned ear­lier, and all kinds of scripts, e.g. used to emu­la­te car’s inter­nal com­po­nents to ease softwa­re development.

In the same Stack Over­flow survey, one in 3 pro­gram­mers indi­ca­te that Python is the num­ber one lan­gu­age they would like to be deve­lo­ping with it. Would you recom­mend Python as a star­ting point of someone’s IT care­er? If so, for which posi­tions it might be useful?

For some­one who is try­ing to switch care­ers and has very lit­tle know­led­ge abo­ut IT indu­stry or strug­gles to find the first job, lear­ning Python is a very good idea. The­re are many job offers for testers and the abi­li­ty to wri­te Python code is nice to have, some­ti­mes even requ­ired, so it would be a gre­at addi­tion to your resu­me. You will also find such offers at Code­lab. Of cour­se, this won’t clo­se you the doors to other job posi­tions – you can still hone your skills and take posi­tions as a Python or even other lan­gu­age deve­lo­per in the future.