4 min read
I’m a Node js Guy. I program every single day, and most days that involves using Node js. I have been coding in Node js for about a year and half both for fun and profit, and also do a fair amount of “raw” Node js coding (no frameworks), just standard library.
Fun is a great motivator, and since Python was designed to be easy to understand and fun to use (its name came from
Monty Python). Thus, it has gained popularity for being a beginner-friendly language, and it has replaced Java as the most popular introductory language at Top U.S. Universities.
Professionally, Python is a general-purpose language, great for backend web development, data analysis, artificial intelligence and scientific computing, which means it can be used to build just about anything, which will be made easy with the right tools/libraries. Being a very high level language, it reads like English. This takes a lot of syntax-learning stress off coding beginners, and there are plenty of resources to help learn.
On Angel List Python is the 2nd most demanded skill and also the skill with the highest average salary offered.
Django — the popular open source web application framework written in Python — is the foundation of such sites as Pinterest, The New York Times, The Guardian, Bit Bucket, YouTube, and Instagram. Python is the only scripting language you’ll need to begin designing your own websites and applications. What’s true with Python is true with Django. Web development with Django is well documented, has a large support community, and takes less time and code.
With the rise of big data, Python developers are in demand as data scientists, especially since Python can be easily integrated into web applications to carry out tasks that require machine learning.
Specifically, a working knowledge of Python can be a solid foundation because Python’s methodologies can be used in a broad range of applications.
Here’s a brief comparison of Python with Ruby language.
for loop on a list: Python
items = [1, 2, 3, 4, 5] for i in items: print i
each call with a block on an array: Ruby
items = [1, 2, 3, 4, 5] items.each do |i| puts i end
Without prior programming experience, anyone can easily detect the similarities and differences between Python’s syntax and those of other languages. Either way, a basic understanding of Python makes jumping into Ruby a breeze.
What I’m Moving Towards
Since I’m already familiar with quite a number of programming concepts, the first thing I did was pick up the highly recommended book: Learn Python the Hard Way. I read through it, and subsequently failed to find a good way to apply my newly found Python knowledge to anything practical.
Unfortunately, after many months of dabbling with Python a bit – I’ve decided to take it serious and dive in. My goal is to become a proficient Python programmer, so that I can:
- Use some of the Python frameworks and tools that are out there (Flask, Django, etc.).
- Contribute to Python projects that I like.
- Write my own Python code (server side and client side) without feeling like a beginner.
- Write my own Python library and get contributors, hopefully :)
- Improve my knowledge of Data Structures, and most of all, Algorithms.
- See what all the fuss is about.
To actually practice my newly learned Python, I decided to give Django a try. Since I learn best by writing and building out applications, I figured Django would be a good choice.
So far it has been extremely useful in my quest to learn Python, and as I’ve continued to build things using it, I’ve been slowly getting more and more familiar with Python as a language. I went from 0 knowledge of Python to a working, reusable module, in less than 3 days. Booya.
NOTE: I’m going to complete the Learn Python the Hard Way this month end. You should check it out. It’s extremely concise, and enjoyable to read. Highly recommended.
As I learn more about Python, and it’s frameworks. I’ll keep you updated!
PS: If you read this far, you might want to follow me on github, or subscribe below for updates (I'll email you new essays when I publish them).