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.
Python/Django
Coming from a PHP/JavaScript background I found learning the basic syntax and structures of Python very intuitive. It was simple things like indentation instead of brackets and if not blah: rather than if(!blah){ that made me realise I would get along with Python.
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 our very own 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.
Objective-C
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.
As a programmer I’m much more excited by the output of my work rather than particular languages used and there’s nothing better than having your program running on your friend’s smartphone. So it didn’t take long for me to start enjoying Objective-C and release my first app. The performance is especially impressive. After spending quite a lot of time creating mobile web apps using JavaScript I am consistently impressed by how much I can throw at my phone while using Objective-C. I’ve even embraced the ridiculously long method names.
My Favourite?
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.