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

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. 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 is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://blog.centuryminds.com ruben

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

    Greetings from Spain :)

  • T Mehta

    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.

  • http://itoday.wordpress.com Tahir

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

  • http://techkriti.wordpress.com/ Chetan

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

  • Tim D

    “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 ?

  • http://blog.odonnell.nu Sean O’Donnell

    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.

  • Jeff C

    Giles Bowkett? Really?

  • http://chrisdonnan.com/blog chris donnan

    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.


  • http://devlicio.us/blogs/derik_whittaker/default.aspx Derik Whittaker

    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).

  • http://gil-zilberfeld.blogspot.com Gil Zilberfeld

    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.

  • http://www.stevetrefethen.com/blog Steve Trefethen

    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.