Batista R. Harahap

Life As A Developer

Okay I'm being straightforward in saying: this is a rather narcissistic blog post about who else but me :p This blog is my venting mechanism or in a more subtle way, my idealism to share everything I have collectively gather throughout this irreplaceable and most grateful life as non other than a Developer.

It all starts on an 8088 XT my dad had when I was little. A game of Digger got my undivided attention to this CGA monitor with a box beneath it overlaid with a Turbo button to pump up more Megahertz lol.

What really made me to explore the computer was actually accidental. I forgot to insert that 5.25" floppy disk and it went into a BASIC interpreter. A simple black screen with some keyboard shortcuts guides on the bottom. I don't really remember how I learned that it was indeed an interpreter for BASIC, I do remember that my dad had a book about Apple Basic.

So I read an English book and I don't find it easy to understand. I asked for me to learn English and I was told to watch TV movies and learn from the subtitles which I gladly did. From there I got a basic understanding and some vocabularies. I read the book again and Voila, my first "Hello World".

Since then, the passion and the eagerness to know more about computers just grew instantly. Since the first Pentiums, I had them all, I broke a few learning about some basics in knocking a computer down and building it all up again.

It wasn't until Junior High when I got my first formal introduction to programming. It was in GWBASIC. The blue background interpreter/compiler ready to accept the commands I'm giving it. I aced every programming quiz through out junior high to high school. The teachers said because it's forbidden for them to give a 10 out of 10 on my report cards, I'd have to settle for a 9.

In college, it was the same shit with different smell. My first introduction to C/C++ and all its glory. I quickly was comfortable with all the syntax. A lesson of Data Structures, famously known for its Linked List implementation was the second Prograsm I experienced as a developer.

Because of the experience, I learned and practiced that everything around you even your body is made of structures of data as one transformed into nothing else than information. It is the core of any development efforts of any developers. This what made me see programming is actually about perspectives.

There are so many programming languages whether low or high level languages but the all speak the same thing which is data. I have the tendency to admire and love languages both spoken and unspoken, so for me to learn a new language is actually very satisfying. Exploring the new and unknown is part of my identity.

That being said made me realize that I need to add more to my vocabularies and gain more knowledge. The first design in Bango29.com incorporates what I call "Hello World Of The Day" which basically randomizes Hello Worlds across different languages including spoken languages. I also tweet some of it if I find some funny things about a language.

A few minutes I read an interesting article by Dave Fayram about going back to basic with programming here. Dave wrote about languages in programming, he said the more languages you learn, the more failure you will experience along the way. This is just what's great about developers, we encounter failure every single day while coding. Especially when it's your first time coding for a new language. But then somehow, we as developers, we have this unique drive within ourselves to gain from the failure and transform failures into invaluable experiences.

From where I sit, developers are by default entrepreneurs. I'm open for debates on this subject with a note before anything else. From code dead ends to prograsms, developers accumulate or even by nature have that basic traits as entrepreneurs, we do not accept failure as an option. Yet in the same time, we never worked a day in our lives.

The paragraph before this is again highly debatable especially after reading an article by Jeff Atwoork at CodingHorror.com titled "How To Become A Programmer Without Programming". The article divides between those who can and those who can't like either you have or you don't. Quoting from the article, here's a really good perspective:

To answer that question, you have to consider the obsessive nature of programming itself. Good developers are good at programming. Really good at programming. You might even say fanatically good. If they're anything like me, they've spent nearly every waking moment in front of a computer for most of their lives. And naturally, they get better at it over time. Competent software developers have already mastered the skill of programming, which puts them in a very select club. But if you're already in the 97th percentile for programming aptitude, what difference does a few more percentile points really make in the big scheme of things?

The Big BANG from that article was with this specific paragraph:

Passion for coding is a wonderful thing. But it's all too easy to mindlessly, reflexively entrench yourself deeper and deeper into a skill that you've already proven yourself more than capable at many times over. To truly become a better programmer, you have to to cultivate passion for everything else that goes on around the programming.

Putting it plainly, developers must think and feel OUT OF THE BOX. From my experience, logic is not the only ingredient to expand your mindsets. To feel or even to personify something out there in the real world will help!

I'm in the process of learning a new language and for this language, I'm gonna personify my learning curve like trying to win over a woman's heart. The language is Objective-C by the way. A very versatile and competent friend who codes almost exclusively in C and Python once told me that coding in Objective-C is like talking or exchanging messages with your apps. So I thought, heck let's make Objective-C a woman I'm gonna be infatuated with, winning or loosing over her heart is no more important than socializing, especially as a developer LOL.

Anyways, I promised myself since a few years ago that each coming year, I will have to learn new languages and new platforms at least 1. So far it's always been more than 1 which makes me kinda not focused with each languages, gripping the top layers and code my way based on it.

I frequently code either in PHP or a mobile platform, especially on mobile platforms, the challenge is pretty up there. With limited resources, it basically changed the way I code generally in any language, optimization and sometimes scaling are implemented from the start. I guess that startup mentality of getting it out there as fast as you can plays a big role before, but now it's about finding the right balance.

Again it is obvious that over time, from my experience, it's best to keep my development mind open for changes and filter them according to needs. Change isn't always good in general but it sure as hell keeps your adrenaline pumping. There's no other profession I would choose if I had a second chance in life. I am a developer, a geek and I love startups.

What keeps me going and thinking out of the box is for the very same reason you would marry a woman and start a family, it's just plain love with a topping of passion into it. Some also say when you're bed activities are awesome, the relationship gets to be more awesome by default. Closing this blog post, have a great PROGRASM every single day guys! We're the luckiest people on earth ;)

21 August 2011 by Batista Harahap on codes | coding | codinghorror.com | data | data structures | dave fayram | developer | developers | development | information | perspective | pointers | programmer | programming | prograsm | startup
comments powered by Disqus