Coming from a completely non-technical background into the open source world has proven to have both positive and negative aspects. The main thing that I find incredibly annoying is when I lack a basic understanding of simple things. It's not that the things are too complicated for me to know - but some things just don't crop up.
One of the ways I have been getting around any problems is to throw myself completely into them. It's quite a brave/stupid strategy, depending on where you want to draw the line, but so far I've managed ok. The one thing that I keep stalling on though is programming.
When I took my current job after graduation, one of the things I'd planned was to write one small application a week. I was going to vary my languages, and learn as much about the different benefits as possible. Now 6 months on from then, I tend to do a little bit of php and python.. and can also write a small bit of C. It's not been my greatest 6 months from that angle. However, the main reason for this has been a very busy workload - and my general Linux sysadmin skills I would say have improved massively, and I'm starting to get to grip with some of the software I regularly use, like exim, dovecot, postfix, openldap and apache.
I therefore made a decision about two months back to learn a python web framework. My logic behind this is that if I can get some functional web applications working that I know from the bottom up - and tweak them.. I will probably learn more that just doing simple stuff over and over and over again. So now I've set myself a target.
Blog software (in general) doesn't have to be that complicated. I imagine that for my own use, it could be much simpler than this current setup. Therefore I'm going to start to write a nice simple little bit of blogging software. It's not the most adventurous project - but hopefully once it's up and breathing, (if not yet fully grown,) regular readers will not only get to read about the latest development, but actually view the latest development by visiting the blog.
I completed the official django tutorial this evening - and I'm pretty pleased with how it went. Django itself looks great.. but there are a few pythony things that are going over my head. The first one is:
welcome = models.CharField(max_length=200)
comment = models.CharField(max_length=200)
I really need a lay-mans explanation of __init__.. self and class. I'm learning stuff through reverse engineering the code in my head - but a basic and brief overview I should imagine would help me out massively. If anyone can point me to a good resource, please let me know. I've read through alot of the documentation - but the *eureka* moment escapes me.
I look forward to starting out on my python web framework journey. If anyone feels that I'm walking down the wrong yellow brick road - please shout out now - I'm willing to listen to the voice of experience.