As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm currently looking at purchasing a few C# 4.0 books, namely:
Essential C# 4.0 by Mark Michaelis or C# 4.0 Unleashed by Bart De Smet.
I am aware that both books are yet to be released, but would you consider purchasing either of these books, or would you recommend another?
Thanks for your time.
Clarification:
I'm not a .NET Ninja, but I do have 8+ years experience with the framework & related languages. So I'm generally looking for in-depth books. I also train/instruct the rest of my organisation generally 6 - 12 months after each .NET release. Each of the developers I train has the same or more .net experience than myself.
Once again thank you all for your time.
Update:
Thank you everyone for your responses. I've decided to purchase both books along with Visual C# 2010 Recipes: A Problem-Solution Approach, as suggested by Waleed Al Balooshi.
I was the technical editor for Mark's book. I quite enjoyed it, it is well written, and accurate.
An interesting thing about the difference between Mark's book and Jon's book (for which I was also the technical editor) is that both of them have accurate titles. "C# in Depth" really does go into quite a lot of depth; Jon doesn't shy away from the abstruse or theoretical, though of course he always has an eye on the practical. Mark's book really is more about cutting to what is essential to understand in order to get the job done. Both approaches are valid and reasonable.
Bart is a smart guy and I would imagine his book is quite good; not having read it, I cannot offer a personal opinion one way or the other.
I would recommend that you buy the MEAP (Early Access Edition) of Jon Skeet's C# in Depth 2nd edition, which is updated to include C# 4.0
In addition to this there is also:
C# 4.0 in a Nutshell: The Definitive Reference (Already Out)
Other than that I can't really say about the other books, because they aren't out yet, but I like the A Problem-Solution Series:
Visual C# 2010 Recipes: A Problem-Solution Approach (Not Out Yet)
I would wait till the books are out and you can read some reviews about them, till then I again highly recommend Jon Skeet's book.
In full disclosure, I am an editor with Addison-Wesley/Pearson. C# books are not one size fits all. It depends on your level of experience, as well as your programming background (are you a Java developer wanting to learn C# or are you trying C# programming for the first time?). We are publishing a lot for the 4.0 release, which may seem like over publishing to an outsider, but consider these differences: Sams Teach Yourself Visual C# 2010 is a quick get “up-and-running” tutorial for the very beginner. No programming experience needed. Bill Wagner's Effective C# books are a healthy dose of hard-earned wisdom, advice, and tips for the intermediate to experienced C# developer. C# 4.0 How to is a “just-what-you-need-to-know” title that focuses on general explanations and teaching “essentials” to the working, intermediate-level developer. Mark Michaelis' popular "Essential C#" is a “start-to-finish” guide focused ONLY on the C# language (2.0, 3.0, and 4.0) for the beginner to intermediate developer while C# Unleashed is the comprehensive “everything but the kitchen sink” reference guide focused on C# and .NET for the intermediate developer. Finally the Deitel's publish a lot of textbook C# for the academic community. I will also vouch for Jon Skeet's C# books. He is very knowledgeable and well regarded in the community. Whatever you decide, I would recommend taking a look at sample chapters that publishers release to see what approach/author best meets your needs.
I would wait for Jon Skeet to write one and buy it.
+1 for Bart de Smet. You can sample his writing by visiting his blog, which has been in my aggregator for years.
In the end, however, the most important thing is to find someone whose approach resonates with you.
Pro C# 2010 and the .NET 4.0 Platform
This is probably the only book you will need.
I would wait until after April and look at blogs and podcasts until then to be absolutely sure things don't change too much!
This book looks quite good for newcomers:
Introducing .NET 4.0: With Visual Studio 2010
http://www.amazon.co.uk/Introducing-NET-4-0-Visual-Studio/dp/143022455X/ref=sr_1_1?ie=UTF8&s=books&qid=1265798479&sr=8-1
I'll probably hold out till
Pro C# 2010 And The .NET 4.0 Platform 5th Edition (Andrew Troelsen)
http://www.amazon.co.uk/gp/product/1430225491/ref=s9_simi_gw_p14_t1?pf_rd_m=A3P5ROKL5A1OLE&pf_rd_s=center-1&pf_rd_r=1B44BHPWP93JTH087A55&pf_rd_t=101&pf_rd_p=467198433&pf_rd_i=468294
The devil you know is better than the devil you don't: Mark Michaelis has published several books, mostly on C#, while de Smet seems to have only this title to his name. I'd go with Michaelis.
It depends on what you are looking for? Do you want a beginners book or a more in-depth book? It also depends on the style of book you are looking for. Another one, also not released yet, is the upcoming Sams Teach Yourself Visual Studio 2010 in 24 Hours< (which is really focused on C# 4.0 rather than Visual Studio).
It depends on what you need from the book.
If you want to push C# to newcomers, you might want to try O'Reilly's Programming C# 4.0 or Beginning C# 4.0 from Wrox.
If you're looking for a language drill-down, then you've already got C# in Depth on order, but I would consider Bart de Smet's book as well as another c# stunt coder, given his blog.
If you're looking for more real-world applications, I'd highly recommend Bill Wagner's Effective C# which is being updated for C# 4.0. This is one of the books that sits on my desk almost all the time. I really like it.
I would prefer book of Microsoft publication (MOC) , BLACK BOOK and wrox publication book
If you're looking for suggestions for one particular good C# book, I would recommend a couple different books of your choice at the same time. You always get a good cross-section of knowledge that way because different authors use different analogies, have different angles on teaching, etc. It makes you wiser.
Additionally, supplement your book knowledge with materials and samples from the Internet like MSDN, CodeProject, etc. Some books have companion CDs.
Related
Reading the Bruce Eckel book "Thinking in C#", to relearn C#, since I haven'y used it for many years but am likely to be needing it again soon.
I was surprised by this statement:
"In C++, the keyword that implements
parameterized types is “template.”
.NET currently has no parameterized
types since it is possible for it to
get by—however awkwardly—using the
singly rooted hierarchy. However,
there is no doubt that parameterized
types will be implemented in a future
version of the .NET Framework."
I think I remember reading somewhere that C# has generics - which are similar to C++ templates?
Am I wrong, or is the Eckel book simply too outdated (if so, is it worth still reading or is there a more up to date book online?)
[Edit]
Eeek, I'm glad I checked in here first. Looks like I'll have to throw that book away (written in 2002 I believe). Can anyone recommend any downloadable book that has the same depth of Eckels 'Thinking in ...' series?
There are a lot of C# books out there, but most of them are far too basic, or do not cover enough material. I was happy to find Eckel's book, since he covers C# in usual thorough style (from an introduction to OOP [which I don't need], through WinForm and Threading) - Unfortunately, it looks like its too old (Damn you MS for changing C# specs more times than I've had hot dinners!)
Can anyone recommend a good downloadable C# book that has a similar width/depth coverage?
[Edit 2]
Just seen this book:
http://www.free-ebooks-download.org/free-ebook/dotnet/CSharp/beginning-visual-csharp-2010.php
I'd like the opinion of this book from any professional C# developers out there ...
It's probably describing C# 1.0, which didn't have generics.
I would recommend finding a newer book that covers LINQ (introduced in C# 3) and dynamic (C# 4).
I would definitely get the most recent book that's relevant to the version of the .NET framework you're programming for. I started with an old book which didn't even cover automatic properties. Now one year later, I'm changing all of the previous code because it's so bloated and verbose.
Anyhow, C# does have generics, which as far as I can tell are the equivalent of C++ templates.
Generics are in C# since .NET 2.0, which came with Visual Studio 2005. The book is older than 5 years, you definetly need to get rid of it! :)
As others have noted, your book is out of date, or rather describes an out-of-date version of the framework.
It's interesting to note that the first language specification for C# published to ECMA for standardization included generics as a part of the language. C# 1.0 and 1.1, in not including generics, were not full implementations of the C# language. 1.0 and 1.1 should have been numbered 0.1 and 0.2 or some such, but Microsoft doesn't number things like that, as risk adverse people avoid doing real work with beta products.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am wanting to learn C# where would be a good place to start?
What tools will I need to code and compile with as well?
Tools - Download MS Visual C# Express Edition 2010.
Books - Head First C# if you are looking basics..
Refer this page for some good videos and links on C#
Don't rely on the web for good code examples...
With C# specifically, it's easy to find a million examples of how to do something but it's especially hard to find 'good' examples that are succinct and up-to-date with the latest features/practices of the language. If you're learning C# from scratch, the web will probably discourage more than help (I know from personal experience).
If you're learning C# rely on good books to get a solid start. Here's a good list of books to begin with.
Also, bookmark this site as an online C# reference. It is by-far the best of the hundreds/thousands of C# sites that I have seen.
Download Visual Studio Express edition 2010 and do a Hello World console application.
I'd also recommend downloading SQL Server 2008 express and getting familiar with that once you feel like you are getting good with C#.
Both are free and there is lots of resources out there for a beginner.
Also, if you work at a .NET shop tell your manager that you'd interested and see if he'll team you up with an experienced developer to get you started. Having someone to teach you is extremely helpful.
Download Visual Studio 2010 Express Edition, start reading books and tutorials and arm yourself with patience.
I defiantly would say it depends on your experience level. If you already know the OO fundamentals like Polymorphism, Encapsulation etc... and programming fundamentals like loops, conditionals etc... then perhaps opt for a Pro book Wrox C# 4.0. However if you are not familiar and have little experience I have to agree with others that the Head First Series is an extremely good way to learn. Not written in an Academic manner but in a more fun way which makes it easier to remember things.
Obviously as others suggested you can get the appropriate software to create applications in the form of the express editions.
I would try and create your own applications along with doing the books to make things fun and learn more. By doing this you can look at examples on the web and use the code trying to understand it, and also alter the code so it performs the functionality you want. Even if its functionality you have no idea about and the book hasn't covered, as long as you can look at the code and get a general idea of what it's doing.
Like the above mentioned Visual studio 2010.
try this for a great starter, it has loads of resources.
Get familiar with the api, the sooner the better.
I also find video tutorials a great way to let the stuff stick :) So either watch video tutorials then code a bit , then watch again to remember it, but the best way to learn the code is just to do it. Too much theory can confuse, code as you go, set goals for your self and the theory will come as you try to figure out and solve problems.
After installing VS2010 Express Edition, get Programming in the Key of C# by Charles Petzold. It's ancient, but nothing teaches the fundamentals of C# like this book. After that, get Essential C# 2.0, 3.0, or 4.0, higher the better.
Just take your time and learn the fundamentals down cold and you'll be ready to move on.
Check out Microsoft's MSDN series of tutorials.
There's a nice section that goes over command-line C# writing, as well as another section that covers the drag-and-drop window designer functionality that you get with Visual Studio.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Im a pretty experienced programmer in PHP and mainly web languages but today i have decided i want to start to learn a new language!
Im only 21 and I feel as I will never make it in the programming industry without a great set of languages under my belt, So i decided to have a look at C#.
The reason I have chosen C# is because some C programmers have told me that C# is the best language to learn for desktop applications.
I think i need to get started with the Syntax / Structure of C#, What Development Environment to use, and other things that i might face along my new journey.
I hope somebody can guide me
Thanks.
For IDE, you can use Visual Studio Express. And here's a nice set of tutorials.
Also do get your basic concepts straight about .NET framework and CLR.
Once you get the hang of it, Try out LINQ. It is (arguably)the most wonderful feature of the framework. Find some good LINQ tutorials here and here
Although you explicitly mentioned Desktop applications, .NET FW is equally suitable for Web applications 4GuysfromRolla is my favorite ASP.NET resource.
For Dektop applications you might want to start with WinForms, but WPF is the technology of the future. So you are better off learning it if you want to be developing Desktop applications for windows.
Happy Learning!
Stuff you'll need for the beginning:
Visual Studio 2010 Express edition
Few evenings with coffee and Beginner Developer Learning Center
A nice book like this one (it might be a giant one, but I'm in love with it)
Some more coffee
A lot of patience with stuff that isn't in PHP (LINQ, delegates, generic types etc)
Some nice idea to start actually developing and trying stuff out
The best way to learn is to have a problem to solve, and specifically I mean to do something that you DON'T know how to do, rather than something for which you already have the tools. I'd browse around on the net for some toy problems and try to build an app for it.
Eg. I only started on the way down OOP once I decided I needed a poker probability calculator. So basically I had to read a bunch of stuff about VB 6 as I went along. Classes, properties, methods, syntax... the web is great for that kind of thing.
I suppose what I mean is Just Do IT... (see what I did there? :) You'll screw things up, but learn loads more than any book can teach you.
If you're using Visual Studio for Learning it you can use MSDN that perfect for early learning is enough.
I highly recommend Illustrated C# 2008 by Daniel Solis. That's the book I used to learn how the C# language worked (Don't be fooled by "Illustrated" in the title: it's not so much a "beginner's" book as much as it uses good illustrations to teach the language).
You might consider following up with a book dedicated to Silverlight, Windows Presentation Foundation, or ASP.NET if you want to be able to apply what you learn in C# to an appropriate API. I would recommend any book by Matthew MacDonald for the latter.
Learning the basics Pascal, Java, C# and even C is more or less the same...
Start with the studying material of any academic "Introduction to Computer Science" course,
try solving the assignments in a few different languages (to learn C# at a C-like level),
then move on the material from any academic "Object Oriented Programming" course to learn the rest of the basics.
After that is only a matter of experience and searching the MSDN help.
Since you're already an experienced programmer learning C# is more a less an exercise in learning the .NET Framework. The syntax should be easy enough for you to nail down pretty quickly, just by looking for a few tutorials. The harder part will be learning the vast API available to you via the Framework.
I suggest finding a good book on C# (I've had good experience with Microsoft Press and I've heard good things about Wrox and O'Reilly). Make sure it discusses classes, polymorphism (inheritance and interfaces), event based programming, LINQ and reflection.
I believe you'll also want to look at any books dealing specifically with ADO.NET and WPF. The great thing about .NET is once you learn the .NET Framework API you can pretty much move between languages as needed.
I've jumped into the C# bandwagon and was wondering if there's an equivalent of Joshua Bloch's Effective Java for the C# world.
I've already being able to apply some Java knowledge to C# given their similarity but I'm interested in knowledge to make the most effective use of C# specific features. For example, Generics are not implemented equally in Java and C#, so it's not clear to me if the Java Generic "techniques" will work in C# as well.
I'm mostly interested in C# 3.0. That is (of course) unless you guys think I would benefit for looking into versions 1 and 2 features.
Jon Skeet's C# In Depth is a favorite among StackOverflow users.
(source: askjonskeet.com)
There are two books Effective C# and More Effective C# by Bill Wagner that are similar to Effective Java.
Since you want something in the same line of Effective Java the following two books are very similar:
Effective C#
http://img253.imageshack.us/img253/8619/0321245660aa6.jpg
More Effective C#
http://images.amazon.com/images/P/0321485890.MZZZZZZZ.jpg
I found CLR Via C#, by Jeffery Richter, to be very good. It discusses the CLR and framework in some depth and gives you a greater understanding of how to use various feature along with potential pitfalls.
I think Framework Design Guidelines is the closest. While I don't think it's comparable to Effective Java in terms of depth, I haven't read found any better book in the same category.
C# in Depth is great, but it focuses more on the language than design issues in .NET. Therefore, I wouldn't put it in the same category with Effective Java.
How about Effective C#?
It's amazing to see how many people get to write books in the same vein as Scott Meyers' "Effective C++" and "More Effective C++". Here's an algorithm for becoming a published author:
Learn new language X.
Publish "Effective X" and "More Effective X".
Bank tsunami of currency that rolls in.
"Effective Haskell", anyone?
I don't mean this to denigrate anyone who does this. It's more of an homage to Scott Meyers - as good a computer scientist and writer as there is.
It is worth noting that a second edition of Bill Wagner's Effective C# was published recently (18th March 2010 in the UK). This second edition updates it to cover C# 4.0.
Personally, I was wholly unimpressed by the original edition of Effective C#, However, having bought this second edition a few days ago, it appears much better. It is not plagued by the same level of misprints, repetition and, most importantly, it correlates better with what I perceive as best practise rather than just detailing a lot of arbitrary personal choices.
The fact that it is updated to cover C# 4.0 is also important!
Having said all that, these are only my early observations as I haven't read much of it yet!
Effective C# and More Effective C# by Bill Wagner. The second book deals with C# 2 and 3.
Either here and here on Amazon.com
or here and here on Amazon.co.uk
There's a new version of Effective C# (Amazon UK) that covers C# 4.0.
Beaten to it by Andy, but I was looking up the links.
Jon Skeet's C# In Depth is also worth mentioning.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
My 11 year old son is very interested in programming. He has been working with Scratch
for a couple years but has now outgrown it. I recently helped him install Visual C# Express Edition and he is very excited to work with it, but we're having a hard time finding good resources for him online.
He learns best by looking at sample programs, dissecting them, altering them, etc. Searching around I wasn't able to find many good samples for him to download and try in C# Express Edition. Can anyone point me in the direction of a good set of sample programs for a kid learning C#, or any other resources you think might be good for him?
BTW I'm a programmer myself but I've been almost exclusively working with Linux for a long time, so when it comes to Microsoft I'm pretty lost!
I would recommend Coding4Fun. There are some very nice projects out there which would appeal to an 11 year old. I recall seeing some games, screensavers, and even a sample which shows how to make a WinForms app look like it is bleeding (awesome for Halloween, eh?)
Hmm... given that C# isn't really a "teaching language" (and that's not to say it's a bad choice), I suspect there aren't a lot of tutorials targeted at younger kinds. Have you considered doing some parallel learning and trying to pick up C# with your son? It might be a good bonding experience for both of you, and with your background in programming, you'll likely have a lot of insight to share, even if it's more language agnostic knowledge about things like algorithms, style, commenting, pitfalls to avoid, etc.
If your son has already been working with Scratch and is going to be starting on C# then I would say that he is ready for a regular starting C# tutorial. Teaching programming to kids in general has been discussed several times at SO a few times. Here is one of the better results (How and when do you teach a kid to code). The principal concepts of teaching a kid to program are the same regardless of the language.
Alice is based around story-telling. It's not programming specifically, but it teaching programming mechanisms. Instead of loop, it's more like "Repeat this" type construct. Worth watching the demo video though.
I just found when zapping the web the Kid's Corner from Microsoft, he could have a go on this link as well :-)
Code Project is a good resource, but many of the sample are more complicated than you'd want to start with.
For smaller sample apps, Microsoft released their 101 Samples for Visual Studio 2005
XNA is cool, but is somewhat complicated to get started with.
Coding4Fun is also good, but the amount of content isn't that huge.
For an absolute beginner I would suggest www.codecademy.com. It is very simply written and completely interactive from the very first page load. Very ideal for a 1st timer imho. It teaches in JavaScript not C# but they are pretty similar as far as syntax goes. He might already be too advanced for this though.
Any book written in or after 2008 that states it's C# for beginners on Amazon with positive reviews. Do not buy |BLANK| for dummies, no kid likes it! and keep a maximum price of $30 for $25 you can get a book that will be so great Microsoft might have to hire him, lol jk. i recommend a wrox book but any other book will do. has he coded any program yet, is he doing freeware, opensource or paid. some books are made especially for open source. it might be hard at first, but he will end up coding some really useful programs. Main thing, make him keep going! don't let him quit. In my opinion, it isn't worth quitting; once you got the hang of it coding is really fun.
I've started with C# by joining a Minecraft (link) classic server development team. These were all people around 16+, but they really helped me learning the language. Getting into a team with people around your age who are a bit more experienced helps a lot I think, and I'd definitely recommend it.
First of all, I would love than my daughter would be interest in programming when she come to that age, and for that, congratulations.
Microsoft has Codding 4 Fun which should be a nice start, and if he's interested in Video tutorials, check the ASP.NET Learn website, he will find a lot of tutorials and video tutorials in VB and C# together with all the source code.
After that, code Project is a nice place to look to more examples :)
Good programming!
Code Project comes to mind. Lots of samples, projects, etc. available to play with.
If games interested him (which is a fair bet) check out XNA, otherwise try to find some other interest, for example music, and then look for a framework/SDK that would let you create useful content quickly without having to do too much legwork.
You might be interested in checking out Popfly. It is a system similar to Scratch but if you want you can begin adding your own components or do some extra javascript or C#. The integration of the multiple technologies might be a little too advanced but then again it might be okay. Again this is very close to Scratch but it might be fun.
As mentioned previously definitely check out Coding4Fun.
Congratulations and good luck.