<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/if-you-say-never-do-x-in-programming-i-assume-you-don-t-know-what-you-re-talking-about-b3uijlc56" -->

---
title: If You Say “Never Do X” in Programming, I Assume You...
description: A critique of absolute programming advice that uses blanket "never do X" statements. The author argues that most programming practices labeled as forbidden...
canonical: https://daily.dev/posts/if-you-say-never-do-x-in-programming-i-assume-you-don-t-know-what-you-re-talking-about-b3uijlc56
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: If You Say “Never Do X” in Programming, I Assume You Don’t Know What You’re Talking About | daily.dev
og:description: A critique of absolute programming advice that uses blanket "never do X" statements. The author argues that most programming practices labeled as forbidden...
og:url: https://daily.dev/posts/if-you-say-never-do-x-in-programming-i-assume-you-don-t-know-what-you-re-talking-about-b3uijlc56
og:image: https://api.daily.dev/og/posts/B3uIJlc56.png
og:image:alt: If You Say “Never Do X” in Programming, I Assume You Don’t Know What You’re Talking About
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# If You Say “Never Do X” in Programming, I Assume You Don’t Know What You’re Talking About

**[Paul Vasile](https://daily.dev/sources/uiwf7xowejrt4dhwsv7xi)** · [@paulvasile](https://daily.dev/paulvasile) · 3 min read · 202 upvotes · 43 comments

## Summary

A critique of absolute programming advice that uses blanket "never do X" statements. The author argues that most programming practices labeled as forbidden actually have legitimate use cases and context matters more than rigid rules. Examples include git force push, committing to main branches, and password management strategies. The piece advocates for understanding the purpose and appropriate context of tools rather than following dogmatic prohibitions.

## Content

How many articles have you seen with "never use git push -f", "never commit on the master/main branch", "never use prints", "never ignore when your mom calls" or "never use whatever thing in programming that is actually legal to use and you won't get arrested for it"? I've read plenty. Every time I see one, I immediately assume the author has no idea what he is talking about, and I am 99% right.

Let's be honest, there are things you should never do. Like going naked at your job, or saying anything when your wife asks if a dress makes her look fat (just pretend to have a heart attack, it works, trust me). But most of the things have a special case when you actually *might want* to use them. That's what they were built for.

Let's take the "git push -f" example. Many people say to *never* do that. Why? Because it overwrites what the previous people did before your push. BUT WHAT IF THAT IS EXACTLY WHAT YOU WANT TO DO? What do you do then? Commit seppuku? Never commit to the master/main branch. But what if there is an urgent bug and it's the fastest way to fix it? It's not ideal, but you just might save your business. There is at least one edge case for every single one of these "never do x" things.

Of course, many people just write these kinds of titles to attract your attention. Some are even ridiculous: "never use if/else" and then proceed to use some factory pattern that generated 10x his original code just to avoid an if/else statement. Or "never use React.useMemo because it's slow to compare variables". How is it slow to compare 3 variables? Luckily, some people actually did benchmarks and showed that it's bullshit.

"Never use passwords, always use a password manager because passwords stored there are more secure than the platform you are creating them for". How do you even know that? What if the password managers store your passwords in plain text? There were many incidents where password managers got hacked. Its security might be the same as the platform you are creating the password for. Let's not forget the fact that you will be dependent on that password manager because it's very difficult to memorise those passwords. It's easier, and sometimes more secure, to just write a long passphrase. "YouLoveFriedPotatoesWithKetchupAndGarlic". Gets a "very strong" score on https://www.passwordmonster.com/ with 995 million years to crack. And very easy to remember.

TLDR: just because a thing can have nasty consequences, that doesn't mean you should *never* do it. You should avoid doing it if you don't need it, but they were created with a scope. They are meant to be used on certain occasions. You need to know when. If you say "never", then you have no idea what it's used for. It just means you are a superficial guy and don't go deep down the rabbit hole and see what's the point of that command/code/magical incantation used by gramma to make bread.

What articles did you read with "never do x" that pissed you off?

## Community discussion

Top comments from developers on daily.dev.

**@victormoni** · 20 upvotes

> I’ve read a lot of LinkedIn posts saying there’s no better way to wake up than accidentally dropping a production database 😅🔥

**@muffinisamuffin** · 20 upvotes

> It feels like someone read my mind for the last 1 year and decided to write it there. And another nightmare is
>
> "Top X tools for developers to use or will be arrested"
> "Top N libraries every developer must use/know" like our whole life and development career is depend on them and we will be doomed to failure unless we use these tools. Yet these tools are from 2015 or already in-use things like most of the developers are already using these as an appetizer even on their bedtimes. Whole blog platforms are crawling with these posts and it just kills my curiosity and pushing me to cancel my...

**@friedrich** · 18 upvotes

> Bro woke up and chose violence. But it is good to see somebody finally saying it

**@devmandan** · 8 upvotes

> Never dig straight down in Minecraft.

**@adampagano** · 7 upvotes

> Picasso said: “Learn the rules like a pro, so you can break them like an artist.”
>
> Yeah, there are cases when you need to go against best practice and ideal conduct, but it has to be done mindfully as not to create bad habit or set the wrong precedents.

---

Tags: [#git](https://daily.dev/tags/git)

[View this post on daily.dev](https://daily.dev/posts/if-you-say-never-do-x-in-programming-i-assume-you-don-t-know-what-you-re-talking-about-b3uijlc56)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/if-you-say-never-do-x-in-programming-i-assume-you-don-t-know-what-you-re-talking-about-b3uijlc56","headline":"If You Say “Never Do X” in Programming, I Assume You Don’t Know What You’re Talking About","text":"A critique of absolute programming advice that uses blanket \"never do X\" statements. The author argues that most programming practices labeled as forbidden actually have legitimate use cases and context matters more than rigid rules. Examples include git force push, committing to main branches, and password management strategies. The piece advocates for understanding the purpose and appropriate context of tools rather than following dogmatic prohibitions.","url":"https://daily.dev/posts/if-you-say-never-do-x-in-programming-i-assume-you-don-t-know-what-you-re-talking-about-b3uijlc56","datePublished":"2025-10-06T09:48:17.199Z","dateModified":"2025-10-06T09:48:37.915Z","author":{"@type":"Person","name":"Paul Vasile","url":"https://daily.dev/paulvasile","image":"https://lh3.googleusercontent.com/a/ACg8ocLb1NRaUyJcnimfMzKBMkQvvObhEegoAuRKlUIqttoRHlw=s96-c","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":3400}},"image":"https://media.daily.dev/image/upload/s--gxkwdG1C--/f_auto/v1759744097/posts/B3uIJlc56?_a=BAMAK+ZW0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":202},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":43}],"comment":[{"@type":"Comment","text":"I’ve read a lot of LinkedIn posts saying there’s no better way to wake up than accidentally dropping a production database 😅🔥","datePublished":"2025-10-06T10:33:37.041Z","url":"https://daily.dev/posts/B3uIJlc56#c-OujBCxdm6","author":{"@type":"Person","name":"Victor Moni","url":"https://daily.dev/victormoni","image":"https://media.daily.dev/image/upload/s--72Wi69ZE--/f_auto/v1784758172/avatars/avatar_sIZQvrf20yqY9CA4XcUjD?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":20}},{"@type":"Comment","text":"It feels like someone read my mind for the last 1 year and decided to write it there. And another nightmare is\n“Top X tools for developers to use or will be arrested”\n“Top N libraries every developer must use/know” like our whole life and development career is depend on them and we will be doomed to failure unless we use these tools. Yet these tools are from 2015 or already in-use things like most of the developers are already using these as an appetizer even on their bedtimes. Whole blog platforms are crawling with these posts and it just kills my curiosity and pushing me to cancel my subscription (which I already did it)","datePublished":"2025-10-06T11:10:51.849Z","dateModified":"2025-10-06T13:39:26.463Z","url":"https://daily.dev/posts/B3uIJlc56#c-0n0ZPp2Cd","author":{"@type":"Person","name":"Furkan","url":"https://daily.dev/muffinisamuffin","image":"https://media.daily.dev/image/upload/s--RBQTo22a--/f_auto/v1748525167/avatars/avatar_YPXlUbSzG?_a=BAMClqUq0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":20}},{"@type":"Comment","text":"Bro woke up and chose violence. But it is good to see somebody finally saying it","datePublished":"2025-10-06T11:14:43.327Z","url":"https://daily.dev/posts/B3uIJlc56#c-WtL4wnYmE","author":{"@type":"Person","name":"Friedrich WT","url":"https://daily.dev/friedrich","image":"https://avatars.githubusercontent.com/u/136119888?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":18}},{"@type":"Comment","text":"Never dig straight down in Minecraft.","datePublished":"2025-10-09T09:35:31.364Z","url":"https://daily.dev/posts/B3uIJlc56#c-iuBc8LtZ8","author":{"@type":"Person","name":"Daniel","url":"https://daily.dev/devmandan","image":"https://media.daily.dev/image/upload/s--ypn2TBF9--/f_auto/v1786619820/avatars/avatar_qDApMJOupymFKtjAmmtB4?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":8}},{"@type":"Comment","text":"Picasso said: “Learn the rules like a pro, so you can break them like an artist.”\nYeah, there are cases when you need to go against best practice and ideal conduct, but it has to be done mindfully as not to create bad habit or set the wrong precedents.","datePublished":"2025-10-07T23:47:18.677Z","url":"https://daily.dev/posts/B3uIJlc56#c-3xwPAADmd","author":{"@type":"Person","name":"Adam Pagano","url":"https://daily.dev/adampagano","image":"https://media.daily.dev/image/upload/s--O0TOmw4y--/f_auto/v1715772965/public/noProfile"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":7}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/uiwf7xowejrt4dhwsv7xi","name":"Paul Vasile"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Paul Vasile","item":"https://daily.dev/sources/uiwf7xowejrt4dhwsv7xi"},{"@type":"ListItem","position":3,"name":"If You Say “Never Do X” in Programming, I Assume You Don’t Know What You’re Talking About"}]}
```

