GO-SQUADS Tech 3.0 Mini Bootcamp: an Eye-Opening Experience

GO-SQUADS Tech 3.0

Early Expectations

Last week I had just finished my mini bootcamp — the first step of my journey as one of twelve GO-SQUADS Tech 3.0 intern. My internship experience so far is very different than what I had previously imagined. It also has a lot more learning than I had anticipated. Even though I have only experienced one week of this 12-week internship, I can safely say that this will be the most exciting, challenging, and rewarding experience of my life yet.

Bootcamp: to Learn and Grow

It’s clear to see that GO-JEK isn’t fooling around with their internship program. This is real. Some other people might tell you that their internship was boring or uneventful. Mine is anything but. One week in and I’d already learned more than I could’ve hoped for in a year. I remember the first question that one of the bootcamp coaches asked was,

Styles and Conventions

Often when we code, we do it in groups. Not just because coding in a group eases the burden of building a big software, it also disseminates responsibility so that each person could focus their attention on their respected responsibility. Each programmer codes their program on their own machine and at the end of the day, they combine their code in a single place called repository.

Int addTwoNumbers(Int firstOperand, Int secondOperand) {
return firstOperand + secondOperand;
}
Int add(Int a, Int b)
{
int c = a + b;
return c;
}

Automation

Building, compiling, and running your program can be a tremendously tedious action to keep doing every time you want to test or debug your program. It might be okay for the first one hundred times you do it, but it will get old very quickly, especially if the building, compiling, and running your program requires you to insert multiple commands into the shell.

#!/bin/bash
mvn -q clean;
mvn -q compile;
mvn -q test;
mvn -q exec:java -Dexec.mainClass=com.myproject.Main

Design Patterns

Programming isn’t easy. If it was, then everyone and their mothers would be doing it right now. Creating software that solves real-life problems is one thing, but creating one that is also efficient, easy to understand, and extensible software is another. Those of you that are familiar with the concept of Competitive Programming (CP) knows exactly what efficient code means. It means we need to create a program that takes the least amount of resources (money, time, storage) possible. Unfortunately, coding efficiently is good, but not good enough. If we were to only be concerned with the efficiency of our code, we would overlook another important of programming, which is to build an extensible software.

Communication

Last but not least, we need to be able to communicate with other people effectively and efficiently. It doesn’t matter how great of a programmer you are, if you can’t convey your intention to your colleagues or worse, your client, then what’s the point, right?

Sharing My Experience

For the upcoming months, I’ll be sure to keep writing and share my GO-SQUADS Tech 3.0 journey here. Not only this is the best platform that I can utilize to share what I’ve learned during my internship, but writing blog posts is also one of the best ways for me to practice my communication skills. Though if nothing else, I hope you take my experiences and learn from my mistake instead.

An up and coming software engineer, learning to love to write.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store