me = SoftwareEngineer.new()

Why did I decide to study Software Engineering?

Jerry Brown
4 min readOct 29, 2020
Unsplash — Artem Verbo

Freshman year of High School, my gym teacher suggested I try out for the swim team. Although most swimmers start competitively swimming well before high school, I figured it was a better winter activity than wrestling (the lesser of two tight-outfit evils) and joined the team. My first year of nearly drowning in the slow lane, and years to follow, taught me so much about myself and the work ethic needed to succeed. When a sport demands your very best, you find out what you’re truly made of.

Until high school, I played team sports that require an entire unit of people to rely on one-another. If one player was off, the entire team was off. In the water, I quickly learned that your race performance is 100% dependent on your own abilities, which are directly correlated to your efforts. In short, you get out exactly as much as you put in. Swimming was the first clear example in my life of absolute ownership — knowing that every single decision or action would eventually be reflected in the outcome. Every time I chose not to snooze that 5am alarm, take a rest during a tough set, or skip a weightlifting session would make me that much better, regardless of what anyone else was doing.

I see a lot of parallels between software engineering and swimming. You can pour time and energy into a project, of which you have absolute ownership over. Sure, you frequently swim relay races (READ: pair programming/group projects) and your team (company), if you‘re on one, wants to “win the meet,” but at the very base level, you’re in control of your performance. Any swimmer will tell you that hitting a goal time at the final swim meet, even if your team loses, still counts as a successful season. This type of discipline implicitly triggers relentless drive forward.

Pixbay — toddwmac

My first job out of school was on the Community Experience team at Meetup, an NYC-based platform for finding and building local communities. The job was pretty straightforward: ensure that our users had the best experience possible. I had a knack for deep testing and problem solving — diving into the weeds with users to figure out the root of a problem. Born from a need to provide the best response, it wasn’t enough for me to find out what was broken, but WHY. Had we just launched something that could’ve affected this feature? Was the app being used in a totally unexpected way that wasn’t accounted for? Was the problem really a bug, or just a usability issue? I loved running tests across multiple browsers and devices to pinpoint the exact conditions of a problem, breaking the platform in a reliable way, and then investigating how we could work around it while waiting for the devs to make the fix.

I wound up focusing the majority of my time on technical troubleshooting — exploring and testing everything from our biggest features to our smallest. I became comfortable reading snippets of code and deciphering error messages, and was quickly realizing how valuable a technical understanding can be, even in a “non-technical” role. Each time I went out of my way to dig into something technical, I was transported back into the pool and hit with the same sense of satisfaction I got from a hard swim. To aid my efforts, I began some learning basic web development and was certain that learning software engineering was the next step for me.

I took a Product Manager job at stickK, a goal-setting platform that leverages behavioral science to empower change. My hope was to become a product expert while growing my technical skills on the job as much as I could, and continuing to learn in my spare time. Over the past few years I’ve been able to flex some engineering muscles, expanding my experience from simply fielding existing issues to drafting specifications for future development and working intimately with development teams. After hours, I exhausted a ton of online resources — everything from FreeCodeCamp to Codecademy to Udemy courses.

I learned a ton as a Product Manager, but found frustration at times when a lack of development resources limited progress. While I understand that software development rarely occurs in a vacuum, I was itching for more ownership and the chance to do something in which the output could be 100% dependent on my own inputs.

At this point in my life, my high school gym teacher isn’t around to nudge me towards my next life-altering activity. So I did it myself. I’ve decided to stop swimming alone and dive in full-time with a team of fellow beginners and a coach to show us the ropes. What I hope software engineering can provide is the opportunity to take complete ownership and learn more about myself along the way.

Swimmers, take your (hypertext) mark(up)s.

--

--