I am an engineering graduate from a Non CS background. I have been working as a backend developer for almost two years now. The tasks had become a little repetitive for me and frankly speaking a little boring. So I decided to resign and take some time off to decide on what I wanted to pursue next as a programmer. I am currently serving my two month notice period.

The post comes after an advice I received from someone I believe a lot in. What they said was essentially that to grow, I needed to create a niche for myself. I believe that to do this, I would need to add a set of skills that are rare to find in programmers. The effort and time required to acquire these set of skills are not an issue for me as of now.

What in your opinion are such programming profiles? How can I begin to acquire these set of skills? If you are working in one such profile, how has your experience been so far? Is there a possibility for me to create a niche as a web developer?

Thanks a lot for your time in going through the post.

  • 1
    Only hard bit is deciding what to focus on... create a niche as a web dev? How do you even think that's a niche? Dime a dozen web devs
    – Kilisi
    Nov 16 '19 at 8:33
  • Some languages are more sought after than others. One can specialize in database or security or delivery etc. Nov 16 '19 at 12:08
  • 2
    Don't suppose you happened to ask your advisor if it was a good idea to leave a job without something else lined up... If I saw this sort of gap (and reason) in a clients resume, I'd probably pass.
    – PeteCon
    Nov 16 '19 at 19:14
  • 1
    @Kilisi You can still excel at being a web-dev and thus stand out from the crowd. To some degree. But I agree, that's not a niche, that's becoming a specialist / expert in a field of high demand. Well, unless he goes for very rare web dev tech to support some very special software. Like Fortran based web services... or such^^ Nov 16 '19 at 20:15
  • 4
    You do not ask a question like this after resigning! You get an answer and line up a job - every time - before resigning! Life will teach you this - the hard way Nov 18 '19 at 7:00

There are few ways of adding "a set of skills that are rare to find in programmers".

  • The easy way is to identify technologies that are well established, rare but pay well and try to get into that area (for example COBOL). The down sides of this approach in my opinion are huge. Majority of the software like that was already written so your primary goal would be support of the code that might be 30+ years old, rarely add new features. Competition could be high b/c there are lot of people that know technology but there is no big demand for that. If for whatever reason you want to switch the jobs you are going to have hard time doing it. Advantages are that lot of people might move off that so if you land the job it might pay really well.
  • Another easy way is to jump on something new and shiny and learn it before everyone else. Disadvantage is that this is not established technology so every new version might set your knowledge to zero (good example would be Angular that has almost nothing in common with AngularJS). The technology could be easily killed by developer (for example Silverlight) which means that you either go to 1st category of rare skills or need to start from scratch. You would have to sell this new technology to the employer. Advantages are simple: if technology is going to stay around you are the one of the early adopters, you can claim "more experience" on it and theoretically have a better pay (in real life it is still depends on you since it is not rare when somebody who sees technology for the first time but takes a time to learn and experiment with it would gain the experience gap quite fast)
  • Hard way: master your current technology knowledge. Deeper you are going to go into the technologies that are used, deeper you would have understanding on how things are actually working. This way you can accomplish your tasks in more effective way (which is not usually means faster though) and essentially you would become the expert in this area. Disadvantages is that you still might slip into the 1st category and it is hard to pass HR bots since such knowledge is really hard to put in the resume.

I personally (don't know if this is the right approach though) try to concentrate on combining the latter two options. I build all my experience around the technology stack that I acquired 12 years ago plus I always on the lookout for new stuff. In my free time I create a lot of proof of concepts to learn new technologies that might be a great new thing and see how it might fit into my current projects. If there is something that would get me huge benefits during current projects work I might start to "selling" it to the rest of the team. In addition to that lot of other self-education like what are the current view on the best practices, architectural patterns, general computer science concepts, etc.

Anyway, welcome to the profession and keep in mind that in this profession you can stop learning new skills only after you retire.

  • 1
    Upvoted. Small correction, imho: You can stop learning new stuff any time, but that will likely show in your career path, it will stagnate unless you found your little niche of old tech that needs support until you retire. Then you can still see wages rising if you are good at negotiating because the company will need you and your old skill set. So, as long as you want to challenge yourself, go for your option 2 or 3, once you want to let things be as they are, go for 1). Nov 16 '19 at 20:19
  • Can i get a look at your proof of concept projects, just to get an initial idea of what it looks like and to what depth should I go into any given topic? Also what are some of the places(websites/ newsletters)/areas you prefer to be on a look for these new technologies you mention? Nov 17 '19 at 8:31
  • 1
    @python_noob these are not available anywhere and usually quickly discarded after the technology evaluated. Lot of times it is attempt to resolve the actual task I currently deal at the time or finished very recently. Usually it should be somewhat more deeper than tutorial. For example when I was evaluating Agular 2 few years ago (when it was still in prerelease state) I threw in together a website that kinda mirrored few tricky pages on our website.
    – AlexanderM
    Nov 17 '19 at 21:42
  • It'll do a 2 years in developer no harm following this answer. But in the long run I'm sceptical that technology niches are a thing, the actual valuable niches are more to do which the problems you solve. related article Nov 17 '19 at 23:06
  • @NathanCooper, well if you read my answer you would notice that I do not advise on niching down. I advise to build your knowledge on top of what you already do, be on the lookout for the new stuff and grow yourself as to using best practices and principles and of course the projects you've been involved in (this is given). And quite honestly, while the article has a grain of truth it makes ridiculous claims (comparison section). In real world familiarity with frameworks means that you would not need time to learn it and would not make rookie mistakes.
    – AlexanderM
    Nov 19 '19 at 2:13

My experience both personally and watching what happens with others is that the best thing is not to make a full change at all.

You have 2 years backend, rather than jump to something else, expand on that, either into infrastructure for backend or other directions, perhaps even hosting, but don't waste the experience, build on it. The more wholistic a solution you can cover the better. This is actually the normal progression of a career not that long ago and further back.

Think of it like, apprenticeship--- gets boring but gives you a start and overview--- journeyman--- after a while boring but again good experience and more knowledge in a wholistic sense--- master, etc,. Eventually Swami Guru on a mountaintop making a fortune in your sleep.

  • 2
    Indeed. That's a mistake that many make "I'm bored, let's do this other thing" .. OK, but now you're a newbie again, and newbies don't get paid much. Better to scale up, than restart. There's so many possibilities in IT.
    – AndreiROM
    Nov 19 '19 at 17:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .