r/programming May 01 '24

The State of the Subreddit (May 2024)

665 Upvotes

Hello fellow programs!

tl;dr some revisions to the rules to reduce low quality blogspam. The most notable are: banning listicles ("7 cool things I copy-pasted from somebody else!"), extreme beginner articles ("how to use a for loop"), and some limitations on career posts (they must be related to programming careers). Lastly, I want feedback on these changes and the subreddit in general and invite you to vote and use the report button when you see posts that violate the rules because they'll help us get to it faster.

r/programming's mission is to be the place with the highest quality programming content, where I can go to read something interesting and learn something new every day. Last time we spoke I introduced the rules that we've been moderating by to accomplish that. Subjectively, quality on the subreddit while not perfect is much improved since then. Since it's still mainly just me moderating it's hard to tell what's objectively bad vs what just annoys me personally, and to do that I've been keeping an eye on a few forms of content to see how they perform (using mostly votes and comment quantity & health).

Based on that the notable changes are:

  • 🚫 Listicles. "7 cool python functions", "14 ways to get promoted". These are usually spammy content farms. If you found 15 amazing open source projects that will blow my mind, post those projects instead.
  • 🚫 Extreme beginner content ("how to write a for loop"). This is difficult to identify objectively (how can you tell it from good articles like "how does kafka work?" or "getting started with linear algebra for ML"?) so there will be some back and forth on calibrating, but there has been a swath of very low quality "tutorials" if you can even call them that, that I very much doubt anybody is actually learning anything from and they sit at 0 points. Since "what is a variable?" is probably not useful to anybody already reading r/programming this is a quick painless way to boost the average quality on the subreddit.
  • ⚠️ Career posts must be related to software engineering careers. To be honest I'm personally not a fan of career posts on r/programming at all (but shout out to cscareerquestions!) but during the last rules revision they were doing pretty well so I know there is an audience for it that I don't want to get in the way of. Since then there has been growth in this category all across the quality spectrum (with an accompanying rise in product management methodology like "agile vs waterfall", also across the quality spectrum). Going forward these posts must be distinctly related to software engineering careers rather than just generic working. This isn't a huge problem yet but I predict that it will be as the percentage of career content is growing.

In all of these cases the category is more of a tell that the quality is probably low, so exceptions will be made where that's not the case. These are difficult categories to moderate by so I'll probably make some mistakes on the boundaries and that's okay, let me know and we'll figure it out.

Some other categories that I'm keeping an eye on but not ruling on today are:

  • Corporate blogs simply describing their product in the guise of "what is an authorisation framework?" (I'm looking at you Auth0 and others like it). Pretty much anything with a rocket ship emoji in it. Companies use their blogs as marketing, branding, and recruiting tools and that's okay when it's "writing a good article will make people think of us" but it doesn't go here if it's just a literal advert. Usually they are titled in a way that I don't spot them until somebody reports it or mentions it in the comments.
  • Generic AI content that isn't technical in content. "Does Devin mean that programming is over?", "Will AI put farmers out of work?", "Is AI art?". For a few weeks these were the titles of about 20 articles per day, some scoring high and some low. Fashions like this come and go but I'm keeping an eye on it.
  • Newsletters: There are a few people that post every edition of their newsletter to reddit, where that newsletter is really just aggregating content from elsewhere. It's clear that they are trying to grow a monetised audience using reddit, but that's okay if it's providing valuable curation or if the content is good and people like it. So we'll see.
  • Career posts. Personally I'd like r/programming to be a deeply technical place but as mentioned there's clearly an audience for career advice. That said, the posts that are scoring the highest in this category are mostly people upvoting to agree with a statement in the title, not something that anybody is learning from. ("Don't make your engineers context-switch." "Everybody should get private offices." "Micromanaging sucks.") The ones that one could actually learn from with an instructive lean mostly don't do well; people seem to not really be interested in how to have the best 1:1s with their managers or how you went from Junior to Senior in 18 hours (though sometimes they are). That tells me that there's some subtlety to why these posts are scoring well and I'm keeping an eye on the category. What I don't want is for "vote up if you want free snacks" to push out the good stuff or to be a farm for the other 90% of content that's really just personal brand builders.

I'm sure you're as annoyed as I am about these but they're fuzzy lines and difficult to come up with objective criteria around. As always I'm looking for feedback on these and if I'm missing any and any other points regarding the subreddit and moderation so let me know what you think.


The rules!

With all of that, here is the current set of the rules with the above changes included so I can link to them all in one place.

✅ means that it's currently allowed, 🚫 means that it's not currently allowed, ⚠️ means that we leave it up if it is already popular but if we catch it young in its life we do try to remove it early.

  • ✅ Actual programming content. They probably have actual code in them. Language or library writeups, papers, technology descriptions. How an allocator works. How my new fancy allocator I just wrote works. How our startup built our Frobnicator. For many years this was the only category of allowed content.
  • ✅ Academic CS or programming papers
  • ✅ Programming news. ChatGPT can write code. A big new CVE just dropped. Curl 8.01 released now with Coffee over IP support.
  • ✅ Programmer career content. How to become a Staff engineer in 30 days. Habits of the best engineering managers. These must be related or specific to programming/software engineering careers in some way
  • ✅ Articles/news interesting to programmers but not about programming. Work from home is bullshit. Return to office is bullshit. There's a Steam sale on programming games. Terry Davis has died. How to SCRUMM. App Store commissions are going up. How to hire a more diverse development team. Interviewing programmers is broken.
  • ⚠️ General technology news. Google buys its last competitor. A self driving car hit a pedestrian. Twitter is collapsing. Oculus accidentally showed your grandmother a penis. Github sued when Copilot produces the complete works of Harry Potter in a code comment. Meta cancels work from home. Gnome dropped a feature I like. How to run Stable Diffusion to generate pictures of, uh, cats, yeah it's definitely just for cats. A bitcoin VR metaversed my AI and now my app store is mobile social local.
  • 🚫 Politics. The Pirate Party is winning in Sweden. Please vote for net neutrality. Big Tech is being sued in Europe for gestures broadly. Grace Hopper Conference is now 60% male.
  • 🚫 Gossip. Richard Stallman switches to Windows. Elon Musk farted. Linus Torvalds was a poopy-head on a mailing list. The People's Rust Foundation is arguing with the Rust Foundation For The People. Terraform has been forked into Terra and Form. Stack Overflow sucks now. Stack Overflow is good actually.
  • ✅ Demos with code. I wrote a game, here it is on GitHub
  • 🚫 Demos without code. I wrote a game, come buy it! Please give me feedback on my startup (totally not an ad nosirree). I stayed up all night writing a commercial text editor, here's the pricing page. I made a DALL-E image generator. I made the fifteenth animation of A* this week, here's a GIF.
  • 🚫 AskReddit type forum questions. What's your favourite programming language? Tabs or spaces? Does anyone else hate it when.
  • 🚫 Support questions. How do I write a web crawler? How do I get into programming? Where's my missing semicolon? Please do this obvious homework problem for me. Personally I feel very strongly about not allowing these because they'd quickly drown out all of the actual content I come to see, and there are already much more effective places to get them answered anyway. In real life the quality of the ones that we see is also universally very low.
  • 🚫 Surveys and 🚫 Job postings and anything else that is looking to extract value from a place a lot of programmers hang out without contributing anything itself.
  • 🚫 Meta posts. DAE think r/programming sucks? Why did you remove my post? Why did you ban this user that is totes not me I swear I'm just asking questions. Except this meta post. This one is okay because I'm a tyrant that the rules don't apply to (I assume you are saying about me to yourself right now).
  • 🚫 Images, memes, anything low-effort or low-content. Thankfully we very rarely see any of this so there's not much to remove but like support questions once you have a few of these they tend to totally take over because it's easier to make a meme than to write a paper and also easier to vote on a meme than to read a paper.
  • ⚠️ Posts that we'd normally allow but that are obviously, unquestioningly super low quality like blogspam copy-pasted onto a site with a bazillion ads. It has to be pretty bad before we remove it and even then sometimes these are the first post to get traction about a news event so we leave them up if they're the best discussion going on about the news event. There's a lot of grey area here with CVE announcements in particular: there are a lot of spammy security "blogs" that syndicate stories like this. Pretty much all listicles are disallowed under this rule. 7 cool python functions. 14 ways to get promoted. If you found 15 amazing open source projects that will blow my mind, post those projects instead.
  • ⚠️ Extreme beginner content. What is a variable. What is a for loop. Making an HTPT request using curl. Like listicles this is disallowed because of the quality typical to them, but high quality tutorials are still allowed and actively encouraged.
  • ⚠️ Posts that are duplicates of other posts or the same news event. We leave up either the first one or the healthiest discussion.
  • ⚠️ Posts where the title editorialises too heavily or especially is a lie or conspiracy theory.
  • Comments are only very loosely moderated and it's mostly 🚫 Bots of any kind (Beep boop you misspelled misspelled!) and 🚫 Incivility (You idiot, everybody knows that my favourite toy is better than your favourite toy.) However the number of obvious GPT comment bots is rising and will quickly become untenable for the number of active moderators we have.

r/programming 5h ago

What is a thing every programmer should know?

Thumbnail oreilly.com
101 Upvotes

In the book “97 things every programmer should know” they asked a bunch of authors for one idea/method/principle they think is important to know. There are thousands of experienced software engineers reading this subreddit, there must be a lot of great advice out there. What is yours?


r/programming 3h ago

BSD kqueue is a mountain of technical debt

Thumbnail ariadne.space
22 Upvotes

r/programming 5h ago

Not so modern C++

Thumbnail polymonster.co.uk
20 Upvotes

r/programming 20h ago

Advent of Code 2024 in pure SQL

Thumbnail databasearchitects.blogspot.com
223 Upvotes

r/programming 4h ago

Difference between PHP getenv and $_ENV: beware of the subtleties!

Thumbnail medium.com
11 Upvotes

Environment variables play a crucial role in modern development, especially for managing sensitive data like API keys or environment-specific configurations. In PHP, there are two primary ways to access these variables: the getenv function and the $_ENV superglobal. While they may seem interchangeable, they behave differently and can cause issues if not used correctly.


r/programming 16h ago

I Made a Drop-In Wrapper For argparse That Automatically Creates a GUI Interface

Thumbnail github.com
74 Upvotes

r/programming 13m ago

Building an AI-Powered Git Commit Report Generator: Dev Log 1

Thumbnail spithacode.com
Upvotes

r/programming 1d ago

Based on GitHub data, I created an interactive map showing the number of programmers per million inhabitants worldwide.

Thumbnail vazquez-borsetti.github.io
170 Upvotes

r/programming 19m ago

Building Production-Ready AI Agents & LLM programs with DSPy: Tips and Code Snippets

Thumbnail firebird-technologies.com
Upvotes

r/programming 24m ago

Surprising Facts About European National ID Systems

Thumbnail github.com
Upvotes

r/programming 22h ago

That's not an abstraction

Thumbnail fhur.me
35 Upvotes

r/programming 1d ago

What I learned in my 4 years of open source development.

Thumbnail blog.michaelrbparker.com
126 Upvotes

r/programming 1d ago

I made a NES emulator

Thumbnail github.com
40 Upvotes

r/programming 2h ago

I Deployed the Same App on DigitalOcean and Hetzner! | Cheap vs Expensive VPS!

Thumbnail youtu.be
0 Upvotes

DigitalOcean has been my go-to for purchasing VPS for the past few years. However, recently, some cheaper cloud providers, particularly Hetzner, have been getting a lot of attention!

In their cheapest plan, you can get 2 cores, 4 GB RAM, 40 GB SSD, and 20 TB bandwidth for just $4/month!

![Hetzner Pricing SS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3x55o2e1jtllcd86yl1w.png)

To get something similar on DigitalOcean, you’d need to pay $24/month!

Now on paper, it sounds like a great deal! and seems like a no-brainer to switch to Hetzner. But is there a catch? Is it as good as everyone claims? How much traffic can Hetzner’s cheapest plan handle compared to something like DigitalOcean?

To find out, I deployed the same app on both platforms in the same region, compared their performance, and shared my findings in this video: https://youtu.be/mrDXF-Y9T50

If you’re in a hurry, here’s the result 👇

Virtual Users Digital Ocean Hetzner
50 593.4ms 575.99
100 754.84ms 626.04
250 1.4s+ 950.23
500 6s 1.8s
Cost $6/month $4/month

r/programming 1d ago

How to Secure Webhooks?

Thumbnail newsletter.scalablethread.com
32 Upvotes

r/programming 1d ago

Lost Lessons from 8-Bit BASIC

Thumbnail prog21.dadgum.com
24 Upvotes

r/programming 1d ago

Debugging memory corruption: Who wrote ‘2’ into my stack?

Thumbnail unity.com
466 Upvotes

r/programming 14h ago

Let's celebrate the New Year with fireworks! Only 60 lines of pure JavaScript

Thumbnail slicker.me
3 Upvotes

r/programming 1d ago

James Gosling on Java - Historical Oddities & Persistent Itches

Thumbnail youtube.com
32 Upvotes

r/programming 1d ago

CobolCraft: A Minecraft server written in COBOL

Thumbnail github.com
194 Upvotes

r/programming 2h ago

What I've Learned from AI-Assisted Programming

Thumbnail al002.github.io
0 Upvotes

r/programming 16h ago

Seergdb v2.5 released for Linux.

Thumbnail github.com
3 Upvotes

r/programming 1d ago

Making a simple HTTP webserver in C

Thumbnail bruinsslot.jp
68 Upvotes

r/programming 5h ago

How can i copy paste some stats from this website? When i do it, It just completely changes. Thanks

Thumbnail eurobasket.com
0 Upvotes

r/programming 20h ago

Customizing ed(1), the standard text editor

Thumbnail aartaka.me
2 Upvotes