Career

You are an interpreter

Intro

I know a lot of you may wish to keep your head in the code, but becoming a great programmer depends on you becoming a great mediator. Imagination far outpaces our current technology, leading to extreme mismatches between what users expect and what our computers can actually do. As a programmer, you’ll be required to temper those expectations and produce a nonetheless desirable product.



You’ll need to empathize with the user and consult with colleagues on their views. Development is not a process that can be done by one person. Programmers represent the technology, which is a cornerstone to the process, but still only one part. Our products entirely hinge on the software doing something useful, but without teamwork working towards a shared vision, that’ll never happen.



Let me illustrate this with a very simple example. When I started Moocable, I did not have a defined idea as to what we wanted to provide. I had an inspiration, a set of hypotheses. Instead of spending months creating a full-stack application for a learning app, I quickly created a front-end website and started talking to users. That's it. Even now, Moocable is just a front-end website. Of course, as we grow, we will work on building a full-stack application with more features. But, the point is that knowing how to create a product isn't enough. Every product serves a need. And you need to know what need is your product serving.

Soft Skills

Soft skills is often the term used to refer to this part of the job—interacting productively with users and teammates in pursuit of a common goal. I don’t know if that term accurately represents this skill set. The ability to communicate is an essential skill. Your ability to get inside the user’s head is critical to the success of the project. The importance of you as a translator and mediator of technology cannot be overstated.