LearningMay 26, 2007
I love to learn new things. When I think about my favorite professional or academic moments (in other words, not birth-of-a-child or wedding-day-type moments), they are almost all occasions where I was pushed and challenged to dive into a subject. My favorite classes in college were a couple of political theory seminars and independent studies that were both very focused and tough.
I remember some amazing technology projects over the years that pushed and stretched what I thought I was capable of. Now that I think of it, that's my definition of the best kind of learning - when you're surprised that you've made it to the other side and gleefully pleased at the result. I remember spending a couple of weeks attempting to install Oracle on a couple of Linux servers using LVM and stumbling into success an hour before we were going to try another solution. It's funny to think back on the endless stream of technology hurdles and the many different methods to overcome them. More often than not, the solution hasn't come from some expensive support contract - it's come from Google, trusted friends, books and some "wow, I really hope this works" experiments.
I wish I could say that I am entirely self-motivated to learn new things, but that only carries me so far. I absolutely love new things and ideas, but to really learn something, it helps to have true motivation and not just a manufactured one. Thankfully, I've had that in spades of late.
Recently, I've had the opportunity to spend a lot of quality time with the Linux command line and PostgreSQL. I know it sounds silly, but I am continually blown away by the beauty and utter clarity of these tools. Once you understand the foundations (which I am only beginning to), the power and ease is amazing.
PostgreSQL is a phenomenal open source database. I've learned the basics of connecting to various databases, viewing the structure, adding and dropping tables, inserting and deleting data, aggregating data, and fairly simple SQL queries. Just these few skills make so many things possible.
The server side has been even more fun. I've finally become comfortable with tail, grep, htaccess and htpass, tar, vi, chmod, chown, ssh, scp and sftp. I have no illusions about my level of understanding, I haven't even begun to get past the surface with these, but I at least have a good foundation to build on.
One of my favorite things about working with Linux (as well as Unix and the Mac OS X command line) is the rock solid consistency. Many of these tools and commands are largely unchanged over the past 20 years. Of course, all of these systems are constantly evolving, but there's a core stability (in multiple ways) that rewards any effort and investment.