keyan pishdadian

A Reflection

02 06 2015

It's crazy to think it has already been five weeks, but soon enough I will hit the half-way point of my official time at RC. I say official because, you know, never graduate. The last couple weeks were difficult for me but I'm glad I can say I've learned a lot, and not just about programming.

Most programmers face a point where they are unsure of what to do next. The seemingly limitless options of topics/frameworks/languages available can make anyone go mad trying to figure out what the "most important" thing to learn is, and I am no exception.

I came to RC with a vague idea of things I wanted to learn about, but as I talked to more people I noticed this list of projects expanding to the point of being unmanageable. The environment is interesting in that one is free to spend time on whatever they wish which can be intoxicating, but coming from a restricted ladderlike educational structure the freedom is also unnerving. In an effort to optimize my learning (and future employment prospects) I found myself spending way too much chasing the dragon of the "perfect project". In reality, the time spent worrying about what to do could have been better spent just doing whatever I felt like doing. Being able to stop obsessing over time optimization is really about accepting that:

  1. You will never be able to learn everything you want to learn.
  2. There will always be someone who is more experienced/smarter/faster/whatever than you.
  3. If you aren't interested in something, you will realize very quickly and very little time will be wasted.

Instead of trying to finding the ultimate project that would be technically challenging, impress potential employers, and woo fellow Recursers at weekly presentations, I decided to just do whatever I felt like doing. If it wasn't the right project or I wasn't learning as much as I had planned I would just move to something else. Of course this strategy has some potential issues of its own but hey, nothing is perfect.