Oh hi there, point that is nearly halfway through this crazy adventure crash course in defining a new self attribute as a programmer. Mantra for Week 5? Try not to over-think everything and stress myself out like I usually do. There’s just no damn good reason for it. I have a tendency to put a lot of needless pressure on myself to UNDERSTAND ALL THE THINGS INSTANTLY when I’m learning something I find enjoyable; what I really need to do is relax and enjoy the process of learning, and the process of being baffled and then suddenly enlightened. Christian claims he doesn’t really believe in review, but today we went through an exercise we did in Week 1, and re-implemented it from scratch in Ruby. The project, a word counting program that takes in a text file and outputs the number of occurrences of each word, took us about an hour to implement in this new language; it probably took about 4 times that or maybe longer during our first attempt. So you see, the learning, it is happening! Picking up a new language doesn’t seem so daunting now, and Ruby’s idiosyncrasies that once seemed slightly weird now make some sense.

So what is the thing that’s inexplicably baffling me as of now? Object and Class syntax. I think I have an understanding of when to use them, that objects have attributes and methods, and that these methods can be defined in our out of the class and called using dot syntax after creating a new object. However, part of me feels like there’s got to be more to it than that, and that I’m missing something critical. I guess it just hasn’t ‘clicked’ yet in my brain, and I’ll probably really learn it when I start building out my project. I also need to get better at saving my console errors in some sort of dated log file, so I can better debug and ask questions when I’m stuck (also known as email colleagues / teachers / mentor asking WTF does this error mean). I tried to do so after class tonight, but was so tired and zombified that I couldn’t even figure out what to ask. So, deep breaths, relax, and go back to it in the morning. It will come to me - I remember when I didn’t get hashes, and it finally dawned on me how to use them, and now I think they’re awesome.

Speaking of my personal project, I’m pretty excited and antsy to get started. At first, I thought it might be difficult to think of an idea of something I’d like to build, but I’ve found some inspiration, and now have many things to choose from. Currently, the working idea is to build a simple monitoring system for servers and web apps. Checks might consist of the following:

  • Server Status
  • App version / OS version
  • Tails of log files
  • App health
  • many more common checks than nagios
  • restart app / server buttons

The challenging part of this would be writing some common standardized checks for apps (ie is login functional, can you insert and remove something from the database, etc) so that one could run checks against an app without having to figure out how to write Nagios checks. I’m still figuring out what might be feasible and interesting to build out in 5 weeks (really 3-4!), but that’s the working idea.

So far, pair programming has been pretty fun and accelerated learning. Being a bit of an introvert, I tend to start reaching exhaustion and having trouble forming coherent sentences right around the 3 o’clock hour every day. As valuable as pairing is, I’m looking forward to doing some work on my own pretty soon, and saving up my conversation for when I need to talk out a roadblock. However, I have a feeling that once my classmates and I start forging our paths, we’ll all help each other out when we’re stuck. I’m looking forward to that too.