The Tao of coding

by NHM Tanveer Hossain Khan

015I grew up in Dhaka, a city of at least 17 million people, increasing by 500,000 every year. This is  a country of one hundred and sixty million, in an area the size of New York State, that will lose at least 11 per cent of its landmass this century due to the already palpable effects of climate change.  Hence, the citizens of Dhaka have been living in one of the most densely-populated cities in the world.
As a teenager, I found refuge from the city by learning Tae Kwon Do, eventually becoming a black belt before my 18th birthday.  There are five core principles of Tae Kwon Doe: Etiqutte (Yi Ui), Modest (Yom Chi), Perserverance (In Nae), Self Control, (Guk Gi), and Indomitable Spirit (Baekjul Boolgool). Sensing my own fate in a country of nearly two hundred million, forgotten by the world, I used the principles of Tae Kwon Do to craft a new career in computer programming.
When I started as a coder, I drew strength from the principle of Guk Gi, or self control. Without self-control, it is impossible to become a good programmer. In a world of constant distraction, coding, especially in the beginning, requires extreme concentration. It requires not checking your email or phone every 15 minutes (or every two).
In a place like Dhaka, it requires ignoring the political violence that may be going on outside your window. Perhaps, in that requirement, it serves as a way to escape from the world around you, an alternative reality where the coder can imagine the world they wish to see.
016As I continued coding, I drew strength from the principle of Baekjul Boolgool, or indomitable spirit.  In order to secure my first programming job, I had to learn ASP, a language I learned at night while coding during the day.
As the years wore on, I quickly realised that many of the newer ventures were using new frameworks, primarily open source languages. It would have been comfortable to remain focused in one language. I instead put in the effort to learn a variety of different schemas, architectures, and languages to allow myself the ability to work on a variety of innovative concepts.  I now can code across dozens of languages and frameworks, with a preference for Rails and Node.js.
While self control taught me focus, and an indomitable spirit gave me the courage I needed to apply myself in new situations, perhaps the most important of the principles I learned in Taekwondo was In Nae, or Perseverance.  In one scenario, when working for a New York based start up, I had to migrate a project from Rails 2.3x to Rails 3.0 (full stack with Postgresql, PostGIS, Redis), with hundreds of failing specs. In another context, I had to jump into a PHP project to execute on a data business development deal.  Without context for the underlying database structure, code or framework, I had a tight deadline to produce a data API within days.  An ability to work across platforms and domains creates greater options for continual career advancement over time.   As such, Coffeescript, Typescript, LESS, SCSS, etc, all became arrows in my quiver for confronting challenges. As an Olympic athlete relies on their training, the self control I learned as an early programmer and indomitable spirit that I practiced as I matured allowed me the patience in confronting new challenges.
Beyond the core principles of self-control, an indomitable spirit, and perseverance, there are some simple concrete requirements for anyone who wants to become a full stack developer.   If I could give a checklist for new programmers in Bangladesh as to specific tools that I’ve used, it would include the following:

•    An open mind
•    A willingness to take a user centric view of the world.  Allow yourself the freedom to imagine how someone else’s mind works in order to create a solution for them.
•    Map out an entire project in your mind before committing to it.  See the vision for the code that you will produce.
•    More concretely, make sure you have your project set up on your developer machine
•    If you are part of a team, show respect to your teammates by making sure your code works locally before pushing to production.

These three principles and a set of skills have moved me from a $2,500 project ten years ago to working as the lead programmer on a Tier 1 venture capital backed company that is confronting a potentially billion dollar opportunity.
More than that, these skills provided me with optionality and that is what we Bangladeshi’s need.  Our future relies on our ability to create options for ourselves and for our country. A nation of full stack developers is one that will always have economic opportunity and thus the ability to better one’s self and one’s country constructively. =
The author is the proud owner of a long name and CTO of Source4Style/Le Souk (http://www.source4style.com) in New York, USA

Leave a Reply

Your email address will not be published. Required fields are marked *

Advertisement