Programming Weaknesses

This past week, I finished an interview with a company. I fumbled in many ways, including showing up terribly late. I’ll focus this blog post just on my technical shortcomings, or as I perceived them. Learn from your mistakes, right?

  1. Object Oriented concepts in Javascript. I think one of my interviewers tried to put me at ease by saying “I know inheritance in Javascript is a bitch…”. It mostly worked, but I still fumbled on my own lack of knowledge.

    All I remembered was that there are multiple approaches to simulate classes in Javascript. I struggled to remember one. I think the ideal response would’ve mentioned the 3 different ways and picked one.

    A next step to take from here would be to do some searching and find out what those 3 ways are now, then work through some examples on the computer so I can see the code in action.

  2. Building basic data structures. In my case, I fumbled about when prompted to build a linked list in Ruby using basic Ruby objects.

    A good way to work on this would be to look through the libraries of the common Ruby extensions for basic data structures, such as Struct and OpenStruct. There are probably linked list and tree libraries as well.

  3. Mixins in Ruby. I didn’t know the difference between includes and extends, so I had to ask one of my interviewers.

    I don’t think that this was a major blind spot on my part, but given my other fumbles, this certainly didn’t help. Related to the difference between includes and extends, I want to better familiarize myself with the difference between a Ruby module and a class.

It looks like each of these bullet points can be its own blog post. In fact, doing some research and then writing a dedicated post explaining what I learned would be a great way to cement the knowledge. Looks like I have homework for the next week.