Skip to main content
GameDev.net gamedev.net
🔒 Locked

Do I know C#?

Started by AndreTheGiant Feb 7, 2009 at 10:28 AM 21 replies 4.8k views
Original Post
AndreTheGiant
AndreTheGiant
Ive been a programmer for a long time. Ive programmed in Java, Perl, PHP, C, and a lot of C++, and a few others. Im browsing job sites and I'm seeing a lot of demand for C# developers. I'm wondering how far away I am from claiming to be a C# developer given that Ive worked a lot in Java and C and C++. How different is C#? The syntax looks similar to half a dozen other languages, so theres no surprises there. But are there any fundamental development paradigms that are different with C# vs other languages? Suppose I have 5 years of experience in C++ and I determine that C# is fundamentally the same. How dishonest is it to say that I have experience with C#? Obviously I'm not very comfortable with it. But on the other hand, wouldnt I be selling myself short if I said I didnt know C# at all? (This is all assuming that they are indeed very similar). It feels as if Ive only driven Toyotas all my life and my buddy asks if I can drive his Honda to the store. Am I supposed to say Sorry, I have no experience with Hondas?
SiCrane
SiCrane
If you can't even say with certainty how similar C# is to languages that you do know then it would be very dishonest to say you know C#.
DevFred
DevFred
Quote:
Original post by AndreTheGiant
Suppose I have 5 years of experience in C++ and I determine that C# is fundamentally the same.

To be honest, if you really think that, I would never hire you ;)
benryves
benryves
There's nothing stopping you from playing around with C# to find out for yourself, is there? Early C# was pretty similar to Java (though there were differences) but it's moving further and further away as time goes on.
Quote:
Suppose I have 5 years of experience in C++ and I determine that C# is fundamentally the same. How dishonest is it to say that I have experience with C#?
Not so much dishonest as very wrong. [wink]
[Website] [+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++]
slayemin
slayemin
No, you're better off being honest about it. What happens if the interviewer asks you to code up an exercise in C# but you don't know the subtle syntax changes? You'd lose the chance to get hired.

From the ethical perspective, the employer deserves to know exactly what they're paying for when they hire you. If you misrepresent yourself, you're cheating them in a way.

Just give yourself a quick run through of the language and code something up to get practiced. Programming is language agnostic, so you should be able to pick up the syntax differences pretty fast. You could probably even get away with saying: "I've Been programming for 5 years".
Cornstalks
Cornstalks
Quote:
Original post by AndreTheGiant
But on the other hand, wouldnt I be selling myself short if I said I didnt know C# at all?


But you don't know C# at all. Be honest with your employers, and most importantly, with yourself. There are syntax similarities, but that's about it. The idiosyncrasies of C# are not the same as the idiosyncrasies of C, C++, Java, Ruby, PHP, Perl, Haskell, OCaml, or pretty much any other language in this list. You might know some programming concepts and theory, which is very important (and indeed you should mention), but don't say you know C#.

Driving Toyotas vs Hondas is not at all similar to programming in different languages. Flying a helicopter vs a plane would be a better analogy.
Kaze
Kaze
why not just put your theory to the test?

EDIT:

At lest in my opinion C# is very much a more refined version of java with C++ syntax.
It is a little annoying how obsessed HR people are with x years of y so you if you actually take the time to learn c# you might want to find some way to pad your resume with it.
d000hg
d000hg
You DON'T know C#. The syntax is very similar so if I asked you to write a method which would sort an array of numbers (without using libraries) you could probably do so.

But if I asked you to write me a program which lets a user pick items from a list into their shopping basket and tells them how much those items would cost, and asked you to email me the complete solution so I can build/run it... you are going to fail or at least spend 10X longer than someone who actually knows C#.
capn_midnight
capn_midnight
Quote:
Original post by MikeTacular
Quote:
Original post by AndreTheGiant
But on the other hand, wouldnt I be selling myself short if I said I didnt know C# at all?


But you don't know C# at all. Be honest with your employers, and most importantly, with yourself. There are syntax similarities, but that's about it. The idiosyncrasies of C# are not the same as the idiosyncrasies of C, C++, Java, Ruby, PHP, Perl, Haskell, OCaml, or pretty much any other language in this list. You might know some programming concepts and theory, which is very important (and indeed you should mention), but don't say you know C#.

Driving Toyotas vs Hondas is not at all similar to programming in different languages. Flying a helicopter vs a plane would be a better analogy.

Actually, neither is a good analogy, because they both describe users, not constructors. A slightly better analogy (though with its own issues) would be to say that his experience working on Toyotas as a mechanic does not necessarily prepare him for working on Fords.
Cornstalks
Cornstalks
Quote:
Original post by capn_midnight
Actually, neither is a good analogy, because they both describe users, not constructors. A slightly better analogy (though with its own issues) would be to say that his experience working on Toyotas as a mechanic does not necessarily prepare him for working on Fords.

Except we are users of the language, not constructors of it. Anyway, I really don't feel like getting into an analogy debate. I was just trying to say that because you can do one thing doesn't necessarily mean you can do another. [smile]
Goober King
Goober King
Why play such a game at all? You already know several languages so why not learn one more that you have already clearly identified as being key to the industry and your own personal desirability? It's C#, with your history, you could take it up right now and have a decent handle on it by Monday. There is no need to fake knowing C# its just not a steep enough mountain to lie about conquering.
------------------------------------------------------------- neglected projects Lore and The KeepersRandom artwork
daviangel
daviangel
Quote:
Original post by SiCrane
If you can't even say with certainty how similar C# is to languages that you do know then it would be very dishonest to say you know C#.

Ain't that the truth! The OP doesn't even seem to be aware that there are actually different versions of C# or what .NET framework version they are used with!
If you have been programming in C++ for 5+ years you should be able to pick up any decent C# book and at least pick up the basics in a weekend. Then you will have a better idea of why it's foolish to assume you know C#-- based on your prior experience.

[Edited by - daviangel on February 7, 2009 10:22:20 PM]
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
brent_w
brent_w
Quote:
Original post by daviangel
Quote:
Original post by SiCrane
If you can't even say with certainty how similar C# is to languages that you do know then it would be very dishonest to say you know C#.

Ain't that the truth! The OP doesn't even seem to be aware that there are actually different versions of C# or what .NET framework version they are used with!
If you have been programming in C++ for 5+ years you should be able to pick up any decent C# book and at least pick up the basics in a weekend. Besides you will have a better idea of why it's foolish to assume you know C# based on your prior experience.
I've been trying to learn about C# but I don't have much experience quite yet.

Could you please explain what you mean by different versions of C#?

Are you referring to newer vs older specifications or something else?
Zipster
Zipster
If you don't have any experience with C#, then you'd be downright lying if you told anyone you did, regardless of how similar it is to other languages you've used. That's really all there is to it.

However, if you're proficient with C++ and Java, then learning enough C# to get some real work done is probably a 1-2 week exercise. So that's what you tell employers, that you've never used C# but that you can certainly pick it up quickly. You won't be an expert, but combined with your other programming experience that should be enough information for them to decide if you're qualified.
Tha_HoodRat
Tha_HoodRat
You have a lot of experience programming with c++ and java, so learning c# syntax and nuances should not be that hard. I had a harder time shifting from VS 2k5 to 2k8 than shifting from visual c++ to c#.


I would suggest logging in a lot of time to push as many c# programs/projects you can before the interview/test.

I was influenced by the Ghetto you ruined.
xanin
xanin
No, you dont know C#, but...
Given what you've said about your experience with other languages, take a page from MS's shelf and say you are 'C# Capable'
Trapper Zoid
Trapper Zoid
Quote:
Original post by AndreTheGiant
Suppose I have 5 years of experience in C++ and I determine that C# is fundamentally the same. How dishonest is it to say that I have experience with C#?

If you don't have any experience with C#, then you don't have any experience with C#. No amount of experience with any other language will change this.

However, nothing's stopping you from getting C# experience. I'd get to grips with the language first, build a few programs, and then I'd feel more comfortable claiming a basic understanding of C# on a CV. I'd still be honest with interviewers and never claim I was an expert, though. Being deliberately misleading or outright lying on a résumé is a good way to get a reputation as untrustworthy.

As an aside: This reminds me of the time I inadvertently got signed up to teaching a Java GUI design class without knowing Java (I thought my part was just teaching usability theory and holding discussions), and I attempted to wing it using my knowledge of C++. In retrospect, that plan was not the most brilliant one I've attempted.

Edit: typo fixed.

[Edited by - Trapper Zoid on February 7, 2009 10:53:43 PM]
Zipster
Zipster
Quote:
Original post by Trapper Zoid
As an aside: This reminds me of the time I inadvetandly got signed up to teaching a Java GUI design class without knowing Java (I thought my part was just teaching usability theory and holding discussions), and I attempted to wing it using my knowledge of C++. In retrospect, that plan was not the most brilliant one I've attempted.

Reminds me of the time I got signed up to teach a UE3 scripting class with very little experience doing UE3 scripting. Not one of my most brilliant moments either :/
Crypter
Crypter
Most of the time when one asks if they know something they probably do not [wink]

I recommend trying C# and learn the language. From there you will better understand how it differs from other C-like languages and can, with honesty, say that you know C#.
ernow
ernow
As an employer we do NOT care about the programming languages you know. We care more about how quickly you learn a new language and how well you know the platform.

Each language has its quirks, knowing these will convince me you know the language. Each platform has its do's and don'ts, knowing these will show me how much experience you have got.

Knowing C++ and faking C# experience: you might (just might) pull that off with me as during an interview can only get that deep.
Knowing C++ and faking .NET framework knowledge: you're not going to manage that with me.
Getting caught on a (big) lie during an application (or after that): you'll join the hall of silly applicants but won't get hired, or get sacked.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.