The other day I was having a chat with one of the very bright colleagues of mine. He mentioned something that stuck with me and kind gave me a big picture of what I have been thinking of. He mentioned about how on a broader scale job skills are divided. I am currently looking for job and also trying to get into a career which not only would be challenging but also deeply meaningful to me. What he mentioned kinda gave me a picture of what I should be looking for in an Ideal Job. Ok, here is the scoop on the story.
There are 2 kinds of job skills – to make it more analogous, let’s consider Theater performances. You have people who perform various roles on the stage and then there is a whole crew which makes the show happen behind the scenes. Now if we generalize we can cast them in basically 2 groups(very broad).
- Stage actors
- Backstage crew
So, in the area of job skills – Stage actors are the ones that deal basically with one idea – ‘CRUDding on the client data‘(TM). All these guys do is to take the content which gets created or exists and show it to client in various ways so that it’s easy for the client to modify and maintain the data. Irrespective of job descriptions and technology used almost all of the people in this bucket(Stage Actors) do this perennial task. Your American Idol in this area would be DHH
Backstage crew are the ones who deal with ‘In-Memory computation‘. These are the people who pull the strings (or threads, or processes). These are the experts of code optimizations and innovative algorithm designers. These people make the machine do all the grunt work using automation and make it work the way they want it to be. Your American Idol in this area would be ZSFA
A simple example would be of Facebook. When it started, Facebook is nothing but a bunch of PHP files and MySQL database. The stage actors did a great job of making it popular, but then when it started to have millions of page hits – this actually made the expert backstage crew to step in and write those smart programs that can deal with those millions of hits. In the early stage the backstage crew was present too but their role was not that prominent, in the later stage the stage actors are still there but their role has become one of the important role, not just the only important role.
Serendipity again I guess, it so happened the day we talked about this – Steve Yegge came out with his stunning post of ‘Get that job at Google‘. If you carefully analyze what he says or the skill set he is looking for, he is actually referring to the back stage crew guys.
So what can I do to advance my career of 7+ years which I spent in ‘CRUDding with client data’? I took the clue from Steve and got myself 2 books.
As I go through these books, I realize they have a deep learning curve and probably it’s a good thing. You just don’t get to become a stage director (part of backstage crew) over night. I am going to invest my time and energy and see where it goes. I already enjoyed couple of cool moments when I try to implement some of the ideas in those books in Ruby code.
Also I have decided to learn Erlang. I think that learning a functional language actually twists my brain cells in such a way that I would end up being more creative and start to think about computation in very different terms. In addition to that I am going ahead with Flex learning too. The reason why I love Flex is that it gives super wings to my programming imagination. I can actually write Actionscript code and generate a visual way of saying things.
My immediate idea would be take for example – take binary search, implement it in Ruby or Erlang and then write a program in Flex which would visually follow, in slow motion how binary search works and shows it in the browser for the user! Now that’s what I call complete learning.
Note: The credit goes to Ratheesh for discussing with me the pattern he saw. I added in more of my flavor to it.