So, one of the things I’ve come to realize about myself, as a result of being an interviewee, is that I am not nearly as strong a Java developer as I would like to be.
Don’t get me wrong, between my previous 7 years of experience and this past 2 years of doing Java as my day-to-day, I think my skills in Java are pretty durned good.
However, I am not a Java "Super-Star", and honestly, that is where I want to be. So, when choosing between offers in my current job hunt, I am going to be thinking of this goal.
One of the companies would be very comfortable for me. I think I would do a lot of decent work there, but I am not too sure that my "academic" Java skills will be challenged. I don’t know that I would grow in design-proficiency, or in performance-proficiency. I don’t know who would be my mentor.
In the second company, I think I would be challenged. Maybe not on a day-to-day basis, but from the questions they were asking during the interview, I know that they take the "big picture" (or should that be "low level") questions seriously. This second company is definitely bigger, and has more experienced mentors.
I realized my need for a driven mentor at ICAT. My previous lead was a lead-by-example mentor. Yeah, that’s all good even if it is a bit reactive, but it kind of lacks the in-your-face challenge that his replacement has been providing. The new lead consistently challenges me to think about every single line I type, and pushes for me to learn about and adopt small, day-to-day improvements in my coding style.
So, what am I gonna do about it?
Firstly, of the two options I have for my next job, I will choose based on challenge and personal development potential, NOT based on comfort. (Honestly though, I will be very comfortable in either of the two positions…)
Next, I’m going to pursue some of the suggestions on the subject made by the Will Code 4 Beer blog. (E.g. I’m going to be buying some more books on the Java language, not just books about specific technologies, and not just the better-rated ones, because I want to be able to compare and contrast the ideas presented. Also, I’m gonna go back over some of my CompSci errata, and I am going to work on learning some new languages. )
Other than what was suggested in that Blog, do you have any suggestions on how to become a better developer?