Pinterest Stumbleupon Whatsapp
Ads by Google

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.

Ads by Google

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
Image Credit: Alexander Kovalenko via Shutterstock

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 10 Tips for Writing Cleaner & Better Code 10 Tips for Writing Cleaner & Better Code Writing clean code looks easier than it actually is, but the benefits are worth it. Here's how you can start writing cleaner code today. Read More  (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 Programming Burnout: How to Regain Your Lost Motivation Programming Burnout: How to Regain Your Lost Motivation Writing all those lines of code can be draining physically and emotionally. All you need to get back up is the awareness that motivation can be regained. Read More .

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 What Makes a Good Programming Tutorial? What Makes a Good Programming Tutorial? Not all programming tutorials are made equal. Some benefit you and others end up wasting your time. Here's what to look for in a quality programming tutorial. Read More . And if you’re having trouble picking up Python, check out these tips for mastering any new programming language 7 Useful Tricks for Mastering a New Programming Language 7 Useful Tricks for Mastering a New Programming Language It's okay to be overwhelmed when you are learning to code. You'll probably forget things as quickly as you learn them. These tips can help you to better retain all that new information. Read More .

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
Image Credit: 32 pixels via Shutterstock

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
Image Credit: TCmakephoto via Shutterstock

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 6 of the Best Paying Tech Careers for 2016 6 of the Best Paying Tech Careers for 2016 Investing in the right technology career requires planning and foresight. These six career options are expected to be the hottest in the next few years. Are you ready? Read More 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 3 Myth-Busting Reasons to Start Coding Even at an Older Age 3 Myth-Busting Reasons to Start Coding Even at an Older Age Have ever wondered if you're "too old" to start learning how to program, the simple answer is that anyone can pick it up. The real question is, should you give it a shot? Read More . 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 How to Prepare Yourself for a Programming Interview How to Prepare Yourself for a Programming Interview The best advice for programming interviews. Any interview can be daunting. Do you know enough to pass? Will your solutions be good enough? What if you choke? Apply these five tips. Read More .

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 6 Signs That You Are Not Meant To Be A Programmer 6 Signs That You Are Not Meant To Be A Programmer Not everyone is cut out to be a programmer. If you aren't completely sure that you're meant to be a programmer, here are some signs that may point you in the right direction. Read More . That’s fine! There are plenty of non-coding tech jobs you can pursue instead Coding Isn't For Everyone: 7 Tech Jobs You Can Get Without It Coding Isn't For Everyone: 7 Tech Jobs You Can Get Without It Don't be discouraged if you want to be a part of the tech field -- there are plenty of jobs for people who don't know how to code! Read More .

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!

  1. Doc
    November 20, 2016 at 5:42 pm

    "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."
    Um, no, my first experience with programming - in school - was with 8-bit Apple ][ BASIC. You're assuming the age of your readership is a lot younger than it is...which is a serious mistake.

    • Robedrt slackware
      November 27, 2016 at 8:58 pm

      Wow, you are young.
      assembly and binary on an IBM mainframe. ticker tape, and huge 8" floppies. Fortran was first high level language. Python, like Perl have it's uses, the raspberri pi is why I learned it. It isn't a love or hate, it is just a necessity sometimes. Why reinvent the wheel? If your freezer uses an atmel cpu, why force it to run on intel?

  2. cybernard
    November 17, 2016 at 8:30 pm

    tried using it to pass email from postfix to a python script via stdin. Trying to write a python spam filter before email reaches inbox.
    However, some email,spam, in not in utf-8 so it doesn't accept the input value and the script fails to run. Claiming invalid character at byte ###.

    If I can't accept the raw data how can I expect to use an internal converter to convert it to utf-8/16.

Leave a Reply

Your email address will not be published. Required fields are marked *