So, I'm not sure how many people agree with me (I haven't really searched around to see if anyone has the same opinion), but I'm starting to form the opinion that there are two different types of developers: Those that can develop an application but don't really understand the concepts behind it, and those that have a relatively deep knowledge of how their code works and all fits together. Or, in other words, those think it's alright (and perhaps have it as a job), but are not very passionate, versus those that are very passionate about programming. Generally, I guess something like the following could be said:

People in the first group:

  • Have done their main programming study at University or TAFE OR are self-taught with just the basics, generally nothing about best practices. Generally, they've learnt just enough to get by, nothing more
  • Will copy and paste code and be happy that it works, but might not really understand how it actually works
  • Don't really consider programming a hobby
  • Might be considered "code monkeys" in some situations
  • Generally need help with fixing odd bugs

And people in the second group:

  • May have done a University course, but their main learning is self-taught
  • Write applications, scripts, websites, whatever for fun (and might actively participate in open-source projects)
  • Don't copy and paste code very often. Instead, they learn from other people's code, and then rewrite that code in their own style
  • Consider programming one of their biggest hobbies
  • Aware of some of the latest trends in software development
  • Might often question things, like the ways people do things, and why code is written in a specific way (or is this just me?). Usually I do that just to learn how things are done.
  • Can generally investigate and solve odd bugs pretty well

Anyone else agree with me? Personally I'm proud to be in the second group, the awesome group :D

Anyways, I'll write another proper blog post, eventually. I started working recently, and will definitely have to blog about that :)

Until next time,
— Daniel

Short URL for sharing: This entry was posted on 2nd January 2010 and is filed under Programming. You can leave a comment if you'd like to, or subscribe to the RSS feed to keep up-to-date with all my latest blog posts!


  1. Avatar for Lucas Lucas said:

    You might enjoy reading Jeff Atwood's post on a similar subject:

    One other thing that your second group tends to question is process (i.e., the process of creating an application). Is it achieving its purpose? Is it doing so in the best way? Is it even necessary? Why was it introduced, and do those reasons still apply now? How can we make our process better, or easier to follow (or at least, harder not to)?

    So as far as I can tell, this curiosity, this wanting to know why things work the way they do, is not limited to code. It also encompasses people, teams, entire systems.

    Hmm. It just occurred to me that teams of programmers tend to make software algorithmically - maybe because that's our shared way of thinking. But maybe that's a subject for a post of my own :)

    1. Avatar for Daniel15 Daniel15 said:

      Oooh, I didn't know Jeff Atwood posted about something similar, even though I've skimmed bits of his blog a few times before. I guess I missed it since it's pretty old now :P

      And hehe, I definitely agree with you. At least I seem to question everything. I generally look at things and wonder what I can do to improve them and in what ways. :)

  2. Avatar for jehzlau jehzlau said:

    Woooooooooot! I strongly agree with the description of the two groups. I belong to the first group, the noob group. Also known as the copy-paste group. I don't know how to fix bugs, that's why I need your help. Wooooooooooot!

  3. Avatar for ControlCMS ControlCMS said:


    Stumbled here from an old thread on - Nice to see a fellow aussie around :)

    I started reading the first category in your post, and thought "I'm self taught" so I must be in this category... I kept reading, and thought "This list is silly, i'm self taught, but I don't 'copy and paste code and be happy that it works, but might not really understand how it actually works.'" I started to get a bit offended.

    Then I got to the second category and was relieved to know thats where I fit in here :)

    Good post... now I'll see what other posts are around...

    1. Avatar for Daniel15 Daniel15 said:

      Haha, which thread on NamePros? :)

      Indeed, second category is awesome. :D

  4. Avatar for Aaron552 Aaron552 said:

    I'm not sure which group I fit into... I dabbled in coding in high school, but never really did much until I started programming at Uni. However, once I got a grasp on the basic programming concepts (that had only been half-understood before), I began teaching myself stuff outside of what we were taught in Uni. This pattern has continued through other, programming-related, areas too (currently CSS/HTML). Also, at least at Swinburne, coding best practices are a core part of the programming subjects, and I understand why they are important (after all, even if only I have to maintain my code, why make that more painful than it needs to be?).
    Then again, I *did* teach myself Java last holidays (though not exactly for fun).

    The only copypasta I'll use (in general) is for things like P/Invoke declarations, where writing by hand is both tedious and unnecessary. It is important (to me) that I understand how and why code works.

    I wouldn't consider programming one of my biggest hobbies (anime and videogames are much, much bigger :P), I don't usually code "for fun", and I'm not particularly aware of software development trends.

    I'll try to fix bugs myself before asking for help (nothing wrong with that, is there?). And if I can't find help, I have often been able to find the solution myself (albeit usually after spending hours on a single error message >_<)

    I'd say I'd probably fit more into the second group, but as a more... "casual" programmer

  5. Avatar for NoizeMe NoizeMe said:

    I'm definitely in the second group, too.
    I can totally identify myself with this :D.

  6. Avatar for La La said:

    Two types of programmers: those who spend an hour typing data in and those who spend two hours writing a program to type data in.

    1. Avatar for Daniel15 Daniel15 said:

      Hahaha. That's a great way of looking at things :P.
      The program that inputs data is reusable though! You could use it again in the future if you needed to, and save time :)