Caring Is Sharing

I manage people more than I get to write code. That may explain why this blog exists. But I also have another project. I’ve been streaming a “how to program in Go” course on twitch. These are 30 minute sessions to try to explain one concept.

It helps me because I spend more time presenting information. Sometimes I don’t really have a lot of time to prepare. I need to cover some Go topic for about half an hour. So far I’ve covered the basics of Go and how to write a Go application. But why bring this into my already busy life? There are some other things I want to work on, as well.

Getting Older

Of course, the first motivation might be getting older. There’s a belief that we cope with mortality through “forever projects.” We want to leave something behind that marks our passing. A kind of ‘Killroy was here’ message for the next generation. This big box of coping with mortality is part of the reason we build permanent things. It’s why we push our hand-prints into newly poured concrete. This may or may not be a gender stereotypical behavior, but it is a human behavior.

Now that I’ve covered that, I’ll say that’s the worst reason for doing something like this. I try to be self aware and I can’t discount the possibility I’m just making a vanity project. That’s not to say these forever vanity projects are useless. In many cases, these have formed the very cities in which we live. But I would rather do what I’m doing for other reasons.

Self Interest

I hope I’m doing it for completely self interested reasons. The biggest of which is that I hire and manage programmers. While managing programmers is a challenge, hiring is an even bigger challenge. Let me bucket my hiring challenges along a few axes.

  1. The highly trained and experienced programmer.
  2. Fresh out of computer science.
  3. Career transitions.
  4. Stragglers.
  5. Self-taught

I want each each of these folks to come in and be successful. Highly trained and experienced programmers probably don’t need something like this. They pick up a book and they’re ready to go in a few days or weeks. People fresh out of computer science programs also pick up languages quickly. They’re probably better off with a book and a project. They will not find this series of videos interesting or a good use of their time.

This is for the latter three. I want a set of easy to consume lessons that give them a meaningful introduction into a useful computer language. I don’t want to talk down to them, but I don’t want to assume prior knowledge. Depending on the role for which I’m hiring, there may not be enough senior developers and recent graduates. I have looked at people making career transitions, self taught folks, and money-balling a team with stragglers.

To be frank, career transition, especially from the military, is the easiest group of folks to integrate. They often have highly transferrable skills. What they lack is just the “how to write software” knowledge. These folks often have been in the workforce or military for some time. They have a family and other obligations. Even a six week bootcamp can be a lot to ask.

Stragglers are a little bit of a challenge. Not everyone has the same motivations in life but some people will work great in the right role. I want a chance for the straggler to up-level their skills. Sometimes the straggler (maybe they’re not a great programmer) is an incredible operations person. I want something they can watch over lunch or on weekends.

Finally, there are the self-taught. Strictly speaking, I’m in this camp. I taught myself C++ way back in the early 90’s. I then got a Masters in Computer Science and went on to work on (but didn’t complete) a PhD. Depending on their relationship with stack overflow, Google, and copy pasta, they can be a mixed bag. They might completely understand one part of a problem, but have no mental models to deal with other parts. I am especially making this for them.

Why is this self interested? Because the pool of senior developers is not growing. As developers become senior developers they often get sucked into other roles. I often don’t get to interview too many. Fresh out of school is also a limited resource. I’m having to reach out to less and less traditional avenues for talent. If everyone in the industry helped to up-level the latter 3, we’d have no shortage of talent.


Ironically, the second motivation after self-interest is love. Love for both people and love for my profession. I once knew a college educated woman with two kids. She was waitressing, and not at a nice steakhouse where tips can be very good. The place was a neighborhood place and a lot of fun, but I knew that child-care, rent, car, etc. made it a hard life.

At this same time the company I was working for was falling over itself trying to hire. This was during the Y2K boom. A lot of people roll their eyes - didn’t a bunch of those people get fired? Yes, some did. But they were laid off with some years of experience in technology. For most places in this country, they weren’t unemployed for long. Booms like this, although they fade, are a great way to get in for the next job.

I can’t speak to her motivations and I didn’t know everything about her life. However, in every sense she could have had a better life in technology. As an analyst, program manager, junior developer, or tester it would have meant more money, benefits, regular hours. Even as a data center technician, replacing hard drives and tapes (that was a thing back then), would have been a big step up.

The pandemic has given some people the time and space to up-level their skills. Long-haul truck drivers have left the industry for better hours if not for better pay. You can argue that someone needs to drive the trucks, or to bring me cheese fries and beer (although there is a good argument no one should ever consume cheese fries).