“How can I learn database management with postgresql, how can I learn how to use Git/version control, how can I learn how to use pivotal tracker IN JUST ONE WEEK? Is this even possible?”
Those were the thoughts/questions that ran through my mind moments after I got the Andela boot camp invitation mail on 22nd October 2018. At first I was joyous that I had made it this far given that I considered myself a novice who only started programming 6 months prior. I also felt a sense of achievement. At least all my hard work thus far haven’t been in vain.
But moments later, a reality dawned on me: “I AM NOT PREPARED AT ALL”. I had expected that we would have at least 3 weeks after the interview to prepare for the boot-camp, but according to the mail, I had just one week to prepare before we would begin the bootcamp project.
All through that week, I continued the course I had been taking on building RESTful APIs. A course by Mosh Hamedani “The complete guide to building RESTful APIs” (wonderful course I recommend for back-end developers at any level). I tried implementing the project that Mosh was implementing in the course (A video rental app), but unfortunately for me, MongoDB was used for database in the course and postgreSQL is what we are expected to use for the bootcamp project. However, due to how excellent the course was, I made up my mind to complete it and also implement the project. I decided to try implement whatever Mosh did with MongoDB with node-postgres. I had to learn the basics of SQL queries, how to create and manage databases with postgresQL/PG Admin, and then how to use postgreSQL with nodeJS.
At the end of that week, I was amazed by how much I had covered in just a week. I had learnt how to create and query databases, CRUD operations with node-postgres, authorization and authentication with JSON web token and also test driven development. ALL IN ONE WEEK! (Note: I still hadn’t learnt how to use github and pivotal tracker).
The bootcamp project arrived on Monday 29th October 2018. We were to build an app named “SENDIT” for a courier service. I went through the 17 pages instructions/guide and was overwhelmed by it. I was familiar with some of the tools we were required to use, I had heard of some but didn’t know how to use them (github and pivotal tracker), some I had never heard of before (Travis CI, Coveralls, Code climate).
I decided to take it one step at a time, get familiar with the tools needed for week one’s task and implement the task (Building the UI of the app). I had made friends with 2 fellow cycle 38 participants (I met on the nairaland.com Andela forum). Luckily for me, both were already very experienced with git/git workflow and pivotal tracker.
Due to the very short time, I had to leverage on their experiences with both tools. I found writing pivotal tracker user stories and committing/pushing code to github boring and frustrating at first. I only wanted to write code and nothing else. As I continued with the project, I became familiar with the git commands, using the git workflow and using pivotal tracker for project management. By the end of week one’s task, I could use both tools well.
Week two was more challenging than week one. Writing the API endpoints and tests weren’t challenging. My biggest challenges were installing development tools like Babel and getting them to work as required. I also faced challenges integrating Travis CI and coveralls. But by seeking assistance from those 2 friends and researching thoroughly, I was able to overcome those challenges.
Heading into the 1st week of bootcamp and the 3rd week of the project, I am amazed by how much I have learnt over the past 3 weeks. It seems like I have learnt more over the past 3 weeks than I learnt in the 5 months prior to that. In 3 weeks, I have learnt about database management, git/version control, project management with pivotal tracker, Test driven development and alot more.
Now I realise that indeed the best way to learn is by setting targets, implementing a project/ building something real as you learn. Learning without using what you’re learning to build something meaningful isn’t learning. Build as you learn !. You don’t need to be an expert in a programming language/ framework or any technology before you can start up a project with it. You learn in the process. I don’t think I would have learnt as much as I have over the past three weeks if I didn’t have a real project to implement. My two nairaland friends have also been very helpful (I met them in person today for the 1st time). Whenever I am having a challenge with something, I seek assistance from them first before any other person or resource. And they are always willing to assist. I have also learnt to work harder than I used to (I used to be a very lazy programmer). I’m surprised myself at how hard I’ve worked.
It has been a great learning experience so far and I look forward to learning more in the bootcamp.
“Learn from cradle to grave”.