As The Renegade Coder heads into its 3rd birthday, I figured I’d wrap up 2019 with a little review. In it, you’ll find everything from my favorite articles to my traffic metrics. Come along!
Table of Contents
Accomplishments in 2019
Unlike last year, nothing major happened for me this year. Sure, I complained a lot, but I didn’t have any major developments. That said, I’m happy to share a few major things that happened to me:
- Failed my qualifying exam
- Started the process to switch departments
- Made a portfolio site
- Started a YouTube channel
- Created a niche site
- Hit 100,000 page views
- Watched a lot of anime
- Bought a Nintendo Switch
- Raised a succulent
- Played a lot of Overwatch
- Taught three courses
- Started a Patreon page
Beyond all that, I was just living life. If you’re interested in learning more about my year, check out my blog. I ranted quite a bit!
Favorite Creations of 2019
In 2019, I started niching down to focus on my most popular content, Python articles. At the same time however, I also broadened to scope of the website to include teaching content. In addition, I started a YouTube channel. As a result, I figured this year I’d share my favorite creations—one for each month:
- January 2019: Working with Challenging College Students
- Coming into my first semester of teaching, I didn’t think I would deal with any abusive behaviors. Unfortunately, I did.
- February 2019: 25 Personal Achievements by Age 25
- As usual, this was my annual birthday piece.
- March 2019: Rock Paper Scissors Using Modular Arithmetic
- March had a lot of great options, but I had to go with this one. There are very few articles that have such a great backstory.
- April 2019: 100,000 Lifetime Views, 1,000 Daily Views, and 250 Articles
- In April, I hit several huge milestones with the site.
- May 2019: How to Write a List Comprehension in Python: Modifying and Filtering
- Not too long ago, I wrote about my favorite Python feature.
- June 2019: The Difference Between Statements and Expressions
- This little nuance helped me think about programming at a deeper level.
- July 2019: What is a Programming Language?
- You know how much I love challenging elitism and gatekeeping.
- August 2019: Yet Another Way to Learn Recursion
- This is one of those articles I wrote because the rationale reshaped how I thought about a common subject.
- September 2019: I Started a YouTube Channel
- Late this year, I kicked off my own YouTube channel!
- October 2019: I Failed My Qualifying Exam
- After spending an entire summer studying for my qualifying exam, I failed it. Not sure this is one of my favorite posts, but I think it’s an important one.
- November 2019: The Controversy Behind The Walrus Operator in Python
- In the latest version of Python, there’s a new operator that stirred up quite the controversy.
- December 2019: How to Improve Coding Comprehension Using Peer Instruction
- One of my favorite teaching techniques got its own article!
Also, I’d be happy to share my favorite YouTube videos, but I only made eight! If you’d like to see that collection grow, subscribe to my channel. Otherwise, feel free to share some of your favorites of the past year with me in the comments.
Projects in 2019
This year, I worked on a lot of fun projects. Since I have plenty to write about, I’ll share all my updates in the subsections below.
Sample Programs in Every Language
Unlike in previous years, the bulk of my contribution to this project came during Hacktoberfest. During that time, I merged A LOT of pull requests for code snippets, articles, and even some slick feature updates.
One of my favorite features that came out of this year is the addition of Glotter, a Docker-based blackbox testing library. Essentially, it allows us to pull up Docker images for each language and test all our code using a standard set of Python tests. Now, several of our languages and projects are fully tested. Read more about that here.
In addition, we hit several milestones with this project this year. For example, 100 of the code snippets/languages are now documented. In addition, we hit 25 projects. This ain’t no Hello World in Every Language anymore.
Overall, I’m excited to see this project grow, but I don’t plan to focus on it too much. As always, I’m sure Hacktoberfest will resurrect it again this year.
CSE 5521: Artificial Intelligence I
Later in the semester, we had to write the minimax and alpha-beta pruning algorithms for tic-tac-toe. If done correctly, it’s impossible to beat the computer!
Finally, we had to write a few linear and nonlinear regression algorithms. For example, we had to implement linear least squares and gradient descent.
Overall, I actually enjoyed the course. For once, I understood some AI. Unfortunately, my education classes were a lot more fun, so I had a hard time focusing on as the semester went on. Hopefully, I can carry this knowledge over into AI II.
Recently, I published an article all about a tool I put together with a partner for a data visualization class. The goal of the tool was to generate a visualization of MIDI files, a type of music file.
While the tool is fairly nice looking, it doesn’t do a whole lot. Basically, it just plots the raw data from the MIDI files, so you can compare multiple files simultaneously. That said, I had a lot of fun making it, and I think it’s a fun tool for any tech folks also interested in music and data visualization.
If you’d like to learn more about the tool, I wrote a pretty lengthy article about it late last year.
Outside of code, I also worked on a few side projects this year. For instance, I started a YouTube channel which now features 8 videos. In addition, I created a portfolio site. Not sure how it’ll help me going forward, but it at least makes me look more legitimate. Finally, I started a niche site called Trill Trombone which features 18 articles.
At the moment, I don’t have much to report from these projects, but I am excited to see them grow in 2020. Hopefully, I’ll have something exciting to share by this time next year.
Metrics: 2017 – 2019
Now that I’m nearly three years into The Renegade Coder, I figured I’d start sharing some metrics in aggregate. In the following subsections, we’ll take a look at various statistics including page views, top posts, top traffic sources, and revenue. Without further ado, let’s dive in!
Months and Years
Below is a table that shows my page views for each month since I started The Renegade Coder:
When I set out to create this website, I anticipated neverending growth. After all, even in the worst case, every post should get at least one view a year. In other words, more content means more viewership.
Unfortunately, that’s not really the case. As you can see, I had a very, very good year in terms of growth. In fact, my page views grew six-fold. However, that viewership peaked in May and has been on a major decline since then. As of December, I had less views than I did the previous December.
All-in-all, I’m not really concerned about this dip in views. As we’ll see later, I basically had a one-hit-wonder which finally stopped bringing in organic traffic. Meanwhile, several other posts were growing, so I feel like my views will be more diverse in the coming year. That said, it’s going to be tough to hit 300,000 with my current rate. We’ll see what we can do!
Also, it’s worth noting that I’ve been doing a bit of syndication. For instance, I often repost my coding related articles to dev.to with the canonical URL, so views there aren’t counted here. In addition, I’ve worked out a deal with Java Code Geeks where my reposted their regularly. Perhaps that’s hurting my view counts. Who knows!
Averages Per Day
If you’re not a fan of raw data, here’s the same chart but with daily averages:
As you can see, we’re on a downward trend at the moment. My current plan for growth over the next few months is to get back to what got me views in the first place: Python content. Right now, I have four Python articles planned for January. Chances are I’ll have seven by the end of this month.
Then, I plan to start cranking out YouTube videos for all the Python content. If that becomes my brand, so be it! I really enjoy writing and speaking about the language.
Top Posts and Pages
In 2019, one of my articles climbed to the top of Google where it saw outrageous success. In the span of a year, How to Check if a File Exists in Python amassed nearly 150,000 views. That said, it was nice to have a few other articles pulling their weight as well.
|#1||Home (2,908 views)||How to Check if a File Exists in Python (27,245 views)||How to Check if a File Exists in Python (148,399 views)|
|#2||Archives (2,093 views)||How to Sum Elements of Two Lists in Python (5,402 views)||How to Check if a List is Empty in Python (65,644 views)|
|#3||About (430 views)||How to Convert Two Lists into a Dictionary in Python (2,697 views)||How to Sum Elements of Two Lists in Python (14,047 views)|
|#4||World Domination Checklist (282 views)||How to Invert a Dictionary in Python (1,944 views)||How to Invert a Dictionary in Python (13,326 views)|
|#5||Computer Science Email Tutoring Now Offered (197 views)||Archives (1,525 views)||How to Convert Two Lists Into a Dictionary in Python (10,069 views)|
As mentioned already, Python seems to be working out for me. As a result, I’m going to become a fire hose for Python content over the next few months. If I see any sort of success like this, I’ll be content!
Top Sources of Traffic
In 2019, I was driven almost entirely by traffic from Google. If anyone has any tips for me to diversify my traffic, let me know!
|#1||Google (2,271 views)||Google (38,925 views)||Google (259K views)|
|#2||Facebook (418 views)||GitHub (809 views)||DuckDuckGo (4,809 views)|
|#3||Twitter (64 views)||Bing (451 views)||Bing (4,775 views)|
|#4||LinkedIn (30 views)||Google+ (266 views)||WordPress Android App (1,289 views)|
|#5||StumbleUpon (20 views)||WordPress Reader (247 views)||GitHub (967 views)|
|#6||Yahoo (14 views)||Twitter (246 views)||Yahoo Search (777 views)|
|#7||Bing (12 views)||DuckDuckGo (215 views)||Ecosia (522 views)|
|#8||GitHub (9 views)||Facebook (193 views)||Twitter (289 views)|
|#9||WordPress Reader (8 views)||Instagram (86 views)||Quant (160 views)|
|#10||DuckDuckGo (3 views)||Yahoo (85 views)||Yandex (144 views)|
One thing I found interesting is how many developers use DuckDuckGo. Somehow, it managed to come in at second in terms of traffic sources with nearly 5,000 page views. That beats nearly everything but Google from the previous year. Also, I’m glad so many people want to save the planet with Ecosia.
Once again, I took a look at where my traffic was coming from in terms of geography. According to the report, I get an overwhelming amount of traffic from my home country. That said, it’s only about a third of the total traffic for the year. In other words, two thirds of my traffic comes from other places! How cool is that?
|#1||United States of America (4,037 views)||United States of America (20,949 views)||United States of America (115,649 views)|
|#2||South Korea (578 views)||India (6,230 views)||India (33,496 views)|
|#3||France (542 views)||United Kingdom (2,581 views)||United Kingdom (14,206 views)|
|#4||Russia (221 views)||Canada (1,716 views)||Germany (13,664 views)|
|#5||Germany (220 views)||Germany (1,517 views)||Canada (11,003 views)|
|#6||Philippines (189 views)||France (1,066 views)||France (8,636 views)|
|#7||Canada (183 views)||Australia (807 views)||Brazil (6,097 views)|
|#8||India (173 views)||Israel (718 views)||Australia (5,445 views)|
|#9||Japan (150 views)||Brazil (685 views)||Netherlands (4,847 views)|
|#10||Cambodia (145 views)||Netherlands (611 views)||Spain (4,237 views)|
Since 2018, it looks like I’ve lost my Israeli viewership but picked up some Spanish. That’s cool! I’ll be curious to see how this shakes out next year.
One metric that I thought would be fun to share is how long my content is on average.
|Year||Total Posts||Total Words||Average Words Per post|
As you can see, 2019 was the year for long form content. In other words, I was trying to shoot for 1000+ word articles, and I overshot that goal by 60% on average. Although, I’m not really surprise; this review alone is enormous.
Also, notice how this chart contains 2016. While The Renegade Coder didn’t exist until 2017, I actually transferred some content from a previous WordPress blog. You can find out the details in my first post.
As you may recall, last year my ad revenue was growing rapidly. However, in the summer, my page views started to drop. Without page views, you can’t really generate ad revenue, so I decided to investigate.
Obviously, I couldn’t be sure why I was losing Google ranking, so I decided to take an educated guess: perhaps my site was just too slow. As a result, I decided to perform an overhaul which resulted in a trashing of the ads. In other words, I no longer generate ad revenue. That’s why you’ll see a dip in revenue below:
Unfortunately, WordAds doesn’t pay out until you’ve made $100, and have $72 holding on. Perhaps if I get enough page views again, I’ll turn these on briefly to collect my check.
At any rate, I’ve found other ways to make an income. For instance, I started a Patreon again. In addition, I created yet another shop. Unfortunately, one has been quite a bit more successful than the other. Here are my earnings from Patreon since July:
If you recall, I also had a membership site which I converted to Patreon. Here’s the income from that:
Finally, I made another $4.55 from my store.
If you add all this up, you’ll find that I made about $297.26 in 2019—at least according to QuickBooks. For someone operating a blog as a hobby, that’s not bad. For someone who puts as much time into this as I do, that’s terrible. After all, we’re just looking at revenue. I spent about $545 in 2019 on website related costs like hosting and plugins, so I ended up a net negative.
A Look Into 2020
At this point, I haven’t really made any plans for 2020. Right now, grad school is kicking my ass, and I’ve been on the verge of complete burnout for months now. As a result, I’m tempted to take a little break. That said, I’m afraid that a break could mean stalling out the growth of my project. Then, I’ll never be free!
As far as I know, I’m planning to focus on writing Python articles for the next few months. In addition, I thought it would be fun to start writing Git related content. After all, I think version control is extremely important, and I forget that people don’t know about it.
Finally, I want to hit 25 YouTube videos by the end of the year. Right now, I have 8, so that means I’ll need to make 17 more to hit my target. That’s a pace of just over 1 a month which I think is attainable. However, I have to remember that I publish two articles a week, so it might still be a lofty goal. It all depends on what my summer looks like.
At any rate, that’s all I’ve got! If you liked this review, check out last year’s review. It basically covers all the same information here, but it’s interesting to see where my head was at this time last year. Otherwise, thanks for stopping by! Here’s to another year of grinding.
Today, I'm whipping out some philosophy jargon to characterize some of the problems I see in the tech education community.
Have you ever wondered how Python's power function works internally? Well, I took a stab at it!