views:

1346

answers:

8

I am looking for some advice for setting some measurable Personal Development Goals for both myself and honestly for my review with my current employer.

To give some background I graduated with my Computer Science degree about a year ago and have been working with my current employer since about six months before that. I work on a small team that does maintenance on four small applications. I am starting the Master's Degree program in Computer Science in the Spring.

In pursuing both a pay raise and promotion my employer suggested that I needed to set some personal goals that are measurable so that they could see that I was serious about my aspirations. They honestly did not have any suggestions about what they should be, and I am not sure if this is by design to see what I come with, or because they don't have any ideas to suggest. Either way it does not matter. I like the idea of having some quantifiable way of proving to myself and others that I am doing something to be come better at what I do and expanding my skill set.

After pondering this for a while my list is pretty short, and I think it could be better. All I have is:

  • Enroll in the Computer Science Master's Degree Program
  • Read one book per month related to Application Development

I was wondering if anyone has some other ideas of things I could do that would be fit the criteria of career development (and preferably measurable but not necessarily).

+1  A: 

Learn a new programming language once a year.

Adam Bellaire
+2  A: 

I'd suggest some goals around code quality/robustness or documentation of existing processes. It should help show a level of understanding around Software Development processes as well as just programming skill.

  • Ensure peer review carried out for all code checked in.
  • Ensure appropriate documentation produced for all critical-level system components.
  • Respond to Priority 1 bug reports within 24 hours.
  • Produce appropriate coding standards if not already in place.

Etc...

Andy Hume
While I have been pushing for peer reviews of code (if not all, at least some) and have been hitting a brick wall. The documentation we follow pretty closely, and the priority 1 bugs I actually handle all of them with in a day also. But the coding standards suggestion is great
jschoen
I had not considered that, and we really are in desperate need of that, so Thanks for the idea.
jschoen
+6  A: 

If you need direction for your goals (asking here, asking your employer), well that's probably your first growing point.

You'll need interests to direct where your goals will land you. You'll need foresight to figure out how you're going to get there and what the best path is.

In short, it's hard to aim to be a good developer. It's too nebulous, too many pitfalls to get caught up in.

When you narrow it down to become a jquery rockstar because i like interactive web based UI or become a systems unix beard because i like making stuff run you will have a more defined path and some tangible steps you can work with.

You're 6 months out of college, you've got plenty of time to get oriented an figure out your real interests. University has a tendency to scatter interests because they through so much at you, its hard not to find new interests every day!

Of course to shoot down my entire argument, get the goal of "Get involved with an open source project" is about as nebulous as it gets, but i guarantee you that it will make you a better programmer / team member.

jskulski
Thanks for the suggestions, and I actually had not considered things more specific, I was thinking in more general terms. So that opened up a lot more ideas. Thanks again.
jschoen
a jquery rockstar!
Shahin
yea, jquery's definitely the hottest thing since chopped liver now.
melaos
+4  A: 

Read The Pragmatic Programmer: from Journeyman to Master and follow the advice in the book. Beyond that, get involve is some open source projects and program. Some other things to learn and practice:

  • Agile
  • Test Driven Development (TDD)
  • Domain Driven Design (DDD)
  • Unit Testing
  • Continuous Integration (CI)
  • A new programming language
  • Pairing
Chris Johnston
The pragmatic Programmer is currently on my shopping list, and after multiple comments here about it has just moved to next in the list. Thanks for the ideas.
jschoen
+1  A: 

well just in case you've been in a cave and haven't read the pragmatic programmer yet, i strongly suggest that you do as it help to provide a lot of fundamentals knowledge to me when i was starting up.

So besides doing open source project as suggested by jskulski you might want to a maintain a development blog as well. it would be a useful benchmark to see how far you've grown.

Just my two cents.

melaos
Pragmatic Programmer is next on my shopping list, thanks for suggesting it. I had thought about starting a blog, but have been kinda of squeamish about putting myself out there like that to the public. I read through the comments on Jeff's blog, and some of them are pretty harsh.
jschoen
But maybe I will give it a shot, and see how it goes. Thanks for the advice.
jschoen
well just take the comments/feedback with a grain of salt, it will definitely help you grow faster. and there's actually a thread here in SO which talks about how to handle criticism here: http://stackoverflow.com/questions/306460/how-do-you-take-criticism#307869
melaos
+1  A: 

I would look at your present development practices and see where you could try (or improve) a new practice that would help you develop better software. For example, if you don't currently write unit tests for your code, you could have a goal that you adopt a unit testing framework and have 85-90% of your code covered with unit tests in the next 6 months. If you are doing unit tests, then maybe you'd like to adopt a test-driven development (TDD) approach so that in 6 months you have a habit of developing tests before your code.

I think the key, in my mind, would be to pick up or improve a practice that will make you a better developer, and thus a better employee. I think goals that have a definite, measurable impact on your value to the company will do more to show your determination to improve (and thus worthiness for a raise) better than some goals that only relate to you or don't provide a direct benefit to the company. Getting the master's degree is a good goal, but I think I would present is as improving your knowledge of development practices and computer science fundamentals, rather than just getting enrolled.

tvanfosson
Thanks for the suggestions, especially about how to present the reasoning for getting a Master's degree.
jschoen
+1  A: 

Hello,

If you are in a supporting role, or simply just getting started, you may be challenged in developing goals for yourself. In a product company, you can specialize and develop measurable performance goals along the lines of:

  • Develop three new features over the next six months
  • Maintain a bug count less than 10 active bugs per month
  • Learn at least three modules or classes close to my own code and aide in developing test cases to support the primary developer
  • Support program management in creating specifications for the next version of my features

Something like that.

In an IT setting, your goals can be more about acquiring skills or demonstrating thought leadership in your particular area:

  • Achieve [insert certification here] before the end of Q2
  • Answer 20 questions on StackOverflow in the next two months
  • Create a blog to write about my areas of interest and achieve a [insert number of readers] readership
  • Read one book per month (as you described) and prototype potential uses of the technology in starter projects related to some business goal or priority
  • Mentor another developer
  • Agree to learn and document an existing system that lacks documentation and document the assumptions, design, and implementation

HTH

Colby Africa

Colby Africa
Since I am on a small project I get to wear different hats all the time. So I regularly do analysis work and writing specification documents for new and improved functionality. I also get to work with all aspects of the code, since the applications are relatively small.
jschoen
I liked the certification idea and have added the Sun Java cert to list, since I was planning on getting it anyway. And as I stated in another comment am considering starting a development blog. Thanks for all the great idea.
jschoen
You are welcome, grasshopper... Most important lesson is to love what you do and do what you love!
Colby Africa
+1  A: 

Hello, Maybe you can try to get some certification on the language or languages you are working on, also trying to find your blind spots to make focus on those and also improve your strengths. Also I think it may help you if you try to improve on a not technical skill, like communication, self management, etc.

Good Luck

Quaky