Sunday, December 26, 2010

3 Types of Programmers: Zerg, Terran, Protoss

There are three types of programmers in this world.

Terran Programmer

Ruggedy, the terran programmer gets shit done and is smart enough to make it work at every level. The code isn't sexy nor elegant, but it gets the job done and works well enough. Their tools are what-ever they can afford.

A terran programmer usually works best in a start-up or as a technical leader. A canonical example of a terran based company is 37 signals.

Zerg Programmer

The company matters most to the zerg programmer. They need their IDE (i.e. creep). Management needs to hire lots of them to ship even the most basic of products, but they can hire hordes to solve problems of scale. They depend on their queen vendor.

A zerg programmer works best as a cog in some corporate machinery, and they tend to use a Microsoft or Oracle products. Most offshore outsourcing company are an example of a zerg company.

Protoss Programmer

Shiny and advanced mathematics is the primary tool for the protoss; this greatly limits their numbers. They use languages like Lisp or ML to develop spectacular results, and they are free to use anything.

The protoss tend to cluster in academia until they have matured to the point where they have the insight that can power a company. For instance, Google's PageRank is a protoss insight that powers Google thus making Google a protoss company.

Moral

If you build a company, then you need to ultimately use people to get things done. You need to find the right people for the right job to get the company as a whole executing.

Each type of programmer has their pros and cons in a business, and the goal is to utilize and structure the company such that everyone works together effectively.

If we ignore (or worse argue) about differences, then we miss out on the potential to work together and build truly great things.

10 comments:

  1. ...all workers are either pragmatic, unskilled or over-qualified?

    You'd have the same problem hiring for a starbucks.

    ReplyDelete
  2. Unfortunately most Zergs think they are Terrans.

    ReplyDelete
  3. but when playing starcraft u are not one of your minions, u are the mastermind controlling them!
    so as zerg u are the one building the infrastructure that can overpower
    terras and protosses with worse minions.

    a lisp programmer/zerg player in a snit ;)

    ReplyDelete
  4. I would like to have crowds of marines

    ReplyDelete
  5. hey, my favorite race since 1998 is Zerg, and it still is today in sc2, but I code like a terran, judging by this article. :D

    when programming - just make it work good, and make it fast! pragmatic.

    and when playing starcraft - just take the zerg and overwhelm your opponent with sheer numbers. ^_^

    cheers

    ReplyDelete
  6. Excellent!
    No matter are you managing Zergs, Terrans or Protos, who will win mostly depends on micromanagement :)

    ReplyDelete