Transitioning From Windows to Linux Development?
truthsearch asks: "I've been a professional Visual Basic developer for 6 years, working on two and three tier systems and also web applications. Two years ago I tried Linux and went from being a fan of Windows to an aspiring developer of Linux (or at least Unix) applications. My company has just announced their complete acceptance of moving everyone to .NET and so I want to leave ASAP. I'm even willing to take a pay cut to leave Microsoft software development. So if I were to not contribute to OSS or take time off to get my masters (in CS of course), what's the best way to transition from professional Microsoft platform development to Linux? Are many companies hiring Microsoft developers with little Linux experience to assist in corporate migration? With online postings requiring 3-5 years Linux/C++/Java experience how's a Windows developer supposed to transition? Is my only solution to stick it out here while I contribute to OSS for the experience?"
You answered your question yourself. Get experience with working OSS software, code some stuff. Submit some patches to either the FreeBSD or Linux kernel, and you should be set.
Just make sure that you keep up to date, even if you have to learn C# (.NET), it'll be still good on your resume. Heck, theres C# library's for UNIX now, if you have been reading slashdot.
And, I'd recommend keeping your current job, once you have sufficent knowledge. Then go looking for another one.
Free means no restrictions, ironic the FSF's GPL forces restrictions, isn't it? What's your definition of free?
Questions:
#1. Do you want to work on OSS systems and with OSS toolkits (writing a web application in PHP running on Redhat 8.0 and Apache 2.0) or do you want to write OSS code (writing a web application licensed under [BSD | GPL]).
If your goal is to write software licensed under an open-source license, you will have a large uphill battle to find work.
#2. Are you sure your newfound passion is worth giving up your job over in this economy? Better to write windows code during the day, so you can afford to write linux code at night.
Slowly ebbing into linux is a good way to go, it will let you built up an understanding and ensure you are set on this decision.
Recommendations:
If you really want to break into the OSS software development market, you need to bear in mind a few things.
#1. It is like any other market, your network of personal relationships you have developed over the past six years will be your basis, where you start looking. As always the buddy-network is the best possible way to find a job you might actually enjoy.
#2. OSS is often as much about community as software, get involved. The best place to probably get involved is your local LUG. At you LUG you have a chance to meet like minded individuals.
#3. Write some code that has your name on it, so that when asked to produce demos/examples of your work you can show them your (GPL | BSD) licensed code. If you write software that happens to help your local LUG you get a bonus point.
#4. Remember that you might be able to create a new job, rather than fill an existing opening. Converting a company to linux, and developing new systems is a large task for even a small (100-200 employees) business. But a rewarding one.
It would seem to me that sticking out the transition to .Net and working on Linux on the side would be the best way to make the transition.
.Net, your VB skills are soon going to be hard to market, and you don't have any real Linux skills just yet.
With
If you stick it out, you will have a much better skillset to show the market.
I agree that Delphi and Kylix are the way to go. Also, what hasn't been mentioned yet is that the language itself is relatively painless to learn for VB programmers. This should make it possible for our intrepid VB programmer to pick up the basics and move on before the .Net move at his current company becomes a serious problem.
Any VB programmer who worked with version 4 will crack open Delphi and Kylix and think, "Wow, I've seen this before!" It's a very comfortable transition.
I use all three.
trane
A serious question: How can someone really consider themselves a professional programmer - particular one that's been coding for 6 years - but has stuck to one language and one OS.
I'm not trolling, just thinking from an employers point of view. Wouldn't you be suspicious of someone who doesn't branch out a little more? I personally would wonder where there motivation and proffesional curiosity is.. Or do employers like that sort of thing?
A lot of development these days does not require very much OS specific development. C# is actually an elegant language from what I've seen, and has a lot of similarites (and even improvements IMO) to java. The .net framework also seems to mirror many of the java frameworks. Perhaps your best bet is to take the opportunity your company is giving you to learn C# and .NET - and use that as your transition. Being a c++ unix developer, it seems to me that there are a lot more Java/J2EE or C#/.net jobs out there than platform specific c++ positions (much to my dismay :). Take on linux as a pet project, it doesn't need to be your career.