Of all the questions and doubts I get, I believe this one is universal. I will try to answer it.
Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
To read the poem above, just install Python on your computer (tutorial avaliable here) and use the command:
Occupapying the 3rd position as the most used language in the world (source: TIOBE), Python has been looking for a constant demand, both from developers and from companies. It's high performance with large volumes of data has made the technology grow exponentially, and the trend is for it's applications to grow more and more.
A dutchman, named Guido Van Rossum, created the language at Christmas 1989. It's C based, and it's name is a reference to the Monty Python comedy series.
It's goals are:
to be intuitive and easy to learn, yet still as good as languages considered "powerful";
to have a syntax as intelligible as English;
to be open source, thus allowing other people to be able to contribute with ideas and features;
to be perfect for solving everyday's problems, providing faster development and a lower learning curve.
If the topics above are not enough to convince you to learn the language, I give to you a little help. As said, the language learning curve is low, which means that the language learning is fast and the trend is for you to produce code that is more and more intuitive - and faster.
A few years ago, the MIT (Massachusetts Institute of Technology) decided to use Python to introduce programming logic to it's students. The strategy was made because many students failed the subject. In Switzerland, the Fachhochschule Zurich university works with the language in postgraduate courses.
Already here in Brazil, we have these institutions teaching the disciplines of programming logic / programming with Python (as far as I could list):
- FATEC (Faculty of Technology of São Paulo) - some units;
- IMPACTA (private college in São Paulo);
- USP (University of São Paulo);
- IFRO (Federal Institute of Rondônia);
- PUC-Rio (Pontifical Catholic University of Rio de Janeiro);
- UFC (Federal University of Ceará);
- UFSCar (Federal University of São Carlos, São Paulo);
- Mackenzie (private college in São Paulo);
- Infnet Institute (private college in Rio de Janeiro);
- UEFS (State University of Feira de Santana, Bahia);
- UNICSAL (State University of Health Sciences of Alagoas);
- UEA (University of the State of Amazonas);
- IFPB (Federal Institute of Paraíba);
- UERJ (State University of Rio de Janeiro);
- UFSC (Federal University of Santa Catarina);
- Instituto Superior Tupy (Private College of Joinville, Santa Catarina);
- UEPB (State University of Paraíba);
- IFPI - Campus Picos (Federal Institute of Piauí);
- UNIFEI (Federal University of Itajubá - Minas Gerais);
- Estácio de Sá University (Rio de Janeiro branch);
- UFV (Federal University of Viçosa - Minas Gerais);
- UNB (Federal University of Brasília - Federal District);
- UFMG (Federal University of Minas Gerais);
- IFF (Instituto Federal Fluminense - RJ);
- IFRN (Federal Institute of Rio Grande do Norte);
- UFCG (Federal University of Campina Grande - Paraíba);
- UFMS (Federal University of Mato Grosso do Sul);
- IFSP São Carlos (Federal Institute of São Carlos, São Paulo);
- UFPR Litoral (Federal University of Paraná);
- UCL (University of Centro Leste - Espírito Santo);
- IFRN - Ceará-Mirim Campus (Federal Institute of Rio Grande do Norte).
Thanks to followers who contributed to this list of institutions - I love you!
Well, here's a broad question. When we talk about Python, the subject ranges from applications developed for the web to machine learning algorithms. Remember the first black hole photo made famous in 2019? So, several Python libraries were used to achieve this feat. Companies like Youtube, Google, Pinterest, Instagram, Spotify, Reddit, Dropbox and Quora also uses it in their applications.
Below is an example list of technologies developed in Python and their respective areas of expertise:
- Scikit learn;
- Beautiful Soup;
Unlike other famous languages that are owned by large companies, Python always kept it's source open and available to anyone who wanted to contribute. This helps the fact that people who adhere to the open source movement are attracted to the universe of this technology, but it doesn't stop there.
It is a language that does not require the use of lots of special characters, making it's usage pretty simple;
It is also multiparadigm, which provides greater development experience;
It has an extensive internal library, which facilitates the use of the language and does not need to import from external libraries all the time;
It's built-ins functions (i.e native functions), are always available;
It is extremely comprehensive and used by several areas that are not necessarily in STEM. For example: there are several journalists who are great Python programmers and I've met biomedics, accountants, physicists, geographers, mathematicians, neuroscientists, engineers, and people from various professions who program in the language;
It has an amazing community, which values diversity and inclusion, as well as being very welcoming.
And we come to my favorite part of this theme. For a lot of people, hearing about the community may seen strange or confusing, but I'll explain it. They are people (who don't need to be Python developers) that gather together to learn and share knowledge. As a person once taught me (** <3 **), there is a common phrase that defines it very well:
"Software community is when you bring together people who excel in teaching, people interested in learning, and people who have different levels of knowledge who interact with each other to make the same project."
And with that definition, I can explain a little better what communities are like. In this environment, people from different levels come together to help, learn, support, network, have ideas and develop them, promote initiatives (such as using programming for groups considered a minority in IT), provide a safe environment where they can evolve and find opportunities.
Within the Python community, there are many of these groups. Check it out:
It has the GruPy's or PUG's, which are Python user groups and open to everyone;
The PyLadies, an initiative to insert, encourage, and empower women in programming using Python;
The SciPy, which is the scientific language community;
The AfroPython, aimed to black people;
PyData, for people who like and / or work with data;
And it is in the midst of these people that emerges conections for the rest of their lives. Are you finding it exaggerated? I've seen job offers, dating requests, marriages, company partnerships, various partnerships, many friendships and hangouts that are forever imprinted in my memory. Here's the tip: go to a Python event and stay for the PyPub. You won't regret it :D
PS .: If you don't have a local group where you live, why not create one? To start a community, just have the will and initiative!
Now that I've told you a little about Python, I think it's clear why so many people like the language right?! So don't waste time and come to the Pythonic side of the force!