Cadetship

From Hobby To Career Path: My Dev Story

As a CS major who took an interest in front-end development, I’ve been learning web development as a pastime during university. Later on, what started out as a hobby that piqued my interest would turn out to be a career path I’d like to pursue.
  • LinkedIn
  • YouTube

HOW I GOT INTO TECH

As a CS major who took an interest in front-end development, I’ve been learning web development as a pastime throughout my collegiate years. Most of the stuff I’ve learned were from free courses and tutorials I would find online. Before I knew it, I made dozens of web projects. Later on, what started out as a hobby that piqued my interest would turn out to be a career path I’d like to pursue.

Being a computer science student, I started off pretty rough. Upon entering university, I didn’t really enter the field with a keen interest in software development and engineering. As a matter of fact, I was actually more interested in fine arts at the time. I planned to get into arts at university but I didn’t meet the required cut-off scores and evaluation tests set by the program, and my performance ended up resulting in a good candidate for computer science. I was down about it at first but since CS was my second choice for a major, there was an underlying interest and curiosity that pushed me to try a different route. Considering the fact that the world keeps evolving with the help of technology, I figured that getting to know the industry and world of tech would open up a lot of opportunities and possibilities for me. I gave it a shot having in mind that somewhere along the technical and logical thinking embedded in the world of tech lies an artform and a creative aspect.

And so, after spending the first few years of university struggling with studying math and improving my logical capabilities, I’ve started to dive into different areas of computer science and programming such as making databases with backend programming, learning about data structures and algorithms, tinkered with artificial intelligence and machine learning, and I even chose to specialize in game development since it seemed fun and interesting. While I’ve learned a lot and played around with these areas, the field that really got me interested the most was web development.

TAPPING INTO WEB DEVELOPMENT

I decided to learn web dev after I got introduced to it in a course I had about web development in Java. I didn’t really find it interesting at first. In fact, I was overwhelmed with it having these server-side concepts and technologies (such as Servlet API, JDBC, JSP, databases, etc.) surrounding web dev in Java. We would make web applications using the MVC model, and I actually had fun doing them as a challenge but I was still not fully interested yet. However, that changed when we were instructed to design our web project to make it user friendly and look like a proper website.

 This “creative” sort of web project in our class was my gateway to front-end development. 

I started off by learning Javascript from books and websites, doing coding exercises and problem solving challenges. I did that after a month or so before I started to dive into web development. I started learning HTML, CSS, and applying Javascript for client-side components. I spent a lot of time making hobby web projects and got creative with it. As a CS major who is very inclined in creativity and art, I was enjoying myself. I started learning advanced CSS, preprocessors like SASS & Less and other libraries that would get my hands dirty experimenting on client-side designs. After I got comfortable with styling and design, I moved on to Javascript frameworks.

I didn’t know where to get started with frameworks. Enthusiasts would always talk about React, Angular and Vue since these were the top JS frameworks, and I started learning Vue since it was more beginner friendly to me as a framework. 

TESTING OUT THE WATERS 

A few months later, I decided to explore the industry and applied for my first internship as a frontend web dev intern. In that internship, I had the opportunity to learn and use Angular in a big project. I learned about design patterns and working with developers as well as non developers in a team. Using Git and working on the same repository as a team was a key experience for me, as it was my first time working on a big project with other developers. It was a good starting point for me because it gave me a bird’s eye view of how the industry works. Even though it was a good experience, I was hoping that I could’ve gotten more advice and knowledge from an engineering perspective since most of the senior devs were always busy and I didn’t have the opportunity to work and discuss engineering topics with devs who were more experienced than me. 

After my internship ended, I immediately worked on other projects, and this time I was using React. While being busy with academics, machine learning and game development in university, I continued learning React and working on web projects for the rest of my collegiate years up until my graduation.

I applied for various tech jobs after graduating from university and ended up not following up with most of the applications, some of them rejected due to my lack of work experience and most of them I didn’t continue with the job offers because I wanted to work on web development. In the middle of my job hunting process, I got a message from Kane on LinkedIn, offering an internship / paid bootcamp for web development at Goodfrontend. Getting on another internship wasn’t part of my initial plan upon applying, but since it was about web development, I was interested so I gave it a shot and proceeded with the interview. 

I spent some time considering the internship and thinking about my next step while I went on with my other interviews and applications. After a lot of thinking, I realized that I probably needed more experience in my desired field of work. Looking at my current situation, I learned a lot about web dev and got comfortable with doing projects on my own which is a good thing, but I knew that even after my previous internship, I knew that I still have a lot to learn. I needed more experience for the things that I knew would take me to the next level and become a better developer—such as gaining more knowledge and advice from professionals of the field and learning how to work effectively with other developers. 

 Not soon after, I decided to join Goodfrontend. 

THE BOOTCAMP EXPERIENCE

I immediately got started with the bootcamp’s first test where each cadet will be evaluated based on their performance and approach for the test project using the desired stack as much as possible—mainly React, NextJS and Typescript. The purpose of this test was to determine a cadet’s strengths and weaknesses, reflecting the projects and assignments to work on for the rest of the bootcamp.

The test was a simple movie list app given specific instructions and design features using an external API. I found the test project easy to do, although I didn’t have much experience using NextJS with Typescript. I learned the stack on the fly, and managed to complete the test project after a few days.

Upon evaluation of my performance and reviewing my work, there were still areas from my code that can be improved. Specifically, they were mostly good practices in writing code and my CSS styling skills. I received great feedback and insights from my work that made it clear to me about what I should work on more. My perspective towards coding changed in a way where I consider writing clean, organized and readable code.

“It’s not just about making it work, but making it right.”

Following the test project, I was assigned to a team project that will mainly serve as an exercise where our focus was to improve our CSS and design skills. It was a great opportunity for me to tinker with advanced CSS on making projects with complex designs and learn other concepts of CSS and styling that I haven’t used before. I was able to step up my Grid and Flexbox implementations and good practices of writing styled-components along with props using Typescript.

Alongside our work that focused on CSS and styling, the project was later on assigned to implement a custom backend using GraphQL. Since we were using NextJS, we were able to integrate dynamic routing, asynchronous data fetching, as well as SSR (Static-site generation) and SSG (Server-side rendering). I only had a baseline knowledge of using NextJS before we started with the project. With the knowledge and advice of my fellow devs I was working with, I was able to grasp the use of server-side applications and different rendering strategies using NextJS. I also picked up some helpful coding patterns and organization from my teammates who had more coding experience.

Apart from the technical skills I picked up from the project, a key learning for me was the importance of creating an organized code base with a consistent structure. 

To quote what Kane mentioned prior to one of our standups:

“You want to make your code look as if only one person wrote it.”

Afterwards, we had a week-long sprint for a simple project and I proceeded making other projects using the same stack as practice. Eventually, I became very comfortable working on projects using NextJS with Typescript.

MAKING OF THE GOODFRONTEND WEBSITE

It was finally time to proceed with my biggest project in the bootcamp so far—the Goodfrontend website. Yes, this website you are currently browsing right now! 

The cadets were split into separate groups, each creating a version of the website and I was assigned to a group of four members to work on the website. One thing that I always knew I lacked was to be an effective team member and leader. I was used to working on my own, and I barely took the initiative in most situations. This is the reason why I was looking forward to getting started—it was a step out of my comfort zone and taking all the things I’ve learned into play, especially the fact that I get to work as a team with a big project. 

The project was truly out of my comfort zone since we are expected to engineer the website from the ground up. This included careful thinking and planning of the website’s architecture and engineering from backend to frontend with consideration of the user experience as a visitor of the site and an admin who handles the website’s content with a Content Management System (CMS). For this project, we were assigned to use Contentful as our CMS.

In the making of this project, I worked with my fellow associates in the bootcamp who had different levels of experience and skill sets, namely Lester, Aji and Evangel. 

“Our group would soon be called Team Maki, or just Team M for short. I honestly have no idea why, and my fellow team members prefer not to tell the meaning behind it.”

At the early stages of development, we started off slow and rough. The team planned to temporarily focus working on a single page at first, since not all of us were comfortable with the current setup and situation, including the use of Git and such, then we would move on to working on separate pages and sections of the website. At least, that was our initial plan as it didn’t take long enough for it to backfire on us.

At the mid stages of developing the website, our team suffered the consequences of our poor management and delegation of tasks. Our code base ended up being disorganized and lacking common ground, resulting in a lot of backlogs and the architecture was not optimized well. We focused too much on getting as much code written as possible, neglecting the proper architecture needed to make the development process much easier and effective. We would soon realize the tasks that should’ve been given priority and the roles of each member where we could work on our strengths and appropriate skill sets.

As the most experienced member of the team, I felt responsible for the shortcomings of our team. I was too focused on my own tasks and was not able to provide proper management for our team. I knew that I had to step up and take initiative to lead our team on the right track.

“You manage things; you lead people.” - Admiral Grace Murray Hopper

It was suggested that we should have our own roles and responsibilities on our team. I was later on assigned to be the tech lead of our team, determining the tasks to be given priority, and assigning them to the member suited to do the specific work. Evangel was assigned to be the QA tester of our team, as Lester and Aji both continued to work alongside me in handling the engineering of our website’s client and server side. After assigning our roles, everything went on smoothly, from the delegation of our tasks to refactoring and optimizing the components of the website. In a span of less than two weeks, we were able to get back on track with our development process and improved the status of the project drastically.

As much as I’ve learned so far from a technical standpoint, the biggest lesson I learned in the making of this project was how to work with others and the importance of non-technical / soft skills in this field of work.

This will always be one of my proudest works as a developer because it symbolizes where I set my foundation as an aspiring developer and is a reminder of the things I learned, the mistakes I made and everything we went through as a team to make this happen.

CONTINUING THE JOURNEY

From all the things I’ve learned from the bootcamp and outside of it, I still have a long way to go towards being a great developer. While I am uncertain where I’ll end up in the near future, my plan is to keep on learning, growing, making more mistakes and accomplishing every little step that would take me to the next level.

“Commit yourself to lifelong learning. The most valuable asset you’ll ever have is your mind and what you put into it” -Brian Tracy

About the Contributor

Discuss this topic with an expert.