As a former electrical engineer and coding bootcamp student, here’s my piece of advice: Learning how to code is not enough.
By that I mean, if your goal is to launch a career in tech, start your own tech startup, then simply learning “coding” would not get you very far towards your goal.
There is a recent explosion of “coding bootcamps” in Singapore, offering coding classes to complete beginners. (Disclaimer – ALPHA Camp, the school I have built, offers one of these programmes) I share the view that the ability to read and write code is an essential skill in the new economy. After interviewing a few of our potential applicants, I’ve become increasingly concerned about the expectation and mindset people hold towards such bootcamps.
I attended a coding bootcamp back in 2012. At that time I just closed my first startup (story here), and was exploring my next idea in education, while working for a venture fund. With the limitation I experienced as a non-technical cofounder, I joined the bootcamp not to build a developer career, but to better prepare myself as both a tech investor and entrepreneur. Many of my classmates, however, were counting on the programme to help them launch a new career. As it turned out, the deciding factor on who eventually held a successful tech career had very little to do with their level of expertise in coding.
In definition, “coding” is to translate human thoughts into instructions that computers can understand and follow. There are different levels to the skill of translation, building an actual software product and becoming a professional developer. Comparing to a field we are more familiar with, it would be the difference between learning the English language, writing in fluent prose and becoming a journalist. All require the use of English, but on drastically different levels.
It would be the difference between learning the English language, writing in fluent prose and becoming a journalist. All require the use of English, but on drastically different levels.
To borrow the words of Larry Wall, the creator of the Perl programming language, there are three great virtues of being a programmer.
Laziness – is what pushes a developer to go to great lengths to reduce overall energy expenditure. It makes one write efficient programs and proper documentations that are useful to others.
Impatience – also known as the anger one feels when the computer is not effective in responding to your needs. This in turn results in the creation of programs that react and anticipate your needs.
Hubris – you take your work personally and do it with pride. Hubris makes you write and maintain programs that you don’t wish for others to criticise.
While I am not a professional programmer, I have observed many great leaders in the tech industry and below are the skills and qualities that they all share.
- Problem-solving mindset: Technology is created to solve problems. A developer needs to have the mindset to proactively tackle a problem and logically break down its parts. Actual work of coding is just part of the solution.
- Be curious: Twitter, Apple, Google – all these great companies started out as “side projects.” Many great developers have became successful due to their inherent curiosity to find out how things work, and their habit of tinkering to get to the bottom of things.
- Learn how to learn: As a developer, one will face problems and challenges that are completely new and unheard of. New technologies emerge every day. The ability of knowing how to search for answers and to learn from trial-and-errors are crucial to continue learning as a developer.
- Team work: Building products have gotten a lot more complex. It takes a well rounded team of designers, product managers, front-end, back-end, and potentially mobile developers to create the complete product. Knowing how to work effectively in a cross-functional team setting is an essential trait to being a good developer.
- Persistence: A quality instead of a skill, but probably the most important. Beginners will experience a lot of frustration when your code doesn’t work the way you want it to. But not giving up is the only way to ensure success on your journey.
Learning how to code is a useful knowledge as it helps you understand the ways of a computer, and the manner in which we can instruct computers to act. But coding is still a far leap from truly understanding how technology works, and most important how to develop a successful career in tech. If you aspire to be a well-rounded developer, there is so much more to develop in terms of one’s skills, mindset and most importantly, attitude.