If you work in marketing, you might want to learn a little computer programming. Buy a book. Watch a screencast. Check out Codeacademy.
No, really. Suspend your incredulity for a minute. I’ll explain…
It’s not because you should have to roll up your sleeves and start writing your own marketing software. I’m the first to acknowledge that not every marketer needs to become a technologist.
However, I do believe that every marketer should develop a comfort with technology. And, over time, advance from comfort to understanding to intuition.
It’s this intuition about how software works — call it “software thinking” — that is of immense value to modern marketers.
There are three reasons for this:
First, marketers are now flooded with an ever expanding array of marketing software to achieve their objectives, stay competitive, and keep up with the expectations of increasingly tech-savvy customers. But to non-programmers, software can seem like a black box. Learning how to program helps make that box more translucent. It moves from the Dark Ages of software superstitions to the Enlightenment of software reasoning. Knowing first-hand how software works give you confidence to wield it wisely and decisively.
Second, the cast of players in marketing’s universe now includes a wide range of technical professionals: IT staff, software vendors, technical consultants, creative technology agencies, and — increasingly — marketing technologists within the marketing department. Learning a little programming makes you better able to communicate with technologists in their native tongue. It reduces the risk of critical details being lost in translation. It gives you first-hand insight into the concepts and concerns that drive your new technical collaborators.
Third — and by far the most important — learning to program builds up process design skills. Previously, marketers didn’t have to do a lot of process design. But today, so much of the power of marketing software is its capability to systematize aspects of customer experiences and internal marketing operations, delivering more tailored marketing at scale. But it requires you to map out and implement ever more advanced processes that get “coded” and configured in such software.
For instance, consider this screenshot from a marketing automation platform (in this case, Eloqua):
This is marketing. It’s a layout of a marketing process that a marketer has created — a flow of steps and decisions to deliver the right experience to a prospect and route them to the appropriate stage in the marketing-sales funnel. When constructed well, such automated flows can have a significant impact on your brand and marketing effectiveness.
This is also programming. It’s presented in a visual manner, but the process implemented here is structured and behaves as a computer program: if X do Y, else do Z. It’s the same kind of thinking that software developers apply in their craft.
Processes like this are springing up all over marketing — not just with marketing automation software. There are processes for managing your content marketing pipeline, running your conversion optimization experiments, handling your social media engagements, and so on.
Sometimes such process configuration is contained in a single software platform. In other cases, you have to design processes that cross multiple software products and define critical human touchpoints — when does a marketer or salesperson intervene, who specifically is that, what do they do, and how does the opportunity progress from there. Even if you just sketch such processes on a whiteboard, you are, in a very real sense, “programming” your organization.
It may sound straightforward at first. But as you invent more sophisticated processes, as you seek to make them more efficient and robust, and as you start to encounter interaction effects between different processes, it quickly gets challenging.
Learning a little computer programming arms you with core concepts and skills for tackling these challenges. You develop a better sense of how to structure processes with maintainability and adaptability in mind. How and why to do refactoring. How to debug a broken process in a systematic way. How to anticipate and handle exceptions. How to use software engineering approaches such as encapsulation and loose coupling.
More than anything, playing around with computer programming — outside the context of an actual do-or-die project at work — is a great way to get practice translating abstract ideas into concrete processes. It builds and tones your “software thinking” skills.
Even if you never write a line of raw software code in your professional capacity, your new strength in software thinking will prove invaluable to your marketing mission.
Get chiefmartec.com directly in your inbox!
Subscribe to my newsletter to get the latest insights on martech as soon as they hit the wire. I usually publish an article every week or two — aiming for quality over quantity.
12 thoughts on “Why marketers should learn how to program”
In the same respect, I would suggest that programmers who play in the marketing technology realm (WCM, social media, etc.) should start learning the marketing part.
I can’t disagree, Scott. I earned my very first money when I sold a computer program, written in BASIC, while still in high school, where math and physics were my best subjects.
Although I took a business degree in university, I took calculus as my first year elective. (And it was my best mark!)
This interest in, and foundational understanding of, technology has served me well through a career as a journalist and, for the past 15 years, as a guy who brings technology to market.
I would also endorse Rlunka’s comment that turn about on this is fair play. Developers really need to gain a better understanding of marketing issues like user personas and requirements and give consideration to how customers are actually going to use what they are building.
Great idea, but, frankly, wishful thinking..
What needs to happen: marketers should come to grips with what they know and don’t know. For that which they don’t know (e.g. software development) they should seek out and find a trusted technology partner.
This partner will do more to understand marketing than the marketer will ever do to understand programming.
But then, that’s always been the way; good professional technologists always understand their business domain.
Thus the the key to success is a technology thought partnership.
The onus is on the marketer to clearly state the marketing objectives for the technology experts to understand and grapple with in concert with the marketer.
Scott, great article. Marketing technologists are becoming ever important, and the ones that embrace the technology wholeheartedly (Marketing geeks!) are going to be the major influencers within marketing departments in the future. Many marketers have limited support from IT to support these complex systems and integrations so they must dive in head-first. Those that do not learn to embrace the technologies and make things happen themselves will be left behind.
A very thought provoking article again. I agree with this on about a dozen levels.
But @DavidMaw- what you’re proposing is a great way for modern marketers to become an extinct breed. IOW, “don’t adapt, we’ll adapt for you.” Well, soon enough the marketing-minded programmers will find they don’t need the marketing minds at all.
Yup. Not gonna happen (for me).
Understanding enough about the other disciplines related to succeeding at one’s own discipline shouldn’t be important just for Marketing folks. As the pace of innovation and change in the workplace continues to accelerate, it has become more and more important to have people available who can straddle many different disciplines.
In the past we were used to building teams that had one person representing each discipline. The teams had long lifespans and knowledge areas were sacrosanct. Crossing the lines was frowned upon.
Today that is less often the case. We need teams to coalesce, accomplish, and dismantle in faster and faster cycle times. By building those teams with fewer people who have wider knowledge spans, we can reduce the communication requirements and accelerate accomplishment, thus innovation.
So, maybe Marketers should learn to program, but Designers should learn Accounting, Developers should learn to design, and so forth.
It’s truly another time in history where the “Renaissance man” is in high demand, and therefor can call his (or her, of course) own shots.
I do like programming, graphical design, watercolor, drawing, science, history, helping people, internet marketing. Is this making any sense?
Pingback: Marketers vs. Coders
Where should one start? What language, which platform etc?
I’d start with the Head First book on Programming, which uses Python. Platform — Mac or PC — doesn’t matter.
Was told PHP is easiest and most stable language to start with.
Can you write desktop applications with Python the way you can with Visual Basic? I thought Python was mostly a server language. Does it have a visual sdk?