banner



Does A Kiddie Make More Money Than A Monkey? Programmer? Developer? Engineer?

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. The term software engineer is mostly synonymous with developer.

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

Written By Daniel Miessler

Daniel Miessler is a cybersecurity leader, writer, and founder of Unsupervised Learning. He writes about security, tech, and society and has been featured in the New York Times, WSJ, and the BBC.


Join the Unsupervised Learning Community

The premier networking community for thoughtful people interested in security, technology, and society.

Every Monday morning I condense 20+ hours of content and analysis into a concise summary—and send it to around 50,000 people…

Weekly Newsletter (vs. Bi-Monthly)

Unabridged Podcast Feed Access

Show Archive Access

Concise Book Summaries

Exclusive Member-Only Content

Access to the UL Slack Community

Access to the Book Club

Essays, tutorials, and podcasts

Every other newsletter

Subscribe


Does A Kiddie Make More Money Than A Monkey? Programmer? Developer? Engineer?

Source: https://danielmiessler.com/study/programmer_hacker_developer/

Posted by: gardnercoccove.blogspot.com

0 Response to "Does A Kiddie Make More Money Than A Monkey? Programmer? Developer? Engineer?"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel