What It Feels Like to Be a Toddler Again: Learning a Language | The Renegade Coder https://therenegadecoder.com Code First. Ask Questions Later. Sat, 07 Mar 2026 20:46:47 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://therenegadecoder.com/wp-content/uploads/2017/05/the-renegade-coder-icon-cropped-150x150.png What It Feels Like to Be a Toddler Again: Learning a Language | The Renegade Coder https://therenegadecoder.com 32 32 What It Feels Like to Be a Toddler Again: Learning a Language https://therenegadecoder.com/blog/what-it-feels-like-to-be-a-toddler-again-learning-a-language/ Fri, 13 Mar 2026 14:00:00 +0000 https://therenegadecoder.com/?p=48720 A screenshot of my Obsidian graph with the title of the article overlaid.Welcome to my new Mastering Japanese series, where I talk about what it's like learning a language while balancing a full time job and raising kids.]]> A screenshot of my Obsidian graph with the title of the article overlaid.

Welcome to my new Mastering Japanese series, where I talk about what it’s like learning a language while balancing a full time job and raising kids. Maybe this isn’t the most relatable article to the average person, but I thought it would be cool to share my story.

Table of Contents

Crazy Days

Recently, I was thinking about how much time each week I dedicate to studying Japanese, and I figured it might be worth it’s own series to document my journey. I did a similar thing with my PhD, and I think learning Japanese is a similarly challenging journey.

You might find it somewhat absurd to talk about language learning in the same difficulty as graduate school, but I don’t think they’re that much different. Perhaps if I had endless amounts of time to dedicate to Japanese, it wouldn’t be so hard. Yet, I’m balancing language learning with a full time job and childcare duties.

I know I’ve mentioned it several times on this site, but my day-to-day is a slog. Currently, I spend each weekday morning taking care of my daughter. Later this year, that duty will hopefully double: I’ll have a toddler and a newborn. In other words, when I’m home, I’ll have my hands full.

Then, I usually head out for work around noon, and finish around 5 PM. During that time, I teach three classes and either hold office hours or complete my one-on-one Japanese assessments. On some days, I stay a bit later. For example, I’ve been attending Oshaberikai, which is a Japanese conversation club on campus that takes place once a week in the evening.

When I get home, I get about two more hours with my kid before she goes to bed. We usually eat dinner, and then we play until bedtime. After that, I try spend the rest of the time in the evening to get work done. Unfortunately, that means my wife and I really only spend time together on the weekends. Otherwise, we’re just trying to survive.

Learning a New Language

As is probably clear at this point, I’m trying to learn Japanese. I was somewhat passively learning the language for a couple of years through Duolingo. Then, I went to Japan last year, and I decided that wasn’t going to cut it.

As a result, I started taking a course at my university called Level One Japanese 1: 1101. It’s a four credit course that I was forced to spread out over two semesters. The reason? It’s just an incredibly challenging course.

I’m not sure how the classroom track works, but in the individualized track, there are 49 lessons for the first class. Most of the lessons are split into two parts: performance and application.

The performance portion requires you to perform a script. Basically, you memorize a dialogue and role play as each character. I find this surprisingly challenging. It takes me probably close to an hour to memorize a script of only a handful of lines, and I usually freeze in the moment. Here’s the script I had this past week:

サーシャ:これ、私が決めていいですか?
神田:もちろん、そうしてください。なるべく早くお願いします。
サーシャ:わかりました。でも今すぐじゃなくてもいいですか?
神田:全然平気です。あすでもあさってでも構いませんよ。
サーシャ:了解です!
神田:よろしく。

Then, the application portion varies a lot. Sometimes you just redo the script with different contexts. For example, with the script above, I think the context changed from deciding a time to deciding what drinks to buy. Other times, you prove you did the activities in the activity book by doing a few exercises together.

Funnily enough, the instructors recommend that you spend 90 minutes preparing for each 15-minute session, but I easily do more than that. Every morning, I do a round of kanji practice on Duolingo, though I might move to WaniKani. Then, I run through my Anki cards for the day. These are just flashcards built from all of the vocab from the course, but they use spaced repetition for better learning. After that, I usually work through the script and its associated textbook, or I might work through the activity book.

Often, even this feels inadequate. Sometimes I ask my instructors questions, and they act like I am an idiot (which fair, I guess). That does feel a bit demoralizing, and going to the conversation club often makes me feel less confident in my skills. But, I don’t quit easily.

Watching an Actual Toddler Learn Language

One of the things that makes me feel somewhat good about my language learning progress is that I can watch basically the same progress happening in my toddler. Right now, she’s just over two years old, and she still can’t quite communicate much. Sure, she can ask for food or her favorite toys, but she just states the word “foodee” for food, “Tendo” for Nintendo, “teebee” for TV, “Bluey” for, uh, Bluey, and “opee” for open.

Before that, we relied almost purely on sign language. She could sign “help” and “please,” which she eventually started saying. Now, she understands the concept of a sentence, but she kind of just uses random sounds before tagging on the thing she wants (i.e., buhawabagobluey). Often, I won’t know what she wants, so I’ll just say, “can you show me?” Then, she walk me to whatever she wants.

At a little past two, she has a pretty good vocabulary, but she has virtually no grammar. She might string two words together, but that’s about it. For instance, when she wants to go outside, she’ll say “coat shoes.” Or because she sees me working a lot, she’ll ask for her toy version of her “lapt pone” (i.e. laptop and phone).

Perhaps my favorite language struggle she has right now is around the word “you.” When she sees a picture of herself on my phone, she’ll say, “that’s you,” because that’s what I always say. Then I’ll say, “no, that’s not me, that’s you.” This has caused so much confusion for her that I’ll say, “what’s your name?,” and she’ll point at me and say, “daddy!” It turns out 1st, 2nd, and 3rd person pronouns aren’t exactly obvious to a toddler, and I can see myself making similar mistakes in Japanese with the so-ko-a-do series.

Watching this play out over the last two years makes me feel pretty good about my language progress. I, too, know some vocabulary. I, too, struggle to connect that vocabulary into sentences. Of course, she has to learn all of language from nothing. In some ways, that’s a huge benefit to her. She doesn’t have to unlearn anything. On the other hand, it’s much harder because she doesn’t have any frame of reference.

It’s funny because I often tell students that the hardest programming language to learn is the second one because you have to break out of what you already know. This is particularly hard if your second language is nothing like your first (e.g., Java and Haskell). I think I’m feeling a similar gap between Japanese and English, one that makes me feel suddenly very confident in my Duolingo Spanish skills.

Somewhat of a side note, but I recently heard that some people believe that you can be a better author if you don’t read books (please watch the linked video). I think the idea here is that reading could taint your originality, but it’s quite absurd, right? If you do not read, you can’t learn about writing. You would have to invent writing, which again is not only absurd but also incredibly arrogant. Every author (or musician, artist, etc.) will borrow from others when they first start, but that is only so they can practice their craft and develop their voice. Originality comes from contextualizing the self among the many. You cannot do that alone.

I bring that up now because I don’t want the previous paragraphs to make it seem like I’m claiming that your first language (natural or otherwise) is somehow easier because you are more ignorant. All I’m saying is that the further away that second language is from your first, the harder it’s going to be to rely on your prior knowledge. In some cases, you’re going to have to battle some misconceptions.

Being Mindblown by Japanese

Okay, so speaking of how different languages operate, let me share with you something I learned about Japanese that genuinely blew my mind. There are a lot of things I’ve learned about Japanese so far that are cool, weird, or interesting. For instance, a lot of folks point to counters in Japanese being a weird feature (i.e., there is a different word for counting different objects, such as thin objects, rod-like objects, and bound objects like books). I didn’t find that too weird, personally.

However, there was a moment when I was reading my textbook, and I started to sweat a little bit. It turns out Japanese is famous for its morphology (i.e., how words change shape). You might be used to this in a language like Spanish, where verbs have different conjugations for tense and point-of-view.

Japanese takes this to an almost absurd level. Up to the moment where my mind was blown, I had learned about two basic conjugations: past and non-past. At the same time, I learned about affirmative and negative conjugations (though, I think a lot resources just call these inflections; I’m not a linguist). Then, I learned about formal and informal conjugations. As a result, you can have the same word in like every combination of the splits described above:

  • 食べます: formal affirmative non-past of “to eat”
  • 食べません: formal negative non-past of “to eat”
  • 食べない: informal negative non-past of “to eat”
  • 食べました: formal affirmative past of “to eat”
  • 食べなかった: informal negative past of “to eat”
  • 食べませんでした: formal negative past of “to eat”

There are probably more combinations, but I haven’t been taught them. I guess Jisho has two more inflections for past and non-past affirmative. Anyway, that’s not what’s mindblowing. What’s mindblowing is that you can tack on adjectives to the stems of verbs to get new meanings. For example, the verb “to understand” is 分かります. You can remove ます and add the adjective for “easy” (やすい) to get “easy to understand”: 分かりやすい.

I mean it when I said this was mindblowing. I can understand modifying a verb to get new POVs or tenses, but this started to worry me. If this is possible, what else can we do to words? This amount of complexity made me suddenly realize I don’t really understand the language at all. I started to feel like maybe listening might be even harder than I thought.

Demonstrating Mastery

While I’ve mentioned a lot of different aspects of my study, one thing that I’ve been really excited about is Obsidian. It’s basically just a note-taking app, but it combines some of my favorite things. For example, you all know I love markdown—so much so that I built an entire Python API to generate markdown. Well, Obsidian uses markdown for note-taking.

At the same time, Obsidian helps you build out a concept map (i.e., a way of showing how your knowledge is connected). Basically, whenever I’m taking notes, I try to think about how the new concept is related to things I already know. Then, I link those two pages together, which creates a visual link in the concept map.

Something I thought would be cool would be to share my concept map any time I write one of these mastery articles. Hopefully, this will help convince me that I am making progress, even when it doesn’t feel like it. So, to kick that off, here’s my first concept map:

Right now, I’m working through Act 5 Scene 2, so that will get linked in shortly. In fact, all the remaining Act 5 scenes will be linked in by the end of the semester. Then, this summer I’ll be doing some self-study. We’ll see how that changes the graph!

頑張ります

All of this is to say that learning Japanese over these past two semesters has been really challenging. I am officially three credits into the journey, and I expect to finish the fourth by the time spring semester ends. I plan to take another four credits next semester (来学期), and four more credits next spring. Then, if I’m feeling good, I might go all in and take nine credits over the summer in 2027 through their “intensive” track. If not, I’ll keep my four-credit pace for the next couple of years. Maybe by the end of the decade, I’ll have some reasonable speaking skills.

Also, feel free to ignore where I’m sneaking in Japanese vocabulary. Ultimately, these articles are just an extended form of my studies (勉強します), so it feels good when I can relate what I’m writing (書きます) in English (英語) to words I already know in Japanese (日本語). I’m sure I’ll laugh at this later when the writing is completely unnatural. I went through a similar phase when I was learning Python: I wrote every program like it was Java. But, you have to start somewhere.

The last thing I’ll sneak in here is that while this is the first time I’m introducing the Mastering Japanese series, I think the spiritual start of this series came when I wrote I’m Learning a Language, and I’m Tired. So, I’ve set that to be the first article in the series. This will be number two!

Anyway, I hope this was interesting to you! If so, here are some articles that are Japan/language adjacent:

Likewise, you can support the journey by checking out my list of ways to grow the site. Take care!

]]>
Things I Don’t Want AI To Help Me With https://therenegadecoder.com/blog/things-i-dont-want-ai-to-help-me-with/ Fri, 06 Mar 2026 15:00:00 +0000 https://therenegadecoder.com/?p=48674 A photo of lab equipment with the title of the article overlaid.To view this content, you must be a member of Jeremy's Patreon at $5 or more - Click "Read more" to unlock this content at the source]]> A photo of lab equipment with the title of the article overlaid.
To view this content, you must be a member of Jeremy's Patreon at $5 or more
- Click "Read more" to unlock this content at the source
]]>
Why I Rebel Against the Use of Generative AI https://therenegadecoder.com/blog/why-i-rebel-against-the-use-of-generative-ai/ Sat, 28 Feb 2026 04:03:02 +0000 https://therenegadecoder.com/?p=48479 A photo of a sunset over some ocean waves with the title of the article overlaid.Today, I have a short and sweet piece that piggybacks off a wonderful talk I saw from Brandon Sanderson. It helped me clarify the core reason why I rebel against]]> A photo of a sunset over some ocean waves with the title of the article overlaid.

Today, I have a short and sweet piece that piggybacks off a wonderful talk I saw from Brandon Sanderson. It helped me clarify the core reason why I rebel against the use of generative AI.

Table of Contents

Brandon Sanderson on AI Art

I saw this wonderful talk by Brandon Sanderson titled, “We Are The Art,” where he grapples with his concern around being “wrong” about AI art. To setup this dynamic, Brandon uses the example of Roger Ebert, who famously claimed that video games are not art. A take that seems horrendous in hindsight.

Brandon’s fear seems to be that, by rebelling against AI art, he is falling for the same trap as “Mr. Ebert.” As a result, he spends much of the early part of the talk dismantling common arguments. For example, he claims that he would still rebel against AI art even if there weren’t any environmental impacts. He also claims that he would rebel against AI art even if the models weren’t trained on art stolen from artists.

Brandon then transitions to contrasting Data from Star Trek with LLMs. Specifically, he talks about how Data pursues the idea of what it means to be a human by developing art skills. In other words, part of Brandon’s disdain for AI art is that it bypasses the process in favor of the product (i.e., it’s about the journey, not the destination).

Brandon brings this point home by talking about his own writing journey—how his early books sucked and how current LLMs could do a better job. Here, he makes himself vulnerable to prove a point. He didn’t write those books to make a bunch of money. He wrote them for the “satisfaction of having written a novel, feeling the accomplishment, and learning how to do it.”

Brandon then shares a ton of profound ideas (at least I think so). For example, he boils down the main reason that he rebels against AI to the idea that it robs us of the chance to grow. He then hits his major point which is the idea that books, photos, and video games are only part of the art (i.e., the proof of art happening); you are also made into art as you change through the process of creating it. To Brandon, art changes us, and machines can’t be changed by the products they create.

Finally, he rounds out the talk on a positive note by arguing that we don’t have to lose to AI. By his logic, because we get to define what art is as a society, we can simply reject AI art.

Your Brain Is All You Have

For a while, I’ve had the same concern as Brandon. Am I simply hating on generative AI because it’s new? Am I just the old man yelling at clouds? Seriously, it’s a concern I have because so many people see generative AI as some revolutionary technology, and I simply do not get it.

But the more I think about, the more I feel justified in my position. After all, as an educator, how can I possibly support a technology that allows students to bypass the learning process? They will never grow or develop if they cannot struggle with the learning process. It’s the exact same argument Brandon is making: there is simply no shortcut to growth.

Yet, as Brandon argues, I think it’s even deeper than that. It’s a question of identity. At what point does your use of generative AI strip you of your individuality and humanity? I don’t mean that in some self-righteous way. I am genuinely concerned that this kind of technology regresses everyone who uses it to the mean.

If you find this idea somewhat absurd, consider my mother. She suffered from small cell lung cancer for a couple of years before passing. I remember there was a moment when the cancer had spread to her brain, and the doctors had recommended targeted radiation. As her son, I wanted her to get the treatment, but she was hesitant. When I asked her about it, she said she didn’t want to risk damaging her brain because “that’s all she had.”

I think it’s obvious what she means. If there’s a possibility that the radiation would have allowed her to live longer but altered her identity, would it have been worth it? I tend to agree with my mom. I would probably rather die.

Yeah, generative AI use is not as bad as dementia or a stroke, but I do think it robs you of your potential. If you’re using it to replace all of the things that make you who you are, then I see that as somewhat depressing. Sure, live your life or whatever, but are you truly living?

There Is Still Hope

I have spent so much time in this series talking about all the things I hate about generative AI. I’ve talked about its negative effects on the future of software development. I’ve talked about how the necessity for infinite training data will result in a mass surveillance campaign. I’ve talked about how even using LLMs for summaries rots your brain. Hell, I’ve talked about how AI having a monopoly on knowledge leads to isolation. I’ve even talked about how AI has made it more soul-crushing to be an educator. I’m a certified AI hater.

Yet at the same time, I feel a sense of hope with videos like Brandon’s, Angela’s, and Internet of Bugs’. I also get a sense of hope around my students, who will ask me to do things like help them disable Copilot in their VS Code.

In fact, I’ve had plenty of older students rant to me about all their peers using tools like Claude to code. I just had one of those conversations last week where a group of graders were annoyed with students using generative AI in their very first programming course. One of them even said, “like, did you even try?” Clearly, they can see the short-circuiting of the learning process in real time.

Though, I did have the opposite conversation with a previous student recently. She was ranting to me how none of her classes will let her use AI. She had apparently worked an internship over the summer, and she said that everyone around her had ChatGPT open all day. It took everything I could not to give her the classic parental lecture, “if all your friends jumped off a bridge, would you?”

Of course, I will always hold out hope. Maybe it’s my inherent stubbornness, but I simply refuse to accept a reality where we’ve completely turned our humanity over to the machines. While I still someday dream of a world where soul-crushing jobs are replaced by bots, I would love to continue to live in a world where we can express our humanity through things like craftsmanship, writing, music, and sports.


Once again, thanks for reading. I’ve been straying away from talking about generative AI as I’ve just found my day-to-day to be too busy to care, but it continues to creep in every day.

Off the top of my head, I’m obviously annoyed by the cost of computer hardware now, which is driven by the rapid construction of data centers. Also, I recently experienced my first automated drive-thru, which drove my wife actually insane when she said “no thank you” before the Wendy’s bot logged the item anyway (an experience that seems to be happening to others).

Anyway, I would normally share some links below here, but I spammed so many in the article that you can just scroll up. Of course, you can still check out my list of ways to grow the site. Otherwise, take care!

]]>
Buying a House Sucks https://therenegadecoder.com/blog/buying-a-house-sucks/ Fri, 20 Feb 2026 15:00:00 +0000 https://therenegadecoder.com/?p=48573 A top down photo of a suburb with the title of the article overlaid.Welcome to 2026, where cyberpsychosis is a real thing you can get from chatbots, PC hardware is unaffordable, and the housing market is a nightmare. Let’s talk about my personal]]> A top down photo of a suburb with the title of the article overlaid.

Welcome to 2026, where cyberpsychosis is a real thing you can get from chatbots, PC hardware is unaffordable, and the housing market is a nightmare. Let’s talk about my personal experience with trying to buy a house.

Table of Contents

The Desire to Buy a Home

Once again, I’m breaking from my usual mold of ranting about AI to talk about something that has been frustrating me for the better part of the new year: house buying.

I just turned 32 earlier this month, and I have a two-year-old with another on the way later this year. Right now, we’re paying about $1,700 a month to rent a house in a suburb in the city. In other words, we do not own a home, and we have never owned a home.

Obviously, we would like to own a home at some point. The house we’re renting right now isn’t quite big enough for the family we want to have, so we figured 2026 would be the year we finally go out to buy one.

My rant about home buying hasn’t really started yet, but you probably already get the gist: houses are comically expensive. In the area I live, a 3-4 bedroom house used to go for something like <$200,000 when we first moved here in 2018. Those same houses have doubled in price in just eight years, which is apparently a growth rate 2.4 times faster than inflation.

So yeah, I was already not very excited to try to buy a home on price alone, but there is so, so much more frustration I want to share.

Housing Options

First, I’ve never been the type of person that wanted to live in a suburb. I grew up rural with a massive yard, and an old rundown house. My closest “neighbors” were football fields away.

Now, as nice and quiet as rural living is, there are some major problems. For starters, you have access to nothing. You might have a few chain restaurants and some local bars, but there is nothing to do. Likewise, there are no jobs, so you’re probably making very little money or traveling long distances for work. Neither of which are ideal.

So, your primary option is to own nothing and rent high density housing (i.e., apartments). I did this for the last decade, and it’s fine. I don’t mind living in an apartment, especially if I can live close to amenities. But, I also don’t love paying rent. It really does feel like throwing your money away. Also, with the way apartments are built with paper, I’m not trying to subject my neighbors to the screams of a baby for hours on end.

Therefore, the only real choice is to move to the suburbs. That’s just how this works in the US because we have horrible city planning. You are doomed to move your family out to the suburbs and drive into work with rush hour every day until you retire.

Choosing a Suburb

Assuming suburbs are the only way to raise a family in the city, there’s another problem: choosing the right suburb. Where I live, there are dozens of suburbs to choose, but that choice requires you to reckon with your personal values.

For us, we want to send our kids to as good of a school district as possible. Of course, so does every parent, so the most desirable neighborhoods are prohibitively expensive. For example, if I search up the top school districts in my city, the best neighborhood has houses with an average price of $545,184. A price like that is completely out of reach on my 5-figure salary and would still be unaffordable even if I made twice as much.

To get a feel for how absurd this is, here are the average house prices for the top 20 or so school districts in the area:

  1. $545,184
  2. $600,168
  3. $496,376
  4. $549,200
  5. $603,932
  6. $527,865
  7. $457,606
  8. $432,890
  9. $361,602
  10. $372,390
  11. $409,103
  12. $402,433
  13. $530,070
  14. $474,492
  15. $197,305
  16. $414,049
  17. $422,429
  18. $348,794
  19. $396,751
  20. $255,049
  21. $373,668

If you don’t have a feel for how much money this is, the absolute maximum we’re willing to spend is $350,000, which is significantly lower than the vast majority of school districts.

To further put this in perspective, a $350,000 house on a 30-year conventional loan with a 3% down payment (which is $10,500 by the way) puts you at around $2,800 a month for a payment. That’s over a grand more than I’m paying now to rent. And let’s not forget to mention that housing prices are still climbing, so any appreciation is going to cause property taxes to rise. In other words, what would start as $2,800 a month might balloon to over $3,000 a month within a couple of years.

And I’m partially annoyed by this because I want to send my kids to one of these good school districts, but I worry about them growing up like “one of the poor kids” in the area like I did—which, again, is completely absurd when I’d be shelling out nearly $3,000 a month for a house.

Making Offers

For now, we’ve been hunting for homes in the lowest cost neighborhoods near the top of the list (i.e., in the $365,000 average range) and hoping homes pop up closer to our price point. While we’ve seen plenty of houses in the $330,000 to $350,000 range, we’ve had absolutely no luck with putting in offers.

The very first house we looked at was listed for $340,000. We checked it out during a blizzard thinking no one would possibly be visiting it. That night, we put in an offer at asking price, thinking we would get it no problem. Unfortunately, we found out that someone else had put in a bid above ours AND waived the inspection, so we went all in: $350,000 and waiving remedies. The next day we found out that we lost, but so did the bid that waived the inspection. Apparently, somebody went in way over asking price, which even surprised the seller because they couldn’t get the house off the market for the last six months.

Then, we found another house we liked going for $350,000. We visited and put in an offer that very day. We figured we wouldn’t get it as we were at our limit. That evening we found out our offer wasn’t even good enough to be the backup.

At this point, we have visited something like seven houses and put in offers on two without luck. Our timeline is starting to get tight because we would like to close on a house by April, so we have time to move in before I go off to Japan again. Also, did I mention my wife is pregnant? We absolutely do not want to be moving with a new baby.

I can feel the time pressure starting to weigh on my wife as well because we’ve started compromising on a lot of our wants. For instance, today we were thinking about going for a house that had no basement, something we wouldn’t have even considered a month ago. Likewise, I’ve stopped thinking at all about my work commute. Perhaps by next week, we’ll be opening up our options to HOAs. Before long, we might even start accepting split-levels. It’s crazy how demoralizing this process is.

Is the Dream of Home Ownership Dead?

Early this semester, I was joking with my students that I was going to be one of the last people to ever buy a home. It’s obvious that we have a housing crisis in this country (apparently with room for it to get worse). After all, it’s hardly surprising that the average age of a first-time home buyer is 40. That’s how long it takes just to save up a down payment.

As we keep getting beat on offers, I’m constantly wondering who the hell is putting these massive offers over asking. My initial gut reaction is that it’s corporate buyers because it wouldn’t possibly make sense for someone financing their home to be able to eat the appraisal gap (i.e., the amount you have to pay out of pocket because the bank says the house isn’t worth that much). But, this article makes it seem like homeowners are making cash offers from equity in a previous home.

If that’s the case, it’s somewhat comical to hear homeowners complain about interest rates. Houses have literally doubled in value in less than ten years, and people aren’t moving because they’re worried about 6% interest rates? Brother, you can probably buy your next home outright. What’s the concern about financing?

Anyway, I’m obviously frustrated because this whole process has been emotionally taxing. All I want to be able to do is buy a home that I can raise my family in, something my parents and their parents were able to do. I’m sure it will work out in the next couple of months, but boy is it frustrating.


Hey, I couldn’t quite find a way to wrap this article up cleanly, so I’ll sneak my usual closing remarks below this line. For instance, here are some articles you might find helpful. They should all be life advice adjacent, so they should be relevant:

Likewise, I’ll toss out a Hail Mary here in case anyone wants to contribute to my down payment. Or if you’d prefer, you can always donate to my kid’s college fund. Of course, you can just check out my list of ways to grow the site. Thanks again and take care!

]]>
Smug Yet Unserious https://therenegadecoder.com/blog/smug-yet-unserious/ Fri, 13 Feb 2026 15:00:00 +0000 https://therenegadecoder.com/?p=48513 A photo of a tree with the title of the article overlaid.Lately, I’ve been burning out a little bit, and it’s been bringing back a lot of memories of what it’s like to be deep in the STEM trenches. As a]]> A photo of a tree with the title of the article overlaid.

Lately, I’ve been burning out a little bit, and it’s been bringing back a lot of memories of what it’s like to be deep in the STEM trenches. As a result, I wanted to vent a little about some of the more annoying elitist behaviors I’ve seen lately.

Table of Contents

Recapping the Week

It’s Thursday night, and I’m ready to wrap up another extremely busy week. For context, here’s sort of what my day-to-day normally looks like:

  1. Get up nice and early to the sound of my toddler yelling “MOM!” and “DAD!,” usually around 7:30 AM.
  2. Briefly rub my eyes and crack open my phone to do a variety of pointless tasks like play Wordle and scroll Reddit.
  3. Spend the next four hours trying to feed, change, and entertain my toddler while studying Japanese using a mix of Anki, Duolingo, and a plethora of textbooks and recordings.
  4. Tag my wife in, so I can head out to work where some days are a mix of labs and office hours while others are lectures and Japanese class.
  5. Leave work right around 5PM to fight through rush hour traffic.
  6. Get home, eat dinner, and entertain the toddler until around 8PM.
  7. Spend what time I have left in the day to respond to emails and finish up work, like this article.
  8. Do it all over the next day.

This week, however, it’s been extra busy. For instance, I’m usually home on Mondays, so I spend the afternoons getting work done. This past Monday, I had my biweekly (as in every other week) therapy appointment, which I followed with a couple meetings with colleagues on campus. Then, I came home to the Spectrum technician fixing my internet which had been out since Sunday afternoon.

On Tuesday, my wife, kiddo, and I ran out to a doctor’s appointment. While I’m not sure I’ve mentioned it quite yet on the site, we’re having another kid, so we were able to get a few ultrasound pictures this time around. After that, I had a meeting with my co-resident director to help plan our first meeting with the students we’re taking to Japan. Then, I had my usual workday and usual evening time with the kiddo. The night capped off with a biweekly meeting to on our efforts to pressure city councils to adopt non-cooperation agreements with ICE.

By Wednesday, I was pretty tired, and I had my most busy day yet to come. The morning was normal, but I had to do a bit of cramming for my Japanese class in the afternoon. Then, I had my usual lectures, got roasted a bit in the Japanese class, and finished my workday with an extra hour on campus to meet our students for the Japanese trip. I got home, ate some dinner, and met with one of my Tsukuba University colleagues virtually.

By now (i.e., Thursday), I’m beat. The day was more-or-less fine, but I was definitely on edge. Thankfully, my wife gave me the morning to myself to study and relax. Of course, everything works by the law of equivalent exchange, so I’m writing this just moments after having the kiddo to myself this evening.

Finally, by the time you’re reading this tomorrow (or maybe you’re reading this far off into the future), I’ll probably be just wrapping up a visit to an open house. Did I mention I was also trying to buy a house? Yeah, it’s been a busy spring for me.

Elitism Is So Back

I share all those somewhat intimate details because the rest of this article is probably going to come off as a bit bitchy. The stories I want to share today include moments that I don’t think are really worth the time I’ve already spent dwelling on them, but I find this type of writing somewhat therapeutic.

All of that is to say that I want to revisit a topic that has bothered me for so long in the field of computer science: the arrogance, the smugness, the elitism, etc. Certainly, I’m not the first person to point this out, and computer science is certainly not the only field that has this problem.

Regardless, it’s been a problem that has bothered me since I literally wrote The Artificial Arrogance. Thankfully, most of you won’t be able to access that article behind the paywall. I’d prefer you didn’t read some of the horrendous takes I had at 24 around topics like unions, regulations, and meritocracy.

Anyway, I want to talk about this smugness because it was partially what made me switch to engineering education. Back then, I was so bothered by the culture of tech that I even considered studying it. Here were some of the early research questions I could dig up from my records:

  • How do we address toxic tech culture like gatekeeping and elitism?
  • Why do we motivate through fear rather than nurture?
  • What are we doing in our hiring and admissions processes to select for this type of culture?

Now that I’m back in the thick of computer science culture, I’m starting to see a lot of the same issues resurface, and I want to share a few examples.

Inherit vs. Implement

The first example that comes to mind for me is the most salient—perhaps because it happened to me today. I was working with a student after class who was really, really curious about generic methods in Java. Generic methods are a feature of Java that I’m not really familiar with, but I get the central premise. If you have no clue what I’m talking about, here’s the literal method we were discussing:

/**
 * Returns whether {@code x} is in {@code t}.
 * 
 * @param <T>
 *            type of {@code BinaryTree} labels
 * @param t
 *            the {@code BinaryTree} to be searched
 * @param x
 *            the label to be searched for
 * @return true if t contains x, false otherwise
 * @requires IS_BST(t)
 * @ensures isInTree = (x is in labels(t))
 */
public static <T extends Comparable<T>> boolean isInTree(BinaryTree<T> t, T x) {...}

The student was asking me about the generic bit before the type. I was telling him that it’s necessary because the method is static. In other words, usually instance methods would already have access to the generic type from the class declaration, but static methods don’t because they can be called without an instance of that class.

During that conversation, he asked me a series of interesting questions around the purpose of the generic type, why it was needed, and what extending it would do. In the process of that conversation, I asked him to chat with me out in the hallway. As we continued chatting, I made a few comments like “when you make the generic type extend an interface like Comparable, the method will only accept objects that inherit the Comparable interface.”

Personally, I don’t see anything wrong with what I said, but another instructor crept out of his office to correct me in front of the student. He said something along the lines of, “not to be pedantic, but it’s ‘implements’ not ‘inherits.’ Classes can’t inherit interfaces. They implement them.” Sure, man.

I found this so infuriating because it added basically nothing to the conversation, and I’m certain it didn’t clear up any confusion for the student. In fact, I find it almost counterproductive because computer science terminology is famous for being incoherent. I’ve talked at length on this website about the difference between statements and expressions and how almost no contemporary language respects those boundaries. Therefore, how could it possibly be valuable to distinguish between the terms inherit and implement? I find this all the more absurd because even the generic method uses the verb “extends” and not “implements.”

Also, somewhat unrelated, but as someone learning another spoken language right now, I find it silly to be pedantic when language is inherently ambiguous, contextual, and fluid. It just comes off like an English teacher saying “ain’t” isn’t a word. Well, I hate to tell you this brother, but there is no correct way to use language as long as the point gets across. And keep in mind, this is coming from someone who did social science research and loves to debate what words mean. There’s a time and place for that level of pedantry.

I’ve Never Had Any Issues

I think I complained about this elsewhere on the site, but another example that comes to mind happened last semester. We continue to have a variety of painful issues in our labs as operating systems go through the enshittification process. One such issue revolves around OneDrive, which doesn’t exactly play nice with software development.

If I recall correctly, one of the educators was running into an issue where OneDrive would suddenly delete files to save drive space. Often, these files would be key config files or library files needed for software development. The files, of course, would be help up in the cloud, and OneDrive would leave behind impostor files as placeholders. Then, the IDE would think the necessary file was there when it wasn’t, causing tons of fun little bugs.

As a few of my colleagues were discussing how to solve the problem, I shared some sympathy by talking about some of the challenges I’ve personally faced with scrubbing OneDrive off my PC. I assumed being a bit vulnerable would be taken in good faith, but a couple of grad students followed up with some of the most aggravating comments imaginable. I’m sure you can guess what they said:

  • “Hmm, I always uninstall OneDrive on a fresh install and never had any issues.”
  • “I guess it’s time to tell every student to switch to Linux.”

These are akin to the kinds of comments you’ll get in places like Stack Overflow and Reddit. Generally, just smug comments that don’t address the original question or problem and instead chastise you for not being omniscient.

That’s a Waste of Time

More recently, I have a lot of students that talk when I’m talking. This happened to me once like three years ago, and I was baffled. Now, it happens often. I’m not saying that I deserve to have the stage, but I also just don’t get it. Why come to class at all?

I bring this up because I have a student this semester that has decided I am their enemy. Our relationship is purely antagonistic. You’ll see what I mean in a moment.

Early in my classes, I give students paper name tags. The idea is pretty straightforward: if I have a variety of ways of associating a student with their name (i.e., by verbally hearing them say it, seeing it written, and seeing where they sit in the class), I can learn their names faster.

During the third class, we usually take time to setup everyone’s computer. I was trying something new where I actually walked through the process with the class, so everyone could literally see what needed to be done at each step. Obviously, folks fall behind, so I offered to help them after I was finished with the demo.

Afterward, I approached my antagonist to offer them some help. They seemed annoyed with me already, but I managed to get them setup fairly quickly. When I asked them for their name, instead of telling me, they sort of gestured toward their name tag. I thought that was odd, but I tried reading it out: “nil” (this is not the actual name they gave me, for the record).

Later, I realized that I didn’t remember anyone with that name, so I checked my rosters. Sure enough, it was a nickname or possibly even a fake name, but I gave them the benefit of the doubt.

Of course, after that point, I basically never saw them again. They weren’t coming to lecture anymore, and they barely came to lab. Then, they started coming to class again, and they were frankly pretty disruptive. They would basically talk through the entire class period, and they weren’t exactly quiet about it.

In fact, I almost felt like they were talking loud on purpose in an effort to hurt my feelings or something. On one occasion, I remember overhearing someone explain to them my optional project. After the student finished selling it to them, I heard them say at max volume, “well, that sounds like a waste of time.”

And like, sure, I think it’s fine for a student to believe that. I just think it’s odd that you would say it out loud in from me. You might as well be like, “hey, you know that thing that you spent a bunch of time on to give us a better learning experience and a chance to start building out our professional portfolios? Why did you even bother?”

Catharsis

I’ll be honest. I was not expecting to dump over 2,000 words to the page in one sitting tonight, but it sure was cathartic. This weekend, I’m going to try to get some better sleep, so I can go into next week a little more refreshed. Perhaps that’ll help me ignore the annoying pedantry and smugness going forward.

If not, one thing I would really hate is to start seriously burning out. Earlier this week I had a minor crash out over an anonymous student question, which read: “What should we be studying for the midterm? Like what sort of problems, not just like broad categories.” This somewhat broke me because I read it as: “I haven’t been paying attention at all to you repeatedly telling us how to prepare and/or the resources you have painstakingly prepared are not good enough.”

Sometimes I look back at my fourth grade teacher who would regularly crash out and think, “no, yeah, I totally get that.” I distinctly remember him repeatedly asking the same question to the same student over multiple days because the student refused to internalize it. It went something like, “Justin, what’s the land at the foot of a mountain called.” If the student didn’t immediately say “piedmont,” the teacher would throw objects around the room.

In fact, a lot of weird things happened this week. For instance, I went to a destress event to hang out with some students and some of my peers. While I was in line, I had a wonderful conversation with a past student about the science of lifting. When I made it inside, the student introduced me to one of their friends who apparently knew me already. I made a comment about how it’s always weird when I hear that students talk about me with their friends. Before I could even finish that thought, another instructor (who I think is a grad student) interjected with something like, “yeah, I bash you all the time to my students.” I don’t know if this was intended to be a joke because he just immediately walked off after. Like, I was genuinely confused by the interaction.

Anyway, on the bright side, I’m really looking forward to the Japan trip this year. I’m also really looking forward to finally owning my own home, and I’m looking forward to watching my kiddo grow. Though, I do wish that last part would slow down a bit. As much as the day-to-day gauntlet wears me out, she’s been a lot of fun. And, I’m especially excited for her to meet her sibling!

Normally, I would share some links here to some related articles, but I’m just too exhausted. You’ll have to settle for the link to the list of ways to grow the site. Otherwise, take care!

]]>
32 College Stories That Always Make Friends Laugh https://therenegadecoder.com/blog/32-college-stories-that-always-make-friends-laugh/ Thu, 05 Feb 2026 15:00:00 +0000 https://therenegadecoder.com/?p=39647 A photo of the West Side Market in Cleveland with the title of the article overlaid.To view this content, you must be a member of Jeremy's Patreon at $5 or more - Click "Read more" to unlock this content at the source]]> A photo of the West Side Market in Cleveland with the title of the article overlaid.
To view this content, you must be a member of Jeremy's Patreon at $5 or more
- Click "Read more" to unlock this content at the source
]]>
Why Does == Sometimes Work on Integer Objects in Java? https://therenegadecoder.com/code/why-does-sometimes-work-on-integer-objects-in-java/ Fri, 30 Jan 2026 15:00:00 +0000 https://therenegadecoder.com/?p=48380 A photo of some leaves with the title of the article overlaid.You would think I'd seen it all in my teaching career, but a new bug just showed up in one of my labs: one that involves using == to compare Integer objects in Java. ]]> A photo of some leaves with the title of the article overlaid.

You would think I’d seen it all in my teaching career, but a new bug just showed up in one of my labs: one that involves using == to compare Integer objects in Java.

Table of Contents

Wait I’ve Read This Article Before

You may recall that I wrote a piece titled Why Does == Sometimes Work on Strings in Java just over three years ago. Well, here’s it’s spiritual successor!

Like last time, the inspiration for this post once again comes from code a student wrote for one of our labs. In fact, I’m just going to share their code with you to see if you can figure out what’s wrong with it:

private static boolean isPalindrome(Sequence<Integer> s) {
    assert s != null : "Violation of: s is not null";
    boolean result = true;

    for (int i = 0; i <= s.length() / 2 - 1 && result; i++) {
        result = s.entry(i) == s.entry(s.length() - 1 - i);
    }

    return result;
}

For the purposes of this exercise, you can just assume any methods called on the Sequence exist and do what you expect (e.g., entry() returns the value at the index). You can also assume the code compiles.

That Doesn’t Work, But This Does

The student approached me about this code because they were able to get it to work by making a minor change to their code. Here’s the solution they ended up with:

private static boolean isPalindrome(Sequence<Integer> s) {
    assert s != null : "Violation of: s is not null";
    boolean result = true;

    for (int i = 0; i <= s.length() / 2 - 1 && result; i++) {
        int num1 = s.entry(i);
        int num2 = s.entry(s.length() - 1 - i);
        result = num1 == num2;
    }

    return result;
}

I stared at both solutions for a good couple of minutes and couldn’t quite come up with how the two solutions were different. I then asked the student to send me the solution, so I could investigate further.

Do You See It Yet?

As it turns out, the bug is really subtle. Though, if the title of this article is any hint, then you probably already see the issue. It has to do with “double equals” or the == operator.

Most folks know that you shouldn’t really use double equals when you’re working with objects, but there is at least one time where you might want to use it: it’s great for checking identity. Want to know if two objects are aliases? Use ==.

I also assumed—perhaps naively—that double equals works with the wrapper types (e.g., Integer, Character, etc.). After all, I assumed that there was this autoboxing/unboxing magic that happened with the wrapper types, meaning they were functionally just the primitive types with extra functionality.

That is not the case. The wrapper classes actually behave just like objects because they are objects. If you compare two Integer objects with the same value using double equals, you will get a return value of false—most of the time.

See, like the String class, the Integer class behaves weirdly. It turns out that Java caches some of the Integers in memory, similar to the string interning process we talked about in the last article. However, unlike string interning, the list of numbers that the Integer class caches is known. It’s the first byte of integers (i.e., -128 to 127).

Don’t Believe Me? Try It!

If you load up a tool like jshell, you can quickly create a few Integer objects as follows:

jshell> Integer x = 500
x ==> 500

jshell> Integer y = 500
y ==> 500

jshell> x == y
$4 ==> false

As you can see, when the two integers are outside of the byte range, the comparison comes back false. Likewise, when the two integers are inside the byte range, the comparison comes back true:

jshell> Integer x = 100
x ==> 100

jshell> Integer y = 100
y ==> 100

jshell> x == y
$7 ==> true

Now, there is some messiness I didn’t bother to explore deeper. For example, you can apparently configure the JVM to cache a wider range of integers by changing the -XX:AutoBoxCacheMax=<size> option.

Why Do Variables Fix the Problem?

Assuming the caching idea makes sense, you might now be wondering why breaking the line up into variables fixes the problem. Well, it’s because you’re implicitly casting the Integer objects back into primitive integers, and primitive integers can correctly be compared with double equals.

If you don’t like that solution, an alternative solution uses the proper method for comparing objects: equals(). In other words, you can rewrite the broken code as follows:

private static boolean isPalindrome(Sequence<Integer> s) {
    assert s != null : "Violation of: s is not null";
    boolean result = true;

    for (int i = 0; i <= s.length() / 2 - 1 && result; i++) {
        result = s.entry(i).equals(s.entry(s.length() - 1 - i));
    }

    return result;
}

Now, no matter what value the Integer object stores, you will get a correct comparison:

jshell> Integer x = 500
x ==> 500

jshell> Integer y = 500
y ==> 500

jshell> x == y
$3 ==> false

jshell> x.equals(y)
$4 ==> true

The Whimsical Nature of Teaching

One of the reasons I love teaching software development to students is because they write really interesting bugs. So many of the articles in this series are the result of some code I saw a student write, and I expect to write many more of these articles in the future.

In fact, you may recall that I wrote an article titled, The Behavior of i=i++ in Java. I wrote that article all the way back in 2019. Would you believe me if I said I saw another student write the same expression the other day in lab? I could not for the life of me figure out why they had an infinite loop. Then, I audibly chuckled when I finally spotted this expression again.

Anyway, I hope this was an interesting article for you. I swear I learn something new from my students every day. Perhaps I can pass those moments along, such as the ones below, to you:

As always, you can take your support a step further by checking out a few ways to grow the site. If not, no worries. I’ll still be here when you come back.

]]>
Online Exams Might Be Cooked https://therenegadecoder.com/teach/online-exams-might-be-cooked/ Fri, 23 Jan 2026 15:00:00 +0000 https://therenegadecoder.com/?p=48368 A photo of someone cooking a steak in a pan with the title of the article overlaid.I'm being told there is an AI tool that can take the exam for students. It looks like online exams might be cooked. ]]> A photo of someone cooking a steak in a pan with the title of the article overlaid.

Broadly, STEM programs in the US have an obsession with examinations. As someone who tried to limit the role they play in the classroom, I shifted to online exams via quizzes in Canvas. Now, I’m being told there is an AI tool that can take the exam for students. It looks like online exams might be cooked.

Table of Contents

AI Ruins Everything

Over winter break, I got some pretty horrific news from someone at the university that a new AI tool is going around that is capable of completing online exams for students. This is a bit different from the types of tools you might be imagining, like the ability of a student to copy a question into ChatGPT.

What this new tool does is take over the student’s computer and completes the exam for them—fully autonomously. I assume this is some sort of AI agent tool, or maybe something a bit more simplistic with automated copy-paste or computer vision. I don’t know, but it apparently can fool some of the proctoring tools (which I already oppose from a privacy perspective—as do others). Here’s what the content of the email said:

We have confirmed evidence of an online service called “Black Tom,” an application that will take over a student’s computer and take their exam for them in real time. Black Tom also captures the questions on the exam and sells access to them.

Current safeguards like LockDownBrowser have banned some students from being able to access their exam, but other students have been able to enter exams and use the Black Tom application, though they try to dim their screen while doing this, to hide their activity.

I questioned whether or not I should share the actual name of the application, but I think it’s more important to spread awareness of these kinds of exploits.

What Should You Do

If you’ve been around here for a minute, you might know that I somewhat recently started using online exams. In fact, I once boldly stated that I was never going to go back to paper exams given how much success I had with the new format.

That said, my position on exams hasn’t really changed. I don’t like them as an assessment tool because I don’t believe they “measure” understanding. They tend to assess memorization in most cases—lest you be accused of making an exam too hard. Worse, they cause a whole bunch of stress, and they basically never map to any real world scenarios.

The whole purpose of exams is to be able to lazily compare students. Because why judge them by the body of their work when you can simply label some of them as stupid for performing poorly on an exam. Do I need to share the Interstellar clip again?

Of course, despite my general hatred for exams, I am still required to give them. Unfortunately, given that my online exams can be easily completed using “AI” (even with the surveillance technology), I am not sure I can move forward with online exams.

The Snitch

Ironically, around the same time I received the email about “Black Tom,” I also received an ominous email from my course coordinator. It basically read (I’m paraphrasing):

A student from another section complained about their instructor to the department chair. Their email complained about the lack of fairness between sections as my section is “easier” then others for offering online exams.

When I met with my course coordinator, he told me that he had backed me up with the most obvious argument: different sections of the same course are going to be different (i.e., tough luck). However, he was concerned that maybe the grade disparity between sections was so large that something would have to be done, so we agreed that I would start offering paper exams again.

I felt it was the right choice in general. I was already considering it with the prevalence of AI on my exams to the point that I was dabbling with prompt injection. With tools like “Black Tom” in the mix, it’s only a matter of time before online exams are completely untenable. There’s just no way I am willing to fight cheating with surveillance. I am not going to die on that hill, and I am certainly not interested in the result of that arms race.

So, What Now?

For me, it’s back to paper exams. Right now, the paper exam format I use is heavily borrowed from my course coordinator. It’s a mix of multiple choice, short answer, and coding questions. I don’t love it, but I’m not really interested in perfecting something I don’t want to do in the first place.

I’ve noticed that this “back to the classroom”-style assessment is starting to catch on again. It seems to be the only way to ensure students are actually learning and not just relying heavily on generative AI to do the thinking for them. For instance, I’ve seen a lot of educators of writing classes advocating for those blue books again, so they can make sure students are actually developing their writing skills.

Perhaps in the future, we’ll start programming courses without technology: just pen and paper. I think that could be a lot of fun. I would enjoy working with students to develop their algorithmic thinking skills without the crutch of syntax highlighting, tab completion, and generative AI.

In the short term, however, it does seem like my university is going to force us to make every student a prompt engineer. That’s certainly a future I am not excited about.

Anyway, that was a short rant out of me for today. I’m very busy these days with getting things started for the semester but also practicing my Japanese and prepping for another trip to Japan. Did I mention I’m having another kid in July as well? And, we might even be buying a house this year. Let me not forget that also trying to do my tiny part to fight fascism in my local community. The day-to-day has been a mess!

As always, if you want to keep reading what I have to say, there’s plenty more to follow:

There’s also a list of ways you can help grow the site, but only if you’d like. Otherwise, that’s it for today!

]]>
Encouraging Attendance With Peer Instruction https://therenegadecoder.com/teach/encouraging-attendance-with-peer-instruction/ Fri, 16 Jan 2026 15:00:00 +0000 https://therenegadecoder.com/?p=48311 A photo of ice melting on a tree as a play on getting ICE out of our country. Also, the title of the article is overlaid.As I begin another semester of teaching, I wanted to share one thing I'm trying this time to improve attendance: peer instruction. ]]> A photo of ice melting on a tree as a play on getting ICE out of our country. Also, the title of the article is overlaid.

As I begin another semester of teaching, I wanted to share one thing I’m trying this time to improve attendance: peer instruction. We’ll see how it pans out!

Table of Contents

Attendance History

If you read my reflection last semester, you might have heard that I’m struggling a bit to get attendance. This didn’t used to be a problem, and it only has gotten worse in the last few semesters. Though, I suppose I should actually plot that out as a sanity check. Surprisingly, I’m not just imagining things:

A plot showing attendance over time. The x-axis shows each semester beginning from Autumn 2018 to Autumn 2025. The y-axis shows attendance as a percentage. The plot shows a line generally trending downward over time, with local minimums in Spring 2022 and Spring 2025.

According to this figure, the most attendance I’ve ever gotten was back in Spring 2019 when students attended about 78% of the time on average. Since then, I reached a horrific low of 27% in Spring 2025. Mentally, that’s like half the class showing up to the lectures and a tenth of them showing up to the labs, which lines up with my experience.

What’s encouraging is that I actually had a massive uptick in attendance this past semester at about 54%. Unfortunately, I don’t really know what I did differently, or if I had any real impact on attendance levels. I will say that some of the sections were able to build up some community, so that felt nice.

Because I can’t really know why attendance seems back up, I’m going to treat it like a fluke. And even then, attendance could still be a lot better. So, the question becomes: how do I sustain and even improve attendance in 2026?

Absence Theories

While I think it’s sort of silly to brainstorm all the reasons students might not be coming to class, I do have at least one theory that I can quickly discuss and maybe even disprove.

One theory I had was around time of day. For the past few semesters, my latest section has had the worst attendance. For example, last semester my 4:10 had the worst attendance average of 45%. In the previous spring, I had a 3:00 with a whopping 20% attendance rate, the worst of any section on record. The semester before that? A 4:10 with a 27% attendance rate. The 3:00 in the semester before that? A 26% attendance rate.

Of course, I thought to plot this just to be sure. Here’s the same graph from above but split by section time:

A plot of attendance over time with separate lines for the time of day the class was held. The x-axis shows the semesters beginning with Autumn 2018 and ending with Autumn 2025. The y-axis shows the average percentage of attendance. There are seven different class times shown that still show a general downward trend over time. One point of note is the 3:00 PM section in Spring 2025, which had an average attendance rate near 20%.

The trend generally seems to hold that the last section I teach for the day is the section that students attend the least. That trend even holds back in autumn 2023 where I had a 1:50 with the lowest attendance rate at 37%. The first time I see that trend broken is spring 2023 where the 3:00 slightly outperforms the 1:50. Then, in spring 2022, the 12:40 massively outperforms the 11:30.

Funnily enough, my 4:10 sections before the pandemic have some of the best attendance numbers ever. So, perhaps it has less to do with time of day and more to do with sequencing. Maybe I’m more burnt out and less engaging by the third session. Though, it’s hard to say.

I’m also noticing that the 3:00 is the biggest wildcard. In two semesters, it was my top performing section. In two other semesters, it was my worst performing section. That’s different from the 4:10, which is very consistently at the bottom. Meanwhile, my 1:50s and 12:40s are often comparable, with the 12:40s often slightly ahead by 5-10% on average.

Of note, I’ve only had one 11:30 that had horrible attendance. I’ve also had two 10:20s with good attendance. It was my best section in autumn 2023. Part of me wants to plot the average attendance by time, but I can lazily compute a rough version from the existing chart. Here’s that data:

  • 10:20: 49.5%
  • 11:30: 30%
  • 12:40: 48.5%
  • 1:50: 41.6%
  • 3:00: 37.75%
  • 4:10: 54.4%

This makes 4:10 look like the best section, but I don’t really have any data points from before the pandemic to really compare this to. If you factor out any data before the pandemic, the 4:10 average drops to 42%.

With that said, I don’t think there’s much evidence to show that time of day matters. I’ll have to keep an open mind with my 4:10 section going forward because I previously had it in my mind that no one was going to attend.

I suppose I could have just examined this theory for myself by looking at the research because at least one study shows that time of day doesn’t matter for student performance (though, it says nothing about attendance). Perhaps it was just me after all.

The Carrot or the Stick

Assuming I’m the reason attendance has dropped off (despite some evidence for some systemic reasons like COVID and AI), I’m interested in trying new ways to improve attendance. With that said, there are basically two ways to go about motivating students to attend class: the carrot and the stick.

I’ve mentioned before that I much prefer to motivate students with the carrot rather than the stick. I don’t care for policies that punish students for not showing up to class, and I don’t believe I have the power to get students to care about attending. They have to motivate themselves to show up.

Therefore, I need to find some way to encourage students to come to class. Given some of the feedback I’ve received in the last few semesters, I think I know where to start. Students seem to crave structure, and they explicitly tell me that they want more structure in the labs.

I’ve spoken at length about how I think too much structure stifles learning, but I think there are ways that I can introduce a little bit of structure to get students engaged. What I’m going to try in this upcoming semester is offer the carrot in the form of peer instruction at the beginning of each lab.

Introducing Peer Instruction

Peer instruction, for the uninitiated, is basically a clicker question. In other words, you present some multiple choice question, and you ask students to figure out the answer.

The trick with peer instruction is that you actually present the same question twice. However, the first time, you make students figure out the answer silently. Then, you ask them to debate the answer once they’ve locked one in. Afterwards, you prompt them to answer the question again before viewing the results. If all goes well, you move on. If the class struggles, you take some time to explain the concept better.

I’ve probably talked about peer instruction in other places on this site, but ever since becoming a lecturer, I haven’t really done it. I used to do it quite a bit in a previous class I taught, but I hadn’t gotten around to doing it in my current class.

Well, I had an epiphany: maybe I could start doing one of these peer instruction questions at the beginning of every lab. Looking back, this was probably implicitly inspired by a student I had last semester who would ask me a fun question at the beginning of every class. Often, I would go home and present the same question to my wife because I found it so amusing.

Anyway, I know it’s an extremely affective teaching tool, and I think it’ll get students engaged right at the beginning of each lab. If I’m right about that, then I should end up with better attendance this time around. Of course, only time will tell. I will say that there was at least one study that showed peer instruction had no effect on attendance, so I may be wasting my time.

On the plus side, if attendance doesn’t improve, I think we’ll see an interesting bimodal distribution in grades. There will be a cohort of folks who come to class and do really well and cohort that struggles significantly, especially since I’m back to paper exams this semester (more on that in the coming weeks).

Anyway, I wanted to mention that I was trying something new this semester. We’ll see how it goes! In the meantime, if you enjoyed this article, there is plenty more like it below:

Likewise, you can consider providing bit more support by checking out my list of ways to grow the site. Otherwise, thanks for taking the time to check out my work!


I’m sneaking this little note down here because I have some deep cognitive dissonance around the topic of attendance.

After all, I abhor office work. Hell, I wrote an entire series about that. You will never convince me that an office can foster any kind of community, growth, or joy. If I ever found myself back in industry, it would have to be a remote job.

Yet, I believe learning has to happen in a communal setting. I deeply dread a future where education becomes more isolating as we turn to supposed personalized learning tools driven by AI. See this nice Internet of Bugs video for what I mean.

So, I’m not sure how to reconcile those two ideas right now. On one hand, I shouldn’t have to come to the office to work. On the other hand, I expect students to come to the classroom to learn. Maybe they see the classroom in the same way that I see the office, and maybe they see my attempts to make the classroom more welcoming in the same way that I see all the corporate cringe on LinkedIn.

Yet, I can’t really shake this feeling that learning environments and workplaces are two distinct categories. The former is about personal (and communal) growth while the latter is more transactional (i.e., your labor in exchange for a paycheck).

I suppose I’ve answered that question for myself by abandoning industry for academia. At least as a lecturer, I feel like I’m positively contributing to the future of society. I can’t say the same for what most folks are doing in tech.


I’ve never done this before, but I’m going to sneak a second note in here around the phrase in bold: they have to motivate themselves to show up.

For the record, I put that phrase in bold because I think it’s significant. I can understand not being motivated to show up to class. In fact, I think it’s perfectly reasonable to skip if there’s no value in it to you. However, I do think showing up to class is incredibly low stakes. It’s like putting your cart away at the grocery store. You don’t have to do it, and there’s literally no incentive for doing so. But, your willingness to return your cart anyway says a lot about your willingness to show up when the stakes rise.

Perhaps I’m making a bit of a stretch, but I think this commentary is timely. Right now, ICE is out there terrorizing our communities. As someone who has been agitating city councils to not cooperate with ICE for nearly a year, I have grown increasingly frustrated with our elected officials who seem to be too cowardly to show up and put in the work. They’re seemingly frozen in fear when this moment demands that people show up. They worry about right-wing resistance groups and funding cuts—things that are going to happen no matter what.

With one city council in particular, we met a council member who seemingly wanted to aid us in putting together a noncooperation agreement. After all, we already helped one of those agreements over the finish line in another part of the city. Unfortunately, over time, they asked us to wait because elections were happening. Elections seemingly went their way, but they began dodging us at meetings. Now, at the wake of the murder of Renee Good, they’ve completely backed down from the idea at all, citing many of the fears I mentioned before.

But if these folks won’t show up for their communities, who will? It’s moments like these where I feel like I’m surrounded by people with an unwillingness to do the bare minimum. Because if you can’t show up when the stakes are low, how can we trust you to show up when things get serious?

]]>
Conspiracy Theory: All Pro Sports Are Rigged Now https://therenegadecoder.com/blog/conspiracy-theory-all-pro-sports-are-rigged-now/ Fri, 09 Jan 2026 15:00:00 +0000 https://therenegadecoder.com/?p=48020 A photo of an empty ice hockey rink with the title of the article overlaid.Sports betting is huge now, and I assume you've noticed. But, are there any consequences to the legitimacy of sports?]]> A photo of an empty ice hockey rink with the title of the article overlaid.

In the age of legalized sports betting, I’m questioning the integrity of our favorite sports. Sure, they’ve always been bought and paid for, but has there ever been a time where individuals could make a lot of money by betting on outcomes? That can’t be healthy for sports, which makes me questions their legitimacy.

Table of Contents

Series Idea

Recently, I’ve been joking around about a conspiracy theory I have about pro sports: they’re rigged. Obviously, I’m not that serious about this take. It’s somewhat absurd on its face. After all, I like to believe that athletes compete as hard as they can most of the time.

That said, I joked about it with enough people that I was finding that others actually believe it. So, I started watching my favorite teams with a more conspiratorial eye—much like Alex Jones and his contemporary, Candace Owens.

Then, I got thinking. With how rough some of my articles have been as of late, I figured I could shit post a little bit. In fact, depending on how much fun I have writing this piece, I might make this a whole series. Y’all need something to take your mind off the world, right? So, let me get into the first theory!

Challenging Calls

I’ve been watching a lot of the Penguins lately, and I don’t personally recommend anyone put themselves through that. While they had a hot first 20 games or so, they’ve since developed into frauds. In fact, at the time of writing, they’re on an 8-game losing streak, and they’re scoreless in their last two games. Getting shutout in back-to-back games is enough to make you go a little insane, but it can’t hurt much worse than throwing away a 5-1 lead (both of which the penguins have done in their last 8 games).

Of course, along that journey, I’ve seen a lot of weird calls. For example, in a recent game against Ottawa, the refs overturned a goal by the Penguins on the basis of goaltender interference. You can see the whole play here at around the 7:54 mark. The Penguins end up challenging the call and are assessed a Delay of Game penalty for an Unsuccessful Challenge (see the explanation from the NHL).

When I saw this challenge live, I was completely amazed that the call wasn’t overturned. Now, to be fair, I’ve never read the rulebook. I don’t know what constitutes goaltender interference. However, you might hear the following key phrases on the broadcast:

  • Was the skater in the paint?
  • Was there incidental contact?
  • Was the skater pushed into the goalie?
  • Did the goalie have time to reset?

Regardless of my lack of knowledge, here’s what I see in the clip:

  • The puck is in frame before there is any contact with the goalie
  • The puck is in the net roughly at the time of the contact (i.e., any interference at this point has no effect on the outcome)
  • The contact is from the opposing team’s stick
  • The goalie initiates contact with their blocker on the skater
  • The goalie then flops from the contact
  • The skater never enters the paint

To me, this is hardly goaltender interference, and even Senators fans were baffled. Just check out this Reddit thread in r/hockey.

Of course, this was particularly baffling to me, because an almost identical play happened against the Penguins at the beginning of the game (which you can see at about 27 seconds here). However, instead of it resulting in a goal, the goalie received a penalty for tripping. Make it make sense.

Regardless, even if this is the correct call by the rulebook, then you need to change the rules. Sports are an entertainment product, and bad calls like this devalue the product.

Ultimately, it’s moments like these that make me wonder if the refs are trying to cash in a bet. In some cases, I almost hope they are betting because I would hate for them to be this brazenly incompetent.

While we’re here, I just want to highlight the several times the Penguins have had challenges not go their way this season. After all, this article really was just an excuse for me to complain about reffing against the Penguins this season. Hell, they were ranked 31st in powerplay opportunities at one point this season, so give me this one. The Penguins are losing games all by themselves, but the lack of calls certainly kills any hope you might have.

Anyway, on 12/18, the Penguins challenged the goaltender interference call on the ice and got it wrong. That one we covered already.

Just four days before on 12/14, the Penguins let the Mammoth comeback and tie the game. The tying goal is challenged by the Penguins for goaltender interference, which you can see here. I think a goaltender interference challenge is a bit soft in this case, but given the precedent, it could easily be overturned. Well, it wasn’t.

Meanwhile, on 12/1, Philadelphia challenges a Pittsburgh goal for Goaltender Interference, and the goal comes back (which you can watch here). The NHL claim that Geno “impaired Dan Vladar’s ability to play his position in the crease prior to the goal.” I think if you watch this one and the previous one, you wouldn’t be able to tell the difference. The contact from Geno here is so minimal that I’m dumbfounded. Likewise, Vladar actually has enough time to setup for the shot, which can’t be said for Silovs. In both cases, the skater is in the paint, so you can’t even make that distinction.

Much later in the month, on 12/23, yet another Pittsburgh goal gets called back on a challenge for Goaltender Interference (which you can watch here). This ruling is fine. The goalie has the puck covered, and the skater slides their stick under the glove to dislodge it. However, the rule they cite is not what happened in the video. They claim that the goaltender was pushed into the net after making the save. The puck clearly squirts out before going into the net. Of course, I think it’s interference either way, but it’s close. The skater is clearly making a play on a loose puck and loses the race. I think you could make the argument that the goalie never had control of the puck, but then we get into the nightmare that is “control of the ball” in football.

Why Do Bad Calls Happens?

When you look at the antagonistic nature of a challenge, it’s pretty obvious why challenges sometimes fail (or often fail as of recent for the Penguins): the refs are always right, and it hurts their feelings when you tell them they’re wrong.

In hockey, there’s actually another reason: game management. For some reason, hockey refs feel the need to manage games, which means they purposely ignore calls or make calls as needed. For example, if teams are getting rough, they might start calling penalties to cool things off. Likewise, if a team is losing, they might be afforded more power plays. In other words, penalties aren’t called because they happen. They’re called only when they suit the moment. You can see refs literally discussing this here.

With that said, it’s a lot more fun to imagine more sinister reasons for bad calls. Fortunately, you don’t have to look very far these days: sports betting is an epidemic.

I think one of the worst things to happen to sports is the legalization of sports betting. Now, there is a monetary incentive to control the outcome of games. Certainly, players try to influence the outcomes of games—that’s literally their job—but refs seem to be playing a bigger part lately.

In fact, I saw this wonderful video about a horrendous no call in an NFL playoff game in 2018. The ref stares right at an obvious pass interference and does nothing. Fans watching it are completely dumbfounded. I can even imagine the fans of the winning team feel like its undeserved—though, any real competitor would tell you to stop whining and win the game. That said, calls (or rather no calls) like that sort of cheapen the experience for everyone.

Can Players Rig Games Too?

It’s not just the outcomes of games that could be rigged. It’s prop betting too. For hockey, that means you can bet on a particular player to score a goal either over the course of an entire game or during a specific period. Hell, you can probably bet on points, assists, blocks, saves, and more.

As a result, there are more subtle ways to insider trade. Happen to personally know a player that averages more than four shots a night? Bet on the under and tell him not to shoot.

Don’t believe me? It’s already happening. In the NBA, Jontay Porter is currently going through the legal system for a betting scheme. Apparently, he admitted that he planned to bench himself early, so a few of his friends could bet the under on his production.

Since the legalization of sports betting in 2018, there have been over 20 different sports gambling scandals across all major sports. For instance, in the MLB, a couple of Cleveland relief pitchers were taking money to throw bad pitches. Meanwhile, several NFL players were making bets on games including games involving their own team.

And, these are all the players that have been caught. Imagine if refs, coaches, and management all get in on the gambling ring. You might just end up with entire teams fixing games like old boxing matches—though I suppose it would be hard to get away with (or would it? It seems open conspiracies see justice vary rarely these days).

Sports Betting Is Bad for Sports

I don’t think I’m saying anything controversial when I say sports betting is bad for sports (and society broadly). I know it’s not controversial because the Pew Research Center is already finding that a growing percentage of Americans think its bad. In just a span of three years, 11% more Americans have become more pessimistic about sports gambling’s effects on society. Meanwhile, 7% more Americans have a worse view on its role in sports. Very few in either case think it’s good. Many folks are still unsure.

The biggest demographic jumps in that study are among men (+10%), white people (+10%), and young people (+18%). However, negative sentiment towards sports gambling has grown across basically every demographic.

Even without the conspiratorial lens, sports betting definitely has a negative effect on players. Players already receive a lot of hate when they have a bad game, but can you imagine what it’s like now when you’re the reason some guy didn’t hit a parlay on his child’s college fund?

There’s also just no winning as a player. You could be on a bad team and end up upsetting folks when you cause your team to win. Likewise, heaven forbid you ever end up in a slump or perform better than expected. There are bettors counting on you.

Ultimately, I just don’t care for the direction sports are headed in as the industry of sports betting grows. It’s bad enough having to see those silly mid-game parlays listed on the screen. It’s going to get a lot worse as gambling begins to corrupt players, coaches, refs, and management. Perhaps it already has.

Anyway, thanks again for reading! I’m obviously way out of my depth with an article like this, but so few of you read these that it doesn’t matter. Besides, this will be a fun read for me a few years down the line. As for you, here are some (loosely) related articles you might browse:

Likewise, here’s a list of ways you can help grow the site. Otherwise, I’ll see you later.

]]>