Cadetship

6 months buffet with Goodfrontend

Hi! I am Aji and I entered this Bootcamp 0/10 but finished 10/10. I'm very thankful and satisfied yet I'm still hungry for more.
  • LinkedIn
  • YouTube

My name is Ajireh Ramielle Soriano, a college graduate in the course of computer science. I entered this Bootcamp with an interest in making websites, specifically in web designing.

To begin with, I only knew how to program in general. No hate on my college experience but It doesn’t really prepare students for the real-world experience so I had to self-study during my free time. Java and Kotlin with a little bit of python was the only thing I learned during those years. With regards to web development, I haven't truly touched javascript. I at best knew the basics of HTML and CSS, and take note, I was still watching tutorials on these topics. But looking back, I didn't know anything else other than those. It’s a big industry after all. Let’s dig in, it’s time to eat!

We had several tasks the entirety of the Bootcamp. Whilst following the agile development process; 

  • We used Jira and Trello for task management, I prefer Jira if you ask me. As I mentioned, we’re relying on agile methodologies so Jira is without a doubt a better choice; 
  • Individually or by group, we also utilized Github as version control and for code reviewing. This is also a way for our mentors to review our codes and leave comments for improvements; 
  • Confluence for documentation. I liked its simple and advanced features, the only downside is that it’s web-based so you can’t work on it offline. Thanks to confluence I was able to view the documentation of previous and current developers, it’s a nice place for sharing knowledge and discoveries.
  • Lastly, Discord and Slack for communication, this is where I take note that in a working environment, communication truly is the key. 

Anyhow, one by one here’s a run-through of what tasks we did and what I gained from it.

A Newbie - The First ‘Test’

Story Image

Our first project is a private task that I cannot reveal. At that time, I didn’t even know what to do nor did I know how long it would take me to finish the task. I didn't even know what npm and yarn are, I was still adapting to javascript but the task required knowledge on React and Material UI. I remembered the first day, Kane asked me if I had knowledge on React, but I sadly said 'No', I was expecting bad feedback but what I got is "Great! Lots to learn.", a short and simple message saying that there's still a lot of food to feed the mind and a motivation for someone like me entering this industry.

I was really nervous and excited at the same time, I was very eager to learn but I was afraid I wouldn't be able to finish the task during this sprint. For the first few days, I step aside from the current task. Instead, I focused on googling and watching tutorials on youtube. During this time, I was learning Modern Javascript, Modern React, and I was also watching tutorials on Material UI. I continued this process whilst doing the task. It was also a good thing that I started with Lester and Joshua. It was just the three of us at the start of the Bootcamp, these two were extremely helpful and understanding, they helped me out from project set-up till the end. Thanks to them, I was able to finish the task, but unfortunately, not by my own solutions.  It’s a wake-up call for me to learn more so I could come up with my own solutions for the upcoming tasks.

There's no pressure at all. The only pressure was inside my mind. I wanted to know these, I wanted to know that, there are a lot of questions inside my head that college failed to answer. Nevertheless, the curiosity and will to learn served as motivation for me to finish the tasks on time. But to be honest, I realized that you can never say a task is 100% finished, there is still room for improvement, and from time to time, you may come back and refactor your code as the level of your skills gets higher and higher.

Read and Write - Technical Code Reviewing Test

It was a well-spent sprint for me, this is when we reviewed the code of 8 candidates who also did the previous task. We were then instructed to enumerate the pros and cons of their UI and code, and then proceed to document the concepts we learned. Looking at other people’s solutions was an enjoyable way to learn. I spent hours understanding how their codes work while I did some documentation.

Through code review, I didn't just learn but I was also able to point out the mistakes of each candidate, with this, I know what practices to avoid doing next time. Every candidate gave out different ideas, I didn’t know how to test performance at that time so it was hard to say which or who is the best candidate.

Finally, another instruction was to state what the perfect solution is for the task. Weird but I don't think there's a perfect solution, only the best solution for every task, and oftentimes, the simplest solution is the best, so always go with it.

We all know that in the development industry (actually in most cases), teamwork is what makes the dream work. Here, we should take our time learning how to review each other's code, because surely no one is exactly the same and we have multiple solutions for every problem. Everybody has different kinds of techniques when coding and you can definitely learn from others. As I am still a newbie, this task turned out very beneficial for me, since I discovered loads of things.

Go Next - Countries API Task

Story Image

This is where NextJs and styled-components were introduced to me. Credits to Weng for helping me out a lot on this task, especially on the design, he was also a boot camper like me but he was already experienced, so via Discord Live, I watch him code and whenever I have a blocker he would help me out. It is when I learned how to properly use Flexbox. Also, this is like the mid-phase of the Bootcamp. I was getting pressured not by someone, not by the task, but by the number of things I need to learn and to take in. I remembered I was also having a hard time implementing dark mode and light mode in my website but also thanks to Pau for helping me to accomplish this last minute before the demo.

In addition, with this task, I was starting to see the difference between TypeScript and JavaScript, so I also dedicated my time to learning the basics of TypeScript.

Back to School - JS Fundamentals

Story Image

Recall on the first sprint, I was having a hard time making my own solutions so my mentors assigned me to learn more about the fundamentals of JavaScript and to do coding challenges in order for me to level up my logic and problem-solving skills. It was saddening because I wanted to learn more about CSS but deep inside I know I lack JS skills. Anyway, this part is where I mention the fact that this Bootcamp can point out your strengths and weaknesses. 

We did code challenges with the help of my fellow boot camper who also served as our mentor for this task, Joshua. We started from the easiest challenges to the hardest ones. Because of this I really got used to leet code challenges and using various Array methods such as .reduce(), .map(), .sort(), etc.

Our journey continues as we learn the fundamentals. Again, we focused on the problem-solving part and most were math or computational problems. We figured out different ways to solve a problem, but to be more general this is when I used both Imperative and Functional Programming. 

The imperative is like the traditional way while the functional is the modern one, imperative programming really enhances the way I think, it’s way more challenging and I think it’s a good way to implement your logic and to start your solution. Functional programming is based on what you know, this is why we should always be up-to-date on the technologies we're using, specifically to modern syntax since it makes our code ‘prettier’ and optimized. Worth mentioning, I learned how to do JavaScript Testing with Jest to make sure our solutions are working on all possible inputs.

Sneak Peek - E-commerce Sneakers App

Story Image

I saw the beauty of using styled-components with framer motion. Some people may say libraries are for lazy people, but depending on the situation it actually makes them smarter. My mentors often say, 'Always go with the simplest and easiest solution.', which is completely correct.

This task made me see how I drastically improved from the previous tasks. I was no longer pressured since I was confident that I can finish the task on time. Unlike before, I have lesser questions and It made me proud of myself. I was also continuing my JS study during this task. I realized I was learning new things way faster. Based on my mentors, my code structure was getting better, but of course, there’s still more to improve, just like how I remember Kane showing me the Two Hard Things in programming, so we should take our time to improve the readability of our code, like when we’re naming our functions and variables.

Thanks to this task, I was able to see a glimpse or a ‘sneak peek’ of how online shopping sites work, such as Shopee and Lazada here in the Philippines.

Crafting Something Big - The Goodfrontend Website

Story Image

This task is like our final product in this Bootcamp. After months of individual work, I can finally work with a team on a project that is more advanced. We developed a lot of strategies that either worked or didn’t. But I say the process was really fun and challenging.

During the development of this website, I learned a lot starting with;

  1. Project management using Trello, working with a team, we must be organized in order to know which task to prioritize and to whom is it assigned. Sometimes I create my own tickets to remind me of the things I need to do. 
  2. Utilizing GitHub, from cloning, fetching, pulling, and pushing changes. You can really see the magic of GitHub in making it possible for multiple developers to work on a single project without compromise. Very useful since we’re doing things remotely,  it took me a while to get used to git commands, I even experienced conflicts but by the end of the day, it’s still fixable. I also allotted time in reviewing pull requests, going back to our code review test, it’s another way for me to learn and to discover new ideas and solutions.
  3. Contentful, I personally think this is a great platform to learn content management. I learned a lot from initializing content types, creating content, and then connecting our space with our project. Also thanks to Lester for showing us the advantages of using GraphQL alongside.
  4. Reusability programming, creating a website gets easier if you program components to be reusable just like in code challenges, you should make sure your program can display the correct output whatever the input value is. So it’s best to keep this in mind right from the start or during project planning. This was also a suggestion from Kane when I presented my E-commerce Sneakers website.
  5. Implementing pagination, which is a feature I failed to include in the countries API task. I thought it was hard to do, but thanks to my improved logic on JavaScript, turn out to be a piece of cake! I was even able to do separate designs for mobile and desktop views.
  6. Apart from the learnings I mentioned above, I’m pretty sure there are more things I learned, from design, code structure, semantics,  file organization, testing, and enhancing app performance.

Regardless,  I learned so much especially with my teammates Lester, JP, and Evangel to help me out with my blockers and to enlighten me with things I don’t understand. I wouldn’t say anything much further since we have a separate article for this entitled “The Craftsmen of Goodfrontend Website”. Read the team’s full story here.

A New Me - Reflections and Learnings

This was a privilege, I can definitely see myself as a software developer in the future. This Bootcamp showed me that programming is not just a job but it can be something like a hobby, something fun, something you can enjoy, and something to be passionate about.

Turning envy into motivation. I'm somehow sure my fellow boot campers are better than me. What can I say, I'm a Computer Science student without a background in web development, I entered an IT field that is not exactly in line with my course. Anyway, having people around you that are better than you is an advantage, working on-site, they’re just one meter away but since this is home-based they’re just one chat away. I aimed to improve and not be better than everyone else because I know for a fact that there will always be someone better than me.

It's okay to copy-paste from time to time, just make sure you understand the code. I’m pretty sure copy-pasting is already a norm in the programming world, it’s not cheating since for me, it’s just another way of learning,  you still have to understand how something works before you use it.

Don't be afraid to ask questions. The Bootcamp Goodfrontend offers is a trainee-mentorship program, sometimes I  feel ashamed if I ask dumb questions, but it’s for my curiosity so I ask anyways. But these questions, these simple and very important questions, have filled my mind, my curiosity became the fuel for discovery, inquiry, and learning.

Falling behind is fine, making mistakes is not a reason to resign. Fortunately, this is a fail-free Bootcamp. Every day is a new day. During our daily stand-up meetings, our mentors ask for blockers, and with teammates to help out, I just couldn't ask for more. 

I'll end this story with this quote: 

"Give a Man a Fish, and You Feed Him for a Day. Teach a Man To Fish, and You Feed Him for a Lifetime."

I will always be grateful for this experience. As a fresh graduate, this is truly what I needed. I feel like I'm ready to take part in real-world industries. This is a huge boost thus a great foundation in building my Career in Web Development!

About the Contributor

Discuss this topic with an expert.