Jay McGavren's Journal

How a Head First author spends his days off

View on GitHub
2022-09-14

Subnautica Below Zero Game Design Analysis

Ever since I became serious about game development, I’ve been picking games I play apart as I go. Dissecting the controls, the menus, the progression gating. Subnautica: Below Zero is my latest obsession. Here’s a catalog of things I noted as I played.

Read more...
2022-02-13

Advice for New Developers

I had a new reader message me today, and I think my reply could help other beginning coders as well (whether in Ruby, Go, or any other language). So I thought I’d share it here.

Read more...
2020-10-31

My Ruby Notes from 2006

A coworker found her notes from very, very early in her Ruby studies and shared them with the team. I was certain I had some as well, but couldn’t find them at the time. I just stumbled across them today.

The file date (yeah, I kept these in a .txt file) was from March 27, 2006. So this was a few months after the original demo of Rails - that was what made me finally hop on the Ruby bandwagon.

Read more...
2020-04-10

Unity Cheat Sheet

I’ve been reading Unity in Action: Multiplatform Game Development in C# by Joseph Hocking in my spare time. Like most of the Unity resources out there, it’s great as a tutorial, less so as a reference book.

I keep remembering that I saw how to do a thing somewhere in the book, and flipping back and forth trying to find it again. This is true for even the most basic stuff, like instantiating a prefab or accessing components of a GameObject. And then there’s additional stuff I learned in the docs and on forums. I needed a place I could refer back to for a quick refresher on all this.

Read more...
2020-03-13

Templating Plain Text Files With ERB

I maintain my talk slides in Markdown these days, converting them to PowerPoint using Pandoc. One of my talks includes exercises, all of which need to follow the same format.

Each exercise has these repeated elements:

  • Short URL to exercise on Go Playground
  • Long URL in a comment, in case anything ever happens to the short URL
  • Exercise preview
  • Cheat sheet (with short URL repeated so I can leave it up on the screen)
  • Solution

Read more...
2019-07-04

Coping with MacOS Mojave for Web Development

For pretty much every Mac I’ve ever owned, I’ve copied my configuration from machine to machine. But when one does so, a lot of unused cruft builds up over the years. So I’ve decided to wipe everything and start totally (well, okay, mostly) from scratch. This is a rare learning opportunity and so I’m documenting my setup here, for my reference and for yours.

This post is intended to be a living document. I’ll be updating it as I discover improved settings. Comments and suggestions are welcome!

Be warned: I am an Apple skeptic. I don’t like the direction recent MacOS versions have gone, and many of my settings represent an attempt to get back to “the good old days”. If you’re one of those fans who think Apple can do no wrong, and you want to make use of all the latest MacOS features, you may want to find another configuration guide. Now get off my lawn!

Read more...
2019-07-03

Setting Up New Google Accounts for Developers

I don’t like many of the default settings in GMail and other Google accounts. And sadly, there is no settings import, so new accounts have to be set up manually. I just switched employers, so I find myself having to set up a new account from scratch. I’m recording my settings changes here in the hopes it will help others out.

Read more...
2019-06-08

How to Hunt for a Development Job

Update 2019-07-02: I’ve taken an offer! Huge thanks to everyone who got in touch and/or shared that I was looking!

I was laid off from my job a week ago, along with many of my colleagues. Luckily for us, the friendly Twitter developer community has turned out in droves to help us. It’s generated a lot of leads.

I’ve noticed that my communications with contacts at these companies tend to fall into certain patterns. I ask many of the same questions of each. But I also find that I sometimes forget to ask certain details. Or worse, I ask questions in the wrong order, getting a bunch of details about the tech stack but then discovering the position isn’t remote-friendly, for example.

So I’m writing this post to help other job hunters avoid the same pitfalls. I mean for this to be a living document. If you have comments or suggestions, please get in touch!

Read more...
2018-05-04

Backend web development tutorial on YouTube

Treehouse asked me to write up an overview of back end web development to publish on their YouTube channel. Yeah, there’s a little sales pitch at the end, but if you want to know what web developers do, it’s a great summary. Our motion graphics team’s work is amazing, as always!

Read more...
2017-01-28

Motivating examples for beginning coders

One thing I learned from the authors in the Head First series who came before me is the importance of good “motivating examples” - a task that the reader can easily understand but requires learning a whole suite of skills to actually implement (coinciding as closely as possible with the skills you want to teach). Motivating examples are valuable because they give a reader a sense of progress as they work toward a goal.

Rosetta Code is basically a wiki-based collection of motivating examples for beginning developers. There are tons and tons of tasks on there, each showing solutions in a wide variety of programming languages. But a large portion of them aren’t ideal for beginners:

But there are a lot of great beginner-friendly examples too. I’ve collected promising-looking ones here, for people to mine for inspiration.

Align columns
Anagrams
Averages/Median
Averages/Mode
Character codes
Chat server
Check that file exists
Comma quibbling
Command-line arguments
Compare a list of strings
Count occurrences of a substring
Create an HTML table
CSV data manipulation
Echo server
Even or odd
File input/output
File size
Greatest element of a list
Guess the number/With feedback
Hash from two arrays
I before E except after C
Input loop
Leap year
Letter frequency
Longest string challenge
Mad Libs
Menu
Morse code
N'th
Named parameters
Number names
Object serialization
One-dimensional cellular automata
Palindrome detection
Pangram checker
Password generator
Percentage difference between images
Phrase reversals
Pick random element
Pig the dice game
Playing cards
Plot coordinate pairs
Rate counter
Read a configuration file
Read a file line by line
Read a specific line from a file
Read entire file
Remove duplicate elements
Remove lines from a file
Roman numerals/Encode
Rot-13
Search a list
Secure temporary file
Take notes on the command line
Temperature conversion
Text processing/2
Text processing/Max licenses in use
Textonyms
The Twelve Days of Christmas
Tokenize a string
Top rank per group
Unix/ls
Update a configuration file
URL parser
Web scraping
Word wrap
XML/Input

Read more...
Copyright © Jay McGavren.