Live data from Hacker News

Ask HN: C# vs. C/C++ as career forward.

news.ycombinator.com

1–10 of 35 posts

Ask HN: C# vs. C/C++ as career forward.

#1
Hola.

A few ago, as a grad student I was a heavy MATLAB user, working with signal - image processing, machine learning, etc. I got a job and am doing ~ 2 years of experience as a driver developer (C/C++) and think it is pretty cool. I am still learning lots of new things everyday.

Now, I am at crossroads at work - I have to choose between taking up a C# developer role and C/C++ (focused on driver development) role. I don't have any prior C# experience; other language which I currently work as my side projects - Python.

Going forward, 2-3 years, I would really like get more involved in machine learning, data analytics, scientific computing. That being said, I really like my current company and would like to be here for a while (~1-2 years) before embarking on other ventures.

My question - With my current skill set, future thoughts, what should I choose - C/C++ role or C# role? My reason for asking this community is that I have no experience with C#. I didn't have a CS background so I am slightly wary about trusting my own judgement in such cases.

Thanks :)

Edit: To clarify, I am not opposed to C# or any language at all, just want to sure I wouldn't pigeon hole myself.

Another question: If I know C# (as opposed to only C/C++) how related would be Java?

Re: Ask HN: C# vs. C/C++ as career forward.

#2
Going forward, 2-3 years, I would really like get more involved in machine learning, data analytics, scientific computing.

I would recommend the C# experience in so much as it will build familiarity with .NET, and thus allow you to graduate to F#, which is increasingly popular in those fields (and damn good at them).

Re: Ask HN: C# vs. C/C++ as career forward.

#3
Once you know C++, learning C# is a breeze. I learned it myself last year by going over the C# Reference [1] and scanned through all the documents only stopping for new syntax or concepts. I then installed ReSharper and learned a bunch more as I was using the language.

Without a doubt, C# is a much, much cleaner language. If performance or low-level systems programming isn't your main concern, I'd say go with C#. Compilation times are much better, the garbage collector makes many things much easier to use and you still work in a statically typed language with powerful type inference.

One neat thing about C# is that its a hosted language, the CLR can also run F# and Clojure to name only two, both of which can interact directly with C# code.

Ultimately, the choice is yours. I'd suggest trying it for a week or two and by then you'll have a better idea which you prefer.

[1]: https://msdn.microsoft.com/en-us/library/618ayhy6.aspx

Re: Ask HN: C# vs. C/C++ as career forward.

#4
As someone who was described as having "an interesting career path" by his manager due to simultaneously developing Windows device drivers and GUI code, I say learn C#.

The availability of device driver writers is shrinking rapidly, as my search for one in the last year proves. However, it's shrinking because the market is shrinking. Might be more accurate to say that the market has already tanked. At the same time, the market for C# devs is exploding.

The good news is that you can make $$$ as a consultant writing device drivers, the bad news is that those gigs are likely few and far between. With your background in signal processing and MATLAB and good C# skills, you'll have opened doors to some interesting opportunities. A friend of mine with a similar background just started a machine learning gig and he's enjoying it.

Take the C# job and learn the language. I love C/C++, but it's getting harder to find work in that language unless you want to focus on embedded systems.

Re: Ask HN: C# vs. C/C++ as career forward.

#5
post #2

Going forward, 2-3 years, I would really like get more involved in machine learning, data analytics, scientific computing. I would recommend the C# experience in so much as it will build familiarity with .NET, and thus allow you to graduate to F#, which is increasingly popular in those fields (and damn good at them).

> graduate to F#

This is condescending to C# programmers when F# is nearly the same language.

Re: Ask HN: C# vs. C/C++ as career forward.

#7
post #5
post #2

Going forward, 2-3 years, I would really like get more involved in machine learning, data analytics, scientific computing. I would recommend the C# experience in so much as it will build familiarity with .NET, and thus allow you to graduate to F#, which is increasingly popular in those fields (and damn good at them).

> graduate to F# This is condescending to C# programmers when F# is nearly the same language.

And Chinese is nearly English.

Re: Ask HN: C# vs. C/C++ as career forward.

#8
post #3

Once you know C++, learning C# is a breeze. I learned it myself last year by going over the C# Reference [1] and scanned through all the documents only stopping for new syntax or concepts. I then installed ReSharper and learned a bunch more as I was using the language. Without a doubt, C# is a much, much cleaner language. If performance or low-level systems programming isn't your main concern, I'd say go with C#. Com…

I couldn't agree more. C# is Java-like, and could only be a addition to your skill set. Especially now that MSFT has put it out to the OSS community.

Re: Ask HN: C# vs. C/C++ as career forward.

#9
What is the C# role doing? Is it moving your career/knowledge forward in any way (other than learning C#)?

It just seems like an odd choice (C#) given what you want to do. Scientific computing is C++, Fortran, and Python, along with some Matlab, R, maybe Julia. A ton of machine learning is in R and Python. Of course Java is heavily used in data analytics due to Hadoop, so C## will help you there.

But really, it's pretty trivial to learn a language. C# is a fantastic language, but it seems that it is likely that your role will be taking you further away from your future plans, not nearer them.

I don't feel super strongly about either choice, other than pick the work that is most interesting, rather than pick based on language. I'm posting mostly because all other replies are pro C# at the moment, and I wanted to offer a contrast.

Re: Ask HN: C# vs. C/C++ as career forward.

#10
post #5
post #2

Going forward, 2-3 years, I would really like get more involved in machine learning, data analytics, scientific computing. I would recommend the C# experience in so much as it will build familiarity with .NET, and thus allow you to graduate to F#, which is increasingly popular in those fields (and damn good at them).

> graduate to F# This is condescending to C# programmers when F# is nearly the same language.

It's quite a different and useful language but definitely not a better one. You have to be forgiving, as F# is struggling to get more traction, especially in terms of tooling... No ReSharper, no CodeRush, no Roslyn. But I've heard that F# compiler implementation is quite elegant - that's something, right?
Post reply on HN