The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.

Looking for a C# book

MKRMKR Registered User regular
edited April 2008 in Help / Advice Forum
I'm looking for a good book on C# that goes deep, and covers stuff from beginner to intermediate (or advanced). I tried looking on the big bookstore sites and amazon.com, but it's hard to tell anything from comments.

MKR on

Posts

  • HlubockyHlubocky Registered User regular
    edited April 2008
    We use C# at work and recommend the book "Effective C#". It hasn't been updated to cover versions greater than 1.1, but if you are new to the language and want to know about when the right time to use structs versus classes is, how to properly implement the Dispose pattern, and a ton of other useful best practices, this is a nice book to go through. Not all of the items are useful, but there are enough good ones that I can recommend the book. Again, this book isn't going to teach you the syntax, but it will lead you down the right path once you do know the language.

    Hlubocky on
  • JasconiusJasconius sword criminal mad onlineRegistered User regular
    edited April 2008
    If you are at all familiar with any modern programming language then the syntax is easy.

    http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

    This is a pretty exhaustive chart of C# syntax.

    I maintain that 95% of the learning curve of C# is learning the .NET Framework, and Microsoft has many training books on it.

    Unfortunately I cannot recommend a specific one since I largely learned C# from modifying and maintaining existing applications rather than taking courses and doing tutorials.

    Jasconius on
    this is a discord of mostly PA people interested in fighting games: https://discord.gg/DZWa97d5rz

    we also talk about other random shit and clown upon each other
  • MKRMKR Registered User regular
    edited April 2008
    Tinkering with existing code sounds like a good way to go about it. I already know the syntax. I guess a .NET guide is more what I was looking for.

    What was that site Microsoft set up that's like Sourceforge, but has .NET stuff? I forgot the name. :(

    MKR on
  • JasconiusJasconius sword criminal mad onlineRegistered User regular
    edited April 2008
    I don't know. Microsoft has MSDN, which is a massive repository of documentation and articles, but your first steps should be learning to create basic programs (or web sites).

    I learned most of what I know from presenting myself with challenges (eg: I want to connect to a database, what's the best way to do that) and then researching the problem thoroughly, writing code to do it, testing it, tinkering, etc. As you do your research you will uncover a lot of the framework. With .NET there's no less than 3 ways to do anything you can think of and the odds are that only a very small fraction of those ways are actually good in terms of performance and flexibility. God, there's like 90 billion ways to connect and retrieve data from a database.

    Fortunately I work with a small platoon of MSCE's who I can bounce ideas and questions off of.

    As far as good sites, asp.net is obviously a safe resource. There's a forum there and you're generally guaranteed a response for average questions within 24 hours.

    The only time I have issues that I cannot solve by asking/MSDN, I go to asp.net.

    Jasconius on
    this is a discord of mostly PA people interested in fighting games: https://discord.gg/DZWa97d5rz

    we also talk about other random shit and clown upon each other
  • VThornheartVThornheart Registered User regular
    edited April 2008
    I don't know what your learning type is, but if you're like me (aka you need to see someone progress logically from start to finish in one simple example in order to understand how the pieces fit together), Microsoft is seldom helpful on that except for their Hands-On labs.

    http://msdn2.microsoft.com/en-us/aa740375.aspx

    These are the hands-on labs for C#. Try them, doing it from start to finish exactly as they instruct. Read it carefully, and it will explain why certain things are being done... if you're of the "see it, then do it" learning type, these hands on labs are little pieces of gold, and far more useful than the other documentation (or even books) that Microsoft often provides (which are notoriously poorly organized, especially for the "see it, then do it" types).

    VThornheart on
    3DS Friend Code: 1950-8938-9095
  • MKRMKR Registered User regular
    edited April 2008
    Codeplex is the site I was thinking of. Watching someone else do it rarely helps me. I've never gotten much out of video tutorials.

    I can work out how something works by looking at it though. I'll look at code from Codeplex for that.

    Thanks for the advice. :)

    MKR on
  • GanluanGanluan Registered User regular
    edited April 2008
    I am a fan of Apress and have a few of their Pro books at work.

    Check out http://www.amazon.com/Illustrated-C-2005-Daniel-Solis/dp/1590597230/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1209000481&sr=8-3

    If you are a seasoned programmer but new to C#, just go straight to their Pro C# book.

    I would not recommend getting a C# book for .NET 1.1, as .NET 2.0 was a pretty dramatic change and you will want to understand things like generics. However, anything 2.0 and up should be fine.

    Ganluan on
  • falsedeffalsedef Registered User regular
    edited April 2008
    If you know programming, don't even bother with a book, unless if it's a style guide (Hlubocky's suggestion is a style guide, for instance). Usually there's no reason to buy a style guide either, unless you know you're going to be using the language a lot.

    I've coded in C# just using MSDN's craptastic website, since it was needed for a project.

    If you're learning C# of your own free will, I gotta ask, why?

    falsedef on
  • GanluanGanluan Registered User regular
    edited April 2008
    falsedef wrote: »
    If you know programming, don't even bother with a book, unless if it's a style guide (Hlubocky's suggestion is a style guide, for instance). Usually there's no reason to buy a style guide either, unless you know you're going to be using the language a lot.

    I've coded in C# just using MSDN's craptastic website, since it was needed for a project.

    If you're learning C# of your own free will, I gotta ask, why?

    It probably depends on how well someone knows programming, but there's a difference between coding something up in C# and coding something maintenable, scalable and conforming to accepted C# standards. If this is for a hobby those aren't as important when getting your feet wet - but if this for your career, knowledge from the best books is very important.

    Ganluan on
  • MKRMKR Registered User regular
    edited April 2008
    falsedef wrote: »
    If you know programming, don't even bother with a book, unless if it's a style guide (Hlubocky's suggestion is a style guide, for instance). Usually there's no reason to buy a style guide either, unless you know you're going to be using the language a lot.

    I've coded in C# just using MSDN's craptastic website, since it was needed for a project.

    If you're learning C# of your own free will, I gotta ask, why?

    Because I like the IDEs for it (I'm using SharpDevelop), and the only programs I write never see the light of day. It's mainly for simplicity. If I were going to write something for distribution, I would probably go with C++.

    MKR on
  • falsedeffalsedef Registered User regular
    edited April 2008
    stryker116 wrote: »
    falsedef wrote: »
    If you know programming, don't even bother with a book, unless if it's a style guide (Hlubocky's suggestion is a style guide, for instance). Usually there's no reason to buy a style guide either, unless you know you're going to be using the language a lot.

    I've coded in C# just using MSDN's craptastic website, since it was needed for a project.

    If you're learning C# of your own free will, I gotta ask, why?

    there's a difference between coding something up in C# and coding something maintenable, scalable and conforming to accepted C# standards.

    That's what a style guide would be for.

    falsedef on
  • VThornheartVThornheart Registered User regular
    edited April 2008
    I see where you're coming from falsedef, but I disagree with you. I think that learning is a very different thing for different people. Some people need to absorb a book to learn something new... and sometimes, even if you're not a "book learner", a book on a specific programming subject can teach you something that you might not run into if you were teaching yourself through other methods. It provides a very organized approach, and something that you can bring with you to the couch and learn, or on a bus, or what-have-you. I think books definitely have their place (if you're of the sort that can learn well through books), even if you're an experienced programmer.

    Now as for me, I think the hands-on labs are the best alternative to a book: but that's just because it happens to fit my "monkey see, monkey do" style of learning. Yeah, I'm not one of the gifted people who can figure things out through improvisation, but it's how I roll (and how many other people roll, otherwise the Hands-on labs wouldn't exist).

    Some people can just sit in front of an IDE with the help file open and learn a new language, and that's awesome and I respect that kind of skill. Some people can look at splintered fragments of code (such as MSDN provides) and piece them together in their head, and that's great too. But no one solution will work for everyone is what I'm trying to say here.

    I think it's good for us to provide him with non-book alternatives, but outright discouraging from the use of a book could be counterproductive if it's the style of learning he's best at (and he tries to go against the grain of his learning style because it was implied that books are for unskilled programmers when, in fact, they're often designed for many people from novices to masters in their respective fields, and their use is only limited by how attuned you are at learning from books in general).

    VThornheart on
    3DS Friend Code: 1950-8938-9095
  • falsedeffalsedef Registered User regular
    edited April 2008
    I don't have a problem with books. Style guides, which I keep mentioning in every post, is what more advanced programmers should buy. Nor do I have a problem with buying preeminent rule books for certain languages.

    But C# is such a general language, and with so many similarities to other languages, that a rule book isn't necessary if you're already up to speed with popular languages. I'd say the same for Java, and I'm a huge Java fan. There's certain languages with preeminent books that everyone should buy, but I don't feel that way here. In all likelyhood, he'll just end up trawling the web for info.

    falsedef on
  • VThornheartVThornheart Registered User regular
    edited April 2008
    I do see where you're coming from, and indeed style guides are quite useful. Your original reply made it sound like you didn't consider books in general to be useful (and that style guides were something you should get if you absolutely had to get a book), which was what I was disagreeing with. If that's not what you meant, that's my bad. I'm just of the opinion that there's a definite place for all kinds of books depending on if you get more information from reading a book than, say, following a tutorial or reading manpages etc...

    VThornheart on
    3DS Friend Code: 1950-8938-9095
  • theSquidtheSquid Sydney, AustraliaRegistered User regular
    edited April 2008
    The rule of thumb with programming textbooks has always been to buy the book written by the author of the language itself. That way you learn the syntax and oddities of the language, its strengths and preferred design and the philosophy behind it.

    Hence, it was developed by Microsoft, headed by Anders Hejsberg, so looking him up on wikipedia I found this published work:

    The C# Programming Language, Second Edition, Addison-Wesley Professional, ISBN 0-321-33443-4 , June 9, 2006

    So this is what you should look at first.

    theSquid on
Sign In or Register to comment.