Recently (yet again), I found myself at a loss on what to do next. Since I integrated dropbox to the blog to be able to upload and present images, I haven’t written much code. I haven’t gone back to edit earlier articles that were written before I integrated kramdown, I haven’t uploaded any images to use in earlier articles, and I haven’t done much work on any of the projects in my github. There’s a variety of reasons/explanations for this but no real actual excuses, it was what it was.

Taking a cue from a suggestion on Twitter regarding javascript fluency before heading into a library like vue.js, I had recently been re-learning javascript via Eloquent Javascript. I had progressed through the fourth chapter in the book (recursion might be worse than regular expressions, and if you know anything about regular expressions that’s really saying something), but I just wasn’t feeling it, for one reason or another, but it turns out that’s because I was just waiting for the next thing to learn and the trigger to get it going.

A few weeks ago was the 45th anniversary of my birth. For some reason that night I decided to send out applications to some jobs that seemed like I might be able to do them if a company was willing to take a risk (and in fact I crafted my cover letter to point that fact out). I sent out maybe five or six applications and then moved on as I didn’t really expect much of a response. To this date (3 weeks later), I received one form rejection and one honest to goodness positive response.

One company that I applied to, that also happens to be located where I grew up, responded in a positive manner. In an email from the company came a zipped file with a README file that laid out a problem, the required solution, and the instruction to get there via Ruby with testing via RSpec. Coincidentally (ironically?), the problem that they wanted me to solve was similar to the one I had worked on recently regarding standings in my NBA project. However, it had some significant differences. Not only was it being written in Ruby, but the input was being provided in a text file. Most of my pure ruby work has been working through learning exercises, coding challenges, in an effort to get better with Ruby on Rails, and I hadn’t done a lot of work with direct access to files and using the data. Though it took some time, and some aggravation, I was able to get the coding challenge to a point where I felt it was as complete as I could get it. After submission, I waited a whole week to follow up (that shows pretty good patience for me actually) and was given good news/bad news. My code solution was received well but my experience level was a bit too low for the current position (Sr developer I know I’m not qualified for, but I’m not sure what developer means) and there might be another position in a few months they could contact me on.

As is my nature, I inquired more regarding what I might be missing, what I should learn to be a more attractive candidate in a few months. I received a PDF from the company that discussed the platform they work with and the kind of skills they find useful in applicants. (This was an excellent document that I think every company should make available to prospective candidates). The document listed quite a few things that could serve as new learning skills going forward, but I didn’t pick one right away, I was still focused on javascript to that point.

In response to another twitter comment (regarding not a lot of tutorials providing true deployment examples, instead using the heroku shourtcut) I was pointed towards a good deployment video on a website that I am familiar with. The video is about an hour long, and probably quite helpful, if I understood it all, in guiding you through the steps in deploying a rails application to your own standard server.

An aside regarding something important I think. There should be a difference between what is considered a how-to and what is considered a tutorial. While the video above is is incredibly informative, to me it’s a how-to video. It tells you what to do, but it doesn’t fully explain why you’re doing all the things you’re doing, and how they work. For instance, capistrano seems to be a real important part of deployment but there’s no in-depth discussion about capistrano. Nginx is mentioned, and installation demonstrated, but for me, I don’t even know what Nginx is

Anyway, as you probably know, after you watch a youtube video, you are presented with other videos that might be worth watching, and one of those videos was this video that introduced one of those things I know is important, but haven’t really had the confidence to get started with, and this is Redis.

The slightly less than ten minute video is obviously not a comprehensive tutorial on all that Redis can do and how to do it, but it is incredibly instructive and well done. I learned a lot about Redis even though I knew nothing about it going into the video. My understanding of what Redis is and how hard it is to do it was, unsurprisingly, completely wrong. (Man people who work with Redis love to say pubsub though…I’ll tell you what). The video opened up the idea of Redis to me and that it wasn’t the scary monster that I had made it out to be, which was great.

Did I mention that the document that company sent me also suggested knowing, experience with, Redis was helpful in getting a job with them?

Did I ALSO mention that the excellent video provided me with inspiration that perhaps Redis could help me with one of my long gestating ideas (the expiration thing is totally cool and helpful), so I would have a real project I could work on while learning Redis which always helps with the learning. The video brings up a lot of things that Redis can do that I feel will help the project get off the ground, and honestly, make the project a lot easier to get to that MVP status than any other project I even have in progress.

So, I had decided that Redis was next and went spelunking in the web to find good tutorials on Redis. Perhaps my search criteria wasn’t very good but I had a hard time finding anything that seemed thorough and inexpensive (free). Though, I did find a talk from someone at redislabs that led to an online version of a book that perhaps will be helpful. A quick glance at a few parts of the book indicate that it’s python oriented, which isn’t the end of the world but will make working through it slightly more difficult. Any exercises in python should be executable in ruby as well but it will just take me a bit longer perhaps to convert them. Ideally there’d be a course out that that starts with Redis and then works through ways to work with it in Rails, but I haven’t found that yet, so this is where I will start.

Though I’ve avoided it for a while, it’s obvious to me now that if I can truly learn and grasp Redis, I’ll add a very valuable tool to my developer tool-belt that will come in handy on its own and with a variety of other tasks and tools used in the Ruby on Rails ecosphere, and, perhaps, help me get another project built along the way. Either way, I’ll make sure to keep documenting it here, in case you’re interested or want to follow along too.