A crowdsourced dictionary of coding terms

Report a definition

This should be removed because:

Enter the the email address that you used to register and we'll send you a link to reset your password!

If we have your email on file, you will receive an instructions to reset your password shortly!

What term do you want to request a definition for? We'll email you once a new definition is added.

We've logged your request for our contributors. You'll get an email when a definition is added!

Please or to request a definition. This will alert our contributors, and we'll email you once a definition is added!

What is Hackterms?
Hackterms is a crowdsourced dictionary of coding terms. Use it to quickly understand:
  • why, where, and when someone would use a tool/process/language
  • what the pros, cons, and alternatives are
  • where this term fits in within the coding ecosystem
Hackterms is not a holistic resource to learn to code - it will tell you why, when, and where a certain term is used, but not how to use it. Fortunately, lots of other resources on the web will teach you the ins-and-outs of any programming concept.
Can I submit a definition?
Absolutely! The goal of Hackterms is to help gets better with every new perspective added. Your definition might help a fellow developer understand the term better!

All new submissions are reviewed within 24 hours. The goal of the review process is to make sure your submission is a good fit for Hackterms - that is is a coding term that aims to be constructive, objective, and not offensive. We do not review submission for technical accuracy, but do review them for topical accuracy. For example, we will approve a definition that says React.js is a language (though this is technically incorrect), but not that it's a type of hamburger.
What kinds of definitions is Hackterms good for?
Any term related to computer programming is great: tools, languages, processes, libraries, frameworks, data structures, algorithms, architecture, project management jargon, you name it!

Naturally, programmers will have diverse opinions about the tools they use. We welcome these, as long as they are presented in an constructive way. Hackterms is not a good fit for non-coding terms (ex: "ramen: the lifeblood of budding developers"), or highly-objective terms
What is a "coding term"?
While there's definitely some gray area between programming, security, IT, and hardware engineering terms, generally, a "coding term" should be relevant to software engineering, web and mobile development and design, or devops - or, simply, writing code. A coder definitely needs to know what dry code means, might need to know what virtual machine and graph theory and scrum are, but probably doesn't need to know what C-suite is - at least not as related to coding.
What does a perfect definition look like?
Avoid jargon and try to answer the following questions as though you were talking to a rubber duck:
  • What does this thing do? When would I use it?
  • What are the pros, cons, and alternatives to using it?
  • Is it worth my time to learn this now? Is this thing crucial or just convenient?
Why are the definitions so short? Why can't I see code examples?
Hackterms is meant to be a reference, not a manual. Once you understand what a certain term does and want to learn more about it, there many fantastic, free resources on the web available to teach you about every facet of programming.
Why was my definition rejected or removed?
New definition submissions are reviewed by the moderator team. Additionally, other users are able to report definitions and comments. Check out the rules! The most common reasons posts might be removed are:
  • It is offensive, abusive, or disrespectful to other users on the basis of race, gender, political or religious beliefs, or sexual orientation. There is no fancy legalese for this - try to be a supportive human being and fellow programmer
  • It is topically wrong: for example, it's fine to say React.js is a language (though this is technically incorrect), but not that it's a type of hamburger
  • Your post was not for a programming term
  • Your post referenced an inside joke not helpful to most coders
  • Your post broadly falls under trolling (see the top bullet point), spamming, or advertising
  • Your post score (upvotes - downvotes) fell below -5
I found something abusive, offensive, or spammy on the site
Any user can report a definition or comment - you don't even need to log in. Click the red flag icon on the top right of any post.
Do I need an account? Accounts suck.
You'll need an account to submit new definitions and comment.
Can I edit or delete my comment or definition?
Delete: you can delete a definition or comment either from your profile or the search page by clicking the trash icon on the top right of your post.

Edit: you can edit your definitions from either from your profile or the search page by clicking the pencil icon on the top right of your post.
Can I contribute to or improve Hackterms?
Absolutely - shoot me an email if you want to contribute or just say hello!
Isn't there a tradeoff between simplicity and accuracy?
Yes. Hackterms aims for simplicity and high-level understanding. We want you to understand the "why", "when", and "where" of programming terminology - not the "how".

Sometimes this means sacrificing accuracy for the sake of readability. However, lots of other great resources on the web will provide in-depth dicussion of any programming topic.
Why did you create Hackterms?
For me, the hardest thing about learning to code was connecting the dots. I struggled with questions like:
  • where does the the Ruby language end and the Rails framework begin?
  • what is bower, vim, grunt, middleware, PostgreSQL, and which of these do I need to learn right now?
  • are git and TDD crucial to getting my first website up and running?
This type of confusion resonated with my fellow devs, so I decided to create a crowdsourced reference to help newcomers tackle these questions.
What data does Hackterms store about me?
You can see all the data Hackterms tracks and stores in our Privacy Policy.
Can I delete my account?
You can delete your account and associated data listed on the Privacy page at any time by navigating to your profile, scrolling to the bottom on the page and clicking the delete account button under your username.