Top Resources to Help You Learn Python Programming
I’m a non-techie. I’ve been trying to learn programming for a long time but never really got to mastering it. I actually started with BASIC and VisualBasic over 7 years ago but never finished learning. The reason: learning alone from a text book is friggin’ boring. I just lose track, get stuck at a problem, get distracted and then demotivated and leave it as it is.
However, the desire to start my own tech startup, combined with the difficulty (and costly endeavour) of finding a technical co-founder, development of online education to teach programming and reading about other non-techie people successfully picking up programming has finally made me set a goal to master programming to build a web app prototype myself instead of relying on someone else.
In short, I’ve been teaching myself Python over the past couple of months and I have found several useful resources for the non-techie startup enthusiast who is interested in mastering this language. Before I begin, I would like to share a couple of Python success stories to get you motivated on learning Python (I got motivated on these so I hope it will have the same positive effect on you) – it’s possible, I know! Here’s the links: How I Learnt enough Python/Django to be Dangerous in 1 Month, Python from scratch and Instagram Founder’s Girlfriend Learns How To Code For V-Day, Builds Lovestagram.
Now for my Top 3 Python learning tools:
- Udacity CS101 Online Course
This is by far the best resource for learning Python programming. It’s the absolute best thing for pure beginners as it explains programming in a fundamental level. It’s taught by a Stanford professor to build a search engine and there is no text book or long texts to read. Instead classes are structured in short video clips explaining concepts in 2-5 minutes . At the end of the explanation of each small concept, there is a quiz where you have to answer a simple multiple-choice question or use the online Python IDE to solve a problem. This course is structured like a university module that is to be run in 7 weeks. The current course is into week 5 out of 7. There are weekly lectures, homeworks and office hours just like university. And there is an online forum where other students can discuss homework or lectures (but not answers) to supplement learning. This is by far the best way to learn programming for me as it humanises the learning experience, includes social element and provides many quick wins to avoid the frustration of learning through the quizzes.
- MIT Python Tutor
This is a great debugging tool. Often, as a person beginning to learn programming, I am always lost as to why a programme is not behaving the way I want it to be. I may have a wrong understanding of the while loop etc. This tool is a tool that goes through your Python code step-by-step and shows you the effect of running each line. It shows you what each variable is being assigned to, the process that a list is being mutated – in other words it helps in debugging without the need to use the print function. The only downside is that it has a limit of 200 steps and so cannot run longer codes but this 200 steps is generally good enough to help run almost any procedure for a beginner learner.
- Google Code Python Class
This was actually my first resource when learning Python. I started using this mainly as a result of reading about it from one of the success stories above. I did all the exercise over there. It’s a little more interesting with the exercises giving you instant Correct/False answers to your solutions but it is still very dry with long chunks of texts and lectures that are an hour long. Also there is not enough sample exercises and simple exercises for quick wins to continue motivated. And the text is written at quite a high level sometimes that I lose track and just get plain confused. Nevertheless, it’s a good place to start learning. It could be better with more exercises and simpler explanations.
These are the 3 primary methods which I have been using to learn Python. I have seen a couple of other resources out there but I honestly think using Udacity and MIT Python Tutor is all that is needed to be good at this. If you do not like the above 3 then I suppose you may use the following other resources: Learn Python The Hard Way, PySchools, Invent With Python and MIT OpenCourseware: Intro to CS and Programming.
That’s it folks. I just want to share my excitement about learning Python through Udacity. I’m hooked onto this thing now. I started halfway through the course. Caught up with the first 4 weeks of work in 1 week. Now I’m back on track with the class and looking forward to completing this class and to start their next Udacity CS253 course taught by the founder of Reddit where they will teach Django to build a blog. Seriously the guys at Udacity are just plain awesome.
Anyway, I may have missed out on some possibly useful Python resources. Kindly comment with any Python resources which I should be made aware of so that I can further improve my Python skills. I think the ones where I think I would be most interested will have a social element and many practice questions/challenges.
