Learn Blogging the Hard Way
Announcements and essays about the Learn Code the Hard Way project.
📧 A Brutally Honest Critique of Blender Thus Far
A Brutally Honest Critique of Blender Thus Far
📧 Art Guy Summer Week 1 Review
My first week of Art Guy Summer: Learning blender and re-discovering pastels.
📧 Art Guy Summer 25% Ends Soon
Art Guy Summer Sale Ends Soon -- 25% All Courses
📧 25% Off 2026 Summer Sale
Announcing my 25% off Summer Sale for July.
📧 How to Mic a Painting and a Keyboard
Summary
📧 Announcing Art Guy Summer, 2026
I'm going to recover my Oil Painting skills by painting live on Twitch every day.
📧 Java in 2026 is WAY Better
My experience with Java in 2026.
My First Experience Entering a Game Jam
I want to run a Game Engine jam, so I entered one to see what they're like.
📧 Learn C++ the Hard Way Finally Progressing
C++ the Hard Way Finally ProgressingI failed my first attempt at a great rewrite of this site.
📧 The Great Rewrite Has Already Failed
I failed my first attempt at a great rewrite of this site.
AI Didn't Kill Programming, You Did
You spent decades sucking all humanity out of programming and you're surprised it worked?
📧 Epic Supporter Pack is Actually 15% Off Now
I gave the Epic Supporter the wrong sale price.
📧 The Great Rewrite Announcement
Announcing the Great Rewrite and some small changes to the UI.
Announcing the Great Rewrite Project
I'm documenting my rewrite of this site from JavaScript to Go starting March 1, 2026.
📧 We Are Finally Off Discord
We are finally off discord and on a self-hosted system that should be better suited.
📧 2026 Winter Sale Almost Over -- Save 15%
Winter Sale Almost Over -- Save 15%
📧 2026 New Year Sale, and A Ton of Videos
First batch of Learn Go the Hard Way Videos are Live
📧 A Whole New Video Infrastructure
First batch of Learn Go the Hard Way Videos are Live
📧 First Batch of Learn Go the Hard Way Videos
First batch of Learn Go the Hard Way Videos are Live
📧 Learn Go the Hard Way, Module 3 Almost Done
I have almost finished Learn Go the Hard Way, Module 3.
📧 Announcing Learn Go the Hard Way, Draft 1
Learn Go the Hard Way, Draft 1 Available
📧 UPDATE: Your JavaScript Purchase is Now Pro-WebDev
UPDATE: JavaScript is Now Pro-WebDev
📧 LCTHW Newsletter #9: The Go Course Has Begun
LCTHW Newsletter #9: Go Course Has Begun
📧 LCTHW Newsletter #8: Curse You Rogue Python
LCTHW Newsletter #8: Curse You Rogue Python
I Made You a Baby Rogue in Python
A first attempt at a very simple Rogue in Python for beginners to study and learn from. This may become the basis of the new 6th Edition of LPTHW.
📧 LCTHW Newsletter #7: Go is One of The Languages of All Time
LCTHW Newsletter #7: Go is One of The Languages of All Time
An Efficient Go Study Guide
I've been learning Go recently and found the documentation is horribly organized so I made this list that reorganizes it into a logical study guide.
📧 The LCTHW Weekly Update #6: July 8, 2025
The LCTHW Weekly Update #6: Free Upgrades to Some Courses Coming
Announcing Painting for Programmers
Announcing my free drawing and painting course on Youtube specifically aimed at programmers.
📧 The LCTHW Not-Really-Weekly Update #5: May 14, 2025
The LCTHW Weekly Update #5: Where I've been, and cool new stuff in my game development journey.
I Preserve the Old Ways...I Guess?
I've realized that I seem to be preserving the old way to code, and I don't know how to feel about that.
📧 The LCTHW Weekly..ish Update #4
The LCTHW Weekly Update #4:
Rogue is the Best Project
My pitch for Rogue being the best for both beginners and old crusty coders like me.
📧 Learn C++ Important Update
A quick announcement on an important update to the C++ course regarding errors in the game-dev-starter-pack.
📧 Hurricane Milton Flash Sale
The only sale I will have this year, everything is 20% off during Hurricane Milton.
Very Deep Not Boring Beginner Projects
A list of projects that anyone with basic programming knowledge can do in any language, but have a lot of depth and aren't boring to do.
C++ Is An Absolute Blast
Where I try to explain why I feel like C\+\+ is so much fun, and to correct some misinformation.
📧 The LCTHW Weekly Update #3
The LCTHW Weekly Update #3: Hurricane Milton, Studio Redesign, C++ Praises, and Project Ideas for Everyone.
📧 The LCTHW Weekly Update #2
The LCTHW Weekly Update #2: Regex, Roguelikes, Restreaming, and more.
📧 The LCTHW Weekly Update #1
The LCTHW Weekly Update #1 contains all the things I've found and made this week.
📧 Epic Supporter Package Update #1
Epic Supporters are now automatically updated whenever I add a new course or make new exercises.
Just Use MSYS2 You Say?
Debunking idiots on HackerNews who think a total beginner can just 'Use MSYS2' on Windows.
Solving the Worst Problem in Programming Education: Windows
I've created a set of install scripts for Windows that helps people install many different programming languages using standard tools.
Minimum Educational C++
I go through various style guides and attempt to extract the minimum C++ someone can learn to be functional on many code bases, and in your own code.
How Long Does it Take to Learn to Code?
My standard answer when people ask me how long it will take for them to become competent enough to get a job.
Exploring the Replacement for C as an Educational Language
My thoughts so far on finding a replacement for C in teaching compiled languages and memory safety.
📧 Tonight 9pm EST, Values and Blockins
Time to learn about values, and the blockin style of drawing.
How to Read Programmer Documentation
An excerpt from Learn Python the Hard Way, 5th Edition that explains how I analyze learn from projects with poor or no documentation (which is most of them).
The 5 Simple Rules to the Game of Code
An experimental idea to teach the basics of a Turing machine before teaching loops and branching. Feedback welcome.
Announcing Learn Python the Hard Way's Next Edition
Announcing the new version of Learn Python the Hard Way which will be entirely focused on Pre-Beginner Data Science and not web development.
Ten Reasons Youtube's Streaming is Awful
I did a test of Youtube and its streaming has tons of problems. Here's 10 reasons why Youtube's streaming is mostly pointless when compared to Twitch. I'll use Twitch for streaming, then post to youtube.
Learn JS the Hard Way
SPA vs. MPA, FIGHT!
Getting realistic about Single-Page vs. Multi-Page applications.
Learn JS the Hard Way
How to Create Your Own npm init and Get Off npmjs.com
npm init and Get Off npmjs.comAfter struggling with npm init I figured out a way to avoid it entirely that ends up being easier.
Learn JS the Hard Way
Stripe is Paypal circa 2010
After integrating both Stripe and Paypal I've come to the realization that they are nearly the same, including all the evil.
Learn JS the Hard Way
Equal Height Holy Grail Layout in Modern CSS
Cheap and easy ways to get paths out of your web server logs.
Learn JS the Hard Way
Process and Web Development
What would a traditional artistic process look like for a web page?
Learn JS the Hard Way
A Frontend Development Process
An excerpt from Learn JavaScript the Hard Way teaching a starter creative process for using HTML and CSS.
Learn JS the Hard Way
NaN is Not a Math
A critique of the counter-claim that JavaScript's use of NaN errors is valid because it's 'math.'
Learn JS the Hard Way
Convoluted Team Code and Software Urban Planning
An idea about the irrational focus of developer technology on teams to the detriment of everyone else.
Learn JS the Hard Way
No Tracking, Part 3
The result of my work to eliminate my own ability to track other people around the internet, and how that might end up working in practice.
Learn JS the Hard Way
Your Side Projects are Your Future
How the prevailing view of side projects is a damaging perspective for early programmers.
Learn JS the Hard Way
No Emails, Update 2
Thoughts on implementing a method for not storing email addresses while still allowing for password reset, Part 2.
Learn JS the Hard Way
Getting Rid of Emails
Thoughts on implementing a method for not storing email addresses while still allowing for password reset.
Learn JS the Hard Way
How To Ask for Help
A brief description of how to ask another programmer for help with your code.
Learn JS the Hard Way