Open Source or M$ ?

webferret

Member
Joined
Jan 27, 2009
Messages
24
Reaction score
0
Location
Cape Town
As freshly squeezed grad student (who realises how little he knows btw :p) I would value the opinion of some of the more seasoned developers out there:

What advice would you give to a grad student who is just about to start working as a software developer; given the choice of going either the Microsoft way (.net , c# etc) or going the open source way (php, mysql etc).

What are the pro's and cons of either and what should a person consider before making such an important decision?

Thank you :)
 
I've seen this for myself. MS is quite a closed pathway. It means you could learn something today that will fall out of fashion or disappear. It means regular (VERY) updating of skills - as MS changes their packages etc. On the other hand, MS is now universal, so always required.

If you're a purist in any way, stick with the classic C, C++, JAVA, UNIX, SQL route. In fact, find out which software package is used in big business in your chosen field. Join that company and get to know the code very well. After a few years you can consult. A very lucrative field.
 
I always recommend learning PHP / MySQL. Personally as Sackboy would say, I am very "purist" (only bother with Java and C/C++).
 
My gut tells me to go the open source route, as i could always use the knowledge and skills that i pick up later - for example, doing some freelance work along the side without having to worry about legal issues etc (plus there are tons of freely available code to boot) - also cheaper i think to find hosting packages with mysql db as opposed to mssql (correct me if im wrong).

But the thing that bothers me is this: i think the bigger companies are leaning more towards MS technologies, and I'm just trying to think ahead (job security in the long term etc). Like i said in my previous post - im fresh out of varsity and dont have the experience of what its like out there.

Does anybody know what the trends are nowadays? are companies moving more towards open source or .net? Any recommendations on websites where i can go to do some research to see what the situation is like out there in this regard?

Thanx for the responses. Im sure its gona help others reading these posts too :)
btw, my interests are in web development and related tecnologies.
 
Ok, ignoring many of the M$ FANBOI LOL comments that are sure to follow, I'm going to have to recommend the Microsoft route. You, being fresh out of varsity, stand a very good chance of getting a job as a .NET developer. Just contact a recruitment company or two and you'll be smothered in job opportunities within the first week. The demand in ZA for .NET developers is extremely high at the moment. We're also looking for a few "freshly squeezed grad students" to join our company - sad that you're based in CT then... ;)

Another thing to consider is that .NET is incredibly easy to learn and pick up. Visual Studio being the monster IDE that it is, will make learning the ins and outs of .NET a breeze.

Finally, if you have your job as a junior .NET programmer, you can start teaching yourself the other web languages. Syntax across the different languages is largely the same, so the only thing you'll really have to teach yourself is the framework and/or libraries for the different platforms. Studying different methodologies and design patterns for implementing web applications will also benefit you across the different platforms. When you then feel you're ready to branch out to a different web platform, you'll already have proven industry experience in web development - not necessarily a web language.

When you finally have proven experience in ASP.NET / PHP / Java / Ruby you can, like Sackboy stated, start consulting in web applications, without a biased opinion. That's where pretty much all web developers want to end up one day...

That's my 2c... Hope it helps. ;)
 
Some good advice. Thank you. Much appreciated.

Most of my time at varsity was .net (in fact we only did .net - all php, apache, mysql etc i taught - and am teaching myself). During my last year we concentrated OO systems analysis and design, frameworks, etc; so i appreciate your comments.

I want to keep a level head and not end up being a fanboy of any specific technology; but I also want to be realistic and make sound decisions that will equip and skill me to be a contributor to the industry for years to come (and obviously one day hopefully start my own business once i have learned enough). Hence my request for input from the seasoned veterans out there :)

I shall sincerely consider all the advice that i receive. Thank you :)
 
Most of my time at varsity was .net (in fact we only did .net - all php, apache, mysql etc i taught - and am teaching myself). During my last year we concentrated OO systems analysis and design, frameworks, etc; so i appreciate your comments.

Which Varsity was that?
 
Ah ok.

For you I think .NET would be the best, IE. Microsoft path.
 
You are asking wrong question, you need to know both. While Microsoft is going down slowly but surely they still securing lots of big projects through kick-backs and other forms of bribery. As programmer you will spend rest of your life learning new technologies, languages and methodologies. Avoid wasting your time on fashionable things (which will disappear in three years), like LINQ but rather be sure how you are going to implement Observer using C#. Another example of useless is Ruby, scales poorly, no thread support and everybody pushing it now like best thing after bread and butter.
Learn well C, C++, Java and C#. It is not bad idea to spend some time on working with Perl and Python. Check how to work with MSSQL, Postgres and MySQL. I am not putting there Oracle since it is very easy to switch from Postgres to Oracle. Try mobile, web and writing code generators/compilers – primarily ANTLR. Read books, lots of them, you can start with Algorithms for programmers by Jorg Arndt – it is free, just google for it. If you have only one box with Windows install Cygwin on it or add Ubuntu in dual boot mode.
 
Last edited:
k, cool.

Well what other alternatives did you have in mind, if .net will be the best? Do you feel that someone whos been trained at doing things the ".net way" will find it more difficult to adjust to other techologies/programming languages?

(I hear what you say, just curious to know your opinion :) )

thanx Gnome
 
Last edited:
Its easy to learn VB.Net once you know C++ and vice versa. Its like learning Afrikaans once you learned Dutch. I would recommend learning both and then specialise in the one your company uses once you get a job. Same goes for Transact-SQL and MySQL. SQL is pretty much standard all around except for a few minor differences where microsoft decided to follow their own heads.
 
The reason is, you are already in the .NET mindset and you have programmed in it up until now, rather use that knowledge and get into the industry to get some proper experience.

Programming languages are simply tools, what you need to learn is the software engineering principles, properly planning a project, meeting deadlines, making design decision (or at least get exposure to why they are made), etc.

At University Of Pretoria we did C/C++/Java/C#/VB.NET/Assembler/PHP up until 3rd year, at that point I did programming languages in which they asked us to program in many different languages every practical, most we've never used or heard of before, the whole point is that a programming language is a design decision, you use it because it's the right tool for the job, not because that is what you can program in.

You should hop between languages as you move between jobs, but at this point you know .NET and there are jobs that use .NET why not take the opportunity to learn what's really important VS. more languages.

I don't have a idea how your degree was and how well you were tested and taught in terms of Computer Science principles but if you know them well you'll move between languages in a matter of hours, lots of googling to find out about method X or class Y but in the end it's just programming all over again.
 
Last edited:
You are asking wrong question, you need to know both. While Microsoft is going down slowly but surely they still securing lots of big projects through kick-backs and other forms of bribery. As programmer you will spend rest of your life learning new technologies, languages and methodologies. Avoid wasting your time on fashionable things (which will disappear in three years), like LINQ but rather be sure how you are going to implement Observer using C#. Another example of useless is Ruby, scales poorly, no thread support and everybody pushing it now like best thing after bread and butter.
Learn well C, C++, Java and C#. It is not bad idea to spend some time on working with Perl and Python. Check how to work with MSSQL, Postgres and MySQL. I am not putting there Oracle since it is very easy to switch from Postgres to Oracle. Try mobile, web and writing code generators/compilers – primarily ANTLR. Read books, lots of them, you can start with Algorithms for programmers by Jorg Arndt – it is free, just google for it. If you have only one box with Windows install Cygwin on it or add Ubuntu in dual boot mode.
I would also say that the 'difficult' languages with that low-level factor like C, would put other people off, yet be in demand because they are powerful.
So it also depends on how good you are and whether you want to sweat a bit.
 
Top
Sign up to the MyBroadband newsletter
X