Thursday, April 23, 2009

Those Who Can DO, Those Who Can't Blog?

I was thinking about this today as I was driving. I was thinking about blogs I read, and developers whose work that I admire. I was thinking they were both in very separate categories. Not always applicable, and I'm not going to throw out any names. What I'm saying is, it's difficult to accomplish something great, it's difficult to say something great, and near impossible to do both at the same time.


This doesn't make me want to stop writing. This doesn't make me want to stop developing. How do you do both excellently?


I have no answer, that was a question.



15 comments:

  1. It might be true for fulltime bloggers (all the pun intended) - but if you get stuff done during the day and spread the blogging love at night I wouldn't say you blog because you can't - it's just a plus

    ReplyDelete
  2. I would have to say you must be really lucky/gifted to be able to both excellently..
    I want to be a great developer and build apps that really do what they are supposed to do well.. I also want to return something to the community. There are countless people that have helped me get where I am. These people and others continue to help me develop and grow. Blogging tends to be a big part of this giving back process.
    My writing however is worse than my coding skills. While I am trying real hard to improve it, it takes time many iterations. I think I still have a hell of a long way to go!
    In short, I think the majority will never be excellent at both, more that we should be excellent at one, and good enough at the other.

    ReplyDelete
  3. I believe you can be good at both, Sara. I think it takes time, and lots of hard work and you have both. As the old adage goes, practice makes perfect. Having said that, still make time for the things that matter in life, family and friends.

    ReplyDelete
  4. Hmm, It is pretty difficult to answer I think.
    There are diferent kinds of writings, I can think on writing a review, an overview, a benchmarck, an intro, a tutorial, a tech article, something that does not involve tech but it has to do with management, organization or dealing with others
    From my point of view you need to somehow master the area you are wanting to write in order to give some valuable content, but you need to balance that thinking also, for example, for me this post is important because is maybe a question in the heads of lots of people ( me included ) and now it is a little clear what the comunity thinks about it.
    In my specific case I got so tired when going home that the only thing I can do is sleep and/or have social life, family and friends. I am not always on the mood of writing just to share.
    So I think one reason why people don't blog is also just personal preference. It doesn't mean I don't like to share. At the office I am one of the first in wanting to help somebody that don't know how to do or where to start when facing a problem to solve.
    But I think also that once you have mastered some technology or some area of a technology you should share something. Just think about all the content writed from others that helped you understand what you know now.
    Specially, you should write things that was difficult for you to find a straigth answer...
    Well, my 2 cents

    ReplyDelete
  5. The short answer? Obsession. There are enough talented people blogging and doing these days that in order to excel you really have to have a level of dedication which any normal person (or competent psychiatric personnel) would describe as unhealthy.
    You've got to be a little OCD.
    Programming, blogging, SEO, writing a novel, whatever. Same answer.

    ReplyDelete
  6. Follow the guidelines in Code Complete page 825 Chapter 33 verse 3:
    Good programmers constantly look for ways to become better. Consider the following:
    Level 1: Beginning, a beginner is capable of using the basic capabilities of one language.
    Level 2: Introductory, an intermediate programmer can do what the level 1 programmer can in multiple languages
    Level 3: Competency, A competent programmer has expertise in a language or environment or both. (A side note is that many programmers never move beyond this level)
    Level 4: Leadership, A leader has the expertise of a level 3 programmer and recognizes that programming is only 15% of communicating with the computer and 85% of their time communicating with people.
    Since moving from Academics to the Professional world I have been attempting to bridge that gap between level 3 and level 4. I (at least in my opinion) have failed so far (as you can tell on my blog). So the added 85% of my time gained from not needing to dwell on the tech is spent gaming or some other useless function.
    Your milage will vary. In the end programming is like speaking in another tongue. The better you get at it, the less you have to think about how to say something, and the more time you can spend on deciding what to say.

    ReplyDelete
  7. One reason why there's a distinction is because some of the best pure developers aren't leaders. They may be pioneers in their respective specializations - but they aren't architects - they're specialist developers. In 1994 I was a specialist developer when it came to SunOS / Solaris Socket Code Port Management. I was not an Architect (yet), and I didn't communicate my work beyond handing it off with inline comments and a header blurb explaining what it did.
    Code Architects tend to bring everything together and see a much bigger picture, and do much, much less coding that the specialist developers. I'm at that point now being a team leader. Ironically, I rarely blog because I feel more pressed to spend my time organizing my work than helping to organize others online that I have little to no connection to.
    Perhaps if I'm someday employed as a consultant architect to a group of budding architects, I'll put my notes together and make a course of it. But that day is far off...

    ReplyDelete
  8. these were all very good answers, btw.

    ReplyDelete
  9. Hi all, new here.
    I too have had this bouncing around my head while driving. I figured I'd share my conclusions thus far :)
    I've found the problem with this question normally stems from the definition of excellence. If you define excellence as your absolute best then it seems, as you suggest, impossible that a divided version of you could achieve the same level of understanding as a focused version of you. I think its easy for people, like us, who are constantly trying to improve themselves to make this mistake.
    Its wrong to assume that you must chose between one skill or the other. In this case, either spending time creating something great or communicating what your creating. But I think they can go hand in hand. Communicating often makes your development more concise and understandable. Also, it normally gives your code a stronger sense of direction. Doing often helps you identify key areas of concern, organizational concepts, and the technical skills to deal with new problems.
    When your talking about complex things like software and communication its difficult to decipher what it means to be excellent. There is no pt where you know all there is to know and every second there are new challenges that need to be overcome. In these fields one's pattern of mind changes daily. Without context, its often impossible to see if someone has the capability to effectively deal with a problem.
    So the way I look at it is this: I certainly can become excellent at many things. I can prepare myself with the correct skills to deal with complex problems in complex domains. But there are real issues like time constraints and resource limitations that will make it impossible for me to become excellent at everything. So I have to make choices. I need to spend time time generalizing my skills so they can be reused in seemingly unrelated areas. Also, since I can't be a universal expert, I need to spend time developing my skills which help me effectively communicate ideas, vision, and passion.
    I think you will become excellent in all the right ways, as long as your a href=http://www.codinghorror.com/blog/archives/001138.htmlpracticing right/a, dedicated to improving, and trying to stay balanced. Most people don't do this. It either doesn't interest them or they don't see their opportunity to become truly great.
    (geeze, this was longer than I thought it would be. Thanks for the inspiration :))

    ReplyDelete
  10. Raymond Chen
    Larry Osterman
    Scott Guthrie
    Coding Horror
    Sara Ford
    Beth Massi
    IStartedSomething
    Scott Hanselman

    ReplyDelete
  11. I write my blog specifically for the developer that I was 12 months ago as I'm learning so much on a daily basis. Will my blog ever have the quality and depth of content or knowledge as Karl Seguin or Ayende Rahien? I seriously doubt it but the more I blog about what I'm doing and what I think about development in general, the more I have to take a stance and formulate my own opinion on things rather than just go with what other people think.
    Given that not many people reply to my posts is probably a good thing as I'm dreading the day someone comments and asks for me to expand on my opinion on something I've blogged about!

    ReplyDelete
  12. Kampanye Damai Pemilu Indonesia 2009June 30, 2010 at 6:27 AM

    thanks for this usefull informations.. now i find what i want to know.. thanks a lot..

    ReplyDelete
  13. If I had to choose, I'd prefer to have only a few people know I was a great coder than to have everyone know I was a great writer (I'm not claiming to be either one, yet). I blog because it helps me clarify my thinking. If I can explain something to someone else, then I feel like I understand it better myself. Also, sometimes other people do actually read what I've written, and they correct me, allowing me yet another learning opportunity.

    ReplyDelete
  14. What a wonderful blessing indeed. I love good news like this.

    ReplyDelete
  15. How can my essay/statement impress people?

    ReplyDelete