Learning to Code: It’s Never Too Soon (or Too Late) to Begin

Want to set yourself up with a limitless career that won’t become obsolete? What about a promising future for your children? Start now—there has never been a more opportune time. Hisham Khalifa lets you in on all the basics.

Hisham, could you please tell us more about yourself and what you do?

I’m a full-stack developer with a current focus on scalable data-mining systems. On the side, I also write Mac OS productivity apps, and recently started to contribute to open-source projects.

When did you get into development, and what attracted you to it?

Pretty much as far back as I can remember. It all started when I was introduced to programming when I was around six. I would spend hours typing code on a Commodore 64, and later an Amiga. There’s something very satisfying about not needing anything, apart from your mental muscle, to create something interesting, valuable, enjoyable, and useful with very few resources. That’s the appeal of development to me.

Why Mac development, in particular?

By and large, Mac OS is Unix, and I’ve always found such systems (including Unix-like OSS, such as those based on the Linux kernel) to be more fun, saner, and more flexible to use than other systems. The frameworks supplied by Apple are terrific and constantly evolving, without carrying a lot of legacy baggage.
 I also find the general Mac user to be, on average, quite supportive of indie developers, and always looking to pay for an app that’s worth the asking price.

On the other hand, when it comes to deploying web apps or back-ends, Mac OS would not make sense, so I use whatever OS is most suitable, usually BSD- or Linux-based.

YOU NEED TO MAKE THE TIME. THAT CAN ONLY BE DONE BY SACRIFICING CERTAIN THINGS THAT ARE NOT ESSENTIAL…

Can you tell us more about ExchangeWire and Binary Bakery?

Binary Bakery is what kickstarted my path to professional development around seven years ago. It’s my indie app development outlet where I sell a few of my Mac OS productivity apps directly. I also sell on the Mac App Store.

ExchangeWire, Ltd. is a London-based company that acquired the data-mining technology I developed at my previous startup that I co-founded in London—Pikslme, Ltd. As part of the sale, I am retained by ExchangeWire to continue developing the product, and work on a few other related projects.

Do you have a full-time job while you do development on the side? If so, how do you manage both at the same time?

When I first started Binary Bakery, I had a full-time, finance-related, 8-5 job. I would burn the midnight oil at home, and utilize lunch hours and dead periods at airports while traveling. If something’s important enough, you make the time—and this was pretty important to me, as I couldn’t imagine myself working in banking forever. 
 Right now, though, development is my full-time job—though between ExchangeWire, Binary Bakery, and other projects, I’d say the former takes precedence, with 80% of my time committed to it.

How can someone get into development while holding a demanding, full-time job?

You need to make the time. That can only be done by sacrificing certain things that are not essential, especially if your work does not provide much leeway in terms of timing. All you need is to spare an hour or two every day. You could even get by with as little as three to four hours a week to get through some Coursera courses.

What challenges do you face in this industry in Bahrain? Are there any challenges unique to this part of the world?

Finding local talent. We need more driven Bahraini developers. We need to create an environment to encourage and nurture them. That can be done by pushing them through learning environments that result in actual software being written. Establishing global industry links for degree programs is essential. The key word here is global, not local. Of all the computer science graduates in Bahrain, how many have shipped code, or perhaps contributed to open-source projects? We need to keep an eye on these metrics, and pick those who stand out.

A cultural shift has to take place, as well. People need to realize that writing code is not something that can be picked up in class. It’s a skill and an art form that requires a lot of discipline, as well as intellectual flexibility gained over time. As such, there is a premium on good developers. After all, you get what you pay for. Both aspiring developers and investors/non-technical co-founders need to realize this.

ONCE THE SPARK IS SET OFF, KIDS HAVE A MAGICAL WAY OF TAKING OFF ON THEIR OWN, WITH SOME GUIDANCE PEPPERED THROUGHOUT.

We noticed that you like to keep a very low profile with the work that you do—it’s almost faceless. How come?

It’s not deliberate, in any sense—I just happen to code and sell software. I’m happy that my software gets exposure, such as New & Noteworthy for two weeks on the App Store’s second-week running; Mac Gem of the Year by Macworld; and users at NASA and other interesting organizations.

Is there a large community for Mac developers in Bahrain or the region? Why or why not?

I’m not sure about Mac developers, though there is a large number of iOS developers from the region. Mobile is sexy, and everyone understands what a mobile app is, even people who’ve never used a computer—so it’s an easy sell, and quite accessible to new developers in terms of learning the ropes. Since so much functionality is already built into desktop OSs, desktop apps have been confined to the geekery—those willing to use more than just an office package, or the stock functionality on their computer—the productive computer user, if you will. On the other end, you have those developing games using Unity and other similar platforms, some of which use Macs.

What advice do you have for someone just starting with development?

As with anything worth doing, development and coding, in general, is hard. It’s not easy, especially if you want to do it well. It will be doubly hard if you do not have the passion for it. There will be moments of ecstasy, and moments of despair. You just have to persevere and keep at it when you get stuck. Always read and code. Keep abreast of the latest developments and paradigms; make sure you understand the basics and have an appreciation for things like data structures, algorithms, and functional and unit testing. Lastly, always have fun and challenge yourself: try to work on something that someone other than yourself would want to use.

How can we teach our kids development at a young age?

There are so many wonderful applications and tools out there that help ingrain the basic concepts of programming into kids’ minds: things like MIT Scratch and Cubetto. Cubetto is pretty cool, as it teaches basic coding skills using a physical platform coupled with a robot. Once the spark is set off, kids have a magical way of taking off on their own, with some guidance peppered throughout. I know that’s how it was when I was a kid.

Bahrain-based digital platform and publication for startups in the Middle East. Exclusive events, in-depth workshops, insightful content, and informative news. In strategic partnership with Tamkeen Bahrain, Zain Bahrain, National Bank of Bahrain, Zoho, Tenmou, and StartUp Bahrain.

Startup MGZN © 2020. All Rights Reserved.