In order to improve my job options, I'm looking to study (even master) something that not many people know, and can give me a significant advantage in finding good jobs (maybe even as a consultant).<p>My background is in web development. I know JavaScript and AngularJS really well, but I'm full stack and willing to get into any field in software...
Well, since you know Angular, why not master it? Learn its quirks, how it differs from other frameworks, strengths and weaknesses, it's internals and how it works internally. It's seldom to find someone who can fully explain how a framework works. Keep yourself up to date with its developments, contribute to it.<p>Or you could master JavaScript instead. Keep yourself with up to date with the upcoming standards, know its quirks, potential uses and even formulate creative uses with the new APIs. Personally, I would go with this as you will be flexible in any environment that runs JS, framework or no framework, browser or some other platform.<p>Since JS is not just limited to the web, there's a bunch of other fields to explore. Not all are for finding new jobs, but knowing them could add sugar to your portfolio.<p>- Robotics, there's the Tessel.<p>- If you're into type-hinted JS, then there's TypeScript.<p>- Embedding JS in a microcontroller, there's MuJS.<p>- Programming on mobile, there's PhoneGap.<p>- Taking that further, where JS is your phone's platform, there's FirefoxOS.<p>- Into game development, there's a lot of game engines for JS.<p>- Desktop app development, there's NW.js
While I cannot tell you what niche would be best for you personally, I would recommend making something impressive in the process of learning whatever it is you choose. At least then, if the area of expertise ends up being a bad bet, you would have something to show for it; and this portfolio item could live far longer than the specific knowledge you acquire. Another option would be to make the learning process a teaching experience (if you are not worried about sharing trade secrets), such as by writing educational blog posts in the process.<p>The sense of your question is very much akin to asking for investment advice. Both have the same problems of being a gamble and being prone to having recipients unwilling to divulge their secrets. If I were to provide one piece of advice on choosing, I would say choose a technology related to a field you would like to learn more about for personal, less technical reasons. That way you enjoy the learning and have a more certain feeling of accomplishment.
Master what it takes to be a consultant. That's what you seem to want to do, and it's a better path than being an employee.<p>Attempting to get your first consulting gig will force you to master whatever you are missing specifically, instead of what you are looking for quasi-randomly.