Wednesday, January 02, 2008

On My Bookshelf


Extreme Programming Explained: Embrace Change (2nd Edition) (The XP Series) by Kent Beck and Cynthia Andres





Man's Search For Meaning by Viktor E Frankl








SCJP by Katherine Sierra and Bert Bates

Present Project

Due to official reason I cannot name the project I worked as an intern at Alliance Technologies during Summer and Fall 2007. We are using Drupal, a PHP based content management system. It was a very steep learning curve and still everyday I learn a new thing about the power of drupal. We are almost done with the site (which is still in development) and mainly the web services is left. One thing apart from technical stuff that I learnt was that requirments always change. They can change sometimes when you expect it the least. This helped me get attracted to Agile where one has to be adaptive.
It helped me realize the importance of design patterns. The only thing that keeps me from using them is the problem of over-designing. This problem is something that is going to be my first question at ThoughtWorks University. I know it is all about experience which decide what to use and what not but design patterns are nothing but experience of software developers.

Two more things that are attracting me are Ruby on Rails (which I have basic knowledge) and Domain Specific Languages (DSL), especially after reading an article by Martin Fowler and doing Independent Study on compiler construciton. With external DSL, Lex and Yacc seems interesting. It seems to be exciting going back to UNIX but in a more sophisticated way by using internal DSL and language workbenches.

Well, so many interesting things coming up, and with SCJP to give I need to better concentrate on Java for now.

ThoughtWorker

It feels good to be back after finally graduating and getting a job at ThoughtWorks. But still busy with preparing myself to leave for India for 6 weeks training at ThoughtWorks University. Lots to read and lot to learn before I leave. Presently rebrushing Java, then have to read about Extreme Programming and thinking of knowing more about design patterns. Also some philosophy books that need to be read before I leave. Also working for time being at Alliance Technologies, who were kind enough to let me continue till February. Things are pretty much busy till June when I have to move to Chicago....

So much to learn and so less time. Maybe I should follow the Agile way, short iterations of 2 days instead of 2 weeks of reading a particular book. Discussing with my friends and emphasizing osmotic communication. After 2 days testing my skills by revising (refactoring?) and then again explaining it to my friends to see the depth of my understanding (testing). But what happened to Test Driven Development, how to incorporate TDD in reading a book in short iteration...
Maybe trying to know what you want to learn from a chapter by reading its title and introduction.... Not to clear... any ideas.....

How about pair reading (read programming). Two person same book same time. Come back after two days and discuss...

Well, these are some of the methodologies I will be using at ThoughtWorks to develop software. I was trying to use it in our daily life. Too ambitious or too vague. Life a software? Concept of fail fast applies. Sometime you fail sometime you pass...

Well, I am so excited to be at ThoughtWorks and ready to begin my journey and follow the long road. I am excited to meet some of the leading personalities in software industry who work at ThoughtWorks. Martin Fowler, Neal Ford and many others...

Hopefully, I will be able to follow this long road and become a better person both professionally and personally and also help ThoughtWorks in revolutionizing the way software industry works.

More to come......