Reflections on Ten Years Professionally Programming

I recently hit a decade of professional programming. I’d like to take a moment here and reflect on what I’ve learned. This post is for me ten years ago. These ideas are always evolving. Maybe they’ll reinforce something you heard somewhere. Maybe you’ll agree, or disagree. I’d be interested to hear either way. Start now. “The best time to plant a tree is twenty years ago. The second best time is now.” Transitioning to programming was a leap for me. I wasn’t sure it would work. Now most people assume I’ve been doing it forever. It’s amazing what can change in ten years. Get started now. ...

January 9, 2024

My Annual Review 2023

Here’s my annual professional review covering 2023. Accomplishments Work was fun this year! I spent it building software for veterinary clinics. Specifically: leading the redesign of our onboarding, dashboard, and product offerings on the web, and then building major portions of an internal information management tool. Under ‘boring and essential’, I designed and implemented a comprehensive test suite that includes linting, formatting, and type checks, as well as unit and integration tests, and established continuous integration for an in-development application. ...

December 28, 2023

Take the Big Project

Something I’ve learned as an engineer: when presented with the option of working on a big project, or doing anything else, take the big project. The Big Project™ is a new dashboard, an AR/VR/AI integration, an experimental mobile or hardware app, etc. They take multiple people days to plan, and at least a month to complete, possibly with multiple engineers. People on the team are excited (and possibly a bit intimidated) by the idea of being the lead on the Big Project. ...

September 6, 2023

Don't Ask for Advice; Ask for a Code Review

Here’s some advice about programming I’ve found useful: “Don’t ask for advice; ask for a code review.” In this post, I’d like to explore what I think this adage means. When learning programming, we think there’s a trick to it, that can be solved with advice. If I… …learn the right language, framework, or text editor …attend the best CS program, bootcamp, or workshop …master the ideal learning strategy or morning routine …I’ll have an advantage. In my mentoring of new programmers, many of the questions I answer are about topics like these. I think the answers matter much less than people might think. I stopped giving generalist career advice for a while because I felt like my answers to these questions weren’t helping people. Or that I was communicating my privileges and survivorship bias. ...

August 9, 2023

How to Write a Resume for Transitioning to Programming

As a mentor at Code Platoon, I’ve been able to help many people transition into programming. In this post, I’d like to focus on a vital part of that process: crafting your transitioning-to-tech resume. Obstacle: Focusing on the Past The most common issue I see with transitioning resumes: too much focus on the past. A headline that says “Transitioning Chef and Aspiring Web Developer.” A summary that claims you are dabbling in programming while still running a kitchen. ...

October 27, 2022

How Luck Played a Role in my Career

I believe that luck is part of every professional journey. Here’s a sampling of the luck I’ve had. A passage I recently read caught my attention: “One of the first things [Stewart] Butterfield [(founder of Slack)] wants to know about when interviewing candidates for a position isn’t which programming language they know or where their computer science degree is from. It’s whether they believe luck played a role in getting them where they are– whether they think their success is a product not just of merit and talent, but also good circumstances. His goal is simple: to build a team where people don’t assume they’re special.” –Sara Wachter-Boettcher, ‘Technically Wrong: Sexist Apps, Biased Algorithms, and Other Threats of Toxic Tech’, 190. ...

August 15, 2022

You Have to Get Fast to Get Good at Programming

Great programmers aren’t fast because they’re great. They’re great because they’re fast. I’ve sunk a lot of time into being fast at Vim. I’ve used it as my text editor for eight years, co-organized a Vim Meetup, and I’ve written about Vim on this blog and Hashrocket TIL dozens of times. Why? Because I want to be a fast programmer. In this post, I’ll explain why I think being fast at programming is a worthy goal. ...

May 6, 2022

Am I Too Old to Become a Programmer?

“The best time to plant a tree was twenty years ago. The second best time is now.” – Chinese proverb I mentor adults who are learning to program after serving in the military. Some are in their late twenties, and some are twice that age. A common concern is that they are too old to be changing careers to programming. As a career-change programmer, I understand. I discovered programming around age thirty, with no experience and one introductory CS college credit to my name. I had the same concern. ...

April 28, 2022

Stop Studying, Start Building

If I could give one piece of advice to anyone learning to program: build. This advice might be most helpful to beginners. But it’s been valuable to me to revisit at different points in my career. In some ways, this post is for me. Steve Martin once said the secret to success is to “Be so good they can’t ignore you.” How do you get that good as a programmer? The most direct path I know is to build things. ...

March 16, 2022

Which Operating System Is the Best for Programming?

Which operating system is the best for programming? This is a perennial question in code boot camps where I’ve taught. I think students see the choice as a fork in the road, and they want pick the right direction. I don’t think there is a right direction. When you’re starting out, my advice is to try each one and choose for yourself. Don’t be this person: “I hate Linux! Full disclosure, I’ve only ever programmed on Windows…” ...

March 14, 2022