Thrown into the Deep End - How Programming is Like Learning How to Swim
Reading time: ~ 3 minutes
Hi, Iām Joseph!
Hi, my name is Joseph, and I am a Ruby on Rails engineer intern at Planet Argon. Unlike the conventional path, my journey into the tech industry took a unique turn. As a former healthcare professional, I bring my unique set of skills plus X-ray vision to every project I work on (pun intended).
Before the Internship
My passion for solving problems and the quest for a better work-life balance drove me to take a leap of faith and pursue a career in the tech industry. I took some free online lessons but knew I needed more skills. So, I enrolled in LEARN Academy, a full-stack coding bootcamp, to develop more skills. Upon completion, I seized the opportunity to intern at Planet Argon, eager to immerse myself in real-world engineering challenges.
Onboarding
The first day was a lot of documents. Going over lengthy documents could be a grind for an eager intern who wanted to hit the keyboard and dive into problem-solving immediately. As I thought the onboarding process was only to get my feet wet to prepare for a short swim, the boat had already set sail for the deep horizon quite unexpectedly.
Throughout the first two weeks, many new tools were introduced to me (and my fresh M1 chip MacBook). The onboarding process eventually took about two weeks, which was longer than anticipated, and my experience reminded me of how new swimmers feel when they think they are ready to dive into the ocean for the first time. Working as a software engineer is like swimming in the sea; it is not the indoor swimming pool where the instructor hand-crafted the water temperature to fit our needs, and the splash of water was under constant surveillance; the ocean could sometimes be choppy and stormy.
While with senior developers and an attentive manager onboard, I knew my fears, like encountering a great white shark and breaking the company's codebase, were totally irrational. Setting up the development environment was the first wave I had to overcome.
I spent my first two weeks at Planet Argon setting up the environment. Things like that were spoon-fed in most bootcamp because of the fast rhythm and their focus on learning the fundamentals. But engineers were made to solve problems in a software company, especially Planet Argon.
Similar to swimming in the ocean, things like the water temperature, wind speed, and even the salt concentration of the water matter. Those are equivalent to reading documents online, finding solutions and documenting for future interns, and setting up local environments, which are not taught in most boot camps but still matter to software engineers.
For example, my M1 chip computer put up a good fight when I tried to install rbenv - a Ruby package manager. There were some instructions that I could only find from doing my research. Occasionally, I would reach out for help from my senior developers or manager if I found myself drowning in tasks, but the onboarding process was the first time I had exposure to real-world problems.
Working on My First Project
After many trials and errors, my local machine was set up and ready to go, and I was given my first ticket. Filled with excitement, I was ready to crack the code. However, I once again found myself lost in the deep end.
The first ticket I worked on was a task that enabled the admin users to edit voucher names. I remember feeling lost when I opened the application - I struggled to orient myself in the app and had no idea how to start. So I shouted for help from a senior developer (not literally, but you get the point). I began with the line, "I didn't know how to start," which summarized my situation. So they took me under their wing for a bit and tried to direct me without helping me too much so I could experience being stretched.
Stroke by stroke, after many hints, I started catching my breath slowly and trying to push myself forward as I got more bearings.
Working with the Dev Team
One valuable lesson that I learned was how to ask for help. When I was lost, the senior developers gauged me more. Usually, they found out I was not completely lost but just needed to learn how to ask the right questions for help. I decided to practice asking the right questions.
After talking to Liz, the senior developer, I learned that providing context was incredibly useful (duh). I could draft a message to myself before sending a pairing request to a senior developer. Trying to articulate the problem before reaching out to seniors allowed me to talk to myself, similar to the concept of rubber-ducking. As I articulated the problems in my head, I identified some of the root causes of the issue, and surprisingly, the solutions were often easy to spot once the problem was clearly identified.
I learned many other tricks that will serve me as a software engineer in my next job; they range from something like troubleshooting with Docker containerization and implementing changes on the backend side of clients' projects to something that seemed trivial but was helpful, like using the block code function in Slack to make communication more effective; all those lessons contributed to a positive learning experience for me and equipped me for continuous growth in my pursuit to become a software engineer.
Going Forward
Reflecting on my internship at Planet Argon, I was like a new swimmer hitting salt water for the first time. The journey was occasionally challenging, given this was my first tech job, yet through lessons I learned from working alongside managers like Ben and Michael and other developers such as Jaison, Liz, and William, I am ready for the next set of waves.