0. Lo and Behold
Cerberus is the gatekeeper of hell, a vicious beast that destroys anything in its path. We took inspiration from this majestic beast - 3 heads working as one devouring any bug and feature on JIRA.
The first head. Dinmarc Paredes - The coding war machine, son of Jarvis, the Docs Bearer. He’s always ready to munch any tasks thrown at him and it doesn’t even matter if he knows or doesn’t know the tech. He is adept at reading and consuming documentation.
The second head. Paulo Panganiban - The Creative Detective, son of Athena, the CSS wizard. He’s capable of identifying bugs and css errors within striking radius. Always on the lookout for aesthetics and cool unexpected effects. The banger, we could say.
The third head. Joshua Chu - The Maestro, son of Da Vinci, Chugger of Coffee. Obsessed at trying to make the code look clean and consistent, setting the rhythm of the project, and making sure the project’s progress hit the high notes.
I. Genesis
We still remember the excitement we had on our first day, the thought of being trained by experienced developers is the dream for us self-taught folks. Coming into this boot camp, we were surely lacking a lot of things: Coding standards, CSS best practices, React/Javascript fundamentals, performance optimizations, and a lot more.
Despite these shortcomings that we recognized early on, we were not afraid to ask, teach, and share what we have to say. Coding has empowered us to speak up and be confident. Our mantra was "If you want to talk with the giants, talk like one". That gave us the courage to step out of our comfort zone and be comforted with how uncomfortable growth is taking new challenges head-on.
II. Challenge Accepted!
There were a lot of interesting tasks during our boot camp. Most of them are focused on sharpening our frontend skills, taking on challenges from Frontendmentor, and doing tailored tasks created by our mentors. One challenge that really tested both our technical and soft skills is our capstone which is a revamp of a landing page from the ground up - using the modern React stack displaying stories and projects whose contents are managed by a CMS.
Whenever we build something from the ground up, whether that's a house, car, or a new rocket ship, there’s always a blueprint needed, and that doesn’t differ from creating high-quality software. Our team made sure our project management is on the right track before touching any code editor, we first broke down the design into modular components and created tickets for each of them in our Jira Agile board. We made guidelines for our GitHub workflow as well as naming conventions for uniformity’s sake, integrating it with Slack updated us on every action on our development journey. In terms of the software development cycle, we chose the renowned Scrum methodology. Once we’re all on the same page, we went all in and got our hands dirty developing our features with a deadly combination of NextJS-TypeScript, Styled Components, Storybook, and React Testing Library with a solid backend headless CMS named Contentful. There’s a part of being a developer where we have no idea on how to implement a certain requirement, and we call them Spikes – an example is integrating Contentful with NextJS, dealing with site performance, SEO, and definitely a lot more. These carefully picked strategies enabled us to progress a lot faster and smoother than the previous tasks we had. Here are excerpts from our individual experiences with the capstone project and the entire duration of the boot camp;
III. Stumbles and Hiccups
“ There are a lot of challenges that I encountered during our stay. One challenge, that I would say has greatly contributed to my growth, is working with teams. Prior to joining the bootcamp I didn't have the chance to work in groups, much less to work using agile methodologies and git workflows. The process was new to me and definitely, there were a lot of hiccups while developing our capstone. One example is the inaccuracy of the estimates that we were giving to our task breakdowns, resulting in the delay in shipping new features and fixing existing bugs. Learning new technologies was already a lot to take but pair it with soft skill training at the same time and you'd easily be overrun by tasks and feel overwhelmed ” - Joshua
“ My fourth objective is to implement a filter feature in the Movie List Test, this is not a simple task, for a beginner, of course, think about Netflix and IMDb, every Movie has different kinds of properties, and those properties are separated with different RESTful endpoints, so I have to extract those properties and make them work in harmony. At first, I failed to implement this feature because of the lack of knowledge regarding object manipulation, so I came back to the drawing board and did my research on what’s the best and simplest way to achieve the said feature. “ - Pau
“ There's one task that gives me a challenge we have a Movie List Task it's the filter functionality, we have an endpoint that gives all the movies and series and the menu will filter depending on what checkbox is being marked, that task gave me a hard time, it took me a week to solve it and it works as expected but it's a little messy ‘DRY’ code, and after 3 days I managed to lessen the code and works as same as before, It's my first time working on this kind of logic, I always thought I can't solve this JavaScript problem but I'm proud of myself even it's my first time encounter I managed to do it myself. ” - Dinmarc
IV. App - roach ( no pun intended )
“ There are instances where everything is just too much for the day and we just have to regroup and rethink our strategy. But, we took this challenge head-on and developed a lot of techniques to combat problems that would otherwise cause delays. For me, I got a lot better at debugging issues, I explored the dev tools more than I had before. For example, I was able to identify the culprit for why my view is not rendering - I used the Network tab and investigated which API call caused the error. The best days are when we try to solve something collaboratively, it's something similar to pair programming but with 3 people trying to find a solution for a specific problem and trying to deal with some of the unknowns with the tech we're working with. By exploring ideas and being creative, we were able to complete our tasks and I'm proud to say that we've overcome the challenges that we're thrown at us ” - Joshua
“ So for my second attempt, it’s to utilize the power of ES6’s array filter method, usage of for of loop with a switch inside the loop, and it took me some trial and error to finally make it work right, and I must say, once you solve the desired outcome, it’s one of the best feelings in the world! That’s exactly the developer high we all love, the reward for being resilient, and the tenacity within us. “ - Pau
“ I solved it with the use of object methods for the keys and its values to get the data and array methods for the movies and created a function with a switch statement that will return movies that will match in one of the cases ” - Dinmarc
V. The Cherry on top
“ One of the highlights of my stay was during the second task that was assigned to us. Programming in general has provided me a platform not only to create things but also to share and teach what I've learned. Luckily, I was given the opportunity to explore my passion in passing on my knowledge to other developers. I was tasked to create a mini curriculum for my fellow interns to solidify our knowledge in Javascript fundamentals. I also curated and created some practice problems that we explored and discussed together. It's at this moment that I realized that I love to teach and I should learn as much as I can in the industry in order to give back to the same community that helped in molding who I am today. “
“ I will never go back to developing applications with JavaScript ever again – all thanks to TypeScript. It also taught me to collaborate with other developers remotely and with the use of GitHub. This boot camp educated me more than my college days because it handed us real job scenarios and tools. “ - Pau
“ I learned a lot from this boot camp especially when it comes to creating new projects, I will always use a code tooling like ESLint, prettier, ...etc for a cleaner and consistent code, Storybook.JS for building components, and Testing for testing JavaScript code, Github I only know the basic commands, as my journey progresses I learned the things that we need to know when working with others like when there's a conflict to the code and how to solve it, branching, creating pull requests and the most important how to review a pull request. I have a lot of fun working on these tools and framework. It makes me a better developer rather than creating a project with a simple setup that makes your code a mess. This development journey has taught me a lot of knowledge that exists in real-world projects. ” - Dinmarc
VI. Omega
After months of late-night coding and endless back and forth with VsCode. Everything has to come to an end. Our chapter has to be closed for another one to be written. It was awesome to work with other people because you can learn from them as they will teach you things that you don't know and you're also given the chance to do the same. I think that this chapter is filled with lessons that we would remember for the rest of our coding careers. We couldn't list all the valuable lessons that we got out of this boot camp but we can say this: we now have enough knowledge and experience to know what are the next steps to excel and work with other people in the industry.
It's about progress. Not perfection.
About the Contributors
- John Paulo PanganibanView ProfileCadet Software Engineer
- Dinmarc ParedesView ProfileAssociate Software Engineer
- Joshua ChuView ProfileCadet Software Engineer
Discuss this topic with an expert.
Related Topics
My Cadetship Journey transitioning from Vuejs to ReactjsTransitioning Between Languages : Lessons I learned and skills I gained
Navigating New Horizons: Advice for new developers joining a codebaseJoining a new codebase doesn't have to feel like exploring a black hole. Let's try to lighten up even the darkest corners of unfamiliar code.
Me, Myself and I: The Beginning of FullstackMy name is Lester. This is my developer backstory, learnings and journey as a boot camper in Goodfrontend.