views:

136

answers:

4
+3  Q: 

C# vs C++ Library

I am working as a C# programmer for almost 1 year and still I need to go a long way I think. Recently I have applied for a scholarship. My supervisor Professor Mr. X has told me that he can offer me a scholarship if I can work in a specific graphics library written in C++ (i.e. I have to eventually migrate to the language C++).

Now, I don't know this library. It may take months to learn.

Is it wise to spend time on that library to get that scholarship for the sake of a varsity degree when I want to buildup my career as a C# programmer?

Or should learn that library, get the scholarship, get the degree and go for a job that matches that knowledge (in this case I need to start my career from scratch)?

+2  A: 

There is nothing wrong with learning new language/library. If you want to be a good developer diversity of knowledge is the most important thing. By the time you get your degree you'll know more than just C# and will be at much better position to choose your carrier.

eugener
+3  A: 

I'd say it's preferable to learn different kind of things. How do you exactly expect to "build up your career as a C# programmer"? By doing only C# programming?

That would not be wise.

I'd say that if you are interested in the scholarship, you go there and take the opportunity to learn how to do graphics in C++, but don't stop there. Also learn how to do it in very different languages like Python, Ruby, Common Lisp, Clojure, Haskell, Erlang. And of course in other topics different from graphics.

You don't have to be a guru on any of them, you just have to get enough knowledge as to do "academic" stuff with them, but I assure you that will make you a better C# programmer in the end, if that's what you want to be.

Jorge Gajon
Is it right to be a "Jack of all trades, master of None"?
always learn. the farther from your zone of comfort, the better (and harder)
Javier
@JMSA: the goal is "Jack of most trades, master of some"
Javier
+5  A: 

Think of yourself as a "Programmer", not a "C# Programmer". The popularity of languages waxes and wanes, so C# programmers may not always be in demand. By broadening your skillset and working to comprehend the fundamentals of programming in general, you'll have the potential to work in many different jobs using many different technologies. Once you learn the fundamentals of programming -- the underlying concepts that make languages similar and distinct -- you will be able to learn new languages quickly and adapt to new roles more easily.

Matt Nizol
+2  A: 

Flexibility is very important in a developer. I have most of my experience in Java and just took a job doing VB and C#. The employers were concerned with my ability to learn new things/concepts and my enthusiasm.

Once you have mastered a language, it is much easier to pick up others. Does it feel right to go and do the C++ work? It will certainly broaden your horizons, but you can do that anytime. Is it the right time to embark on the C++?

Good Luck

pave
Is it right to be a "Jack of all trades, master of None"?
Who said there is no mastery involved here?
pave