By John Sonmez January 19, 2017

Is My Programming Niche Good Enough?

A lot of programmers have a really hard time trying to find a perfect niche for them to work on. Usually, they get caught up in so many questions that they can't even see the bigger picture…

“Is my niche small?”, “Is my niche profitable enough?”, “I feel like there is not so many people out there in my niche”, etc… So, how do you know if you programming niche is good enough? How can you know if you made the right choice?

Transcript Of The Video

John Sonmez: Hey, what’s up, John Sonmez from simpleprogrammer.com. Today I got a question about one of my favorite topics, one of your favorite topics, I know because you guys ask me all the time, which is on specialization here. I have a whole playlist on specialization. I’ll point to it here. You can check that out if you’re interested. I highly encourage you to check it out if you’re looking at creating a personal brand, really setting yourself apart, building a name for yourself in the software development industry because you’ve got to specialize.

This question comes from Michael and he says, “In your opinion” in my opinion, “What is the best route to take when trying to specialize in web development? Do you think that developing solely HTML, CSS and JS is too generic? Instead should people be looking to go into web development focus on PHP frameworks, or get really good with Ruby? So, specialization in web dev, what do you think?

Maybe there’s a little bit confusion here. I think a lot of beginners probably are confused about what does it mean to specialize in web development and how can you specialize there. You can’t really specialize—I mean, okay, let’s say that you’re going to be a web designer, right? You could specialize in HTML and CSS and basically translating designs into that market. You could have that specific specialty and that would be the specialty you’d be—there are people that specialize in this. The first site that comes to my mind is css-tricks.com right? This guy, he’s doing really well for himself but he decided to—he realized that CSS was kind of complicated for some people and there’s a lot to know about it so he specialized in CSS specifically and he did really well. He made a lot of tutorials. He showed how the CSS properties work. This is really useful and he created that reference.

Now, everyone doesn’t have to have that specialty. If you’re going to do web development, if you’re going to specialize there I would not encourage you to know every single nook and cranny of CSS. There’s just too much. It’s a waste of time especially when there are sites like CSS-Tricks out there and there are other sites where you can look up the CSS stuff that you need to know and there are references for that.

Again, I’m not saying don’t learn CSS, I’m not saying don’t learn HTML and you should be at expert level in both of those of things if you do specialize in web development because you need to know, but more so than knowing every single intricacy of HTML and CSS as a web developer what you need to know is what is the scope of it, the breadth of this thing, what can you do.

Because if—what you want to do is you want to transition your knowledge from unknown unknowns, I think Steven Rumsfeld was the first person to talk about that. You want to transition it to known unknowns. Because none known unknowns you can tackle, known unknowns you can Google for. Unknown unknowns you can’t Google for it. That’s the problem is you can’t find the knowledge because you don’t know what you don’t know. But if you know all the things that you could possibly do with CSS and HTML then you can go and you can search and you can say, well, yeah, I don’t know the CSS property that will allow me to align the text directly centered or to create a border around this element, but I know it’s possible so I can Google that and I can actually find that or I can look it up in a reference manual, whereas if you don’t know that scope.

Your job as a web developer, and this is going to apply to anything, is the ancillary skills, the ones that you’re not deeply specializing in. What you have to have is not mastery of those, but you have to understand the breadth, the scope of it. If you watch some of my PluralSight courses, you can check out my link to all my PluralSight courses, you’ll notice I follow a very interesting format. All of them pretty much teach you the same way. I teach you how to get started, how to know enough to get started. I teach you the breadth, what you can do with the thing and then I teach you the 20% you need to know to be able to do 80% because that’s the most effective thing. Because I figure if I teach you those 3 things now you’ve reached the level where you can go and you can Google stuff for yourself and you can find out the stuff that’s missing for yourself.

All that is to say that’s sort of what you need to know at that higher level of web development but that’s not a specialty in web development. Now, you could specialize in JavaScript but that’s a little bit too broad, same thing with Ruby or PHP. What you really want to do is you want to niche down as far as you can to specialize one level and then specialize at least one level deeper and maybe even 2 levels deeper.

For example, let’s take JavaScript. Specializing in JavaScript is too broad. How about node.js? How about if we take it one level deeper and say node.js and since it’s popular right now react.js, or let’s say angular.js, a specific framework where you’ve got and sort of full stack in this case where you’re building an application and maybe even say there, “Okay, so what I specialize in is that I build node.js applications using MongoDB and react.js on the frontend. That’s a very, very thin slice. Or you might just specialize directly into like react.js or making some controls in react.js. That’s where you can have a specialization.

Again, specialization is the pinpoint where you have deep knowledge. It doesn’t mean that that’s all you know and that’s all you do. It just means that this is where you have the depth of the knowledge but you still have to have knowledge in the areas around it, right? Just because let’s say you specialize in creating react controls or something like that, it doesn’t mean that you can’t develop apps and do the backend and all that. You still need to be able to actually be effective, but that’s just the area that you’ve got the deep focus that you can be the master in where you can teach people and you can say that you’re the expert, so you can market yourself in that way. That’s the key thing with specialty.

Most people make the mistake, like I said, of not specializing deep enough. Specialize as deep as you can and if you find that it’s too deep then back up, but most of the time you’re not going to find that to be the case.

I hope that’s helpful to you, especially to you new web developers out there. If you find it useful, I’ve got a lot more tips and advice about software development career, about life, about fitness, about just about anything you can think of here on this channel. You can go ahead and click the subscribe button below if you haven’t already. If you did already, I’d appreciate a thumbs-up or a comment. Let me know what you guys think about this. What kind of advice would you give the person asking this question? I’ll talk to you next time. Take care.

About the author

John Sonmez

John Sonmez is the founder of Simple Programmer and a life coach for software developers. He is the best selling author of the book "Soft Skills: The Software Developer's Life Manual."