OPW – The learning process

It’s 2:00 a.m., and I’m feeling like a rockstar again. 🙂  Just pushed a bunch of bugfixes (plus a whole lot of code standardization, and some occasional refactoring) to the GitHub repository and submitted a pull request.  Progress is significantly faster now, as I learn (or get re-familiarized with):

  • Proper configuration and integration of Apache, MongoDB, and PHP on a server
  • PHP methods and usage
  • MongoDB – general functionality, forming queries
  • coding styles and standards – the need for establishing them, and how to adhere to them
  • standards for best practice
  • how to check various error log files for problems
  • what different error messages mean, and how to troubleshoot and resolve them
  • version control, and usage of Git and GitHub
  • how a software project is organized and coordinated, even when contributors are in disparate locations
  • online project management tools – tracking tasks, bugs, issues, ideas, resources, documentation, schedules, and people
  • how the various pieces of a project come together
  • how differing languages and applications work together
  • the different types of developer tools that are available (e.g., IDE’s, frameworks… even vim),  and how they can make life easier
  • where to find help online if I get stuck (StackOverflow, for one, is the bomb)
  • how to think like a programmer

Yeah, we’re just 4 weeks in, but holy crow.  It blows me away how much I’ve already learned in this short amount of time.  Sure, it’s a crash course in all of the things I knew I needed to learn… but perhaps more importantly, in a ton of other things I wouldn’t have thought to ask.  I think the things you don’t know you don’t know are often the ones that can hold you back the most.  After all, you can’t fill in the gaps if you don’t even know they’re there.  All of this has been so much more than I envisioned.  I’ve grown so much more confident in my abilities, and also in my decision to change careers from sysadmin to programmer.  I’ve also been able to draw many parallels between the two, on multiple levels.  The tools are very different, of course,  but the basic concepts of troubleshooting remain the same.  It’s all just problem-solving. I’ve realized that, starting with my first programming experiences on a C64 as a child, and through many years in the field working in IT, I’ve already been using and building upon the core skills one needs to be a successful programmer.  That’s immensely encouraging to know!

Ω

Leave a comment