Becoming a teacher of machines: Defining a philosophy that keeps me whole as a * developer.

Becoming a teacher of machines: Defining a philosophy that keeps me whole as a * developer.

Hi, I'm Reinhart. I rarely wrote in Hashnode as most of my content in reinhart1010.id are often political, comical, and off-topic, but I just stumbled across Hashnode's #4articles4weeks writeathon and thought it's great to give a shot. Sorry, I mean four shots.

I'm working on numerous tech stack and computer systems, which you can found on my official /uses page, my blog post, and of course, my @reinhart1010 and @alterine0101 GitHub profiles, like:

And yeah, I own the most number of tags/categories in Wes Bos's official /uses developer page list. My tech stack spans across operating systems, and I really wished to put any on the computer and phone fields. But after looking at how 1337 Linux users often being described as, I decided to put linux and android respectively.

Me on uses.tech

Beyond back-end, front-end, and even full-stack, I am an asterisk developer. Anything! From creating simple CLI tools, web apps (in static, PHP, and Node.js ways), and even mobile apps while currently tinkering in Arduino, computer networks, operating systems, system administration, CI/CD, RPA, and more back-end stuff.

Some of my works are available on GitHub and GitLab, where Hacktoberfest and #100DaysOfCode has become a child's play as I do contribute and maintain several open-source project including Webcompat.com and tldr-pages.

My developer soul has evolved from an aspiring JavaScript developer (in case you don't consider HTML as a programming language) into apps, systems, and beyond. And today, I'm practicing to be a reality ("real" reality, VR, and AR) and life developer as well, while holding the same set of principles as when I was just a JavaScript developer.

I wanna code because...

Of course, there are many, many reasons why people really wanted to code, ranging from passion to profession. To recap on things I've heard, people want to code because of:

  • Their interest in creating websites, and I do,
  • Because I just follow the trends who said CS will be more useful in future career,
  • Their curiosity in video games, also those people who owned a special, PlayStation "Net Yaroze" console,
  • Their desire to apply the knowledge of computer science to computer engineering,
  • Hobby. Tinkering about electronic things and how do they work,
  • Already hooked up with Texas Instruments calculators,
  • BECAUSE IT'S FUN!!!!!! (in the spirit of Scratch and MIT App Inventor)

The main reason why I still want to code is beyond what they believe the most. Even when financially unpaid, I've transformed my university's student association organization to start building things on top of Git and GitHub, including a Laravel-based event registration and attendance website which I initially developed way back since 2020. It's also the same moment as I was first exposed to PHP and Laravel as a Node.js developer, yet I still survived to master both of them, even better today.

Even when I left HIMTI, the site is still actively maintained by people

It's easy to do register for these events :)

Form Validation FTW!

And even with the advent of no-code platforms including Bubble and Siri Shortcuts, I still prefer to write code especially due to their flexibility in performing arithmetic operations. Just try to concat a specific string into all strings inside an array/list in Siri Shortcuts vs your favorite programming language.

And the reason is, because I love to teach computers all the things I love to do.

The teacher mindset.

Indonesian folklore highlights the importance of teachers as "heroes without traces of acts". They are often known so as knowledge transfer can be done discreetly or even secretly, unlike {{insert_superhero_name_here}} who often leave traces of their superpower steps everywhere they go and do. Teachers are directors of human knowledge, which will fruit into decisions and innovations. You won't be here today without following the steps and directions of your teacher who told 1 + 1 = 2 and 283 mod 2 = 1.

Programmers, indeed, are the teachers of machines and directors of machine knowledge. And even if we exclude the context of computer science, TV show programmers teach those broadcasting machines to broadcast specific parts of content at specific moment, even though not all machines can do that automatically.

Having the same mindsets as the teacher really helps me in solving the most frustrating part of software development: handling with bugs and issues. Just like those less-educated children who often create chaos in schools and homes, we have to understand the characteristics of the ones who we teach. If we talked about second-generation programming languages, we indeed talk about the technical differences between computer instruction set architectures (ISAs) like x86 and ARM.

Or in a newer-generation languages such as JavaScript and Python, we might need to consider operating system-specific differences into account. For example, one does not simply create native Android apps in Java the same way as they do on desktop with AWT or Swing. Not that just because Android has a distinct graphical user interface (GUI) toolkit, Android also has their own unique operating system features and APIs which might not be simply available on desktop, such as native calendar integration.

Goodbye Computer Science, hello Computer Literature.

Continuing my previous point, I have to learn to be and think as the one who I teach. That means if I'm teaching robots on doing things, I have to be a robot.

I haven't transformed myself into a robot until 2019, where I finally enroll in the computer science undergraduate program after having 5+ years in web development. When I was introduced about Object-Oriented Programming (OOP) a year later, I was mind blown that I'm, too, an Object.

Mastering programming languages doesn't make me just excel in Computer Science. I'm mastering Computer Literature, aka. the ability to speak, I mean print(), and interfacing with computers! Knowing the lingua franca of Java methods and REST APIs, trained myself to understand binary and hex, the essence of state machines, and even more!

Being a computer linguist makes me want to speak computers all day. Like !0 (which stands for true in JavaScript), the ones mentioned on the Jargon File, supporting "Interface in Polymorphism" on my nation while making personality tests out of pure code:

let i = 0
i = 100

(Note: This code might seem to be normal for JavaScript devs, but if you're irritated with this, you're definitely a Swift developer)

Speaking in code, sorry, I mean print-ing in code, has since become my habit. After all, I'm united with code, so I have nothing else to do rather than code every day, real and digital. Yeah, solving problems quickly and efficiently is important, CRUD is important, but the most important thing to be motivated on code all times is well, to be the machine you would teach through your code.

So, Object[], how do you think yourself as a Programmer extends Human implements MachineKnowledgeBaseDelegate? I'm adding an Listener to your exotic Story and properties!