How long have you been working as a developer?
Which technologies did you first use to start programming?
I’ve been working as a developer for more than 5 years. I started programming in Django
I’ve always used Python as the core of my tasks: in the beginning, it was full
stack, but I ended up focusing on the back-end.
Are you part of any programming community in the region? If so, which one?
Currently, I don’t belong to any programming community.
Many people use Python as the language to learn programming. Why do you think that is? How is it different from other languages?
Python was created so that people who studied maths (and not programming) could solve mathematical problems. Hence, the language is really versatile and not so bureaucratic. What happens is that people want to start programming and Python doesn’t really require anything to run. It doesn’t need JVM, like Java or Scala, and it doesn’t need a hard-to-install compiler, which is what happens with C. Another example: it doesn’t require an IDE like SmallTalks (in which IDE is the language, quite a strange thing, really). However, it does come with all the features (or almost all of them) that all the other languages I mentioned offer.
So, we have a language which is quite easy to set up, works in a text editor and allows us to do almost anything, from objects to functional programming or even something similar to structured programming.
In what types of projects can you apply Python? What other technologies can you combine it with?
The projects that come to mind are educational. The National University of Quilmes (in Buenos Aires, Argentina), where I studied, has a programming language in Python, called gobstones.
The project has changed and now it runs as a web version, which is more convenient. However, back in its day, it was a pseudocode made in Python. It’s really easy to understand sentences in Python because it doesn’t use many symbols, it uses indentation to separate the different code scopes, and the code can be written anywhere and it will still work (in Java, for example, everything has to be divided into classes, and you have one file per class). Besides, there are no strict types to be used, so the user doesn’t get the constant “This type is not accepted by this function” message.
There is one extra thing that has really helped Python become more popular among people who are just starting: its community. They constantly implement improvements and new tools. There are Python apps, whether you need to carry out mathematical processes or file and text processes. Python is also used to create webservice, since the maintenance is really simple. Nowadays, Python is used for data analysis and a bit of data science (Pandas library).
In your opinion, what skills and knowledge should a back-end developer have in 2021?
There’s one vital thing: they should always try to understand what responsibilities the thing they are developing will have. This is also for front-end developers but, in the case of back-end, changes tend to be more difficult to deal with. If something hasn’t been thought through thoroughly and it’s been badly implemented, it’s going to stay that way for a long time. Generally, in my short experience, if you try to distribute responsibilities well, even though you might be working with old technologies or developing an inherited project, you will end up bringing more value into the product and the team. It’s easier to do maintenance on things we can find intuitively. If the thing we’ve implemented has a descriptive name and it does just the thing being described, then we all win.
Secondly, I would always recommend developers to use TDD (Test Driven Development). If we test our code, we make sure we will solve the problem (needless to say, everything in programming is “a problem”). And not only will we solve that problem, but others will be able to do it as well.
What advice would you give to people who are just starting with Python?
Always try to find out what new tools are out there and test them, i.e. make sure to keep up to date. It’s also good to know the foundations of programming, like SOLID, for example, and understand what it’s used for. As for Python, I think it’s good to test the most widely used tools (Django, Pandas, Numpy, Flask, Fastapi, Async.io, Tornado), and also be aware what can’t be done with them, and when using a different programming language would work better.