• No products in the cart.

Shallow on Purpose

developerhackerprogrammer-e1464829544285

There is often
spirited discussion and debate
about the differences between Programmers, Hackers, and Developers. Most
descriptions I’ve seen are flawed in at least one serious way, so I wanted
to assemble my own—hopefully more accurate—definitions.

  1. A Programmer is someone who can solve problems by by manipulating
    computer code. They can have a wide range of skill levels—from just
    being “ok” with basic scripting to being an absolute sorcerer with any
    language.

  2. A Hacker is someone who makes things. In this context, it’s
    someone who makes things by programming computers. This is the original,
    and purest definition of the term, i.e., that you have an idea and you
    “hack” something together to make it work. It also applies to people who
    tinker with things in a way that extends or changes their functionality,
    or otherwise uses them in ways that weren’t originally intended.

  3. A Developer is a formally trained programmer. They don’t just
    solve problems or create things, but do so in accordance with a set of
    design and implementation principles. These include things like
    performance, maintainability, scale, robustness, and (ideally) security.

Programmers solve problems using code, a Hacker is a
creator/tinkerer, and a Developer is a
formally trained programmer who doesn’t just solve problems but does
so in a structured and disciplined way that was probably learned formally.

What developers, hackers, and programmers all have in common is that they
solve problems using code.

Relationships

People can be any combination of these. Here’s how they relate to each other
(also see the Venn diagram above):

  • All hackers and developers are programmers.

  • Many programmers, and even developers, are not creative enough to be
    considered hackers.

  • Many programmers, and even hackers, are not educated or experienced
    enough to be considered developers.

Ideally, one would strive to be all three, i.e., creative enough to be
considered a hacker, but with enough formal training and experience to
design software rather than simply…well, hacking it together.

But even if you aren’t very creative, and/or lack the education and/or
experience to properly build massive applications, you should still be proud
to be a programmer.

Solving problems using code is a superpower by itself.

Notes

  1. There is a broader type of Hacker which can apply to any field, not just
    computers. This article specifically deals with the software type.

  2. A “coder” is basically a synonym for programmer.

  3. Hacking is often, but not always, associated with poor quality. This is
    because it usually takes place in a rush of creativity that is best not
    slowed by the friction of doing things properly. In cases where a hacker
    is also a developer, or has an eye for design and quality elsewise, they
    almost inevitably have to come back to their creations afterward and
    clean them up.

  4. The determination of who gets called a hacker and who doesn’t is a
    contentious one. The basic rules that most agree on include 1) that you
    need to have made one or more things that people find useful, and 2) be
    recognized as a hacker by other hackers.

  5. The term “Software Engineer” is nearly synonymous with Developer for
    these purposes. It means someone who is well-rounded in all aspects of
    software creation, and not just a few.

  6. It is possible for someone to have engineer/developer-type skills
    without formal training, but it is not common.

  7. In the security world, a hacker also means multiple things. For testers
    it usually means someone who understands systems and can defeat their
    security controls. In the top tiers of security, however, the definition
    returns to its more pure form, i.e. someone who creates security
    software or tools used by others.

  8. In popular culture, hacker means computer criminal. Within the security
    world that type of actor is often referred to as an “attacker”.

  9. Eric Raymond, a notable programmer and personality in the original computer
    community, defines a hacker like so, “An intelligent, creative, and
    open-minded individual who enjoys problem-solving, learning, and the
    sharing of knowledge above all else.”

  10. “Software Engineer” is synonymous with Developer. It implies a formal
    education in the core concepts of software architecture, design, and the
    requisite pre-education to support it.

May 23, 2025

0 responses on "Shallow on Purpose"

Leave a Message