When Rob Spectre took a position as a Developer Evangelist and eventual Head of Devevangelism at Twilio, he learned that good products don’t exactly sell themselves. In this great post about what it is like to be in marketing after being a developer, Spectre declares, “Good marketing is a product of the same inputs as good code; long hours, sweating the details, and the judicious application of experience doing it the right way.” Here, here.
I am in a similar boat as Rob, in that a large part of my job is not natural for me. As the Product Marketing Manager at Heroku, I felt it necessary to learn some code and actually deploy an app or two. I discovered one thing very quickly.
Programming is f#@king hard.
Programming is hard for me because I can’t just negotiate win/wins or write something up that convinces you that you will be more awesome simply by doing my evil bidding. I have to sit for hours on end, ignore IM and all the news and people, and just…learn. Pretty hard to do when you have the attention span of a spider monkey.
I’m no master by any stretch, but here are some tips for marketers considering learning a thing or two about programming:
1. Find “Your Way” and Stick with It
There are no definitive guidebooks in open source programming. There is no one way to do something. One person will tell you you need Xcode or RVM, and someone else will tell you that those are total garbage. Every guide assumes you have a different level of programming knowledge, and they all start at different points. It’s best to stick with a few mentors and guides and just follow them all the way through.
Chris Pine’s Learn to Program is great because it seems geared for people who have never programmed before. It doesn’t assume you know what certain terms mean already.
Every language requires you to install different things on your machine to get set up, and Windows, Mac and Linux are all different. Java developers don’t even use the terminal generally. I’d either make sure you walk through a complete tutorial or ask a friend to help you like I did.
3. Programming Takes Discipline
So, you finally get your machine set up and the tools you need to program, possibly in a Frankencomputer fashion if you did not follow Step #1. You finally dig in and start learning. Yay. You get confident, so you start watching “Breaking Bad” on Netflix at night instead of mastering your new language.
THEN YOU FORGET ALMOST EVERYTHING.
Programming has fundamental concepts that make it easy to understand, but there really is a lot to know before you can even run anything, much less deploy a functional app. If you want to learn, you just have to keep at it. I can’t tell you how many times I’ve had to relearn the same things over and over.
4. Google and Stack Overflow are Your Friends
If you don’t know what a programming term means or how to do something, Google it. If you don’t understand what some of the terms mean in the answer, Google them. It seems super wasteful as an exercise, but there is no fast way to get around this and eventually it does sink in a little. Wikipedia is somewhat helpful, but intimidating because everything is explained from a computer scientists’ view.
There are lots of newbie tips in Stack Overflow. You will get to know it.
5. Learning to Code, Manage a Database, and Design at the Same Time is Not Possible
Apps have interfaces and apps have databases. It’s hard to build all of the elements on your own.
Data seems fun and useful to me though. Our developers set me up with Heroku Postgres Dataclips so I can poke around with SQL queries without breaking anything. O’Reilly has some decent books on SQL if you’d like to learn SQL concepts.
6. Be Social! It’s Hard to Learn This Stuff on Your Own
Google only goes so far, so real friends can help you get the basics down too.
I hear about code at the lunch table every day and often ask coworkers dumb questions. This means I end up happily playing copyeditor or Analytics nerd for anyone who asks. I’ve also bribed people with cookies and wine for offering up a little help. Reciprocity and gratitude seem key here, so use your best judgment.
Too shy or too far away from a crew of helpful developers? Rails Girls classes were helpful as well.
<3 Developers by Understanding a Little About What They Actually Do
For ten years, I’ve spent my energy keeping up the latest marketing tools, news, and blogs but couldn’t navigate a terminal in the slightest. I do hope to learn more about programming and encourage other marketers to do the same. When we understand how our products are built, we improve feedback loops between the problems customers have and the solutions developers choose to solve them. Everyone is happy and we go eat pie.