Over the last few years I’ve become more familiar with multiple systems. I go over a few things that I’ve learned and the areas that I hope to improve upon over the next year.
Previously, I used the terminal through SSH when I needed to. But these times were limited to basic functionality. Recently I became more familiar in working with MySQL over the command line and creating PHP shell scripts. The advantages of running PHP through the shell are that you can use a program like Screen to run a PHP daemon script. This allows the PHP script to run infinitely, which is useful in some applications when you want to check for updates every xx seconds or minutes (in a sense, it is an upgrade in using cron jobs). You also are no longer limited to the PHP memory config or time limits that are set by the php.ini file, so you have more freedom. I was able to put this to use when creating Slurp140, among several other projects.
I’ve always heard of SVN, but I hadn’t used it very much prior to moving to Helena, MT. You can look at revision history, export previous revisions, see who did what revision and when, among many other useful features. For managers, they can see exactly the new code a programmer wrote in emails that are sent when the code is committed to the repository….instead of having to figure out what they did. In fact, it seems that every medium to large size company I have worked for in the last 2.5 years uses this system.
More recently I started using Git in Drupal contributions.
I’ve been aware of Drupal for a long time, but it wasn’t until 2009 when I started using the system quite often. In fact, I’ve grown to love Drupal. It has a huge community with modules that cover most everything that you need. In fact, unless you need a very custom solution, there usually is a module that exists for what you are looking for.
I was able to create many custom modules for projects that needed custom interfaces. I was pleasantly surprised by how well thought out their module system is laid out, and how easy it is to tap into Drupal core functionality.
More recently I started working with Drupal 7. I found this version a little more difficult to pickup than Drupal 6, but it is more powerful.
Most of my experience with WordPress has been through this site, but I also worked on several projects that used this system. I don’t like it as much as Drupal, but for a simple blog….Wordpress is hard to beat.
This technically is a module for Drupal (and Joomla), but it is such a huge system that it is worth mentioning. Unfortunately, I don’t agree with how some elements have been put together for this system….but it has a ton of features and I’ve seen it used with millions of contacts for projects that I’ve worked on. It was good to get some experience with CRM a system.
I’ve worked with mailing list systems in the past, but over the last year I’ve worked with many more. Lyris, Mail Chimp, and Constant Contact…just to name a few. All of them have different API’s that are very different from each other. I personally find Mail Chimp to be the easiest to use out of all of them, and Lyris to be the most difficult (but it does have a lot more features).
I feel very good with the diversity in different systems I’ve learned how to use. I’ve become a better programmer because of it. But I do feel like I can improve on my command line knowledge.
Knowing what I know now five years ago, I probably would have spent more time understanding how servers work on a basic level, and how to edit code and work with a database using only the command line. With that said, I don’t think that knowing these things makes you a great programmer. In my experiences, reliability and organization are a lot more valuable to the PHP programmer!