This week’s Python interview is with Alexandru Railean! Alexandru is a Python developer, but his interests lay beyond programming only. Be sure to check out his blog on railean.net, but now, let’s find out more about him!
Can you tell a little about yourself (hobbies, education, interests, etc.)
First and foremost, I am not a hero of programming, I am just a person.
I studied at the Technical University of Moldova, though I should point out that a significant part of my skill-set was cultivated through books and interactions with other people.
Everything is of interest to me, because when you connect the dots you realize that all things are interconnected. Yes, some dots have multiple intermediate nodes between them, but they’re still linked, and you can leverage these connections to produce unusual ideas. This is why I can easily get attracted to an obscure field, provided there’s someone who can tell a captivating story about it.
Assuming that most of the people who read this are programmers, I would like to highlight cognitive psychology. Although it may not have an obvious relation with programming, knowing about how people learn and solve problems will help you write code that is easier for others understand and maintain. Take that a step further and you can figure out how to make a friendlier user interface. Yet another step - you can make it not just friendly, but also aesthetically pleasing - thus you’re slowly getting into “artistic territory”.
As a thought-experiment, I encourage your readers to find a link between programming and the school subject they hated most (and write about it in the comments).
Why did you start using Python?
The reasons are quite lame - a friend of mine mentioned it (in a negative light, by the way), and it was often referred to on a site I frequent a lot - Slashdot. I decided to give it a try out of curiosity.
This was before the “green snake” logo, I was a student, books were unavailable, Internet was dial-up and I regularly used Hyperterminal to exchange university-related materials with a colleague.
I printed a Python cheat-sheet I found online and started to learn the syntax. Soon I realized that this was easier than Pascal or C, due to the availability of data-structures such as lists or dictionaries, for example. It required fewer lines of code, so I began writing all my assignments in Python (unless another language was explicitly requested). (There were many other reasons too, some are listed here)
This had a dramatic effect, I was always on time and I had a better understanding of what I was doing. I told my colleagues about it and some expressed interest; one of them even wrote his thesis project in Python.
I was so mesmerized that I watched the entire “Monty Python’s flying circus” series as a bonus.
What other programming languages do you know and which is your favorite?
The answer depends on your definition of “know” - I’ve used quite a few over the years. The ones that I applied to solve actual problems (and get paid) are Pascal, Delphi, PHP, C, C++, Python. As a child I learned some Basic by typing code from “Наука и жизнь” magazines into my [made in USSR/Moldova, by the way] computer (sadly, the programs almost never worked for me). There are many languages that I was exposed to as a maintainer who had to change something in existing code to correct errors or introduce new features (or bugs) - Javascript, Perl or Java, for example. I also wrote some pretty complex batch files and Bash scripts.
I don’t have a favourite language and I usually do an analysis before deciding which one is more suitable for a problem I am facing. Python’s versatility makes it a frequent choice, and it has given me the most satisfaction so far.
At some point it is easy to pick up new languages that follow the same paradigm, it all boils down to “what is the equivalent of printf in this language?”. Greater effort is required when you switch to something completely different. For example I “know” LISP and Erlang, but I have yet to apply them in a serious endeavour.
What projects are your working on now?
Multiple projects are always on my mind; one of them is a system for electronic payments in public transport. It has multiple components and many of them are written in Python.
Besides that I am also writing various tools to aid my research related to the privacy and usability of the Internet of things.
Which Python libraries are your favorite?
Stdlib, it enabled me to get things done before I even knew PyPI existed.
Where do you see Python going as a programming language?
That’s a tough question. I hope MicroPython will get more attention, so people who are programming microcontrollers could take advantage of the expressive syntax.
What advice would you give to people that begin their journeys as Python programmers?
Not to regard themselves as “Python programmers”, but rather as thinking persons who solve problems using whatever tools are more suitable. This way they’d be more valuable.
Other small tips:
- don’t get addicted to an IDE
- learn how to use PDB (video)
- make a plan before you write code
- find a mate with whom you can do pair-programming; read each other’s code and discuss it