Transitioning From Windows to Linux Development? 59
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?"
*winces* (Score:2, Funny)
I've been a professional Visual Basic developer for 6 years, working on two and three tier systems and also web applications.
Man I feel sorry for you, their gonna have a field day with this one. b
Re:*winces* (Score:1)
Re:*winces* (Score:1)
Is that something like "Subway Sandwich Artist" or "Sanitation Engineer"?
Just pullin your chain, no need to get uptight.
Re:*winces* (Score:1)
Re:*winces* (Score:1)
Re:Two/Three tier systems? (Score:2)
A site like slashdot is probably 3 tier because data travels client-server-db. The obvious reason to do 3 tier is the web. Web browsers shouldn't have to support running code to do complex SQL queries to some database. However there are a host of other reasons to separate database access from the client like security or connection pooling. You don't really want your db to suffer 100,000 simultaneous accesses, much better to put in a middle tier that maintains a queue of those wanting access and a pool of open connections to execute the queries. This set up where the middle tier does the db access on the client's behalf is usually called "thin client".
Besides the whole web browser model, other 3-tier (or n-tier as we like to call them, although n is rarely greater than 4) technologies in common use (or at least that I've used) are CORBA (cross platform and language standard) and EJB (Java standard).
just get a patch accepted by linus! (Score:1, Offtopic)
I had to stop counting all the cold-call (or cold email) job offers i got from that to be a linux developer for some company or other. Of course, this was back in the go-go years, when companies spent millions of dollars on sock puppets, but i still get one or two job interview offers a month to be a "linux programmer."
Java (Score:1)
The other option is to get books, lots and lots of books on Linux C++ programming.
Experience (Score:2, Insightful)
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.
Same as elsewhere ... network network network... (Score:5, Insightful)
#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.
IMHO, there's no competition (Score:2, Interesting)
Create any kind of multiplatform (windows/linux) apps.
Use a WAY better RAD tool than VB (I used VB for a while).
Learn and use a full-featured OO language.
As a bonus, you can even generate .NET applications, if you need.
I use it since its first version (well, since Turbo Pascal 3.0, actually), and, altough it's not the tool I use most in daily job (I deal with Macs a lot), it's simply the best RAD tool I've seen. Try a free download. After all, you're the kind of guy they're targeting [borland.com] now.
Re:IMHO, there's no competition (Score:2)
The best thing about Delphi/Kylix is that you can dabble in Linux, and still use it to pay the bills.
Aside, Kylix programs work wonderfully in FreeBSD with FreeBSD's Linux compatibility layer.
Re:IMHO, there's no competition (Score:1)
One interesting thing happened to me regarding this. In a small TV, we created a news system. Its clients, inside the company, uses a Windows front-end writen in Delphi; To the web, we simply recompiled the data abstraction layer and created some small formating code and we had a full-featured apache-linux webserver app, with little effort.
If the folks at borland at least port this thing to the MAC...
Re:IMHO, there's no competition (Score:2)
Fun stuff...
The nastiest trick I've done with Deplhi/Kylix is that I was tired of buggy Windows workstations making my app look bad, so I put the front-end of the app on a FreeBSD server and shared the app with VNC. So any computer that has a VNC viewer: Apple, Windows, Be - you name it, can use the app. And if the workstations crashes, the app is waiting them where they left off.
I too would love for native Mac support.
Re:IMHO, there's no competition (Score:2, Insightful)
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
there is competition (Score:2)
Qt from trolltech (www.trolltech.com) is a better solution (IMHO).
If you feel like trying it, just go to trolltech and download the free edition.
Re:there is competition (Score:1)
Kylix uses QT for it's widgets.
The current version of Kylix supports both Delphi and C++ development.
There is a free 'Open' version that has a limited number of components but allows you get a good feel for the product without cost. (Anything generated with the Open version falls under GPL, though).
Re:there is competition (Score:2)
Kylix gives you:
Just-in-time compiling so you can modify your code whilst debugging.
A far better syntax for even-handeling.
A seriously good RAD UI. you havn't seen rad till you've used Kylix/CBuilder &co.
Type sensitive code compleation.
Good ANSI compliance.
Cross platform development (including mobile devices)
the list goes on.....
I do like QT and I use it a lot but Borlands tools are the best.
NOW you're leaving? (Score:4, Funny)
So you stuck it out with crappy VB6 all these years for the sheer enjoyment of it, and now that they're finally moving to a half-way decent platform, you're bailing?
MONO (Score:3, Interesting)
Also, why not try and affect change from within your own company, rather than going somewhere else? If there is an existing open equivalent to something you're thinking of using then make the case for that. Also investigate languages like Java, Python and Perl which can run on multiple platforms. They all have large developer communities and mature libraries for doing lots of different things.
Re:MONO (Score:2)
One thing you are probably never going to see with Mono, DotGnu(sp?), et al. is a compatible implementation of COM+ which MS has thrown into
Re:MONO (Score:2)
Side note: I heard the marketroids at M$ were thinking about calling
.Net (Score:3, Insightful)
With
If you stick it out, you will have a much better skillset to show the market.
Re:.Net (Score:1)
One possible future for linux happens to be one where
Just try to move to C# instead of VB.NET if you can.. The learning curve is quite similar. Despite both languages being roughly equivalent, I suspect prospective employers will be more impressed by the former for historical reasons.
That and C# is likely going to be the first and best supported
Re:.Net (Score:1)
If you stick with your current job, take the opportunity to really learn OO programming. VB6 was never really OO. .NET is very OO. A good base in OOD, OOP and, say, C# would be a good platform to use to build skills in Java, and then you're on your way.
.NET (Score:3, Informative)
*I am aware that it is already working, but it's not quite there yet
Find a place that does Unix Development (Score:3, Interesting)
Professional Programmer (Score:2, Insightful)
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?
Re:Professional Programmer (Score:2)
That depends on your point of view, I guess.
I've been a full-time professional developer for around four years, and I've used predominantly C++ on MS Windows in that time. Sure, I've also used C and assembler skills in significant amounts along the way, I've picked up enough of things like Java and Perl to be useful, and I have a side interest in several other tools and languages as well. The current project I'm working on runs on about 15 different platforms, too.
I'd still probably describe myself as a C++ programmer who works with Windows as a one-line summary, though.
Re:Professional Programmer (Score:1, Interesting)
Use .NET as a stepping stone (Score:1, Insightful)
Cross Platform (Score:1)
hey I have a favor . . . (Score:1)
Heresy (Score:1)
C# (Score:1)
Keep your day job (Score:2)
It seems like the main jobs I see now are either for Window programmers (esp.
Advices given here are absolutely horrible (Score:2)