Ultimately this series will discuss not only habits and workflow, but also personal principles ingrained in our working life which have helped us create great work year after year.
For the second part of the series, I interviewed Shaiful Borhan, Web Analyst & Developer for Stampede Design. During the interview — which now feels more like a “bro chat” really — I learned a thing or two, especially that it is OK to take a break once in a while.
Hello Shaiful! Could you tell us about yourself and how did you first get into the Web, particularly programming?
Hello! As you know, I am Shaiful the web analyst & developer for Stampede.
I had been into programming since after I finished my Sijil Pelajaran Malaysia (SPM) eventually till much higher education which is all throughout Masters. It was during SPM break somewhere in 2000 or 2001 that I kept tinkering with programming stuff over at our family computer, so my dad bought me a book on an introduction to Visual Basic programming language.
I was so happy, although I gave up learning the language soon after.
But one thing leads to another. I decided to pick up BASIC soon after that, which used to come shipped with home computers. This was where I coincidentally played around with MS-DOS together with Windows booting processes along with its programming elements.
Figuring out things by yourself is a majestic feeling.
Moving on to more formal education, I took up diploma in University Teknologi Malaysia (UTM) around 2002-2005. The university taught us the proper way to learn programming — from introduction to programming to learning major languages such as C++ and eventually finishing the whole syllabus for web programming. Later on I took up Degree in Software Engineering. At this phase I learned more of Java & JSP. For my final project, I thought it was a good idea to feature a project employing PHP. That was how I first learned PHP.
For my Masters in IT — we learned advanced programming & database systems, network systems, et cetera, mostly theoretical stuff. I took up my Masters while working for Stampede at the same time, so I had the good experience of learning and being able to share my industrial experience with my fellow classmates and professors. Programming is having to know a lot of things, strategising, structuring and at the same time being experimental. That works out great for me.
You are one of the programmers who have gone through a lot of formal education in order to become a programmer. There are opinions going around that formal education is no longer necessary to become a programmer these days as online resources are abundant to help you become one.
What are your thoughts on that?
Heavy stuff there, man.
I have something to add here — while formal education is important, they would only teach you a bit of this and that in small doses. It will not prepare you completely for the real world. If you are into programming, it would help greatly if you spend some time learning by yourself as well, to complement the syllabus they’re teaching you at school.
However, if you do have the tenacity and the right attitude to learn programming by scratch, by all means go ahead. There is no right or wrong way, as long as it will all work out in the end.
That’s a good one. Because this is A Day In The Life series, tell us about your typical working day — from waking up to going to bed?
Where do we start?
(Zana: At this point he whispers, “Try not to make my life sounds boring, Zana” of which I reaffirms I won’t)
Because we all work EST while living in GMT+8 timezone, I sign in to work every day at about 11 am EST, which is about 11 pm Malaysian time. I go to sleep at 6 pm EST, which is about 6 am in the morning in Malaysia. The latest I would wake up is around noon. I will check work emails in case if there are urgent tasks for me — and if there are any, I’d tackle them first thing after waking up.
Out of work, I don’t read books much, but I have to say my online reading list is pretty extensive. I read everything from music, automotive, historical stuff, music reviews, technology, news and general science. The channels I frequent often on my Pulse app are: Best of Technology, Best of Science, Car and Driver, Smashing Magazine, Al-Jazeera, Reuters, Readwrite, Film School Rejects and Lifehacker.
I also play games, but non too heavy. These are games like Grand Theft Auto, the good ol’ Transport Tycoon Deluxe or Tropico. My kind of favourite games are slow paced, strategy games. I like to chill and take things slow.
In the evening I’d go for a jog or a futsal game with friends. I also used to play squash. I love a lot of outdoor sports and activities. Otherwise, I’d just hang out with my friends, go play snooker (I am a big fan of Ronnie O’Sullivan, and will stay glued to the screens when it’s the snooker tournament season), go see movies or eat out – nothing fancy just anything I’m in the mood for at that moment in time. Ayam penyet is my favourite.
Actually, you have a pretty packed and interesting day! How about work? How does your routine at work looks like?
I mentioned before that I often sign in at 11 in the evening Malaysian time, so I would make sure that I would get some dinner and if possible, at least an hour nap before work. Just to recharge, you know.
I don’t have a specific routine per say, however I’d like to start my working hours with a cup of tea. My favourites are green tea or honey lemon tea. Just to help build the mood.
Signing in, I would usually divide my work hours into four phases:
Light: In the first half of the working hours, I would check the emails again and proceed to do some light tasks. These tasks include making a to-do list of the day, replying to the emails about requirements, or solutions to some issues and also some software updates. These things normally do not take much brainpower, so I would tackle them first while building my momentum towards the second phase.
Extra heavy: Time to dive into projects! I usually dedicate three to four hours working on big projects every day. During this phase, I am very focused and will only attend to non-urgent requests in the next phase of the day. The team knows this and they would usually leave me alone until a few hours later, although sometimes I collaborate with Iwan on issues that would need his HTML/CSS and styling help.
Medium light: After toiling on the most heavy duty part of the day, I return to work on lighter tasks, but not as light as the ones in the first phase of the day. These are usually maintenance tasks which would take less than an hour to finish.
Heavy: After about an hour break, I would dive myself into projects again before signing off.
So much for not having a standard routine. That is actually pretty elaborate. Well done!
You have a notorious reputation, in a good way, for your programming skills with panache. Was there a standard learning process or system you adopted in the past to master programming?
I started out the formal way. I began through learning about flowcharts, the algorithms, the logic before coding, which for me works very effectively. I was quite lost trying to learn Visual Basic by myself, so I guess I am the kind who needs to learn things through the proper channels. Different things work for different people.
After I gave up Visual Basic during my SPM break, I later discovered Basic which then led me to learn MS-DOS, formatting PCs, fine-tuning Windows booting and et cetera. That was where I gained some basic understanding of programming concepts. It was like a serendipitous chance.
Entering university, I learned further on how program runs and how to structure codes. My hands-on experience started after I learned C++ and I could never turn back. I was already hooked on programming.
A couple of tips: if possible, try to sharpen your logic by learning pseudocodes and flowcharts before diving into programming right away. After gaining a good grasp of this understanding, only then you can try to write the code in human language before diving into syntax. However, for those with good logic, you may try to go straight into coding.
An article I read once described that programmers like to remain uninterrupted while coding until they reach a kind of trancelike ‘coder’ high. What do you do when you are stuck, after multiple tries to solve the problem?
Take a break.
If the task is not urgent, take a break. Do absolutely nothing work-related. Try to get away from the computer, listen to some music, or do a solo jam on the ukulele. That’s what I would do, but the gist is — take a break.
You could also take a look at smaller projects in the meantime. Sometimes solutions to your original problem are reflected by these smaller tasks, or in some ways, the solutions would somehow emerge on its own like an epiphany or a strike of luck.
However, if the project is urgent, I would consult the team or the higher power (Zana: In this case, he means Dov).
Name a few tips or hacks you did to improve productivity that helps a lot while programming.
I am going to recite this in the way of Baz Luhrmann’s Everybody’s Free to Wear Sunscreen.
Get enough rest.
Dual monitors. It helps especially if you are busy with Skype, emailing, programming for more than one projects and having to open many tabs in your browsers at one time.
Listen to music. Depending on my mood, I would listen to every kind of music – from trance to hiphop to rap to country. Have more than one playlist for this purpose.
Tea and snacks. Right now on my table I have these delicious Danish butter cookies, and of course, my favourite honey lemon tea.
Reward yourself with little things. I love food and personally, when I eat something and feel rewarded by what I ate, I felt good about it.
You are also pretty smooth with guitars. What are your favourite tunes to play to?
I have a lot!
I am currently learning how to play country songs, mainly from Kris Kristofferson. You guys will be the first to hear once I have mastered them.
Yay! That sounds good.
Final question: You could inspire a throng of young programmers who wish to be as good as with you. Do you have some advice for these padawans?
I’m a bit old school when you come to this, so might be a bit lengthy.
To those who aspire to become programmers, keep practising so you don’t lose your touch. These days there are an abundance of resource like Codecademy, Gibbon and many more, so you can basically learn anything at your own pace. Take the time to understand before coding hands-on.
Industry-wise, I would say that please do not give up and also not to be intimidated by the experts. They were at some point started out timid yet hungry like you do. Keep asking and be resilient in pursuit of learning. In the meantime, before asking, please also make an effort that you have learned or tried your best to understand things. Find the right group of people to ask and learn the skills to ask the right questions.
A bit of an experience sharing – I have come across a group of new programmers who seem to exude the vibe of knowing-it-all. Don’t do this. However smart you are, never give out any sort of attitude. So coming back to the old school bit, just be nice. Help each other.
We are in this industry to grow together. Eventually we will encounter the same group of people, so be generous with your knowledge.
We concluded the interview over Skype with a virtual fist bump, as how every end of the interview should be.
This is the second instalment of A Day In The Life Of series, where we feature every team member in Stampede about how we go through typical work day. This series gives the rare insight of how everyone at Stampede work remotely while we communicate and manage client expectations across multiple time zones.
Next in the series: Syazwan Hakim!