This year I had opportunity to participate in GoTo Engineering Bootcamp which first module of it was Core Engineering. Sounds exciting, the pre-read material of this module was The Pragmatic Programmer by by David Thomas, Andrew Hunt and Clean Code by Robert C. Martin. Judging from the pre-read material, this module gonna addresses fundamental of software engineering.
Fast forward, it comes to my first day of core engineering bootcamp, our first task its really simple which is creating class in java with some attributes and methods. If you are majoring computer science or any other major that related to software engineer this task is quite easy, then they introduce some rules called Non-Negotiable Etiquette (will called it NNE onward). NNE make all of this task more interesting, because every lines of code we write must not violate any rules on NNE list, if we spot any NNE violations we should do rm -rf to our code.
Task that i thought gonna be easy become very very interesting, because when I learn it on college I used it just to create a product, now I must thinks what the reason behind every line, literally every line code that I wrote. Why I wrote this line? Is there any other approach than this one? Why not X, Y, Z? What source did I followed to end up using this approach? All this questions commonly discussed during this bootcamp, make me learn fundamental of software engineering from zero again.
This combination of fundamental learning and NNE make my point of view on how to write code totally changed, here some point that I learned during core engineering bootcamp:
Dicipline
Every line of code that you wrote is your responsibility and only yours, even if you take it from another famous person on the internet, the moment you decide to take it, it is your full responsibility.
Learn to unlearn
Its means being open to letting go of old ideas and habits to make room for new ones.
Debate is not always bad
In this bootcamp I faced A LOT of debate and its not always means bad as long we don't bring personal and we use reasonable argument debate will end with happy ending.
Automate repeatable task
If you had task that repeatable, even its just small task like adding new line every at the end of the file (a lot of rm -rf because this one) you must automate it.
Read The Full Manual
Who's there trying hours for searching at internet for their problem instead of read 10 minute documentations? Same here ✌️, in this bootcamp I learned how make documentation our sources of truth.
My time at the GoTo Engineering Bootcamp, particularly the Core Engineering module, was eye-opening. Starting with basic tasks, the addition of Non-Negotiable Etiquette (NNE) made every line of code crucial. This emphasized the importance of personal responsibility and staying open to new ideas. Overall, it reshaped how I view coding.