My First Three Days in Go Academy

Source : Cosmopolitan

So, this is my story of journey being Software Engineer in go academy. Before that, let me introduce my self. My name is Daniel Samosir, my friends get used to call me as danil. I’ve just graduated from Del Institute Technology on September 8 , 2018. And now i work as a Software Engineer Intern in Gojek, on the first day, we were given task of making an application using java but should be applying the non-negotiable programming etiquette. So what is that? Actually that’s a rule on your coding so that your coding seems good and another people can see your code in good way and can implement your code in their laptop (of course if your project is Open Source).

List of Non-negotiable Programming etiquette :

  • Consistent indentation
  • Spaces, no tabs. Yes we can fight over this. Reason given is that different IDEs define tabs differently.
  • New Lines at the End of File.
  • Follow standard conventions for naming
  • Follow standard conventions for project structures
  • No unused code committed including comments
  • Code Updates, Comments Rot
  • Code is the Single Source of Truth. Why create ambiguity?
  • Comments mean that your code isn’t expressive enough
  • Comments are an excuse for bad code
  • Run time environment and IDE environment should be consistent
  • Use .gitignore
  • Ensure that there is always a README.md that helps get new devs up and running.

And all of the list above is the rule that we must followed, because 
if we don’t follow the rules, then our code must be rm -rf . And what is rm -rf ? It means your whole of code in your project (include the root of folder) will be remove recursively forcely, in other way you’ll never see your code again unless you recode and built in non-negotiable etiquette ways.

On the second day, we built the same project but with diffrent programming language. The programming language is Ruby with version 2.5.3, and this is quite hard cause i’ll never try ruby before and the project quite hard too. But this is the challenge right? And the best part we must built the project with TDD (Test Driven Development) concept, if you never heard about that just click this.

And the third day, we were pairing to each other to solve new task and keep the same way using TDD concept and rm -rf rules. So, so, what I got from the past three days was when resolving a big problem. Try to chunk the problem into small parts so that we can find the most effective way to solve the problem.

I think that’s all that i wanna say in my first blog, and i’m sorry for my bad english cause i’m still learning :p. Last but not least, Be a Software Engineer not a Programmer. Thank you guys ! Cheers