I've just completed my first coding bootcamp
As the title says, I've just completed my first coding bootcamp. It lasted for four months between August and December 2020 and this had quite an impact on the choice of tools used to re-build this website.
Buutti Oy was the company which held the bootcamp, and, displayed above, the company logo
How it began
It all started on July 29th 2020, one day after my birthday, when I noticed a Facebook Ad saying something like "It's time to get the missing certification for your coding skills, and learn more about TypeScript". Not sure what filters they used to target their ads on Facebook (or what information Facebook might have about my coding skills) but I really felt like the text was kind of written for me. I applied, and some days later I've been called by someone from the company holding the bootcamp and held some sort of phone interview about my skills.
Later, in August, I was very happy to receive the answer that I've been accepted into the bootcamp (there were around 50 applicants, and 15 available places).
The course was structured in two big parts, with some "career days" in between: the first part, which took 8 weeks, was the lecture period and the second part, was the project period.
The course actually started with two of these career days, where we got to know each other, and discussed our strengths and weaknesses, and how we could improve the chances of landing a job in the industry. That's also, when I realised that my profile is lacking some sort of certifications, and that I need to showcase some of the projects I've done during the years.
After that we started working with ExpressJS; we built some CLI application for a library, where the user was able sign up, to search, loan and return books, view and edit its information, etc. In it's first version we stored and worked with data (books and users) in .json files, then we updated the solution to use MongoDB.
Last 3 weeks from the lecture period were focused on ReactJS, where we started with some simple (perhaps cliché) to-do apps, then building small games like bingo and "the memory game", with the final period being focused on building a front-end using React for the library project done previously as a CLI application.
During the lecture period we also had some days which were focused on the SCRUM methodology, workflows and best practices when using Git and Gitlab. This is how we organized ourselves during the project period.
During the project period, we worked in groups of 5, focusing on building one project (chosen by us and agreed with the teacher, the main constraint being that it has to be written in TypesScript). My team and I have chosen to build an e-commerce website in 4 months.
We used React for the frontend, ExpressJs for the backend and PostgreSQL for storing our data. This is also known as the PERN stack.
For the frontend we used some template I found in the Figma community. With the help of TailwindCSS setting up the frontend for the project was a breeze.
I am especially proud of some custom hooks I've written on the frontend like
useAuth, a nice, reusable, datatable component written from scratch for the admin section of the application, and on the backend the ORM written from scratch in TypeScript, inspired by Laravel's Eloquent ORM (although not as complex as Eloquent, the one I wrote was able to handle hasMany and belongsTo relationships, has a pretty decent query builder and eager loading.).
For me, a guy which besides C++ and some VBA learned in High School and during the University studies, used to learn everything by myself and pick up new technologies mostly from courses, tutorials and screencasts online, this experience was really interesting. I will tell you why, and why I think this bootcamp has been different than taking some online course.
The whole bootcamp was:
- well-structured, we have completed a lot of small assignments, all of them being very diverse and handling different aspects;
- focused on writing code (practical side) and not so much focused on listening to someone reading text from slides (theory);
- very interactive, everyone was actively participating;
- very intense, we covered a lot of topics in a relatively small amount of time;
- especially productive, for me, as it was the only thing I was focusing full-time (for someone which is trying to keep up with the latest technologies mostly in the free time this is a huge thing).
I appreciate the opportunity, really enjoyed the whole bootcamp experience, and, I feel I've learned a lot during this period, especially about the Agile methodology and working in a team, which is probably the only thing you can never really learn before you actually participate in a group work.