CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

What I've already done to be a better developer

After the last post, I thought it might be worth talking about the things that have already led to me becoming a better developer.

  1. Converse - That's it.  As often as possible, talk about developing software development with other developers.  Cultivate personal relationships.  Talk to people that disagree with you.  Talk to the more experienced guys.  Talk to folks with different experiences.  Go to user groups, especially the kind of user groups where the conversations are free flowing.  I've never been that big of a fan of the "Presentation o' the Month" meetings, but I've gotten a lot out of lunchtime and happy hour type groups with no set agenda.
  2. Environment - I've met several developers that I thought had all of the makings of greatness, but just hadn't had the opportunity to work in a good environment.  By a good environment I mean a place where you're surrounded by good developers who are willing and able to share their knowledge.  If you're a junior developer your career path can be greatly shortened by solid mentoring relationships.  If you're a solid developer you can only get better by being intellectually challenged and stimulated by your peers.  My first real development job was in a truly awful shop.  I had a few relationships that I treasured (the brotherhood of the smoked chicken enchiladas), but it was obviously a place with limited possibilities.  I made the personally risky move to an elite consultancy where I interacted every single day with great developers.  It wasn't a great move on the personal and family front, but it supercharged my career growth.
  3. Do an OSS Project - Your job is probably boring, and quite possibly not that interesting.  You're never on a project that gives you every possible kind of experience.  That's where participating in an OSS project becomes so beneficial.  I've used StructureMap for years as a personal laboratory, and looking through the code I can trace my personal development from VB guy to what I am now.  Preferably, pick something interesting that you'll enjoy.  Something that forces you to expand your skills or let's you try out new design ideas -- where they won't damage a real project.
  4. Write a blog - I've told my wife several times that writing The Shade Tree Developer is the single smartest thing I've ever done for my career.  A lot of the posts I've written have turned into book reports or research projects.  Writing blog posts, especially argumentative blog posts, is a fantastic way to organize the thoughts in your mind.  Nothing makes you think more than the simple act of expressing yourself - especially when there's a couple thousand people reading what you write.  Oh yeah, you might get some attention and name recognition out of it too.
  5. Read a lot - There's a tremendous amount of stuff out there in the blogosphere.  Take advantage of it. 
  6. Expand your reading - Your OPML file is one of your best intellectual tools, but make sure there's some balance in your RSS feed diet.  My OPML file still leans too heavily to Agile-flavored writers, but I've expanded my reading intake quite a bit to include developers, testers, and project managers from outside of the .Net community to see how the rest of the world is doing things.  Just to get you started, and feel free to write in suggestions, break out of the .Net mold with:
    1. programming.reddit.com & joel.reddit.com
    2. Raganwald
    3. Giles Bowkett
    4. Jay Fields
    5. Neal Ford


Comments

Steve Trefethen said:

Jeremy,

 Great post. I find it interesting how closely our paths match. I'm starting a new job tomorrow and consider it one step along the path towards becoming a better developer as I've been looking for a new challenge.

Thanks again, good read.

# July 8, 2007 11:37 PM

Gil Zilberfeld said:

Thanks Jeremy, great post.

I've also started listening to podcasts in the last two years - about development, management, career development, business. I feel I need both the detailed software stuff as well as the business 30K feet view, and it helps clear the picture a lot.

# July 9, 2007 7:32 AM

Derik Whittaker said:

I could not agree more with your thoughts.

I know that since I started blogging about 7-8 months ago, I have learned a ton.  I try to use my blog as a tool to learn.  I will post on simple topics simply so I have an opportunity to ‘learn’ them.  As for OSS projects, that is a great idea, but sometimes is easier said than done (but i’m working on that one too).

# July 9, 2007 7:50 AM

chris donnan said:

I would add - just type code! I have done too many interviews with people that read the book, had the talk, known someone who did that and felt a certain way about something they had yet to try... Use Nike logic - just do it - type code!! (don't forget tests please :) )

I also agree with your list - with an emphasis on converse - people are a great learning resource - and non-programming talks can apply to programming/ work more often than you expect.

-CD

# July 9, 2007 9:14 AM

| blueapples.org said:

Pingback from  | blueapples.org

# July 9, 2007 11:15 AM

Jeff C said:

Giles Bowkett?  Really?

# July 9, 2007 1:56 PM

Sean O'Donnell said:

I could not agree more on 1. (not that I disagree with the others). If you ever find yourself in Dublin, Ireland. Come along to the monthly python meetups. Being a python dev is not required, and the beer flows as freely as the conversation.

# July 9, 2007 6:58 PM

Tim D said:

"I made the personally risky move to an elite consultancy where I interacted every single day with great developers.  It wasn't a great move on the personal and family front, but it supercharged my career growth. "

I find myself in a nearly identical position. I've been offered a position at an esteemed consulting firm and am mulling it over.

How was it for not a "great move on the personal and family front" ? Did the supercharged career lead to more money ?

# July 9, 2007 7:45 PM

Christopher Steen said:

The Distributed Observer Pattern | The REST Dialogues [Via: (author unknown) ] PainlessSVN - Subversion...

# July 9, 2007 10:27 PM

Chetan said:

Jeremy,

    Nicely put together. I would also add that exploring Open source projects would also help one in learning. Recently I blogged about that

techkriti.wordpress.com/.../learning-from-the-source

# July 10, 2007 2:35 AM

Tahir said:

Writing is impressive to me. Let me sort out my check list...

# July 10, 2007 11:10 AM

T Mehta said:

Nicely written, nice ideas and simply put. I think i will be checking your blog more often.

I have never had formal education in programming - though programming now for almost 11 years. Since no big consultancies would hire me (due to no degrees in IT), i have resorted to setting up my own shop - but feel highly deprived of conversations with intelligent programmers. Here in Ahmedabad, India such groups are also not common - online blogs fill the gap.

# July 11, 2007 2:03 AM

ruben said:

And if you are a foreign developer: improve your English no matter how: classes, podcasts, movies ... It's worth the hassle.

Greetings from Spain :)

# July 11, 2007 5:39 AM

Jeremy D. Miller -- The Shade Tree Developer said:

About a year ago I hit a patch where I wasn't able to blog much (something about finding a new job

# October 18, 2007 9:21 AM

dave^2=-1 said:

I am leaving my current place of employment as part of my constant effort to become a better developer

# February 1, 2008 5:51 AM

dave^2=-1 said:

Jeremy Miller's post on " What I've already done to be a better developer " really jibes with my own

# February 1, 2008 5:52 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP