Last June, I finished at Brighton University and started working at DabApps. Before this point I knew very little about Python, Django and Objective C. As the majority of our projects involve at least one of these technologies there's been a lot to learn! It's been great to be given the time and help needed to learn two new languages and a web framework and then utilise them in a number of live client projects.
The simplicity of Python allowed me to start learning Django at pretty much the same time as writing my first bit of Python code. After finishing the Django tutorial I started working on my first real project, Twilbee. This was quite nerve-racking but I always find the best way to learn anything is to use it in the real world. Having two great teachers, in the form of Jamie Matthews and Tom Christie, is also extremely helpful. Especially when they don't mind spending time to explain and discuss functionality and best practices.
Their help was most evident when I started to solve more complicated problems with Django. As powerful and easy as it is to setup a complex website, I personally think its high level of abstraction can make it confusing for beginners.
When I first started programming I began by learning Java. I found that missing brackets, semicolons or other basic syntax issues were my most common cause of compile errors. The highly readable Python syntax makes avoiding these errors a lot easier and even things like searching lists are simple:
if 'cat' in pet_list: print 'Yay cats!'
I'm convinced that Python would be a great first language as its simple syntax puts the emphasis onto the logical structures/processes rather than the syntax.
During my first few weeks at DabApps I mentioned that I would like to finally get to grips with iOS development (the first time I tried the added confusion of MVC got the better of me). A few months later some time was set aside for me to restart learning Objective-C.
Unlike with Python I found I was unable to hit the ground running. Coming from a Java/PHP background the added confusion of pointers, protocols, Xcode etc was too much. So I took a step back and sat down with a book (Programming in Objective-C). It doesn't mention iOS until the last 2 chapters which helped me understand the Objective-C syntax without worrying about the iOS MVC bit until I was ready.
Learning two new languages has taught me a lot and I'm sure it will improve my work in all the languages I work with. I'd be hard pressed to say which I prefer as although I love the simplicity of Python's syntax the ability to create a tactile experience that can easily get on everyone's most used device is extremely appealing. Hopefully it wont be long until I can get Python on my iPhone.
Our next Python for programmers one day training workshop will be hosted by Jamie on 19th March 2013 at DabApps HQ in Brighton.