One of my new year goals was to learn a new programming language. The language that I’m currently most proficient in is C#, however I’ve done a lot of work in the past with Java, MATLAB and various other languages. For this challenge, I chose Python. Why? No particular reason other than its one I’ve done absolutely no work with before.

I started by purchasing a book. For me, this is how I learn best. I’ve never done well with online resources. I prefer a book (or at least a notepad) which I can easily flip through and scribble down notes. I also find I learn better by doing rather than just reading or listening. I choose books based on the practical exercises they provide. A good book doesn’t just dish out excessive amounts of information. It should also encourage the reader to think and apply what they learn. Its all and well being told how an if-statement works, but the reader needs to be given the opportunity to think about when to use them and how they should be implemented.

Python By Example front cover image

I chose to purchase ‘Python By Example’ by Nichola Lacey. On the front was the statement ‘Learning to Program in 150 Challenges’. This was the main attraction of this book.

So far, I’m really impressed. Each chapter provides just a short explanation plus some examples, usually covering only 1 or 2 pages. This was much easier to process than pages and pages of endless text.

Each chapter also provides a page of 5 – 10 challenges. The answers are on the next page (although this tends to cover a few more pages). Most books tend to have the answers at the end of the book, which is always a pain. Having the answers on the next page makes them easier to find. If I am a little stuck, I only have to flick over to the next page rather than the end of the book.

If you want to learn to program in Python, don’t buy this book just because I’ve given it a positive review. I find this book fits well with my style of learning and my current programming expertise. I’m already an experienced programmer, so I don’t need too much explanation. Some might prefer a more detailed explanation, and some novice programmers may require this.

With so many resources available, it is hard to decide which ones provide the best investment. It is important to select the correct resources for you, and this should be based on current expertise and preferred style of learning. Some prefer online courses, others prefer reading books, some prefer images and examples, others prefer more detailed explanations about how something works. Some resources are aimed at novices, others are aimed at learners with more experience.

A lot of people find group learning more beneficial, but the opportunities aren’t always available. Try and find out if there are any study groups or workshops running in your area. Online forums might also be a good place to go to. Anywhere that allows you to discuss your progress and any challenges you’ve encountered with other people.

I was lucky enough to learn to program at school while doing A-Level Computing. The advantage here was that there were teachers and fellow students available to discuss any problems with. The teacher talked us through each exercise, but also provided homework so we could practice programming at home. I found a mixture of group and independent learning, with a good selection of programming exercises, worked well for me.

Choosing the wrong resource can result in a waste of time and money. Choosing the best resource for you can result in programming success.

I wish you all good luck with your own goals – programming and non-programming ones.

I’m currently working my way through the 150 challenges from Python By Example. You can see the work I’ve done so far on my GitHub repository: