I've carved a nice little niche for myself as a .NET developer with experience with a number of solid Content Management Systems, and it's served me well.
Despite this, I've always felt that committing myself to a single stack isn't ideal. My experience outside of the .NET platform includes PHP and Python, but the last time I touched either in anger was about 5 years ago, so things have obviously moved on since then.
As of right now, I have three options to consider:
* Stay where I am, do what I do best.
* Move to a different company, doing the same kind of thing.
* Move to a different company, and work on a Linux stack
I recently received an offer for the latter, at a company that is largely language agnostic. It's an exciting move for me, but it's one that worries me a bit, because the experiences are going to be so vastly different. I'll be going from my usual toolset on Windows and a managed framework on a staticly-typed language, to a stack I know next to nothing about.
Have any of you made the jump from experienced .NET developer to inexperienced Linux-based Python/Ruby developer? If so, would you recommend it? Did it improve you as a developer?
Finally, are there any good resources for transitioning over to a Linux stack? My command line knowledge is pretty poor, although I'm fairly handy with git and Powershell. Ideally, I'd like to spend the next 2-3 months solidly learning the tools I'll need to transition easily between stacks. I'll need to learn enough of the language and surrounding frameworks to be dangerous too, but I'm banking on that not being as difficult considering I'll be moving from MVC to MVC in most cases.
(Since someone will likely raise it, I'm not interested in moving to .NET Core at the moment. While I love C#, I feel that .NET Core is still very bare-bones, and will need a few years until it's anywhere near the level of the standard framework.)
The company I work at has projects in these languages. And I have contributed code to some of them. Don't make the Jump. Expand. There is no need to leave .Net/C# behind, keep your skills current with DotNetCore, C#, etc. but continue to expand your learning.
Python/Django/Celery is awesome by the way, and there is no jump, just new frameworks. If what you mean by jump is to focus on a new language/stack/framework, do it.
It is never ok to just stay with one. Find a company that uses different languages/stacks/frameworks across the company and keep learning.
If the company understands engineers, they will be looking for problem solvers and not framework experts. You will be considered a senior engineer regardless of what stack you have most experience with.