What Is Real?
Monday showed up; I sat down, turned the computer on, and was immediately in code. That’s the way it should be. No technical hurdles; no hundred meetings to get to. Just me and my code. I really prefer the days when I can just sit down and get right to work. Hopefully there are many more of these!
My week involves refactoring old code into a new standard. I had to humbly ask my teammates “Can you explain what this code does? Because I can’t read it.” It turns out the code literally does nothing! That explains why I couldn’t read it. While I no longer feel bad about having to ask how to read code, I do wonder how code that doesn’t do anything got into our master branch in the first place! Shouldn’t the previous code review have caught that and eliminated that? More about this question later…
And, since this week’s theme is The Matrix, I experienced my first coding déjà vu this week. They’ve changed something! I suppose with our constant pushing, that’s always going to be true.
Last week, I pushed code with my fellow new hire. Now I’ve pushed my own work for the first time. That’s terrifying!
- Will the code review be brutal?
- Will I have a billion corrections to make?
- Will my team members lose all faith that I know what code even does?
- Will I question every life choice I’ve ever made?
- Will Batman find a way out of this predicament?
Have you ever felt like this guy? (Turn your volume up, and make sure you’re in a room where you can laugh. You can thank me later!)
Welcome to my world. Turns out the answer to every question is a resounding YES! I’ll admit that I’m trying to use humor to mask my immense frustration. In an attempt to emotionally detach and analyze my situation as objectively as possible, it seems I have several choices to make.
Of the 50+ comments in my code review, around half concern questionable code that I didn’t even write.
Despite the fact that I was given a resource telling me exactly how to accomplish this process, the code reviewers point out that my entire structure is wrong.
I was hired right out of school – this isn’t a secret, as my bosses met me at my graduation. I didn’t know what the word “saga” was 2 weeks ago (unless the words “Star Wars” immediately preceded it). Now I’m testing someone else’s saga file. I’ve already seen code that doesn’t do anything, but now I can’t tell the difference!
Other friends who were recently hired spent a significant period of time (generally 6-8 weeks total) with their company’s official onboarding process learning how to use the company’s tools. After 2-4 more weeks of observation, they are finally able to write unit tests. My day #1 included getting a 2 hour HR lecture and being shown my desk – then someone said “Go!”
“If you’re not frustrated, you’re not learning.”
I get to choose my reality. What do my peers think about me when they see me? That depends on how I react to my circumstances. Sign me up for the BLUE PILL every single time! One of my mentors taught me “if you’re not frustrated, you’re not learning.” Frustration is part of life, and it’s always part of a new career. The RED PILL is nothing more than whining, and I want no part of it.
When I started working for Nintendo back in 2006 (after the honeymoon period wore off), the work could be frustrating! But by the time I left, I had won Rep Of The Year. When I began with State Farm, not knowing each procedure was incredibly frustrating! Within a short time, I was one of the best adjusters on the team, and I was quickly promoted.
I’m frustrated. It will pass, and I will quickly learn what I’m lacking today. Suck it up, buttercup – it’s time to buckle down and get to work! My code is now submitted, and all issues were solved on time. I’m very proud of the quality in my final product, and I know more about what’s expected of me and my code base than I would have otherwise. My team came alongside me and explained everything I didn’t understand. Everything turned out incredibly positive in the end.
Are you frustrated? It will pass. Learn from it!
By Week’s End
As I’m writing this final paragraph, it’s Friday at the end of the week. It’s clearly been a difficult week, but things came together in the end. I wanted to point out that this story, too, has a pretty happy ending, considering what happened. I’m not going to end this post like Marvel ended The Avengers: Infinity War. (Oh snap!)
I struggled writing test code for a redux file that I built from pieces of other people’s code. That code review was… well, it wasn’t pretty. Over 50 comments later, I finally submitted some pretty good code. I fought with the code all week long. One of my co-workers came over to my desk, explained what was happening & what was needed, then specifically said “This needs to go here, that needs to go there.” He sat next to me for 5-10 minutes, and I suddenly understood everything I needed. In 5-10 minutes, I learned everything I had been fighting to understand because my teammate took the time to explain it.
We had a 30-minute meeting with around a dozen employees across the globe. I was asked to talk about some of the struggles we experienced during this sprint. Everyone acknowledged that this was a problem with how the company distributes its helpful resources, and it needs to be fixed. It was incredibly therapeutic to hear that. I’m not dumb – the tools that I needed simply weren’t there, and now they will be.
Life is a little more perfect than it was yesterday. And in a world where my company builds, iterates, fixes, and pushes to master everyday, it’s nice to see it happening inside the company culture in addition to inside our code.
Chronicles Of The New Guy
This is the end of the Chronicles Of The New Guy! I think it’s a pretty fair look from being a new hire, creating our own production code, successfully navigating the first code review, completing that first pull into the master branch, and finishing our first sprint (in record time). I’ve enjoyed keeping a journal of the experience, and I hope it has been both honest and useful to those reading.
As Neo famously said at the end of The Matrix, “I didn’t come here to tell you how this is going to end. I came here to tell you how it’s going to begin.” I hadn’t actually intended to end my story of a programmer to be The Matrix, but I’ll fully embrace the irony.