I'm currently planning a career move, and would love some feedback on my particular situation.

I've currently got about 10 years experience working on C#/.NET in various companies, with experience in things ranging from code design and unit testing to .NET low-level concepts and security. I have found these pretty challenging and interesting.

But lately I've developed quite an interest in lower level languages, particularly C, C++ and Rust. I'm really amazed at the diversity of solutions that these sorts of technologies can be used in, while I find that C#/.NET is mostly used to build web or desktop apps/systems that automate business processes.

Currently, I'm trying development in these lower-level languages during my free time, but I find that I'm just not able to progress as fast as I want, nor am I as fresh and energetic to putting in another 2-3 hours daily for it after my regular work day.

So, I'm planning on taking 6 months to 1 year off work, to fully invest in self-study, working on some personal projects in this new tech and maybe even contributing to some open-source projects. I've got a plan in order to avoid the risk of taking time off and just wasting time.

Another reason I'm doing this is to avoid the "need" to start as a junior in the new tech. I guess the main concern future employers will have is what I've been doing in that time gap, for which I believe I'll have a proper response: working on personal and open source projects in C and C++.

I wonder if I am committing some sort of career suicide. I'm fairly confident in my plan, but would love to see some other opinions of the community.

How will such a decision potentially affect my return to a regular job in the new technology?

  • 1
    Hello, disposabledev, and welcome to the Workplace. Your question is a good one but it's gonna be closed as it stands (see votes for details). The meat of your question is how do I change specialty without starting from scratch, I think it's worth rephrasing to something like that rather than asking us if your plan is a good idea. – rath Feb 5 '18 at 9:33

I'm really amazed at the diversity of solutions that these sorts of technologies can be used in, while I find that C#/.NET is mostly used to build web or desktop apps/systems that automate business processes.

Perhaps it's just based on area, but the higher level languages (C#, Java, etc.) certainly do have more "interesting" applications as well. I realise this isn't the main point of the question, but I'd certainly keep an eye out for more interesting opportunities in what you're already familiar with - something may come along that surprises you.

So, I'm planning on taking 6 months to 1 year off work, to fully invest in self-study, working on some personal projects in this new tech and maybe even contributing to some open-source projects.

Unfortunately, I'd tend to caution against this for the following reasons:

  • You'll have a year or so's gap in employment which may raise questions on its own (you may say that you're just "self-studying", but employers may think you did a bad job in that time that you don't want to come to light in a reference, or something like that);
  • Personal projects that aren't open source are good personally, but hard for a company to verify - they will be seen of little, or no value;
  • Contributing to open source projects is a nice addition, but certainly not a replacement for industrial experience;
  • At least in my experience, you're entering into a field where there's fewer jobs available than the one you're currently in.

The "normal" route I'd suggest if you want to switch fields, and not jump back to a junior level role, is to obtain certifications, where they exist (I can't find any widely accepted certification for Rust, for example.) This will at least demonstrate a level of competence in languages that you have no direct experience of. However, I'd still caution against taking any large amount of time off work to obtain these certifications for the reasons outlined above.

| improve this answer | |
  • Thank you for the detailed response. As far as why I want to switch to C++, the main reason is I'd like a change and a change into something a lot more low-level than .NET. There may be interesting projects in .NET (not in my area), but nothing I've seen beats what I frequently see on cppcon presentations. But the main reason is I want to try my hand at something low-level. – disposabledev Feb 5 '18 at 14:18
  • As far as the risks you outline: - I'm hoping that since I already have 10 years of working experience, with plenty of references from past jobs, they'll not suspect that in that 1 year I did something horrible. But I guess I can't stop that. - the personal projects I'll be working on will be made public/open-source. - I know industry experience is better, but as I said, I'd like to avoid jumping back to a junior position and starting over (which I don't even feel would be fair for me) – disposabledev Feb 5 '18 at 14:23
  • - I know there are more jobs in .NET than in C++, but I'm hoping a lot more of them are more interesting. Plus, I'll refer to the main reason I'd like to switch: I'd like to work at at lower level of abstraction. – disposabledev Feb 5 '18 at 14:23
  • Ultimately, I don't know how else to do this. There is too much information to go over in just my spare time and am usually too tired at that point, so I'm hoping a year off isn't that bad. I keep reading about other developers taking time off. Some warn that this is career suicide, others that it's ok. I'm not sure what to believe – disposabledev Feb 5 '18 at 14:26
  • 1
    Very good point. I didn't think of that – disposabledev Feb 6 '18 at 10:28

I would avoid taking a break for a couple of reasons:

  • Long gaps look bad on resumes
  • Learning on your own is not nearly as valuable as learning on the job

With that said, there are a couple of good options available to you.

Find a company willing to hire C# developers to do C++ work

Many smart companies will hire experienced talented developers, regardless of what technology they have experience in.

A talented developer who wants to learn a new tech stack will come up to speed and be productive quickly. They will easily surpass a bad developer who has a lot of experience in the same tech stack.

Find a company that uses multiple languages/development environments

There are a lot of companies who need skills in multiple languages/environments. They need people who are interested in/capable of having a diverse skill set.

For example, my current company has a user interface application written in C#/WPF that talks to hardware that is running a C++ application on Linux. My previous company had a large legacy C++ codebase that was wrapped in a modern C#/WPF application.

| improve this answer | |

It seems to be a good idea to switch to new technologies and it will probably open new opportunities to your career, independent of the specific area.

I'm passing through a similar situation, where I was back-end developer and now I'm learning and practicing front-end development, with the idea to be a full-stack developer. There is nothing wrong to dedicate time to yourself and grow your own skills.

In my humble opinion, all people should do that.

It is important to say that I've started my development career with Java SE. After four long years of learning, working and practicing, I've changed to Node.js. I'm now employed in a company that uses, in most of the cases, Node.js as back-end structure.

Don't be afraid to evolve. You should never be afraid to evolve.

I believe that if you have financial conditions to keep your life safe until you get a new job, it will be a good idea to dedicate yourself (full time, on the break). Although, if you have full dependence on the current job salary, you will need to analyze your options to don't take dangerous risks. But, in general, I believe it will be good (to learn full time on the break).

Also, before starting to learn in full time, I recommend you to analyze if the city you live in have opportunities and is hiring developers on the programming language you currently want to learn. Or, depending on your personal situation, if you are available to travel to another place to work with the language you did chose.

I guess you know but is always good to reinforce that when you start programming a different language, you will not start as a Master, or Senior. You will need to acquire experience through time while you will getting better. You also should be prepared for a different salary.

Important to don't forget: - Analyze your financial risks - Check the hire opportunities for the language you want - Stay prepared for an initial different salary

| improve this answer | |
  • 1
    I think this answer can be made more helpful if it addresses the issues of "How will such a decision potentially affect my return to a regular job in the new technology?" The OP is talking about taking time off to be proficient in the new tech. – ValarMorghulis Feb 5 '18 at 9:41
  • @ValarMorghulis I said it will probably open new opportunities. – pitter Feb 5 '18 at 9:42
  • 1
    But you're not sure. The OP is asking about taking time off to learn new tech before switching. If you have taken time off to do the same, please mention it. There is some risk involved. – ValarMorghulis Feb 5 '18 at 9:46
  • 1
    @ValarMorghulis It is not possible to be sure. Every person can be found in a different situation. For me, it works. I learned and I switched to Node.js in a new job. There are facts in his life that should be analyzed to be near to the truth (in an example, if he has a family to sustain). – pitter Feb 5 '18 at 9:49
  • 1
    Of course. And I agree. The OP also agrees. But would it be a good idea to do so on a break? That is the question. – ValarMorghulis Feb 5 '18 at 11:39

I don't think we can answer the question, but I think there is a way to go about finding the answer.

Start interviewing, inquiring other companies and asking people work in this area.

Good developers are hard to find regardless of their stack experience. If you don't want to be a junior a year from now, are you willing to be a junior until then?

| improve this answer | |

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