In Chess and Code, Move Past the Shiny

Photo of actress Anya Taylor Joy from The Queen’s Gambit in front of a chess set. She is looking at the pieces.

TLDR: Stressing over tools and languages isn’t useful for the new coder. Beginners should focus on learning reusable concepts like iteration, logic, and data structures.

Queen’s Gambit is a great show on Netflix that has been exploding chess' popularity. I love it! But!… one scene in the first episode frustrated me. Right after the first few games, Beth’s chess friend tells her to learn the Sicilian opening and gives her a book of chess openings!

That doesn’t deter her genius play, but it wouldn’t work for most beginning chess players. Beginners need to study tactics, not openings.

The shiny

In chess, openings are the shiny objects. They have attractive names like Sicilian Dragon, the Spanish game, or the Caro-Kann defense. People will go passionately instruct you to learn one or the other to win. They’ll call other openings “boring” or “lazy” or not for “real players”.

Sound familiar?

The same thing happens to beginner programmers.

New coders jump into a bewildering landscape of languages and code tools. “Should I learn Ruby or React?” “Should I start with one kubernet?” “Is JavaScript the same as Java?”

Without context, it’s overwhelming. There’s a ton of literature and a lot of it is actually quite entertaining. People pick fights constantly on Twitter to push their favorite tool or language.

But these are the shiny objects of programming.

Move past the shiny

I once heard a chess coach say that they teach new players two openings, one for white and one for black. Then players do tactics. Why? Because you’re going to spend most of your game either trying to cause or defend against tactics. The openings are just enough to get a player safely to the middlegame, where tactics and strategy are more important.

For new coders, I say move past the shiny.

Learn enough of a language to get started, then move on to problems and projects. Follow a tutorial and make changes to it. Do problems on a site like Exercism.

The core concepts for beginning programmers are:

  1. Logic, like if/else conditionals
  2. Iteration, like loops
  3. Data structures

Get enough knowledge to get to the core concepts and you’ll find that the language itself doesn’t matter as much. Many in the industry switch languages multiple times a day, and that’s because their foundation in the core concepts is solid.

If you liked this, find me on Twitter I’d love to chat about it. Also you can always challenge me to a game of correspondence chess on Lichess or on Chess.com!

writing

I write about technology I'm using and the tech ecosystem.

speaking

I speak at tech and other events. You can see the recordings/slides.

resume

Here's my work history.

contact me

If you're interested in working together, let me know!