

Ask HN: Breaking out of a career silo - bleakcabal

I got my first job as a .Net programmer doing line of business applications. Nine years later, I have been doing this ever since (at different jobs).<p>I would like to make a switch to something else (different language, different type of application, different type of organization, something non Microsoft related) but feel I am stuck in a silo career wise.<p>While I have acquired experience with other languages (ie: Ruby) and tools on my own or on small open-source projects and on personal projects, specific job postings require strong skills simultaneously in many frameworks or tools I do not have experience with.<p>I recently applied to one such job and got a rejection email before even getting an interview.<p>I have a job, a family with kids and a house so my time is limited.<p>There seems to be many options I could pursue; open source contributions, personal projects, online training, professional certifications, bootcamps, hackathons, blog, freelancing work and so on.<p>I was wondering what is my best bet?  
What would be the best path for me to make this switch career-wise?
======
tatalegma
I'm in the same boat, more or less, so I can't give advice that I know works,
because I'm still in the transition period. What i'm doing is:

\- Learning linux ...because every other language I want to learn is not on
the .NET stack, and pretty much every interesting job requires linux
knowledge.

\- Learning other languages I have a todo list of languages I want to try.
There are a few I know I will want to go deeper into, which include Scala and
Clojure, but for now I have a list of every popular (non-C#) language that i
want at least minimal exposure to.

My todo list consists of concrete tasks like "Ruby hello world", "Scala hello
world", "Angular hello world". Just knock these things out and then once I
have basic exposure to a broad array of languages and tech stacks, I'll decide
which I want to focus on, and start adding more concrete tasks to my todo
list. This might include contriving a side project that is simple, but more
involved than a simple hello world, and then building it out in one or two or
three of the languages/stacks. At this point you'll have to start thinking
about what direction you want to go, what kind of development you want to
focus on. You might want to freelance as a Wordpress or Drupal dev, so you
might decide to dive into PHP, or you might want to specialize in distributed
systems, so you might focus your experimentations/hello worlds on more back
end type stuff.

\- Getting better at front-end development. This is the area people like you
and me can use as a bridge to transitioning over to non-.NET tech. Assuming
you are working in web apps with .NET, you can start to focus on the front
end, which means getting really good at HTML, CSS, and javascript, and
learning front-end frameworks like bootstrap/foundation, SASS/LESS, and
angular/ember. You can do that while still doing .NET on the server side. You
can also start working in front end build technologies like grunt or gulp into
existing or new .NET projects, to handle front end optimizations, and
bundling/minification, image optimizations, etc. This also builds your
javascript knowledge, and knowing angular seems like a really marketable skill
these days. This in combo with learning linux is enough to get you to a point
where you are able to get front-end dev jobs that have nothing at all to do
with .NET.

My two cents. I'd be really interested to hear from other developers who have
successfully made this kind of transition. I have no idea if what I'm planning
will actually work.

------
whykrx
I spent 12 years at Microsoft, working on .NET technologies, half of it as a
manager, but still very technically involved in design and coding. Last year,
I left Microsoft and joined a much smaller SaaS company, built on non-
Microsoft technologies. I am a manager here as well, but I made the switch to
get exposure to these technologies and I have actually been in the code quite
a bit. My current company looks for raw smarts while hiring and so the
Microsoft background doesn't matter, even for the engineers. In fact there are
a bunch of ex-Microsoft engineers across the engineering org. Unless you are
applying for a role that requires very specific expertise, most companies
shouldn't care that you don't have experience with a specific language or
framework.

I am hiring right now on my teams! Let me know if you are interested and we
can figure out offline if there's a mutual fit.

------
NoahBuscher
I find side projects to be very helpful when attempting to learn a new
framework or language. Start small and slowly build up the complexity as you
move on.

It will be difficult at first, but fellow developer and Stack Overflow are
your friends. It also adds an extra layer of enhancement if the open source
the project, as it allows others to review your code and improve it, allowing
you to contribute something to the community while learning at the same time.

You should also check out open source projects written in the language you're
interested in. I find that CMS source code covers a huge amount of tips and
tricks I find helpful when starting a new language.

Edit:

Also, [http://selfmaderenegade.net/minimum-viable-
skillset](http://selfmaderenegade.net/minimum-viable-skillset) was just
posted.

~~~
bleakcabal
Thanks!

As for the link, I hadn't checked back the new submissions. I'll go over it.

------
a3n
Regardless of how much of the checklist in a job ad you can check off, if you
believe you can do the job then apply. Incorporate any feedback into your next
application. Repeat until done. If you can spare an hour to two once in
awhile, go to local tech meetups, hopefully in the area you'd like to
transition to, but go anyway.

