Do you know these Software Engineering Terms?
Tags: codenewbie, programming, software, webdev
Published: 2022-10-17 04:12:21

<!-- wp:paragraph -->
<p>I recently saw <a href="https://www.instagram.com/p/Cjp-LoOvO9H/?hl=en" rel="noreferrer noopener" target="_blank">this reel</a> by <a href="https://www.instagram.com/tiffintech/?hl=en" rel="noreferrer noopener" target="_blank">tiffintech</a> and I went on a ‘Google Ride’ searching for some more funny terms in Software Engineering</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Software engineering is a complex field with its own language. If you’re new to the field, or even if you’ve been around for a while, there are terms that you may not be familiar with. In this blog post, we will explore some of these terms and what they mean.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Will they help you impress an interviewer? Probably not!&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3>Ostrich Algorithm</h3>
<!-- /wp:heading -->

<!-- wp:image {"linkDestination":"custom"} -->
<figure class="wp-block-image"><img src="https://cdn-images-1.medium.com/max/1760/1*QsIlb8AzVWrZ-MjcSnUG7A.jpeg" alt=""/><figcaption>Photo by <a href="https://unsplash.com/@photosimon?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Simon Infanger</a> on&nbsp;<a href="https://unsplash.com/s/photos/ostrich?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Unsplash</a></figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>So, what exactly is the ostrich algorithm? It’s a strategy that can be used when dealing with errors or other problems in your code. It is a strategy of ignoring potential problems on the basis that they may be exceedingly rare. Essentially, it involves ignoring the problem since it might be more cost-effective to leave the problem as it is as compared to spending time/error trying to solve it.</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"className":"is-style-plain","fontSize":"large"} -->
<blockquote class="wp-block-quote is-style-plain has-large-font-size"><p>to stick one’s head in the sand and pretend there is no&nbsp;problem</p></blockquote>
<!-- /wp:quote -->

<!-- wp:paragraph -->
<p>Of course, this isn’t an ideal solution, but it can sometimes be helpful if you’re in a pinch. It can be used to solve <a href="https://thevaishnud.wordpress.com/2020/05/30/ostrich-algorithm/" rel="noreferrer noopener" target="_blank">deadlocks in concurrent programming</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://en.wikipedia.org/wiki/Ostrich_algorithm" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Yoda Conditions</h3>
<!-- /wp:heading -->

<!-- wp:image {"linkDestination":"custom"} -->
<figure class="wp-block-image"><img src="https://cdn-images-1.medium.com/max/1760/1*KYENnzVLgNnFVmWm3FueLg.jpeg" alt=""/><figcaption>Photo by <a href="https://unsplash.com/@riku?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Riku Lu</a> on&nbsp;<a href="https://unsplash.com/s/photos/yoda?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Unsplash</a></figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Yoda Conditions are a style of coding where the programmer writes conditional statements in reverse or in a non-traditional way. For example, instead of writing:</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">if (x == 5) {<br>   // do something<br>}</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>They would write:</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">if (5 == x) {<br>  // do something<br>}</pre>
<!-- /wp:preformatted -->

<!-- wp:quote {"fontSize":"large"} -->
<blockquote class="wp-block-quote has-large-font-size"><p>Yoda says “Become powerful you have, the dark side in you I&nbsp;sense.”</p></blockquote>
<!-- /wp:quote -->

<!-- wp:paragraph -->
<p>If you are interested, there is actually an <a href="https://lingojam.com/EnglishtoYoda" rel="noreferrer noopener" target="_blank">English to Yoda Translator</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The thinking behind this is that it’s less likely for a programmer to make a mistake and write x = 5 by accident, which would cause an error. While this may seem like a small thing, it can actually help to prevent a lot of bugs in your code.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>So next time you’re reading some software engineering code and you see an if statement written in reverse, you’ll know that isn’t incorrect and the programmer may just be a star wars fan.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://blog.codinghorror.com/new-programming-jargon/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Status 418 I’m a&nbsp;teapot</h3>
<!-- /wp:heading -->

<!-- wp:image {"linkDestination":"custom"} -->
<figure class="wp-block-image"><img src="https://cdn-images-1.medium.com/max/1760/1*kWG8BXgsd5CTHifL8CwGXw.jpeg" alt=""/><figcaption>Photo by <a href="https://unsplash.com/@joniludlow?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Joni Ludlow</a> on&nbsp;<a href="https://unsplash.com/s/photos/teapot?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Unsplash</a></figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>The term “Status 418 I’m a teapot” is derived from the HTTP status code 418, which is defined as “I’m a teapot”. The code was originally meant to indicate that the server was a teapot, but it has been repurposed to indicate that the client is attempting to brew coffee with a teapot.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In simpler words, it is used to describe a situation where the client is trying to perform an action that is not possible. For example, if you try to brew coffee in a teapot, it will not work because the pot is not designed for that purpose. Similarly, if you try to do something that is not possible with a piece of software, it will also fail.</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"fontSize":"large"} -->
<blockquote class="wp-block-quote has-large-font-size"><p>I’m a teapot, I can not brew&nbsp;coffee</p></blockquote>
<!-- /wp:quote -->

<!-- wp:paragraph -->
<p>The term “I’m a teapot” can be used in both positive and negative situations. If you are trying to do something and you know it’s not possible, you can use the term to describe your situation. On the other hand, if someone else tries to do something that’s not possible and they succeed, you can use the term to describe their accomplishment.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In either case, the term “I’m a teapot” is a way of describing a situation where someone is trying to do something that cannot be done.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/418" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Bugs</h3>
<!-- /wp:heading -->

<!-- wp:image {"linkDestination":"custom"} -->
<figure class="wp-block-image"><img src="https://cdn-images-1.medium.com/max/1760/1*_Na6jy8-JXpQHOjUHhWkAw.jpeg" alt=""/><figcaption>Photo by <a href="https://unsplash.com/es/@tumbao1949?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">James Wainscoat</a> on&nbsp;<a href="https://unsplash.com/s/photos/bugs?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Unsplash</a></figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4>Heisenbug</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Heisenbug is a term used to describe a software bug that disappears or changes behavior when an attempt is made to study or debug it. The name “heisenbug” is a pun on the Heisenberg Uncertainty Principle.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://blog.codinghorror.com/new-programming-jargon/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":4} -->
<h4>Hindenbug</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A bug with catastrophic behavior. Think something along the scale of your entire database being wiped off.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If you manually execute a SQL Delete statement without a where clause, it is more of a mistake than a bug. However, if you write a function to do the above, now that sounds like a Hindenbug.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://blog.codinghorror.com/new-programming-jargon/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":4} -->
<h4>The Gangnam Style&nbsp;Bug</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>When Psy release Gangnam style, he was about to literally break Youtube. Youtube initially stored its view count as a 32-bit number, i.e 2,147,483,647 views but Psy had different plans. Although <a href="https://www.theverge.com/2014/12/3/7325819/gangnam-style-broke-youtube-view-counter" rel="noreferrer noopener" target="_blank">Youtube did update its code before the 2,147,483,648th viewer</a> saw a weird number of views, this deserves to be on the list of funny terms.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Youtube decided to move to a 64-bit counter so they are probably safe for a few more years. In case you are wondering, that's Nine Quintillion Views Lol.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://www.vox.com/2014/12/3/7326945/gangnam-style-got-so-many-views-that-it-nearly-broke-youtube" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Type of&nbsp;Code</h3>
<!-- /wp:heading -->

<!-- wp:image {"linkDestination":"custom"} -->
<figure class="wp-block-image"><img src="https://cdn-images-1.medium.com/max/1760/1*D-cJk413AMal0i_4VAWVvQ.jpeg" alt=""/><figcaption>Photo by <a href="https://unsplash.com/@imlst?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Valery Fedotov</a> on&nbsp;<a href="https://unsplash.com/s/photos/jenga?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Unsplash</a></figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4>Jenga Code</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Jenga Code is a term used to describe a style of programming that results in the whole thing collapsing when you touch a single block of code. Named after the game where players try to remove wooden blocks from a tower without them falling down.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If you ever get a feeling that you don’t know what that line/piece of code does but removing it breaks everything down, well you might be working with some Jenga Code.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://blog.codinghorror.com/new-programming-jargon/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":4} -->
<h4>Spaghetti Code</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>&nbsp;This term is used to describe code that is messy and difficult to read. It’s often the result of bad coding practices or a rushed development process.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>If you’re working on a project with spaghetti code, it can be tough to make sense of it all. But with a little patience and perseverance, you should be able to untangle the mess and get things back on track.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>Hydra Code</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A little backstory about Hydra.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Hydra was the <a href="https://www.greekmythology.com/Myths/Monsters/Lernaean_Hydra/lernaean_hydra.html" target="_blank" rel="noreferrer noopener">offspring of Typhon and Echidna</a>, the father and mother of all monsters respectively. Hydra’s lair was the lake of <a href="https://en.wikipedia.org/wiki/Lerna" target="_blank" rel="noreferrer noopener">Lerna</a>, which was claimed to be the entrance to the UnderWorld. Heracles’ second of the set of 12 labors was to slay the Lernaean Hydra. Hydra had a <a href="https://en.wikipedia.org/wiki/Regeneration_%28biology%29" target="_blank" rel="noreferrer noopener">regeneration</a> feature: for every head chopped off, Hydra would regrow two heads.</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"fontSize":"large"} -->
<blockquote class="wp-block-quote has-large-font-size"><p><a href="https://www.greekmythology.com/Myths/Monsters/Lernaean_Hydra/lernaean_hydra.html" rel="noreferrer noopener" target="_blank">One head off, two heads&nbsp;Grow!</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:paragraph -->
<p>Heracles eventually managed to cut off all of Hydra’s heads with assistance from Iolaus.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Hydra Code is code that simply can not be fixed. For every new “fix”, two new bugs get introduced. Your best bet would be to rewrite the code.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://blog.codinghorror.com/new-programming-jargon/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":4} -->
<h4>Magic Code</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Magic Code is Code that is usually taken verbatim from websites like StackOverflow. Although it might solve your problem, you don’t know how it works or why it works. It magically solves your problem.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3>Common Law&nbsp;Feature</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A bug in the application that has existed so long that it is now part of the expected functionality, i.e it is a feature</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"fontSize":"large"} -->
<blockquote class="wp-block-quote has-large-font-size"><p>It’s not a bug, it’s a&nbsp;feature</p></blockquote>
<!-- /wp:quote -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://blog.codinghorror.com/new-programming-jargon/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Pokemon Exception Handling&nbsp;</h3>
<!-- /wp:heading -->

<!-- wp:image {"linkDestination":"custom"} -->
<figure class="wp-block-image"><img src="https://cdn-images-1.medium.com/max/1760/1*uGC0GHmVBEaGEU1QLQZQxw.jpeg" alt=""/><figcaption>Photo by <a href="https://unsplash.com/@thimo?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Thimo Pedersen</a> on&nbsp;<a href="https://unsplash.com/s/photos/pokemon?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noreferrer noopener" target="_blank">Unsplash</a></figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>If you have watched Pokemon, you must be familiar with it’s catch-phrase</p>
<!-- /wp:paragraph -->

<!-- wp:quote {"fontSize":"large"} -->
<blockquote class="wp-block-quote has-large-font-size"><p>Gotta Catch ’Em&nbsp;All</p></blockquote>
<!-- /wp:quote -->

<!-- wp:code -->
<pre class="wp-block-code"><code lang="Python" class="language-Python">try:
    // Some Code
except Exception as Pokemon:
    // print("Catching all Pokemons", Pokemon)</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Ash Ketchum might have never managed to catch all the Pokemons, but you can!</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://blog.codinghorror.com/new-programming-jargon/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Yak Shaving</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In software engineering, yak shaving is the term for when you have to do a bunch of small tasks in order to complete a bigger task. It is a task, that leads you to perform another related task, that leads you to perform yet another related task, and so on, and so on — all distracting you from your original goal. This is also sometimes called “going down the rabbit hole.”</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Yak shaving usually happens when you’re trying to do something that depends on something else that isn’t ready yet. For example, if you’re trying to deploy a new feature to your website but your database isn’t migrated yet, you might have to migrate the database first. Or if you’re trying to write a unit test but you can’t because one of the classes doesn’t have an interface yet, you might have to write the interface first.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Yak shaving can be frustrating because it feels like you’re not making any progress on the main task — you’re just doing a bunch of busy work. But it’s important to remember that every task you complete brings you closer to your goal, and eventually you’ll get there.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://americanexpress.io/yak-shaving/" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Monkey Patch</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Monkey patching is a technique used in software engineering to make changes to a program or library without changing the original source code. Monkey patches are typically used to add features or fix bugs in a program without waiting for the official release of a new version.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Monkey patching can be dangerous because it can lead to code that is difficult to maintain and debug. When doing monkey patching, it is important to be aware of the potential side effects of your changes.</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://en.wikipedia.org/wiki/Monkey_patch" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3><strong>Faith-based programming</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>When you try running the same piece of code again with hopes that the error just gets fixed magically.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://ravirajsblog.blogspot.com/2011/11/funny-programming-terms-that-we-share.html" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3><strong>Hi-driven development</strong></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>For most languages, there are a lot of debuggers at your disposal. You can add breakpoints and do a lot more to make it easier to debug a problem. However, a lot of programmers do not use Debuggers. What we do is, we add random <code>print</code> or <code>console.log</code> statements. If you see a statement like the below randomly in a function, there is a good chance the developer was debugging by practicing <code>Hi-driven development</code></p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">console.log(`HI.... ${varValue}`)</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>Most of us have our own version of <code>Hi</code>&nbsp;, personally, I use <code>Yooo</code> and a bunch of <code>-x-x-x-x-x-x-x-</code></p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><p><a href="https://ravirajsblog.blogspot.com/2011/11/funny-programming-terms-that-we-share.html" rel="noreferrer noopener" target="_blank">Reference</a></p></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3>Conclusion</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Let me know if you know of any other such terms in Software Engineering.</p>
<!-- /wp:paragraph -->

```
Want to Connect?

Find me on LinkedIn: https://www.linkedin.com/in/rahulbanerjee2699/

Originally Posted on https://www.realpythonproject.com/do-you-know-these-software-engineering-terms/
```