How do I learn C# fast(er), already knowing C, Java, C++, etc.?
I want to learn C# (on Linux, so using Mono), and I'm looking for some guide that taps into the knowledge I already have of other languages; most notably C, C++ and java (but also python, Haskell, lisp, and perhaps a few others).
So far all I've found on the web are combined introduction-to-programming and introduction-to-C# texts, but they all fail because I get bored and can't stick to my learning plan.
Does anyone have a suggestion for something good to read?
Broadening this question up, how do you learn a new language that's similar to languages you already know in a way that taps into the knowledge you already have? Do people write these kind of tutorials? Do you just grab a cheat sheet? Do you have an array of exercises you force yourself through?
Edit: I don't know any other Microsoft development... thingies. I wrote a little bit VB around eight years ago, but I don't remember any of that. I have no ASP experience, no experience with anything else .NET, no MS languages or libraries. Even though I have developed on Windows, I haven't done capital-D Windows Development. Please consider this when making a suggestion.
c#
add a comment |
I want to learn C# (on Linux, so using Mono), and I'm looking for some guide that taps into the knowledge I already have of other languages; most notably C, C++ and java (but also python, Haskell, lisp, and perhaps a few others).
So far all I've found on the web are combined introduction-to-programming and introduction-to-C# texts, but they all fail because I get bored and can't stick to my learning plan.
Does anyone have a suggestion for something good to read?
Broadening this question up, how do you learn a new language that's similar to languages you already know in a way that taps into the knowledge you already have? Do people write these kind of tutorials? Do you just grab a cheat sheet? Do you have an array of exercises you force yourself through?
Edit: I don't know any other Microsoft development... thingies. I wrote a little bit VB around eight years ago, but I don't remember any of that. I have no ASP experience, no experience with anything else .NET, no MS languages or libraries. Even though I have developed on Windows, I haven't done capital-D Windows Development. Please consider this when making a suggestion.
c#
17
To learn any language, I have an infalible approach - I read a book.
– anon
Dec 19 '09 at 12:46
Read highest voted C# related questions on Stack Overflow.
– Anwar Chandra
Dec 19 '09 at 12:48
I think OP is asking for a good book for people who already know other languages (i.e. something that assumes knowledge of OOP and the like, and goes straight into the meat).
– Gorpik
Dec 19 '09 at 13:57
1
I'm in a similar boat (10+ years programming but quite new to C#) so I'm very interested to read through the answers here... I found the syntax very easy to pick up (similar to Java or AS3) and it easy to make it start doing things but I found it much harder to find "best practice" references...
– vitch
Dec 19 '09 at 15:09
I don't see how a book would be "infalible" (sic). I've read many books about languages and failed to learn the language. My approach is to write a program -- when you're done, you've succeeded, by definition.
– Ken
Jan 6 '10 at 19:04
add a comment |
I want to learn C# (on Linux, so using Mono), and I'm looking for some guide that taps into the knowledge I already have of other languages; most notably C, C++ and java (but also python, Haskell, lisp, and perhaps a few others).
So far all I've found on the web are combined introduction-to-programming and introduction-to-C# texts, but they all fail because I get bored and can't stick to my learning plan.
Does anyone have a suggestion for something good to read?
Broadening this question up, how do you learn a new language that's similar to languages you already know in a way that taps into the knowledge you already have? Do people write these kind of tutorials? Do you just grab a cheat sheet? Do you have an array of exercises you force yourself through?
Edit: I don't know any other Microsoft development... thingies. I wrote a little bit VB around eight years ago, but I don't remember any of that. I have no ASP experience, no experience with anything else .NET, no MS languages or libraries. Even though I have developed on Windows, I haven't done capital-D Windows Development. Please consider this when making a suggestion.
c#
I want to learn C# (on Linux, so using Mono), and I'm looking for some guide that taps into the knowledge I already have of other languages; most notably C, C++ and java (but also python, Haskell, lisp, and perhaps a few others).
So far all I've found on the web are combined introduction-to-programming and introduction-to-C# texts, but they all fail because I get bored and can't stick to my learning plan.
Does anyone have a suggestion for something good to read?
Broadening this question up, how do you learn a new language that's similar to languages you already know in a way that taps into the knowledge you already have? Do people write these kind of tutorials? Do you just grab a cheat sheet? Do you have an array of exercises you force yourself through?
Edit: I don't know any other Microsoft development... thingies. I wrote a little bit VB around eight years ago, but I don't remember any of that. I have no ASP experience, no experience with anything else .NET, no MS languages or libraries. Even though I have developed on Windows, I haven't done capital-D Windows Development. Please consider this when making a suggestion.
c#
c#
edited Feb 13 '10 at 3:38
Peter Mortensen
13.8k1987113
13.8k1987113
asked Dec 19 '09 at 12:43
Jonas KölkerJonas Kölker
5,96513549
5,96513549
17
To learn any language, I have an infalible approach - I read a book.
– anon
Dec 19 '09 at 12:46
Read highest voted C# related questions on Stack Overflow.
– Anwar Chandra
Dec 19 '09 at 12:48
I think OP is asking for a good book for people who already know other languages (i.e. something that assumes knowledge of OOP and the like, and goes straight into the meat).
– Gorpik
Dec 19 '09 at 13:57
1
I'm in a similar boat (10+ years programming but quite new to C#) so I'm very interested to read through the answers here... I found the syntax very easy to pick up (similar to Java or AS3) and it easy to make it start doing things but I found it much harder to find "best practice" references...
– vitch
Dec 19 '09 at 15:09
I don't see how a book would be "infalible" (sic). I've read many books about languages and failed to learn the language. My approach is to write a program -- when you're done, you've succeeded, by definition.
– Ken
Jan 6 '10 at 19:04
add a comment |
17
To learn any language, I have an infalible approach - I read a book.
– anon
Dec 19 '09 at 12:46
Read highest voted C# related questions on Stack Overflow.
– Anwar Chandra
Dec 19 '09 at 12:48
I think OP is asking for a good book for people who already know other languages (i.e. something that assumes knowledge of OOP and the like, and goes straight into the meat).
– Gorpik
Dec 19 '09 at 13:57
1
I'm in a similar boat (10+ years programming but quite new to C#) so I'm very interested to read through the answers here... I found the syntax very easy to pick up (similar to Java or AS3) and it easy to make it start doing things but I found it much harder to find "best practice" references...
– vitch
Dec 19 '09 at 15:09
I don't see how a book would be "infalible" (sic). I've read many books about languages and failed to learn the language. My approach is to write a program -- when you're done, you've succeeded, by definition.
– Ken
Jan 6 '10 at 19:04
17
17
To learn any language, I have an infalible approach - I read a book.
– anon
Dec 19 '09 at 12:46
To learn any language, I have an infalible approach - I read a book.
– anon
Dec 19 '09 at 12:46
Read highest voted C# related questions on Stack Overflow.
– Anwar Chandra
Dec 19 '09 at 12:48
Read highest voted C# related questions on Stack Overflow.
– Anwar Chandra
Dec 19 '09 at 12:48
I think OP is asking for a good book for people who already know other languages (i.e. something that assumes knowledge of OOP and the like, and goes straight into the meat).
– Gorpik
Dec 19 '09 at 13:57
I think OP is asking for a good book for people who already know other languages (i.e. something that assumes knowledge of OOP and the like, and goes straight into the meat).
– Gorpik
Dec 19 '09 at 13:57
1
1
I'm in a similar boat (10+ years programming but quite new to C#) so I'm very interested to read through the answers here... I found the syntax very easy to pick up (similar to Java or AS3) and it easy to make it start doing things but I found it much harder to find "best practice" references...
– vitch
Dec 19 '09 at 15:09
I'm in a similar boat (10+ years programming but quite new to C#) so I'm very interested to read through the answers here... I found the syntax very easy to pick up (similar to Java or AS3) and it easy to make it start doing things but I found it much harder to find "best practice" references...
– vitch
Dec 19 '09 at 15:09
I don't see how a book would be "infalible" (sic). I've read many books about languages and failed to learn the language. My approach is to write a program -- when you're done, you've succeeded, by definition.
– Ken
Jan 6 '10 at 19:04
I don't see how a book would be "infalible" (sic). I've read many books about languages and failed to learn the language. My approach is to write a program -- when you're done, you've succeeded, by definition.
– Ken
Jan 6 '10 at 19:04
add a comment |
12 Answers
12
active
oldest
votes
Collect "Mono: A Developer's Notebook", or "Practical Mono" or "Open Source .Net Development: Programming with NAnt, NUnit, NDoc, and More".
The second one is very well-written.
Accepted, because it's the only answer that addresses the "On Linux, using Mono" bit of my question. (Maybe I should have emphasised that some more?) And the suggestion (by Sergey) to undertake "A Real Project(tm)" is of course a good one, and one that I know to do, but it doesn't tell me the things I want to know but don't know (yet).
– Jonas Kölker
Jan 28 '10 at 11:07
Since you have worked in Java, search the web for .NET ports of Java frameworks. If you are going to work with Business Software, you need to master the database access techniques. Some O/R mapping tools like NHibernate will be handy. For other types of software like graphics, there are highly sophisticated libraries like MOGRE, etc. If you have decided to work in AOP, you can take a look at Spring.net.
– user366312
Jan 29 '10 at 5:42
1
No "C# In Depth"? :D
– moogs
Feb 13 '10 at 4:05
@moogs, books are there to take care of that.
– user366312
Aug 31 '18 at 18:34
add a comment |
If you already know the above languages, I would suggest that you assume that you know the language already and dig into the more interesting .NET stuff, such as CLR via C#, which I can reccommend very highly (but not so sure how much it applies to Mono though). The gaps in your language knowledge will fill themselves in.
add a comment |
I suggest you read C# 3.0 in a nuthshell. It is especially aimed for programmers of other languages. Here is a review by Jon Skeet
3
Why is "Here" the link text for the review-link? Wouldn't "review by Jon Skeet" be a much better link text? ;-)
– Christian Klauser
Dec 19 '09 at 18:27
add a comment |
- Pick up a real project. Then you will face real problems.
- Find person who already knows C# well. He may give you valuable advices.
- Get a good book such as C# 3.0 Complete reference by Herbert Shildt. MSDN is good, but sometimes it is easier to read a good book than documentation.
add a comment |
I agree with cyborg's comment that C# is very close to Java. So close, in fact, that it can make you a little suspicious of what's going on at Microsoft behind closed doors - but I digress...
It's all about options so here are a few off the top of my head:
1) Use a Java vs C# guide like cyborg recommended, but realize that for the most part those typically cover just syntax changes (the link he posted is pretty darn good). There are still a ton of changes to get into if you're developing desktop applications or web applications. For example, I found ASP .NET to be a HUGE difference from JSP. The bottom line is that your Java experience will only take you so far, but to be able to produce enterprise applications you will have a lot of new learning to do.
2) Dive in. I remember writing this on another message board for someone with a similar question...pick an application that you want to write for fun (board game, contact manager, todo list with an alarm clock). Make sure whichever application you write uses the basic fundamentals that you need for the real world (data access, network, etc). Write the application and then throw it away or do a major review and refactor. Do this 2-3 times over making improvements each time and you'll be in pretty good shape.
3) Get a good book. This can obviously be combined with 1 and/or 2. Make sure the book focuses on fundamentals first (OO, syntax, best practices). Shameless plug in 1...2...3...check out http://asteio.com for an online resource if you want to go the eLearning route (although my site is a little more expensive than most).
+1 for "dive in". Definitely the best way to learn any programming language, imho.
– Phil Booth
Dec 19 '09 at 16:20
add a comment |
As you know C++ you are already familiar with C# syntax. But its not enough, you need to get yourself familiar with .NET architecture.
how do you learn a new language that's
similar to languages you already know
in a way that taps into the knowledge
you already have? Do people write this
kind of tutorials? Do you just grab a cheat sheet?
Of course you an learn new language if you already know any language by understanding differences between the two. But C# is designed as a entirely different language and share only a part of syntax of C++.
Do you have an array of exercises you
force yourself through? Do you have an array of exercises you force yourself through?
If you know .NET architecture, things will start easing out for you, after that you need not write program in C#. You can even write it in plenty of languages supported by .NET, C# will be easy for you as it share same syntax as that of C++.
Also have a look at
- C# FAQ for C++ programmers
- What the C or C++ Programmer Needs to Know About C# and the .NET Framework
add a comment |
C# is something of a "next-generation" Java, and Microsoft's old Java team did a lot of the development work on the language (plus Anders Heilberg, of Borland Pascal and Delphi fame).
There are two essential improvements in C# over Java.
- C# generics have a better implementation, with the huge improvement being that in C#, generics retain full type information at run-time. This will improve even more in C# 4.0, with covariance and contravariance.
- LINQ (Language INtegrated Query) gives you a SQL-like query language that is fully integrated into C#. You can query object collections, XML, databases, web services, or anything else. The .NET framework includes interfaces for developing your own LINQ data providers, so there are essentially no limits on what LINQ can query.
So probably the best way to approach C# is to think first in terms of Java, and look at the enhancements. Jon Skeet's C# in Depth might be the best starting point; it will cover all the real meat of C# that differs from other languages.
add a comment |
Read some basics from a book / website and go to implementation- that is the best and fastest way to learn ( and usually you won't get bored in the way, maybe just hanged b/c some knowledge is still missing... --> google)
add a comment |
If you're experienced in Java this C# vs Java page goes over all the points that would likely trip you up by assuming that things work in a certain way.
add a comment |
Learning C# is not only learning about its keywords and syntax. It's also (and perhaps, most importantly) learning about its idioms, runtime environment, overall philosophy, libraries, and other associated stuff.
On books, I would suggest C# in Depth by Jon Skeet. It's not Mono-oriented, but it will definitely teach you the insides of C#.
add a comment |
For the language itself, is not hard. What is hard is to learn how to use the huge framework.
add a comment |
I would recommend you professional C# programming books as they mainly focus on a programmer point of view. Such as
Professional C# 2008 (ISBN: 978-0-470-19137-8. Wrox Professional Guides.)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f1932828%2fhow-do-i-learn-c-sharp-faster-already-knowing-c-java-c-etc%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
12 Answers
12
active
oldest
votes
12 Answers
12
active
oldest
votes
active
oldest
votes
active
oldest
votes
Collect "Mono: A Developer's Notebook", or "Practical Mono" or "Open Source .Net Development: Programming with NAnt, NUnit, NDoc, and More".
The second one is very well-written.
Accepted, because it's the only answer that addresses the "On Linux, using Mono" bit of my question. (Maybe I should have emphasised that some more?) And the suggestion (by Sergey) to undertake "A Real Project(tm)" is of course a good one, and one that I know to do, but it doesn't tell me the things I want to know but don't know (yet).
– Jonas Kölker
Jan 28 '10 at 11:07
Since you have worked in Java, search the web for .NET ports of Java frameworks. If you are going to work with Business Software, you need to master the database access techniques. Some O/R mapping tools like NHibernate will be handy. For other types of software like graphics, there are highly sophisticated libraries like MOGRE, etc. If you have decided to work in AOP, you can take a look at Spring.net.
– user366312
Jan 29 '10 at 5:42
1
No "C# In Depth"? :D
– moogs
Feb 13 '10 at 4:05
@moogs, books are there to take care of that.
– user366312
Aug 31 '18 at 18:34
add a comment |
Collect "Mono: A Developer's Notebook", or "Practical Mono" or "Open Source .Net Development: Programming with NAnt, NUnit, NDoc, and More".
The second one is very well-written.
Accepted, because it's the only answer that addresses the "On Linux, using Mono" bit of my question. (Maybe I should have emphasised that some more?) And the suggestion (by Sergey) to undertake "A Real Project(tm)" is of course a good one, and one that I know to do, but it doesn't tell me the things I want to know but don't know (yet).
– Jonas Kölker
Jan 28 '10 at 11:07
Since you have worked in Java, search the web for .NET ports of Java frameworks. If you are going to work with Business Software, you need to master the database access techniques. Some O/R mapping tools like NHibernate will be handy. For other types of software like graphics, there are highly sophisticated libraries like MOGRE, etc. If you have decided to work in AOP, you can take a look at Spring.net.
– user366312
Jan 29 '10 at 5:42
1
No "C# In Depth"? :D
– moogs
Feb 13 '10 at 4:05
@moogs, books are there to take care of that.
– user366312
Aug 31 '18 at 18:34
add a comment |
Collect "Mono: A Developer's Notebook", or "Practical Mono" or "Open Source .Net Development: Programming with NAnt, NUnit, NDoc, and More".
The second one is very well-written.
Collect "Mono: A Developer's Notebook", or "Practical Mono" or "Open Source .Net Development: Programming with NAnt, NUnit, NDoc, and More".
The second one is very well-written.
edited Dec 19 '09 at 18:16
Jon Skeet
1095k69679808466
1095k69679808466
answered Dec 19 '09 at 13:30
user366312user366312
3,81846159319
3,81846159319
Accepted, because it's the only answer that addresses the "On Linux, using Mono" bit of my question. (Maybe I should have emphasised that some more?) And the suggestion (by Sergey) to undertake "A Real Project(tm)" is of course a good one, and one that I know to do, but it doesn't tell me the things I want to know but don't know (yet).
– Jonas Kölker
Jan 28 '10 at 11:07
Since you have worked in Java, search the web for .NET ports of Java frameworks. If you are going to work with Business Software, you need to master the database access techniques. Some O/R mapping tools like NHibernate will be handy. For other types of software like graphics, there are highly sophisticated libraries like MOGRE, etc. If you have decided to work in AOP, you can take a look at Spring.net.
– user366312
Jan 29 '10 at 5:42
1
No "C# In Depth"? :D
– moogs
Feb 13 '10 at 4:05
@moogs, books are there to take care of that.
– user366312
Aug 31 '18 at 18:34
add a comment |
Accepted, because it's the only answer that addresses the "On Linux, using Mono" bit of my question. (Maybe I should have emphasised that some more?) And the suggestion (by Sergey) to undertake "A Real Project(tm)" is of course a good one, and one that I know to do, but it doesn't tell me the things I want to know but don't know (yet).
– Jonas Kölker
Jan 28 '10 at 11:07
Since you have worked in Java, search the web for .NET ports of Java frameworks. If you are going to work with Business Software, you need to master the database access techniques. Some O/R mapping tools like NHibernate will be handy. For other types of software like graphics, there are highly sophisticated libraries like MOGRE, etc. If you have decided to work in AOP, you can take a look at Spring.net.
– user366312
Jan 29 '10 at 5:42
1
No "C# In Depth"? :D
– moogs
Feb 13 '10 at 4:05
@moogs, books are there to take care of that.
– user366312
Aug 31 '18 at 18:34
Accepted, because it's the only answer that addresses the "On Linux, using Mono" bit of my question. (Maybe I should have emphasised that some more?) And the suggestion (by Sergey) to undertake "A Real Project(tm)" is of course a good one, and one that I know to do, but it doesn't tell me the things I want to know but don't know (yet).
– Jonas Kölker
Jan 28 '10 at 11:07
Accepted, because it's the only answer that addresses the "On Linux, using Mono" bit of my question. (Maybe I should have emphasised that some more?) And the suggestion (by Sergey) to undertake "A Real Project(tm)" is of course a good one, and one that I know to do, but it doesn't tell me the things I want to know but don't know (yet).
– Jonas Kölker
Jan 28 '10 at 11:07
Since you have worked in Java, search the web for .NET ports of Java frameworks. If you are going to work with Business Software, you need to master the database access techniques. Some O/R mapping tools like NHibernate will be handy. For other types of software like graphics, there are highly sophisticated libraries like MOGRE, etc. If you have decided to work in AOP, you can take a look at Spring.net.
– user366312
Jan 29 '10 at 5:42
Since you have worked in Java, search the web for .NET ports of Java frameworks. If you are going to work with Business Software, you need to master the database access techniques. Some O/R mapping tools like NHibernate will be handy. For other types of software like graphics, there are highly sophisticated libraries like MOGRE, etc. If you have decided to work in AOP, you can take a look at Spring.net.
– user366312
Jan 29 '10 at 5:42
1
1
No "C# In Depth"? :D
– moogs
Feb 13 '10 at 4:05
No "C# In Depth"? :D
– moogs
Feb 13 '10 at 4:05
@moogs, books are there to take care of that.
– user366312
Aug 31 '18 at 18:34
@moogs, books are there to take care of that.
– user366312
Aug 31 '18 at 18:34
add a comment |
If you already know the above languages, I would suggest that you assume that you know the language already and dig into the more interesting .NET stuff, such as CLR via C#, which I can reccommend very highly (but not so sure how much it applies to Mono though). The gaps in your language knowledge will fill themselves in.
add a comment |
If you already know the above languages, I would suggest that you assume that you know the language already and dig into the more interesting .NET stuff, such as CLR via C#, which I can reccommend very highly (but not so sure how much it applies to Mono though). The gaps in your language knowledge will fill themselves in.
add a comment |
If you already know the above languages, I would suggest that you assume that you know the language already and dig into the more interesting .NET stuff, such as CLR via C#, which I can reccommend very highly (but not so sure how much it applies to Mono though). The gaps in your language knowledge will fill themselves in.
If you already know the above languages, I would suggest that you assume that you know the language already and dig into the more interesting .NET stuff, such as CLR via C#, which I can reccommend very highly (but not so sure how much it applies to Mono though). The gaps in your language knowledge will fill themselves in.
answered Dec 19 '09 at 12:48
JoeJoe
30.2k18116193
30.2k18116193
add a comment |
add a comment |
I suggest you read C# 3.0 in a nuthshell. It is especially aimed for programmers of other languages. Here is a review by Jon Skeet
3
Why is "Here" the link text for the review-link? Wouldn't "review by Jon Skeet" be a much better link text? ;-)
– Christian Klauser
Dec 19 '09 at 18:27
add a comment |
I suggest you read C# 3.0 in a nuthshell. It is especially aimed for programmers of other languages. Here is a review by Jon Skeet
3
Why is "Here" the link text for the review-link? Wouldn't "review by Jon Skeet" be a much better link text? ;-)
– Christian Klauser
Dec 19 '09 at 18:27
add a comment |
I suggest you read C# 3.0 in a nuthshell. It is especially aimed for programmers of other languages. Here is a review by Jon Skeet
I suggest you read C# 3.0 in a nuthshell. It is especially aimed for programmers of other languages. Here is a review by Jon Skeet
answered Dec 19 '09 at 12:51
Andreas BoniniAndreas Bonini
29.8k27113146
29.8k27113146
3
Why is "Here" the link text for the review-link? Wouldn't "review by Jon Skeet" be a much better link text? ;-)
– Christian Klauser
Dec 19 '09 at 18:27
add a comment |
3
Why is "Here" the link text for the review-link? Wouldn't "review by Jon Skeet" be a much better link text? ;-)
– Christian Klauser
Dec 19 '09 at 18:27
3
3
Why is "Here" the link text for the review-link? Wouldn't "review by Jon Skeet" be a much better link text? ;-)
– Christian Klauser
Dec 19 '09 at 18:27
Why is "Here" the link text for the review-link? Wouldn't "review by Jon Skeet" be a much better link text? ;-)
– Christian Klauser
Dec 19 '09 at 18:27
add a comment |
- Pick up a real project. Then you will face real problems.
- Find person who already knows C# well. He may give you valuable advices.
- Get a good book such as C# 3.0 Complete reference by Herbert Shildt. MSDN is good, but sometimes it is easier to read a good book than documentation.
add a comment |
- Pick up a real project. Then you will face real problems.
- Find person who already knows C# well. He may give you valuable advices.
- Get a good book such as C# 3.0 Complete reference by Herbert Shildt. MSDN is good, but sometimes it is easier to read a good book than documentation.
add a comment |
- Pick up a real project. Then you will face real problems.
- Find person who already knows C# well. He may give you valuable advices.
- Get a good book such as C# 3.0 Complete reference by Herbert Shildt. MSDN is good, but sometimes it is easier to read a good book than documentation.
- Pick up a real project. Then you will face real problems.
- Find person who already knows C# well. He may give you valuable advices.
- Get a good book such as C# 3.0 Complete reference by Herbert Shildt. MSDN is good, but sometimes it is easier to read a good book than documentation.
answered Dec 19 '09 at 13:29
SergeySergey
14.7k2174111
14.7k2174111
add a comment |
add a comment |
I agree with cyborg's comment that C# is very close to Java. So close, in fact, that it can make you a little suspicious of what's going on at Microsoft behind closed doors - but I digress...
It's all about options so here are a few off the top of my head:
1) Use a Java vs C# guide like cyborg recommended, but realize that for the most part those typically cover just syntax changes (the link he posted is pretty darn good). There are still a ton of changes to get into if you're developing desktop applications or web applications. For example, I found ASP .NET to be a HUGE difference from JSP. The bottom line is that your Java experience will only take you so far, but to be able to produce enterprise applications you will have a lot of new learning to do.
2) Dive in. I remember writing this on another message board for someone with a similar question...pick an application that you want to write for fun (board game, contact manager, todo list with an alarm clock). Make sure whichever application you write uses the basic fundamentals that you need for the real world (data access, network, etc). Write the application and then throw it away or do a major review and refactor. Do this 2-3 times over making improvements each time and you'll be in pretty good shape.
3) Get a good book. This can obviously be combined with 1 and/or 2. Make sure the book focuses on fundamentals first (OO, syntax, best practices). Shameless plug in 1...2...3...check out http://asteio.com for an online resource if you want to go the eLearning route (although my site is a little more expensive than most).
+1 for "dive in". Definitely the best way to learn any programming language, imho.
– Phil Booth
Dec 19 '09 at 16:20
add a comment |
I agree with cyborg's comment that C# is very close to Java. So close, in fact, that it can make you a little suspicious of what's going on at Microsoft behind closed doors - but I digress...
It's all about options so here are a few off the top of my head:
1) Use a Java vs C# guide like cyborg recommended, but realize that for the most part those typically cover just syntax changes (the link he posted is pretty darn good). There are still a ton of changes to get into if you're developing desktop applications or web applications. For example, I found ASP .NET to be a HUGE difference from JSP. The bottom line is that your Java experience will only take you so far, but to be able to produce enterprise applications you will have a lot of new learning to do.
2) Dive in. I remember writing this on another message board for someone with a similar question...pick an application that you want to write for fun (board game, contact manager, todo list with an alarm clock). Make sure whichever application you write uses the basic fundamentals that you need for the real world (data access, network, etc). Write the application and then throw it away or do a major review and refactor. Do this 2-3 times over making improvements each time and you'll be in pretty good shape.
3) Get a good book. This can obviously be combined with 1 and/or 2. Make sure the book focuses on fundamentals first (OO, syntax, best practices). Shameless plug in 1...2...3...check out http://asteio.com for an online resource if you want to go the eLearning route (although my site is a little more expensive than most).
+1 for "dive in". Definitely the best way to learn any programming language, imho.
– Phil Booth
Dec 19 '09 at 16:20
add a comment |
I agree with cyborg's comment that C# is very close to Java. So close, in fact, that it can make you a little suspicious of what's going on at Microsoft behind closed doors - but I digress...
It's all about options so here are a few off the top of my head:
1) Use a Java vs C# guide like cyborg recommended, but realize that for the most part those typically cover just syntax changes (the link he posted is pretty darn good). There are still a ton of changes to get into if you're developing desktop applications or web applications. For example, I found ASP .NET to be a HUGE difference from JSP. The bottom line is that your Java experience will only take you so far, but to be able to produce enterprise applications you will have a lot of new learning to do.
2) Dive in. I remember writing this on another message board for someone with a similar question...pick an application that you want to write for fun (board game, contact manager, todo list with an alarm clock). Make sure whichever application you write uses the basic fundamentals that you need for the real world (data access, network, etc). Write the application and then throw it away or do a major review and refactor. Do this 2-3 times over making improvements each time and you'll be in pretty good shape.
3) Get a good book. This can obviously be combined with 1 and/or 2. Make sure the book focuses on fundamentals first (OO, syntax, best practices). Shameless plug in 1...2...3...check out http://asteio.com for an online resource if you want to go the eLearning route (although my site is a little more expensive than most).
I agree with cyborg's comment that C# is very close to Java. So close, in fact, that it can make you a little suspicious of what's going on at Microsoft behind closed doors - but I digress...
It's all about options so here are a few off the top of my head:
1) Use a Java vs C# guide like cyborg recommended, but realize that for the most part those typically cover just syntax changes (the link he posted is pretty darn good). There are still a ton of changes to get into if you're developing desktop applications or web applications. For example, I found ASP .NET to be a HUGE difference from JSP. The bottom line is that your Java experience will only take you so far, but to be able to produce enterprise applications you will have a lot of new learning to do.
2) Dive in. I remember writing this on another message board for someone with a similar question...pick an application that you want to write for fun (board game, contact manager, todo list with an alarm clock). Make sure whichever application you write uses the basic fundamentals that you need for the real world (data access, network, etc). Write the application and then throw it away or do a major review and refactor. Do this 2-3 times over making improvements each time and you'll be in pretty good shape.
3) Get a good book. This can obviously be combined with 1 and/or 2. Make sure the book focuses on fundamentals first (OO, syntax, best practices). Shameless plug in 1...2...3...check out http://asteio.com for an online resource if you want to go the eLearning route (although my site is a little more expensive than most).
edited Jan 6 '10 at 18:47
Bill the Lizard
296k158500792
296k158500792
answered Dec 19 '09 at 15:50
asteioasteio
512
512
+1 for "dive in". Definitely the best way to learn any programming language, imho.
– Phil Booth
Dec 19 '09 at 16:20
add a comment |
+1 for "dive in". Definitely the best way to learn any programming language, imho.
– Phil Booth
Dec 19 '09 at 16:20
+1 for "dive in". Definitely the best way to learn any programming language, imho.
– Phil Booth
Dec 19 '09 at 16:20
+1 for "dive in". Definitely the best way to learn any programming language, imho.
– Phil Booth
Dec 19 '09 at 16:20
add a comment |
As you know C++ you are already familiar with C# syntax. But its not enough, you need to get yourself familiar with .NET architecture.
how do you learn a new language that's
similar to languages you already know
in a way that taps into the knowledge
you already have? Do people write this
kind of tutorials? Do you just grab a cheat sheet?
Of course you an learn new language if you already know any language by understanding differences between the two. But C# is designed as a entirely different language and share only a part of syntax of C++.
Do you have an array of exercises you
force yourself through? Do you have an array of exercises you force yourself through?
If you know .NET architecture, things will start easing out for you, after that you need not write program in C#. You can even write it in plenty of languages supported by .NET, C# will be easy for you as it share same syntax as that of C++.
Also have a look at
- C# FAQ for C++ programmers
- What the C or C++ Programmer Needs to Know About C# and the .NET Framework
add a comment |
As you know C++ you are already familiar with C# syntax. But its not enough, you need to get yourself familiar with .NET architecture.
how do you learn a new language that's
similar to languages you already know
in a way that taps into the knowledge
you already have? Do people write this
kind of tutorials? Do you just grab a cheat sheet?
Of course you an learn new language if you already know any language by understanding differences between the two. But C# is designed as a entirely different language and share only a part of syntax of C++.
Do you have an array of exercises you
force yourself through? Do you have an array of exercises you force yourself through?
If you know .NET architecture, things will start easing out for you, after that you need not write program in C#. You can even write it in plenty of languages supported by .NET, C# will be easy for you as it share same syntax as that of C++.
Also have a look at
- C# FAQ for C++ programmers
- What the C or C++ Programmer Needs to Know About C# and the .NET Framework
add a comment |
As you know C++ you are already familiar with C# syntax. But its not enough, you need to get yourself familiar with .NET architecture.
how do you learn a new language that's
similar to languages you already know
in a way that taps into the knowledge
you already have? Do people write this
kind of tutorials? Do you just grab a cheat sheet?
Of course you an learn new language if you already know any language by understanding differences between the two. But C# is designed as a entirely different language and share only a part of syntax of C++.
Do you have an array of exercises you
force yourself through? Do you have an array of exercises you force yourself through?
If you know .NET architecture, things will start easing out for you, after that you need not write program in C#. You can even write it in plenty of languages supported by .NET, C# will be easy for you as it share same syntax as that of C++.
Also have a look at
- C# FAQ for C++ programmers
- What the C or C++ Programmer Needs to Know About C# and the .NET Framework
As you know C++ you are already familiar with C# syntax. But its not enough, you need to get yourself familiar with .NET architecture.
how do you learn a new language that's
similar to languages you already know
in a way that taps into the knowledge
you already have? Do people write this
kind of tutorials? Do you just grab a cheat sheet?
Of course you an learn new language if you already know any language by understanding differences between the two. But C# is designed as a entirely different language and share only a part of syntax of C++.
Do you have an array of exercises you
force yourself through? Do you have an array of exercises you force yourself through?
If you know .NET architecture, things will start easing out for you, after that you need not write program in C#. You can even write it in plenty of languages supported by .NET, C# will be easy for you as it share same syntax as that of C++.
Also have a look at
- C# FAQ for C++ programmers
- What the C or C++ Programmer Needs to Know About C# and the .NET Framework
edited Dec 19 '09 at 13:16
answered Dec 19 '09 at 12:50
XinusXinus
14.8k24103154
14.8k24103154
add a comment |
add a comment |
C# is something of a "next-generation" Java, and Microsoft's old Java team did a lot of the development work on the language (plus Anders Heilberg, of Borland Pascal and Delphi fame).
There are two essential improvements in C# over Java.
- C# generics have a better implementation, with the huge improvement being that in C#, generics retain full type information at run-time. This will improve even more in C# 4.0, with covariance and contravariance.
- LINQ (Language INtegrated Query) gives you a SQL-like query language that is fully integrated into C#. You can query object collections, XML, databases, web services, or anything else. The .NET framework includes interfaces for developing your own LINQ data providers, so there are essentially no limits on what LINQ can query.
So probably the best way to approach C# is to think first in terms of Java, and look at the enhancements. Jon Skeet's C# in Depth might be the best starting point; it will cover all the real meat of C# that differs from other languages.
add a comment |
C# is something of a "next-generation" Java, and Microsoft's old Java team did a lot of the development work on the language (plus Anders Heilberg, of Borland Pascal and Delphi fame).
There are two essential improvements in C# over Java.
- C# generics have a better implementation, with the huge improvement being that in C#, generics retain full type information at run-time. This will improve even more in C# 4.0, with covariance and contravariance.
- LINQ (Language INtegrated Query) gives you a SQL-like query language that is fully integrated into C#. You can query object collections, XML, databases, web services, or anything else. The .NET framework includes interfaces for developing your own LINQ data providers, so there are essentially no limits on what LINQ can query.
So probably the best way to approach C# is to think first in terms of Java, and look at the enhancements. Jon Skeet's C# in Depth might be the best starting point; it will cover all the real meat of C# that differs from other languages.
add a comment |
C# is something of a "next-generation" Java, and Microsoft's old Java team did a lot of the development work on the language (plus Anders Heilberg, of Borland Pascal and Delphi fame).
There are two essential improvements in C# over Java.
- C# generics have a better implementation, with the huge improvement being that in C#, generics retain full type information at run-time. This will improve even more in C# 4.0, with covariance and contravariance.
- LINQ (Language INtegrated Query) gives you a SQL-like query language that is fully integrated into C#. You can query object collections, XML, databases, web services, or anything else. The .NET framework includes interfaces for developing your own LINQ data providers, so there are essentially no limits on what LINQ can query.
So probably the best way to approach C# is to think first in terms of Java, and look at the enhancements. Jon Skeet's C# in Depth might be the best starting point; it will cover all the real meat of C# that differs from other languages.
C# is something of a "next-generation" Java, and Microsoft's old Java team did a lot of the development work on the language (plus Anders Heilberg, of Borland Pascal and Delphi fame).
There are two essential improvements in C# over Java.
- C# generics have a better implementation, with the huge improvement being that in C#, generics retain full type information at run-time. This will improve even more in C# 4.0, with covariance and contravariance.
- LINQ (Language INtegrated Query) gives you a SQL-like query language that is fully integrated into C#. You can query object collections, XML, databases, web services, or anything else. The .NET framework includes interfaces for developing your own LINQ data providers, so there are essentially no limits on what LINQ can query.
So probably the best way to approach C# is to think first in terms of Java, and look at the enhancements. Jon Skeet's C# in Depth might be the best starting point; it will cover all the real meat of C# that differs from other languages.
answered Dec 19 '09 at 16:02
Cylon CatCylon Cat
6,54621931
6,54621931
add a comment |
add a comment |
Read some basics from a book / website and go to implementation- that is the best and fastest way to learn ( and usually you won't get bored in the way, maybe just hanged b/c some knowledge is still missing... --> google)
add a comment |
Read some basics from a book / website and go to implementation- that is the best and fastest way to learn ( and usually you won't get bored in the way, maybe just hanged b/c some knowledge is still missing... --> google)
add a comment |
Read some basics from a book / website and go to implementation- that is the best and fastest way to learn ( and usually you won't get bored in the way, maybe just hanged b/c some knowledge is still missing... --> google)
Read some basics from a book / website and go to implementation- that is the best and fastest way to learn ( and usually you won't get bored in the way, maybe just hanged b/c some knowledge is still missing... --> google)
answered Dec 19 '09 at 12:51
DaniDani
10.3k94889
10.3k94889
add a comment |
add a comment |
If you're experienced in Java this C# vs Java page goes over all the points that would likely trip you up by assuming that things work in a certain way.
add a comment |
If you're experienced in Java this C# vs Java page goes over all the points that would likely trip you up by assuming that things work in a certain way.
add a comment |
If you're experienced in Java this C# vs Java page goes over all the points that would likely trip you up by assuming that things work in a certain way.
If you're experienced in Java this C# vs Java page goes over all the points that would likely trip you up by assuming that things work in a certain way.
answered Dec 19 '09 at 13:09
cyborgcyborg
4,35011420
4,35011420
add a comment |
add a comment |
Learning C# is not only learning about its keywords and syntax. It's also (and perhaps, most importantly) learning about its idioms, runtime environment, overall philosophy, libraries, and other associated stuff.
On books, I would suggest C# in Depth by Jon Skeet. It's not Mono-oriented, but it will definitely teach you the insides of C#.
add a comment |
Learning C# is not only learning about its keywords and syntax. It's also (and perhaps, most importantly) learning about its idioms, runtime environment, overall philosophy, libraries, and other associated stuff.
On books, I would suggest C# in Depth by Jon Skeet. It's not Mono-oriented, but it will definitely teach you the insides of C#.
add a comment |
Learning C# is not only learning about its keywords and syntax. It's also (and perhaps, most importantly) learning about its idioms, runtime environment, overall philosophy, libraries, and other associated stuff.
On books, I would suggest C# in Depth by Jon Skeet. It's not Mono-oriented, but it will definitely teach you the insides of C#.
Learning C# is not only learning about its keywords and syntax. It's also (and perhaps, most importantly) learning about its idioms, runtime environment, overall philosophy, libraries, and other associated stuff.
On books, I would suggest C# in Depth by Jon Skeet. It's not Mono-oriented, but it will definitely teach you the insides of C#.
answered Dec 19 '09 at 18:26
CesarGonCesarGon
12.2k54678
12.2k54678
add a comment |
add a comment |
For the language itself, is not hard. What is hard is to learn how to use the huge framework.
add a comment |
For the language itself, is not hard. What is hard is to learn how to use the huge framework.
add a comment |
For the language itself, is not hard. What is hard is to learn how to use the huge framework.
For the language itself, is not hard. What is hard is to learn how to use the huge framework.
edited Feb 15 '10 at 18:06
Peter Mortensen
13.8k1987113
13.8k1987113
answered Dec 19 '09 at 16:00
BennyBenny
4,60764683
4,60764683
add a comment |
add a comment |
I would recommend you professional C# programming books as they mainly focus on a programmer point of view. Such as
Professional C# 2008 (ISBN: 978-0-470-19137-8. Wrox Professional Guides.)
add a comment |
I would recommend you professional C# programming books as they mainly focus on a programmer point of view. Such as
Professional C# 2008 (ISBN: 978-0-470-19137-8. Wrox Professional Guides.)
add a comment |
I would recommend you professional C# programming books as they mainly focus on a programmer point of view. Such as
Professional C# 2008 (ISBN: 978-0-470-19137-8. Wrox Professional Guides.)
I would recommend you professional C# programming books as they mainly focus on a programmer point of view. Such as
Professional C# 2008 (ISBN: 978-0-470-19137-8. Wrox Professional Guides.)
edited Feb 15 '10 at 18:09
Peter Mortensen
13.8k1987113
13.8k1987113
answered Dec 19 '09 at 13:26
TadTad
116110
116110
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f1932828%2fhow-do-i-learn-c-sharp-faster-already-knowing-c-java-c-etc%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
17
To learn any language, I have an infalible approach - I read a book.
– anon
Dec 19 '09 at 12:46
Read highest voted C# related questions on Stack Overflow.
– Anwar Chandra
Dec 19 '09 at 12:48
I think OP is asking for a good book for people who already know other languages (i.e. something that assumes knowledge of OOP and the like, and goes straight into the meat).
– Gorpik
Dec 19 '09 at 13:57
1
I'm in a similar boat (10+ years programming but quite new to C#) so I'm very interested to read through the answers here... I found the syntax very easy to pick up (similar to Java or AS3) and it easy to make it start doing things but I found it much harder to find "best practice" references...
– vitch
Dec 19 '09 at 15:09
I don't see how a book would be "infalible" (sic). I've read many books about languages and failed to learn the language. My approach is to write a program -- when you're done, you've succeeded, by definition.
– Ken
Jan 6 '10 at 19:04