Python is one of the most polarizing languages in the programming world. You either love it or you hate it, and you might even swing from one end to the other like a pendulum. But regardless, Python is a language that's hard to be ambivalent about.

I went through those swings myself: at first Python was amazing, but its drawbacks eventually caught up to me and I did a 180. But once I learned how to navigate those issues, I fell in love again.

In this article, let's explore both sides of the fence. Why do haters hate? Why do lovers love it? And is Python the right language for you? Keep reading to find out.

Why Do People Hate Python?

There are two main reasons people don't like Python.

The most common reason for someone to have a negative reaction to Python is unfamiliarity. If your first experience with programming is in school, you're most likely to learn a language like C++, C#, or Java -- and all of these languages are nothing like Python at all.

Python is designed in such a way that it requires a different way of thinking. (This is also one of the reasons why people love it, which we'll explore in more detail below.) So if you're coming from a background with lots of curly braces, verbosity, and static typing, Python won't feel right.

But even after familiarizing yourself with Python, you may just not like it. The community being split between Python 2 and Python 3 also lends to some confusion and compatibility issues, something that other languages usually don't have to deal with.

Computational speed is the other big reason why people avoid Python. Strictly speaking Python is slower than other "more serious" languages, and that tends to scare people away because they don't want to get sucked into a language only to find out that it's too slow for their needs.

Realistically speaking Python is more than fast enough for 95% of its use cases -- and if you need more speed, you can move time-critical functions using Cython or PyPy. For the most part, modern computers are so fast that the speed difference is negligible.

If you can get over both of those hangups, you'll find that Python is far from useless as a language. In fact, there are several great reasons why Python has a place in the programming world and why you should consider powering through even if you feel like you hate Python right now.

1. Python Is Straightforward and Fun

One reason why programming has a reputation for being tough and nerdy is that coding is actually tough and nerdy, but Python is one of the many languages that has effectively changed that perception. Newbies are more likely to stick with programming if they start on Python rather than, say, C.

python-reasons-clean

Python's syntax is simply easier to swallow. It's less foreign. It isn't as intimidating, and it's easier to read as someone who has never looked at code before. The strict use of white space also means that Python source code tends to look the same from project to project -- not exactly true for bracket-based languages.

But more than that, Python has developed its own kind of culture: there is actually a "right" way to code in Python, and it's known as the "Pythonic" approach to coding (mostly dictated by the PEP8 standard). When written properly, Pythonic code is straightforward, easy to read and understand, and ultimately less daunting for newbies.

And in all honesty, Pythonic code is so much more fun to write. Python is the kind of language that can snap you out of your misery when you're feeling burned out and demotivated by other languages.

2. Python Tutorials Are Everywhere

The more popular a language is, the more tutorials you'll find for it. And if we assume that Github's 2016 report is accurate, then Python is the third most popular language being used right now (sandwiched between Java and Ruby). Ergo, you'll find an abundance of Python tutorials, and this is great for learning.

For example, you can start with these websites that teach Python to get a sense of the language. You can then move onto these coding games that can teach you in more interactive ways, which will help the material sink in.

Online courses are always a possibility too:

If you're into DIY projects, you can also learn Python with a Raspberry Pi. And if you're also into Minecraft, you can take it even further by learning Python with Minecraft Pi Edition. What's great about this method is that you end up with a few practical skills that you can leverage in other ways afterwards.

Whatever you do, make sure you learn how to discern good tutorials from bad. And if you're having trouble picking up Python, check out these tips for mastering any new programming language.

3. Python Is Great for Rapid Development

Python has dynamic typing (the "type" of an object is checked at runtime instead of at compile time), strong typing (operations can only be performed on compatible object types), and a lot of built-in language features that free you up from having to write lots of boilerplate code.

This means that development in Python tends to be super fast. What might take 1,000s of lines of Java code could potentially be done in under 100 lines of Python code. Not always, mind you, but often. This is the beauty of a Pythonic approach.

python-reasons-learn

The downside to this is that large Python codebases can quickly become unmanageable, but this has become less of an issue in recent years due to the availablity of advanced IDEs (like Pycharm), advanced text editors (like Sublime Text), and nifty project management tools.

Python also has a massive collection of libraries and frameworks that you can use to jumpstart whatever project you want to do, and these are often designed specifically with rapid development in mind. In fact, this brings us to our next point...

4. Python Is Used All Over the Place

What do YouTube, Quora, Instagram, Reddit, and Dropbox all have in common? They're all built using Python! Even though HTML and JavaScript are the "main" languages of front-end web development, Python is now one of the most-used languages for back-end stuff thanks to frameworks like Django.

Python is also hugely important in the field of data analysis, competing with Matlab and other similar languages. But Python is preferred, not only because it has access to libraries like pandas, NumPy, and SciPy, but because it's cleaner, better designed, has great support for dictionaries (AKA hashes), and is free and open source.

python-reasons-jobs

As mentioned before, Python is a solid language for making cool projects with a Raspberry Pi or Arduino.

But really, the possibilities are too vast for us to enumerate them all in one post. Python has been used for game development, mobile app development, computer graphics, databases, unit testing, data crunching, data visualization, weather simulations, as a scripting language, for automated utility scripts, and more.

5. Python Jobs Are Plentiful

Because Python is used in so many different ways, Python mastery can go a long way towards improving your employability in various tech-related fields.

Back-end web development is the big one. With enough experience to earn yourself a "senior developer" position, you could potentially earn up to $150,000 per year or more by working on sites powered by Django or Flask.

Data science and data engineering are also big, with the former able to earn up to $150,000 per year and the latter up to $180,000 per year. These jobs aren't easy, but they're well worth it if you can acquire the necessary skills.

This is just one of many reasons why it's never too late to learn programming. Depending on how quickly you learn, a career change could be right around the corner! And if that's something that interests you, be sure to check out our programming interview tips.

Maybe Python Isn't Right for You

At the end of the day, Python may simply not be your cup of tea -- and that's okay. Plenty of people don't like it for personal reasons, so don't feel bad about it. However, I hope this article helped illuminate why Python itself is not a useless language.

If you're finding that you don't like any of the languages across the board, then maybe that's a sign that you aren't meant to be a programmer. That's fine! There are plenty of non-coding tech jobs you can pursue instead.

Why do you love Python? Or why do you hate it? What are some cool uses for Python that a newbie can look forward to? Let us know in the comments below!