A Blog for the end of the year
By Jacob Kessler on Dec 19, 2008
No, I hadn't forgotten to blog. Don't worry.
The end of the year is always a time for reflection on the previous year, and since I think that self-reflection in general is good, this seems like as good a time as any to look back on what I've done at Sun since I joined.
I've now been at Sun for just over four months, and I know I've learned a lot. The most obvious place that I've grown has been with web frameworks in general: When I came in, I only vaguely knew about the existance of Rails. Now, I can write apps not only in Rails, but for several other frameworks, from the tiny Sinatra to the enormous Java EE 5, and have intelligent discussions about their relative merits and drawbacks.
Speaking of which, I've also learned Ruby. I'm not as comfortable with it yet as I am with Java, but it is a very nice language, and nicely fast to develop. Definitely a step above my previous "quick hack" language, which was perl. Before any perl fans start flaming me, that's not a complaint about perl. There are just a lot of things that I really like about Ruby, probably as a result of having been brought into programming by Scheme and Java, which both have marked similarities to Ruby. The AI programmer in me also really likes the idea of auto-self-modifying objects.
Along with that, I've learned a lot about both how to program and how to analyze programs. I've played with the Java monitoring tools, tracked down bugs, and re-formatted other people's code to make it more readable. I've tracked down, and helped track down, bugs ranging from minor to crippling. I've created, fixed, and learned from my own bugs. I've put in place the automated testing system that I'm sure will, one day, inform me that I've broken the build, and I should go fix it. I've learned about cool tools like git bisect. There is a whole other world of programming that opens up when you aren't just dealing with your code anymore, and especially when you are trying to tie independent systems together. I think I've learned how to be a much better programmer because of it.
I've learned to fit in at Sun. That's much more than just learning the policies and procedures (which I'm still learning: I had to ask if/how I should go about registering vacation time for the holiday break). It means learning how to settle into a long-term team, too. One thing that college can't really teach you is how to integrate yourself into an already-formed team of people that you plan on working with for years: College just doesn't have the time (or established teams) to provide that experience. My four months here doesn't begin to approach the time that the people that I'm working with have been here, most of whom have been here since I was entering high school. Merging into an established environment like that is never easy, but everyone has been doing everything that they can to help ease that transition.
I've improved my people skills. My experiances with the management school at RPI gave me some preparation, but Sun has now put me in front of people with some slides and asked me to explain to the people why they should care about Glassfish (Not that I objected, of course). Talking with potential users requires a whole range of skills that, again, don't get taught often in college. The user has a specific problem that they are trying to solve (often one that you haven't heard of before), and that's what they want to talk about. You don't just need to know the information, you need to be able to figure out what their actual problem is, and explain the aspects of the product that matter to them, in a way that they understand. I still need more practice, but I'm getting better.
I've learned to balance work and life, one of the dreaded problems with coming out of college and into the Real World. Although I don't have as much free time as I did when I was in college, I haven't had to give up any of the activities that I do for fun (currently, I'm playing Dwarf Fortress, in case anyone cares). At the same time, I'm still getting all of my work done (always a good thing). I can definitely see why some people would struggle with it, though.
I've learned how to blog. I think, anyway, that I've figured out how to write about things that are interesting in an interesting way, and only occasionally bore my readers (I think I have readers, anyway) with long, rambling posts like this one.
I think it's a good thing that my first reflection blog is after only four months, imagine what this would be like after a full year of learning, especially if it keeps going at this pace! I'm glad of it, though. I've been able to meaningfully contribute things to glassfish, I've been able to go talk to people about those meaningful things, and I've been (I feel) able to engage with the community about those things. I look forward to next year: Full of new experiances to have, new things to learn, new programs to write, and new ways to keep making everything a bit easier and better for everyone else.