Google Isn’t Even Trying to Rank Decent Computer Science Content

Google Isn't Even Trying to Rank Decent Computer Science Content Featured Image

As someone who spends a lot of time writing informative programming content, I had to ask myself: how the hell am I not dominating the search rankings? Is Google even trying to rank decent content? Because as far as I can tell, they’re handing out snippets and top spots for the absolute bare minimum level of effort.

Obviously, this article is a bit of a rant. That’s not to say that I didn’t try to look at this issue objectively. It’s just that I can’t help but feel really frustrated with Google’s search algorithm. You’ll see why.

Table of Contents

Quick History of The Renegade Coder

As someone who has been blogging in the tech space for nearly four years now, I tend to have a love-hate relationship with Google—specifically the search engine. On one hand, it has brought me hundreds of thousands of visitors over the years. On the other hand, it just hasn’t given me a fair shake. Let me explain.

When I started blogging in 2016, I wrote a really short Java series because I was interested in teaching people how to code. Back then, the series was terrible. I had no idea how to write content for the internet, and I wasn’t the greatest at conveying my thoughts either.

Over the years, I tried other things like creating a series on data structures for a friend in Summer of 2017. Then, in early 2018, I had this great idea to create a series of articles on Hello World in every language. Around the same time, I started documenting my experience with my new favorite programming language, Python.

About a year after that, my website exploded. By May of 2019, I was raking in nearly 2,000 clicks a day. I couldn’t believe it. Now, to be fair, those clicks were coming from a single article that made its way to the very top of Google, but it felt good anyway: I was number one.

Then, eventually that page started to decay. And when that happens, your views start to go away very quickly. After all, moving down the rankings has a direct effect on trafficOpens in a new tab.. Sure, the source I just linked claims that having the top spot is overrated, but they also mention that one of the top four positions brings in the most traffic 90% of the time.

Like any bad scientist, I started writing content similar to what took off on Google. After all, that one article seemed to do well at least for a few months. Certainly I could replicate that, right?

Ultimately, I found out that I was right. I just wasn’t able to replicate that kind of success. Sure, some articles approached the same level of success, but I haven’t seen 2,000 clicks a day since May 2019. These days (July 2020Opens in a new tab.) I barely crack 200, so what gives?

Well, today I wanted to take an in depth look at some of my content and figure out what’s going wrong. My gut tells me that Google is propping up trash content, but we’ll have to take a look.

Potential Issues

Before we take a look at what Google is doing, I want to take a moment to talk about all the ways I know in which my website could improve. In other words, this section is dedicated to everything I’ve tried to improve about my blogging in the past four years.

Content Quality

First things first, let’s talk content quality. When I first started writing, I struggled to hit around 1,000 words an article. Nowadays, I struggle to keep my content under 2,000 words. I’m not saying that I purposely limit the length of my articles. More so, I’m trying to argue that my content is more rich than in that past.

Obviously, you can judge my content for yourself. I think this article is pretty much par for the course (though it’s a lot longer than average). That said, I’d also encourage you to browse some of my top content including the following:

Since early 2019, the bulk of my content has been fairly niche: college teaching and beginner Python. Sure, the Python market is pretty saturated, but as we’ll see later, most of the content is low quality. I don’t think it’s too hard to write a good article: just write for your future self. This is the same mindset I take when writing code, so I feel like the skill transfers well to blogging.

That said, I will say that I have no idea what it means to have good content. What I generally try to do is write content that is as relevent to the title as possible. Of course, I also tend to go on tangents which I hope gives my writing a little personality. Maybe that’s not what Google wants to see. Who knows.

Site Performance

Fortunately, I’ve done more than address my content issues over the last four years. For example, my website used to run ads and all sorts of fun stuff that caused it to be slow—really slow. In the quest to address these performance issues, I tried everything including picking up a CDN, switching themes, and upgrading my host. Now, GTMetrix reports the following for my homepage:

GTMetrix Stats for The Renegade Coder Homepage in 2020

Despite all this effort to speed up my site, I’ve seen basically no improvement in search rankings. To make matters worse, Google’s Core Web Vitals reports that my site is slow:

The Renegade Coder Google Core Web Vitals for 2020

Now, how is it that GTMetrix is reporting such great performance metrics for my site while Google’s Core Web Vitals completely disagree?

After doing some research, I found out that Google’s Core Web Vitals are collected using empirical data. As a result, I figured that maybe a large portion of my audience was having trouble connecting to my server, so I picked up a CDN. As far as I can tell, Google’s Core Web Vitals are not showing an improvement.

Syndication

Aside from content and performance, I always worked really hard to market my content. For instance, I’ve used everything from Facebook to StumbleUpon to try to build up a following. None of that really got the job done.

Then, at some point (I think in early 2018), I found Dev.to. Since then, I’ve been double posting content here and there to try to get it in front of more eyes. In general, I’ve had no problems, and I’m very happy with the results. Though, occasionally both articles will rank on Google. For example, my How to Invert a Dictionary article has shown up in both the 1st and 3rd spots before (despite a proper canonical URL):

Google Search Results for How to Invert a Dictionary in Python

Later, I was picked up by JavaCodeGeeks for content syndication. As a result, I was popping articles off in three places at once. While this was driving some traffic to the site, I realized that Google was no longer ranking the original articles.

To deal with this issue, I asked JaveCodeGeeks to stop posting my content. In addition, I asked them to label all existing content with the canonical URL, so Google could rank the originals properly.

That said, I have no idea if syndication hurt or helped my cause. I will say that it’s frustrating to see your content rank on the wrong site. That’s definitely one area where Google could improve, but that’s a topic for a different time.

One thing that I don’t really pay any attention to is backlinks. Sure, I spend a lot of time on Google Search Console tracking my backlinks, but I don’t actively pursue them. After all, I’m of the opinion that good content will generate its own backlinks organically. Besides, who wants to blast off 1000s of emails for just a handful of links?

That said, I feel like I’ve been victim to garbage backlinks. What I mean by that is that it isn’t uncommon for me to see like 800 links to a dead website show up in my backlink portfolio. For example, at one point, I had like 2000 links to some dead campaign website. I have no clue how they got there, and I couldn’t even find them: the website was a giant 404 page.

Since Google doesn’t appear to have any way to denounce them (besides this weird toolOpens in a new tab.), I can’t do anything about it. For whatever reason, their advice was to contact the domain owner to have the links removed. Of course, if the links were put there maliciously, how the hell am I supposed to do anything about it? Though, it does appear that Google includes these types of linksOpens in a new tab..

Overall, I feel like I’ve done a lot to make sure my site should be ranking. Yet, I can’t seem to grow the site. On one hand, I definitely have more variety of posts ranking. On the other hand, I haven’t once approached 2,000 clicks a day in almost two years. As a result, it’s no wonder I want to take my frustrations out on Google. Unfortunately, as you’ll see shortly, Google isn’t exactly helping their cause.

Examining the Competition

Now, I wouldn’t be writing this article if I felt like I was actually being beat out by the competition. I know that sounds really cocky, but hear me out: most of the results for search terms in my niche turn up garbage. Let me show you.

How to Check If a List is Empty in Python

Right now, my most popular article is titled “How to Check If a List is Empty in Python”. When I search the title up exactly, here’s what I get:

Google Search Results for How to Check If a List is Empty in Python

As you can see, my article shows up second right behind my main competitor, Stack Overflow. Naturally, both of us are being outdone by Techie Delight who managed to steal the snippet.

Snippet Winner

If we were to take a look at Techie Delight’s article, we’d be greeted with perhaps one of the thinnest articles I’ve ever seen:

Techie Delight Thin Content
Overview of “Check if a list is empty in Python” article by Techies Delight. I would have taken a cleaner screenshot of the actual content, but I couldn’t help but include all the popups and whatnot.

Now, I know a lot of folks aren’t going to see anything wrong with this (beyond the ads and cookies). After all, one of the biggest complaints I hear from folks who “just want the answer” is that there’s too much fluff. Think about recipe bloggers: everyone always complains about how bloggers have to tell a story about the grandparents before they get to the recipe.

That said, read the content; it explains nothing. You might as well have dumped all three code snippets with a quick comment at the top of each. Hilariously, when I tried to copy all the text to get a quick word count, I couldn’t. For whatever reason, they have copy/paste disabled on their site. Talk about a user experience nightmare.

Since I’m petty, I figured I’d count the words myself. After all, it couldn’t possibly take very long. Spoiler alert: it didn’t. In total, there is less than 150 words of content on this page. There are probably more words in some of these paragraphs!

Obviously, this is particularly frustrating to me because my articles include thorough explanations of each solution with examples as well as performance metrics. Hell, I even have a video summary in my article.

Ugh! Let’s move on to Stack Overflow.

Rank 1: Stack Overflow

With the snippet out of the way, the article that actually takes the top spot is the website I set myself out to beat in the first place, Stack Overflow.

Personally, I don’t hate Stack Overflow. Rather, I’m more bothered by their monopoly on search results. As a result, the culture of Q&A in the tech industry boils down to finding answers as quickly as possible. No one seems to be willing to read long form answers—bouncing as soon as they see a blog.

Of course, Stack Overflow has its own problems. The site notoriously gatekeeps questions and answers in perhaps the worst way possible: karma-based moderation. In other words, those who use the site the most, curate it. Naturally, these gatekeepers are major pedants and often turn people away as a result.

On this occasion, Stack Overflow wins the top ranked page with the following article:

Stack Overflow How Do I Check If a List Is Empty Article
Overview of “How do I check if a list is empty?” question on Stack Overflow.

That’s it! You’re looking at a question and answer which has been essentially reduced to their most simplistic form—almost no explanation on how/why this works. It just does.

Hilariously, when I look up how Stack Overflow manages to steal all the top rankings, here’s what I get:

SEO people say “Content is King” – SO is all about the content, which grows and changes by the minute. This is also something that ranks high with Google, and as Daok points out, having lots of high profile sites linking to it, Google rates it highly.

SEO in Stack OverflowOpens in a new tab.

Now, to be fair, this Stack Overflow page is massive! In fact, you can see that there are 27 answers, so I’m really just picking on the top answer.

That said, I’m not in love with a format that relies on users to supply content in different styles and capacities. It just seems so messy, and it makes it hard to find what you need. Not to mention that every answer is loaded with commentary.

But, I digress. Stack Overflow probably deserves the top spot here.

Rank 2: The Renegade Coder

If you take a peek at the second ranked page, you’ll find me! Keep in mind that this is not typical for me. In fact, this is currently my best ranked page. That said, here’s what a typical user will see:

The Renegade Coder How to Check if a List is Empty Article
Overview of “How to Check if a List is Empty in Python” article on The Renegade Coder.

Unlike the other pages in the rankings, this one opens up with a title, a large picture, and an overview of what to expect. Naturally, I’m aware that people tend to click away as soon as they see a blog, so I try to bold the answer right away: best not to bury the lede.

Just below this portion of the article, you’re greeted with a table of contents which outlines exactly what to expect:

  1. Video Summary
  2. Problem Introduction
  3. Solutions
    1. Check if a List is Empty by its Length
    2. Check if a List is Empty by Direct Comparison
    3. Check if a List is Empty by its Type Flexibility
  4. Performance
  5. Challenge
  6. A Little Recap

Overall, I’m fairly happy with this style of content. There is a YouTube video for folks who don’t want to read. In addition, all three solutions are provided with context. After that, we compare the performance of all three solutions before providing a challenge for anyone who wants to engage on social media. Finally, all the solutions are listed again for review.

What I’m finding is that Google (and perhaps the people clicking on my site) don’t actually think “content is king.” Otherwise, I would expect something like this to dominate the search results.

That said, let’s keep going.

Rank 3: Tutorials Point

As someone who can’t stand content farms, websites like Tutorials Point really piss me off. After all, more often than not, their content is a code dump with no explanation. Take a look:

Tutorials Point How to Check if a List is Empty Article
Overview of “How to check if a list is empty in Python?” on Tutorials Point.

I will say that I really like their site design. It’s very minimalist and clean; I don’t feel like I’m being bombarded by ads and other junk (though I do have an ad blocker).

Regardless, this is some pretty thin content, if we’re being honest. In total, I think there a like 50 words in the entire post. How did Google even find this to rank it?

Rank 4+: The Trend Continues

Now, I won’t bore you with the details of every page, but I thought it would be interesting to keep poking through the rankings. As you can probably imagine, the entire first page is filled with content farm junk. Here’s just a few of the names that made the list:

  • GeeksForGeeks.org
  • Educative.io
  • CodeGrepper.com

Outside of these sites, there are a few “meh” sites. For instance, there’s a Medium articleOpens in a new tab. which explains a little behind why the type flexibility solution works. Likewise, there are few other blogs with their own takes like AppDividendOpens in a new tab. and ThisPointerOpens in a new tab..

In general, I wouldn’t say any of this content is bad, but it’s definitely not great. For example, one of the articles claims that you can check if a list is empty by the “not operator.” This isn’t wrong, necessarily, but it doesn’t really explain why it works.

Unfortunately, as I dig through the remaining pages on Google, I can’t seem to find any sort of competition. Every single page that claims to answer this question is a glorified code dump. If this is truly the landscape, I should be dominating the web. Yet, I’m not.

Comparing Performance

For shits and giggles, I thought it would be fun to compare the performance of these sites on GTMetrix. After all, they have to be better than my site at something, right? Well, you can probably guess at this point:

GTMetrix Performance Comparison of Top Sites for How to Check If a List is Empty in Python

At first glance, my competition has pretty terrible performance. The only reason I don’t immediately concede to Tutorials Point for the fast page load time is because they somehow managed to have even LESS content than Techies Delight. Yet, Google thinks they deserve that coveted third spot in the rankings.

So, what’s a man gotta do to beat the competition? Well, we’ll take a look at yet another frustrating search result in the next section to see if we can figure it out.

Python Code Snippets

Normally, I’m not a huge fan of list posts, but I understand that sometimes you have to play the game to be successful. For instance, I once made a Python code snippets list to link back to all my other Python articles. For a short time, it was a huge hit.

Over time, however, it started to rank on Google for the search term “python code snippets”. Naturally, when I search that, I’m greeted with the following list:

Google Search Results for Python Code Snippets

Here, I come in third for a relatively unpopular search term. That said, it does drive a bit of traffic my way—maybe 25 views a day. And, it serves as a nice hub for moving people around my site. In the last 6 months, it had a bounce rate of about 71% which isn’t terrible. Basically, a third of my viewers go to another page which is nice.

All that said, I suspect it would be doing even better if it were ranked appropriately. You’ll see what I mean shortly.

Rank 1: Towards Data Science

If we click through to the very first article in the list, we’ll see a Medium page with 30 code snippets in a list:

Towards Data Science Python Snippets Article

First thing I want to mention is that this article is a part of Medium, and it’s paywalled. In my opinion, paywalled content has no business ranking on Google. Especially, in this case, where only sometimes you will be able to see the content (i.e. if you haven’t gone through your free stories).

Rant aside, this article isn’t actually too bad. It’s a bit thin on the content side, but it’s true to its word: 30 code snippets.

Now, when I first opened this article, I couldn’t see the code. I don’t know if GitHub was down since that’s what they’re using to host the code snippets, or if there was some problem with Medium. I have no clue. What I do know is that I couldn’t see any code at all.

Looking at it today, it seems like that issue was resolved. That said, again, it’s a bit frustrating to click through to the top ranked link and find nothing of value.

However, I actually learned something! I had no idea you could do a chained function call. I suppose it makes sense because functions are first-class entities in Python, but I was still very surprised by it. What a cool idea.

Overall, I’m actually not that upset to be beat out by this article. In general, I think “listicles” are a bad form of content, so I’m not too bothered when someone puts little effort into them.

Rank 2: Python For Beginners

If the last article was good, this one is very, very bad. Just to give you an idea, here’s what the entire page looks like:

Python for Beginners Code Snippets Article

This website employs basically every anti-pattern I can think of for web design. First, there are two “pop ups”. One at the top to allow for push button notifications, and another at the bottom to push you to a subscription. In addition, there’s an additional request for push button notifications in the bottom left.

On the page itself, there are two advertisements in plain view. Everything else appears to be plain text with little styling. For example, there are a lot of horizontal rules, borders, and URLs that appear to have default settings. In fact, this particular page is flooded with links. I’m not sure how you would be able to identify one from the other with them clustered this tightly.

So, is the content any good? Well, not really. This appears to be an archive page which is always a little frustrating to stumble upon through search. In other words, rather than being exposed to a full article with snippets, we’re dropped onto a list of links of articles with truncated summaries.

To make matters worse, it doesn’t appear that this page has been updated recently. The newest code snippet is from September 19, 2015. And here I thought Google was trying to prioritize “fresh” content.

Of course, for my own pleasure, I figured I’d take a look at one of these snippet articles. Boy are you in for a treat:

Python for Beginners DNS Lookup Article

In content farm fashion, this article drops more code than context. In total, there are maybe 20 words in the entire article.

Now, what I find absolutely hilarious is that they have this share bar at both the top and the bottom of the article. If you peek all the way at the end of it, you’ll see that 44% of people were angry at this article. How in the hell is Google ranking this stuff?! Ugh, let’s move on.

Rank 3: The Renegade Coder

Naturally, in third place, you’ll find my article “Python Code Snippets for Everyday Problems”. Like most of my articles, you’re greeted with something that looks like this:

The Renegade Coder Python Code Snippets Article

If you keep reading, you’re greeted with a massive table of contents and roughly 4,500 words of context. While part of me thinks about how large that article is, I’m slowly realizing that this article will probably surpass it.

At any rate, I don’t have much to say about my article other than that you get what’s advertised. With something this large, I try to organize it, so people can find their way around quickly. In this case, I organized these snippets by problem and then by difficulty/complexity.

In total, there are really only 23 problems, but each problem has about 4 snippets. Naturally, the only reason this post even exists is to get people to move around my site. Since this article has a better bounce rate than average, I suppose it’s working!

Again, I’m not super proud of this article, but I do believe that it should be sitting at least second in the rankings. After all, it only gets worse from here.

Rank 4+: The Trend Continues

If you were to keep digging through the search results, you’d find that relevance rapidly deteriorates. For example, the fourth result is the link to a GitHub repo that literally ranks because of the following quote:

Short Python code snippets for all your development needs

Weirdly, their website is actually built for this sort of thingOpens in a new tab., but it’s not ranking.

Meanwhile, in 5th place, there’s another Medium article which pretty much looks like a copy job of the top ranked post.

After that, in 6th place, there appears to be a researcher’s website built with Google Sites. While the site isn’t very pretty, the content is decent (though lacks a bit of context). This should probably be further up the rank.

If we keep going, we’ll find the dreaded Stack Overflow in 7th place. Basically, this post requests short <25 line code snippets of which there are 22. Ironically, even the moderators hate this post, yet Google is still giving it preferential treatment.

After that, relevance really takes a nosedive. For instance, 8 and 10 feature absolutely no code snippets. Meanwhile, 9 is exclusively code snippets with no descriptions; there aren’t even comments.

Overall, I’d say I was fairly disappointed in the rankings here. In general, there are only like five relevant articles in the top 10, and perhaps even less that could be considered decent. Most of them were just code dumps with little to no explanation.

Comparing Performance

Once again, I thought it would be fun to compare the top three articles with mine in terms of performance:

GTMetrix Performance Comparison for Python Code Snippets Articles

In general, I think the sites this time around did a better job. Obviously, I would expect sites like Medium and GitHub to have decent performance to deal with their work loads. In this case, Medium only has such a long loading time because of those code snippets. At this point, Medium should probably support native code snippets. No wonder everyone switched to Dev.to.

As for the Python for Beginners content farm, I was actually pleasantly surprised by their performance. I’m not sure how you get a site to run that fast with so many pop ups and ads, but my hat’s off to them.

Overall, it looks like sites are performing a bit better for this keyword. In general, I’d say this isn’t the case—especially for content farms. That said, I was pleasantly surprised this time around.

Decent Content Is Rare

When I set out to do this experiment, I knew that two keywords wouldn’t be enough to prove my case. As a result, here’s a few tables for a couple more keywords. Keep in mind that word count is computed by highlighting all text and dropping it in a word count tool, so actual word counts may vary.

Website by RankWord CountDomain Rating (Ahrefs)
Career Karma105762
Guru 9952076
Linuxize66773
Dan Bader149052
Stack OverflowN/A92
Tutorials Point10783
The Renegade Coder127130
how to check if a file exists in python
Website by RankWord CountDomain Rating (Ahrefs)
Geeks for Geeks25579
Career Karma94762
After Nerd61621
Stack OverflowN/A92
STechies96044
The Renegade Coder93530
how to print on the same line in python

By no means are these data points enough to determine who should be where in the rankings, but I do find it troubling that certain sites can get ranked on domain ranking alone. In other words, because the site is “trusted” it’s more likely to rank regardless of content quality. That just seems wrong to me. After all, doesn’t that advantage older sites by default? Wouldn’t they typically have the largest backlink profiles?

That said, I suppose I can’t really complain. With a domain rating as low as mine, I must be doing something right to even be competing against some of these other domains. Seeing myself on the first page behind sites like Stack Overflow which has almost a billion links in its backlink profile is a bit like a David vs. Goliath story. I’m fortunate to even be able to share the same space.

Overall, I still think Google struggles to rank good content. After all, how are you still going to rank content farm junk like Geeks for Geeks in the top five—let alone FIRST PLACE?

That said, seeing these metrics written out, I have a much easier time making sense of why Google might rank something ahead of me. It doesn’t make me feel better, but I get it. In the next section, we’ll talk about why this doesn’t make me feel better.

What Does Bad Content Look Like?

Up to this point in the article, we mainly explored examples of what my competition tends to look like, but I figured we could take a moment to actually call out bad content. After all, it’s significantly more prominent than you’d think.

Geeks for Geeks

One of the most annoying sites to find in search results is Geeks for Geeks. If you haven’t had the displeasure of stumbling upon their site, here’s a quick snapshot of the homepage:

Geeks for Geeks Homepage

Now, this alone isn’t a bad looking website. In fact, I don’t mind the clean design. The problem is of course how much content they produce on a regular basis, and—more importantly—how bad the content actually is. For example, I invite you to take a look at the top ranking article for “how to print on the same line in python”:

Geeks for Geeks Print Without Newline Article

To me, this is a master class in how not to write programming content. First, the author assumes some sort of context (i.e. you’re coming from a C/C++ background). Surely, I do this a lot, but I often would rephrase it like this: “if you’re coming from a C/C++ background, you might be used to printing a certain way and wondering why it’s different in Python”. Or, something like that.

To make matters worse, the English here is very confusing. Basically, every sentence here has some sort of major grammatical issue which makes it hard to understand. For example, the second sentence reads like it’s going to flow into another sentence, but it just doesn’t: it’s an incomplete sentence.

Normally, I would never complain about grammar. After all, I make mistakes all the time. More importantly, I don’t want to discourage someone who maybe doesn’t speak English as their first language from writing great tutorials.

However, with a site as large as Geeks for Geeks, I would expect a certain level of excellence—especially with how often they steal the top spot on Google. With this many grammar errors, the article reads more like spam mail, and it makes me question the validity of the content.

Beyond grammar, there are just these incredibly peculiar portions of the post. For example, between the heading for the Python 2 solution and the actual solution, there are like twenty empty lines of space. Perhaps this is because I have an ad blocker, but the enormous amount of space is really distracting. And again, it makes the post look unedited.

To make matters worse, once the author finally does share the answers, they’re sort of just dumped without explanation. Sure, there are comments—too many perhaps—but they don’t really add value. In fact, one of the comments just says “array” above the definition of a list.

Once the two solutions are shared, no context is provided, and the article ends. That’s it. That’s the tutorial. On the plus side, the solutions work, but that’s about all this article has going for it. Well, that and about 20 ads if you disable your ad blocker.

Funnily enough, I’m not the only one who has complained about this. A lot of folks think this site peddles bad contentOpens in a new tab., yet it still finds its way to the top.

Tutorials Point

Another one of these content farms that seems to be flooding the search rankings is Tutorials Point. Here’s what that looks like:

Tutorials Point Website Homepage

In general, I have two big problems with their website. First, and this one’s just a me problem, but their online editor is bad. In the past, I had been forced to use it to test code snippets for my Sample Programs repo, but it’s among the worst out there. Seriously, use JDoodle, REPL.it, or literally anything else. Here’s my quick critique:

  • Limited language versions
  • No command line arguments
  • No file management (not necessary but others support it)
  • So very slow
  • No package management

Second, the article quality tends to be roughly the same as Geeks for Geeks. In general, I find Tutorials Point is more of a code dump than Geeks for Geeks, but they’re largely the same in terms of quality. Honestly, the best example I can give is the same one as earlier:

Tutorials Point How to Check if a List is Empty Article

Here, we have a tutorial that shows the user how to solve a particular problem. In general, there’s nothing wrong with the way this is written. For example, I only really see a handful grammatical issues, and they’re not really a big deal (i.e. missing articles).

That said, from a teaching perspective, this leaves a lot to be desired. For one, neither solution is really explained; they’re only posed (i.e. here is one solution, and here is another). Nowhere does this solution tell me why an empty list evaluates to false or what the hell len() does.

Likewise, I find it a bit troubling that these solutions are provided without commentary. After all, how is someone to know which solution they should use? Chances are good that the average person will opt for the second solution because it reads better, but PEP recommends the alternative.

Overall, this is more of a code dump than anything which trains folks to copy and paste code without really thinking about it. This tendency to share code in this way worries me about the industry.

What Does Good Content Look Like?

One thing I was worried about when I set out to write this article was the optics. In other words, how are people going to perceive me after they read this? Would they think I was just being whiny? Or, would they think I was being arrogant? How about both?

To combat this, I figured I’d take a moment to say that I’m aware there are amazing content creators out there. In fact, some of my biggest competitors are some of the best writers I’ve seen. What frustrates me is when I don’t see any of us at the top of Google.

Rant aside, let’s talk about some of these folks. In other words, who is making good content, and what does it look like?

Real Python

If you’ve ever had the pleasure of stumbling upon a Real Python article, you know what I’m talking about:

Real Python Homepage

From the amazing graphics to the insightful writing, I have a hard time complaining when they beat me out on Google.

Due to their large team of experts, it’s pretty hard to compete. After all, it looks like they pump out an article or video every other day, and they credit the entire team that worked on it. In other words, it seems like they always have at least 3 people on every piece of content, so you’re guaranteed to get the right information.

For a smaller writer like me, this can be frustrating. After all, they can generate content at a much faster rate than the average person. That said, I have a hard time complaining because it doesn’t look like they sacrifice quality. I’ve definitely used their work to fact check mine in the past. I have no doubt that people are getting value out of their work.

One thing I haven’t really paid much attention to is their video-based content. It doesn’t seem to be at that same level of quality as their writing—mostly screencasts without video. Although, I’m sure the content is just as valuable.

Dan Bader

Another creator that I’m a big fan of is Dan Bader:

Dan Bader Homepage

One thing worth mentioning is that I don’t know Dan, so I have no clue if he’s good or bad for the broader community. As someone who’s been trying to make the tech community better by preaching empathy and anti-gatekeeping sentiments for awhile, I feel like I need to preface that in case Dan ends up being another Uncle Bob Martin.

That said, I’ve stumbled upon a lot of Dan’s work while doing research for my own articles, and I have to hand it to him: he’s a great writer. Also, like Real Python, I think the graphics for each article are great. They’re consistent enough that it establishes a brand for him, and they’re just nice to look at. Likewise, his site is incredibly clean: ads are minimal, and content is center stage.

Also, I’m a big fan of Dan because he’s sort of what I aspire to be. He seems to be in complete control of his life as he’s an independent software developer and consultant now. Granted, I think I’d prefer being a content creator full time, but I would definitely rather be in his position right now.

Overall, I’m a big fan of Dan’s, and I think he writes great content. Not all of it is as developed as I would like, but he’s definitely not your typical content farm.

What Can We Do?

As someone who likes to write a lot of education content, I find it really frustrating to dig through search results and find mostly subpar code dumps from content farms. Unfortunately, the scarier part is that this is the norm everywhere. For instance, look at YouTube and think about how many top channels are just content farms. I know Jarvis talks about this sort of thing all the time:

It’s very frustrating to me to be competing with these organizations that are actively gaming the algorithm for those sweet, sweet ad bucks. And frankly, I don’t know what we can do about it.

Part of me thinks the best way to get around this issue is to change the way we interact with content culturally. In other words, if we treated content creators as people who work hard to provide something value, we’d probably have a lot less garbage to sift through.

Alternatively, we could push back on monopolies like Google who control the way we interact with the internet. After all, they are in complete control of the two most influential algorithms on the market: Google Search and YouTube Search.

Unfortunately, they’re just so big that I don’t see any meaningful change happening soon. Sure, I get a pretty decent share of views from Bing and DuckDuckGo these days, but I don’t really feel like the culture of search is changing in a radical enough way. After all, Google is a verb.

So, what do we do? I’d be interested in hearing what you have to say.

In the meantime, help my grow my domain rating by sharing this post or heading over to my list of ways to grow the site. In the meantime, check out some of the ways I’ve tried improving my site over the last few years:

Otherwise, thanks for sticking around, and take care!


Hey, it’s Jeremy from the year 2024. I recently wrote a follow up article to this piece that you might enjoy. It covers the same articles four years later. The rankings are much worse, actually, and none of the problems I mentioned here have really gone away.

Jeremy Grifski

Jeremy grew up in a small town where he enjoyed playing soccer and video games, practicing taekwondo, and trading Pokémon cards. Once out of the nest, he pursued a Bachelors in Computer Engineering with a minor in Game Design. After college, he spent about two years writing software for a major engineering company. Then, he earned a master's in Computer Science and Engineering. Today, he pursues a PhD in Engineering Education in order to ultimately land a teaching gig. In his spare time, Jeremy enjoys spending time with his wife and kid, playing Overwatch 2, Lethal Company, and Baldur's Gate 3, reading manga, watching Penguins hockey, and traveling the world.

Recent Blog Posts