Explore the fun slang and anecdotes that make programming more than just lines of code
| B | |
|---|---|
| Banana-in-box | Angular terminology which refers to "two-ways bidding", a mechanism for updating the view and the model at the same time. |
| Bang Bang Operator/ Double Bang Operator | In some languages, like JavaScript, !! is used to convert any value to its boolean equivalent (true or false). The first ! negates the value, and the second negates it again, leaving only the boolean value. |
| Boat Anchor | A piece of code or a feature that is no longer used but is still present in the system. |
| Boomerang Code | Code that comes back to haunt whoever wrote it due to its complexity or lack of documentation. |
| Boy Scout Rule | Always leave the code you are working on better than it was. |
| Bug | An error in the software. Coined by Grace Hopper in 1947, it came when a moth became trapped in a computer, causing it to malfunction. |
| C | |
|---|---|
| Camel Case | A type of word formatting where words have no spaces between them, and every new word starts with a capital letter. |
| Captcha | Acronym for "Completely Automated Public Turing test to tell Computers and Humans Apart", it is a type of test used on websites to distinguish between human users and robots. |
| Cargo Cult Programming | Imitate code without fully understanding its logic in the hope of obtaining similar results. |
| Cherry Picking | Practice of selecting only the changes or features that are beneficial from a larger set, often ignoring other parts that could be equally important or necessary. |
| Code Bloat | Excess of unnecessary code that slows down the program performance. |
| Code Monkey | Programmer who performs repetitive and routine tasks without much creativity. |
| Code Smell | Insights in the code that suggest the presence of problems or areas that might need improvement. |
| Copy-Paste Programming | Reuse code by copying and pasting it instead of writing a more general solution. |
| D | |
|---|---|
| Div Soup/Divitis | Excessively nested and messy HTML code, full of div tags without a clear structure or semantics. |
| Dogfooding (Eating your own dog food) | Software companies' practice of testing their own products internally before releasing them to the public, ensuring they work correctly and improving the quality of the final product. |
| Dry principle | Acronym for "Don't Repeat Yourself", it is a software development principle that promotes reducing duplicate code, thus facilitating maintenance and improving code clarity. |
| E | |
|---|---|
| Elvis Operator | Short ternary operator used to simplify assigning default values to a variable in case the conditional expression is null. |
| Error 418 - I'm a teapot | An HTTP error status code indicating that the server is refusing to make coffee because it is a teapot. |
| Error ID10T | Error that occurs when the user does not understand or follow instructions, often used humorously to refer to errors caused by ignorance or lack of knowledge. |
| F | |
|---|---|
| Feature Creep | Tendency to add additional features to a project, often beyond what was initially necessary, complicating development and maintenance. |
| Fire and Forget | Submit a request or task without waiting for a response or handling possible errors. |
| H | |
|---|---|
| Heisenbug | A software bug that disappears or changes its behavior when you try to debug it. |
| Hello World Syndrome | Tendency to write only examples of "Hello World" without getting into more complex problems. |
| J | |
|---|---|
| Jenga Code | Code that is so unstable that modifying one part could cause the entire system to collapse, similar to removing a block from a Jenga tower. |
| K | |
|---|---|
| Kebab Case | A type of word format where words are lowercase and separated by a dash. This is often used in URLs. |
| Kiss principle | Acronym for "Keep It Simple, Stupid!", it is a design principle that advocates simplicity, suggesting that systems and code should be as simple as possible to avoid unnecessary complexity and to make it easier to maintain and understand. |
| M | |
|---|---|
| Magic Numbers | Numbers that appear directly in the code without a clear explanation, often considered bad due to lack of readability. |
| Man in the Middle (MITM) | Attack where a malicious actor intercepts and possibly alters the communication between two parties who believe they are communicating directly with each other. |
| N | |
|---|---|
| Ninja Coding | Write code quickly and efficiently, usually with advanced skills. |
| O | |
|---|---|
| Octopus Merge | Merging multiple branches into a single commit, often used in version control systems like Git to integrate several changes simultaneously. |
| P | |
|---|---|
| Pebkac | Acronym for "Problem Exists Between Keyboard And Chair", used in a humorous way to indicate that the error is due to the person using the computer, not the software. |
| Promise Hell | Situation in asynchronous programming where multiple nested promises create code that is difficult to understand and maintain, generating a "hell" of callbacks. |
| R | |
|---|---|
| Refactoritis | Compulsion to constantly refactor code, even when it is not necessary. |
| Refuctoring | When trying to refactor code but ends up being more confusing or worse than before. |
| Rubber Duck Debugging | Explain code step by step to a rubber duck to understand and solve problems. |
| S | |
|---|---|
| Snake Case | A type of word format where words are lowercase and separated by an underscore. This is often used for variable or file naming. |
| Spaghetti Code | Disorganized and difficult to understand code, similar to the appearance of a plate of spaghetti. |
| Stovepipe System | System that has the potential to share data or functionalities with other systems, but it doesn't. |
| Syntax Sugar | Improvements to the syntax of a programming language that do not add new functionalities, but make the code more readable and easier to write, without altering its behavior. |
| V | |
|---|---|
| Voodoo Programming | Write code without fully understanding how or why it works, but make it work somehow. |
| Y | |
|---|---|
| Yagni | Acronym for "You Aren't Gonna Need It", it is a programming principle that advises against implementing additional functions or features "just in case", since they will probably never be needed, promoting development focused on current needs. |
| Yak Shaving | Performing a series of seemingly irrelevant tasks before getting into the main task. |
| Yoda Conditions | Invert the condition in an "if" statement to avoid accidental assignment errors. |
| Z | |
|---|---|
| Zombie Code | Portions of code that are inactive but still present in the system, similar to a "zombie" that wanders aimlessly. It is usually commented code. |