These are the two questions you need to answer about your product to identify your audience and niche. I think it's from one of Seth Godin's blogs.

For teaching content, these are open decisions I need to make. Who is it for? And what's it for?

Who is it for?

I have two options here – It can be for beginners/people learning to code or it could be for seasoned developers. There are pros and cons to both. There is already a ton of beginner content out there. Does there need to be more? On the other hand, there are always new people learning to code and seeking new material. There is less content for more advanced developers. At the same time, do seasoned developers really seek out tutorials and screencasts? At some point, don't you just feel like you'll go read the docs and figure it out. You don't readily search for learning materials. On the other hand, if there is some good quality material summarizing a new tech, that could save you time. Trust is important in this case. I wouldn't likely invest time to watch or read from someone I just found (to see if they'll save me time). I would have some go-to people whose style I'm familiar with and I'd go see if they have something on my new topic (e.g. Ryan Bates in the Railscast days, or Greg Polluck from CodeSchool). This in turn implies that I would need to present a consistent style in order to build trust. Like people know what to expect.

The other decision in the who's it for category is this: should I stick to one tech (e.g. Rails) or should I teach stuff that's common across programming regardless of tech stack. I think the answer is I have to stick to one tech stack, at least to start. I don't see any examples of anyone successfully doing a variety of tech. Of the teachers I know, Trey is all about Python, Hrishi is about Rails/React, Shruti is about CSS/Tailwind. Other examples from the Internet: Chris Oliver is about Rails. Kent Dodds is about React. Wes Boss is about Javascript. Then there are sites like egghead. That has a bit of variety but the different tech content is from different people.

What's it for?

This is more tricky. Why should someone consume my teaching content? What will it help them do? Will it help them get their first programming job? Will it help them get promoted to senior role? Will it help them feel more confident about a tricky concept? Will it help them save time on learning something they need to know for work?

Originally, I thought an easy place to start maybe by recording screencasts answering questions from my current students. And I did that a little bit. For example, Julian wanted to know how to integrate social login with facebook in his Rails app. So I did it locally and made a short screencast for him demonstrating the steps. I think this is a good start but I don't think it'll work to build a cohesive audience. Because Frida has Angular questions and Victor has React questions and Tanisha is plotting API data using D3 and Chart.js and Antonius is learning css/sass and media queries.  

All the above would make for very disparate content. It works for one-on-one teaching. But for content creation, I can't be like I teach all programming related things to anyone. Everything for everyone is a marketing sin.

Also based on what Richa was saying about YouTube, you have to nail down your niche and your audience in order to grow (assuming that's where I start until I can build out an email list).

So I don't yet know what it will be for, what will be my promise.


I recognize that I won't be able to think my way to these answers. I'll probably have to experiment for a while to find my niche, style, and audience. I also have to find the intersection of what I want to do naturally and what the people want, what's useful for them. If my intetion is to keep doing it for a long time, then this part is important.