Python - The Not So Good Parts
Learning is an ongoing process: Although it's nice to know that there are some things we don't need to worry about when learning Python, they are few and far between. In the beginning, there were so many things I didn't understand that it felt like learning a new language all over again; however, with each passing day, I noticed my skills improving at a rate of knots. This isn't because I spent hours upon hours studying, but rather because I applied what I'd learned every chance I got.
Python can be frustrating:
Python and I didn't get along in the early days. There were several times when I nearly threw my laptop across the room in frustration but I reminded myself that learning a new language is more than just memorizing every single key command or function; it's about understanding how they relate to each other as well as what you can do with them. Frustration is natural, so don't be discouraged by it – embrace it!
If you feel yourself becoming frustrated, stop what you're doing and go do something else. You might come back to that task with an open mind and renewed enthusiasm.
What I find frustrating about Python is that it feels like a "quick-fix" solution to my programming problems. I can often find the answer to my problem with one google search and then apply a few lines of code. This is great during the early stages, but I've found that trying to implement this way of thinking into a larger project can be almost impossible.
Python is case sensitive:
Unlike other languages, Python is very particular about things being written in certain ways aka very case sensitive. This was extremely confusing for me at first , as I didn't know whether a function or variable should be written with the initial capital letter.
For example, str and String are two very different things. The same rule applies to the variables, if they have been defined and the first letter isn't capitalized then Python will treat it as a new variable and will throw a SyntaxError error.
As we've already established, every language has its strengths and weaknesses. The more you practice your Python skills, the better equipped you'll be with determining what goes where, what does what and how to use it effectively in a project – ultimately stopping you from making mistakes along the way. Python also has the added benefit of being relatively easy to learn and once you get a hang of it, things will seem much clearer.
Python is lean:
While I'm not going to go into detail regarding this topic, I'd like to mention that Python (in case you're not aware) supports multiple versions of itself at the same time. Essentially, this means you could have two or more versions of Python installed on your computer without causing any issues.
For example, I've got both versions 3 and 2 running at the same time – The only difference is whenever I need to use one over the other (like for older projects that require Python2), I'll swap by using a command-line prompt/terminal.
In short, this means you can have the best of both worlds with regard to project support and having access to anything that's relevant at the time.
Overall, Python isn't a bad language – It's just different to what I was previously used to. It took me a while to get used to its quirks and way of doing things. With time, patience and a little hard work, Python is definitely worth the investment!
If you're interested to learn more about Python I'd recommend taking a look at treehouse which is what I used to help me get my first developer job in 3 months.