Getting Started and the Learning Mindset
Being a technical marketer is as much about using technologies as it is about learning and adapting to new ones. The learning mindset may not get its own bullet point on a resume (even though it probably should) but its value increases with the rate of new technology. Lucky for you and me, the learning mindset has nothing to do with education or intelligence – it is solely about determination.
Determination is tested the most in the beginning when you don’t know where to start. There are tons of resources for learning Web and programming technologies but there are far fewer resources geared to learning these technologies for digital marketing. The corpus of technical marketing resources is mostly comprised of blogs, API documentation, open source code repositories and forums. Your search skills will be tested.
I have chased down plenty of rabbit holes and run into many dead ends. From all this confusion I have found a pretty familiar flow of how different types of resources are used. The rest of this post is about how these different resources are used in the ideation, development and execution of technical marketing tactics.
Ideas generally come from one of two places: a problem that needs a solution or the blogs of other creative digital marketing geeks. From there, the idea will generally have to be tailored to a specific use case.
Ideas + API Docs + Code = Execution
Part of applying a good idea to your problem is determining if this idea can be executed. For this, I often turn to API documentation. Whether it is the DOM API or a REST API for a marketing technology, this is the place to find out what the digital medium capable of.
API docs describe what the API allows a “client” (a.k.a. a program on your behalf) to do and how the API can be manipulated to do it. Sometimes reading API docs can even broaden ideas by introducing the full set of the API’s capabilities!
API documentation is typically structured in one of two ways, the REST API way or the code library/Software Development Kit (SDK) way. REST API’s docs generally need to describe what resources (structured data) or methods (things the API can do) the API offers. They also need to communicate how these resources can be obtained. These docs usually offer a description of the resource, the location of the resource (URL) and a sample resource representation in code.
A great example of a REST API is Optimizely’s REST API.
Libraries/SDK’s generally describe the “public” methods (methods that are for users of the library not internal workings of the library) that the API offers. These docs communicate what each method does, how the method is called/used and what the options are for using the method. Code samples are usually included to show these details.
GitHub: The Best Thing Ever
When its time to begin developing an idea, a great way to start is to look for code that either accomplishes what you want or gets you the first 80% of the way, Hello GitHub! If you don’t already know about GitHub you better learn quick. It is public code-sharing repository and version control system where you can find code on just about anything! It has enabled almost every great open source project and is one site that truly represents what is great about the Web. It is a great place to start from when launching your solution development.
Many web searches will lead to GitHub by default but GitHub also offers excellent advanced search functionality. If you can’t find the code you are looking for there, it may be a rare occasion that the code has either not been written or not been shared yet. When you find a repository that looks like what you are looking for, there are a few things you need to know to make sense of what you have found: 1. A repository represents a file directory and each file in the directory can be viewed separately. 2. The readme.md (markdown file format) generally offers a description of what the code repository has to offer and how it is used. 3. There are metrics associated with the repository that are generally an indication of the popularity and overall use of the repository. (More popular generally means more stable/trustworthy code)
StackOverflow: The Duct Tape of the Internet
When your brilliant idea looks executable and code is on the screen, there is still a way to go to complete you technical solution. You will probably find some rough edges and interfaces that don’t connect the way you want them. When these bumps in the road arise, the best place to go for quick problem-specific answers is StackOverflow. This site has solved more problems than duct tape, bubble gum and elbow grease combined. And like GitHub, StackOverflow is another “best of the Web” site in my opinion.StackOverflow is question answer forum site for programming questions. It rewards its users for asking great questions and providing great questions. This, in turn, increases the knowledge of everyone. Another benefit of the forum format is that many questions will receive several legitimate solution, so the likelihood that you find a solution that meets your needs is far more likely than not.
To use StackOverflow, you will generally start with a search. Googling: [error message] [programing language or application] will often land you on a StackOverflow page. But because the site is full of natural language question and answer, Googling a specific question will also turn up solid results from the site. In the beginning, if you are unable to find what you are looking for through Google searches, use StackOverflow’s excellent advanced search functionality there is a lot in there. In my experience, as Google starts to recognize that I have favored StackOverflow search results, I find that they are provided more often.
Finding answers on StackOverflow can be daunting at first but you just have to know what you are looking for. The /questions/ pages all have the same format which you will get familiar with.
The heading is the question or problem description that was originally submitted and directly below that is a detailed description of the problem. Below that are the responses. Users rate questions and responses based on their quality and how helpful they are. Scores reflect their popularity and generally reflect best practices. But note that if you don’t love the first answer, keep looking at answers below because you might find an answer that points you in the right direction. Also pay attention the date of the question and make sure that both the question and answer are both still relevant to your use case.
Finally, I have to mention Quora; part because the amateur philosopher in me loves is but also because it is great for asking higher-level questions. This is a great place to hear from seasoned pros and is a perfect place to discuss philosophical matters like if one approach is better than another. Google forums, Google+ groups and Meetups are also a good place to interact with people who are solving the same technical problems as you.
With all these resources, it comes down to a matter of time and determination. Never give up if a solution seems too difficult. Keep searching and keep learning. Learning the technical stuff is all about momentum.