Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. What book would you recommend to learn C# from 0?

What book would you recommend to learn C# from 0?

Scheduled Pinned Locked Moved The Lounge
c++learningcsharpquestion
44 Posts 29 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Joan M

    Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

    D Offline
    D Offline
    danm36
    wrote on last edited by
    #25

    If you want something that starts at the core of C# and - to a degree - programming, I'll have to recommend Rob Miles' Yellow Book[^]. It certainly helped me learn C# quite thoroughly, although I'll have to admit that he was one of my lecturers when I attended university.

    1 Reply Last reply
    0
    • OriginalGriffO OriginalGriff

      I'd disagree to an extent: they ripped C++ to bits when they first created C# and got rid of a lot of the "dangerous" stuff - memory leak causes and so on - to create a simpler language that was faster to develop with than native C++ as a result. Since then, they have been layering on more complexity - some of it useful and justified, some of it badly abused. It's perhaps getting to the point where C# needs to be ripped apart and the same exercise done again (.NET Core would have been a good opportunity to do this)

      Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

      F Offline
      F Offline
      Fabio Franco
      wrote on last edited by
      #26

      OriginalGriff wrote:

      C# needs to be ripped apart and the same exercise done again

      Couldn't agree more. It's getting so bloated and ugly that it's starting to look like C++.

      To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia

      1 Reply Last reply
      0
      • J Jon McKee

        I'd also agree on "C# in a Nutshell" by Joseph and Ben Albahari. If you ever really want to take a deep dive into C# and the CLR I highly recommend "CLR via C#" by Jeffrey Richter. In the meantime though, the Microsoft Docs on C#[^] are quite good to start off with :thumbsup:

        F Offline
        F Offline
        Fabio Franco
        wrote on last edited by
        #27

        Jon McKee wrote:

        "CLR via C#"

        This book is awesome. Must read for an in depth understanding of C# on top of .net.

        To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia

        D 1 Reply Last reply
        0
        • OriginalGriffO OriginalGriff

          It has it's uses - you can;t do Linq without it - but when you get lazy f'wits using it on every variable definition it's a PITA for maintenance:

          var i = 666;

          Is just lazy.

          var p = ComplicatedFunctionInAnotherClass(long, list, of, parameters);

          Is lazy, stupid, and uncaring of maintenance or the poor sod who will have to do it.

          Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

          D Offline
          D Offline
          dandy72
          wrote on last edited by
          #28

          I agree with using a var for what clearly should be an int. Or should it be a long? Or a 64-bit unsigned int? As for your 'p' example--it all depends on what you do with it next. If you just need to hang on to it so you can eventually return it from the current function, or to pass it as a param to another function, then under those circumstances I'd say the exact type shouldn't matter to a reader.

          1 Reply Last reply
          0
          • OriginalGriffO OriginalGriff

            I completely agree on the syntax - that's why I use the methods instead - but Linq does have some advantages over the "loads of loops" approach! :-D

            Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

            M Offline
            M Offline
            Member 13046479
            wrote on last edited by
            #29

            Agreed! Linq makes things easier to write, easier to maintain, easier to understand, and just makes code 'prettier'. I cannot stand ugly code!

            J 1 Reply Last reply
            0
            • G Gary Wheeler

              Pro C# 6.0 and the .NET 4.6 Platform[^] by Andrew Troelsen. I've not read this edition (I have the VS2008 version), but it was a very good introduction.

              Software Zen: delete this;

              C Offline
              C Offline
              Clinton Gallagher
              wrote on last edited by
              #30

              I agree Troelsen's book is very good BUT as a former instructor NOTHING beats a textbook with structured lessons. Deitel and Deitel are arguably the best textbook publishers and "C# A Programmer's Introduction" is what I would recommend to get started from scratch. Expensive but worth it if you are disciplined enough to do every excercise as if you were in school else a waste of money that will end up on the shelf next to Troelsen's "C# and the .NET Platform."

              Clinton Gallagher

              1 Reply Last reply
              0
              • J Joan M

                Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                T Offline
                T Offline
                tchris
                wrote on last edited by
                #31

                This one helped me got off the ground running.

                1 Reply Last reply
                0
                • J Joan M

                  Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                  T Offline
                  T Offline
                  tchris
                  wrote on last edited by
                  #32

                  This one helped me get off the ground https://www.murach.com/shop/murach-s-c-2015-detail

                  1 Reply Last reply
                  0
                  • J Joan M

                    Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                    T Offline
                    T Offline
                    tchris
                    wrote on last edited by
                    #33

                    Murach's C# 2015[^]

                    1 Reply Last reply
                    0
                    • J Joan M

                      Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                      T Offline
                      T Offline
                      tchris
                      wrote on last edited by
                      #34

                      This one helped me get off the ground - [MurachBooks](https://www.murach.com/shop/murach-s-c-2015-detail). Its URL is https://www.murach.com/shop/murach-s-c-2015-detail

                      1 Reply Last reply
                      0
                      • J Joan M

                        Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                        P Offline
                        P Offline
                        pschaeffer
                        wrote on last edited by
                        #35

                        Hi, I have had good luck with the "Dummies" books. I needed to learn C++ in two days and the "Dummies" book was right on target. I also got a lot of value from the Python "Dummies" book. Try C# for Dummies.

                        1 Reply Last reply
                        0
                        • J Joan M

                          Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                          B Offline
                          B Offline
                          BotReject
                          wrote on last edited by
                          #36

                          It depends what you mean by 'from 0'. If you have C++ experience it may not be necessary to start right from the bottom. The most interesting one I have read, though a little advanced, is Accelerated C# 2010 by Trey Nash. That said, I rarely use C# these days as i have jumped ship to Java and JavaScript / PHP, so I may not be the best person to ask! The hardest part of C# to learn, in my experience, is delegates and the above book explains these well. In fact i never understood delegates at all until I read Trey's book. personally, though, I prefer the way Java handles events, I find this more intuitive.

                          1 Reply Last reply
                          0
                          • F Fabio Franco

                            Jon McKee wrote:

                            "CLR via C#"

                            This book is awesome. Must read for an in depth understanding of C# on top of .net.

                            To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia

                            D Offline
                            D Offline
                            Davyd McColl
                            wrote on last edited by
                            #37

                            This is the best choice, especially if you're coming from native c++. You need to learn not just the c# language, but how to use it effectively on the .net platform. I also came from c++ to c# via this book.

                            1 Reply Last reply
                            0
                            • J Joan M

                              Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                              D Offline
                              D Offline
                              Davyd McColl
                              wrote on last edited by
                              #38

                              CLR via c#[^] Especially if you're coming from native c++, you're looking to learn not just the c# language, but how to effectively use it on the .net platform.

                              1 Reply Last reply
                              0
                              • J Joan M

                                Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                                A Offline
                                A Offline
                                azamkhon
                                wrote on last edited by
                                #39

                                Hi! I think the best book is LINK[^]

                                1 Reply Last reply
                                0
                                • G Gary Wheeler

                                  Pro C# 6.0 and the .NET 4.6 Platform[^] by Andrew Troelsen. I've not read this edition (I have the VS2008 version), but it was a very good introduction.

                                  Software Zen: delete this;

                                  J Offline
                                  J Offline
                                  James Lonero
                                  wrote on last edited by
                                  #40

                                  I would second Troelsen. I had a class that used Troelsen's book in 2005 when VS2005 and .Net 2.0 was in vogue. He does a good job of explaining the subject. Be sure to read the first few chapters, then go to where you can start programming windows programs, either forms or WPF. (Forms is easier.) There are other books out there, but they are more for reference than taking you step by step.

                                  1 Reply Last reply
                                  0
                                  • OriginalGriffO OriginalGriff

                                    I'd disagree to an extent: they ripped C++ to bits when they first created C# and got rid of a lot of the "dangerous" stuff - memory leak causes and so on - to create a simpler language that was faster to develop with than native C++ as a result. Since then, they have been layering on more complexity - some of it useful and justified, some of it badly abused. It's perhaps getting to the point where C# needs to be ripped apart and the same exercise done again (.NET Core would have been a good opportunity to do this)

                                    Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

                                    J Offline
                                    J Offline
                                    James Lonero
                                    wrote on last edited by
                                    #41

                                    Actually, they simplified C++, as did Java. C++ was getting quite complicated and watching Bjarne Stroustrup running through the variations of template examples was enough to make your head swim. Both Java and C# are good attempts to simplify what C++ has become. Also, most people decided to take up C# because of the pointer problems with C++. Too many times, a raw pointer would be missed or deleted too soon and problems would arise. This was occurring in much larger programs. So, I am happy (so far) with C#.

                                    1 Reply Last reply
                                    0
                                    • OriginalGriffO OriginalGriff

                                      It has it's uses - you can;t do Linq without it - but when you get lazy f'wits using it on every variable definition it's a PITA for maintenance:

                                      var i = 666;

                                      Is just lazy.

                                      var p = ComplicatedFunctionInAnotherClass(long, list, of, parameters);

                                      Is lazy, stupid, and uncaring of maintenance or the poor sod who will have to do it.

                                      Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

                                      J Offline
                                      J Offline
                                      James Lonero
                                      wrote on last edited by
                                      #42

                                      The first example is OK. I as a maintaining programmer know that i will be an int of some sort. The second example, what is p? Do I have to look at the function or intellisense to figure it out? Do I need to look at the context of how p is used later? No to all of these. The professional engineer's job is to not only make the product work as expected but to also make it easier for the next engineer to pick up the work and take it to the next step. (It's in the IEEE code of ethics.) It would seem that is the difference between a programmer/code jockey and an engineer.

                                      1 Reply Last reply
                                      0
                                      • M Member 13046479

                                        Agreed! Linq makes things easier to write, easier to maintain, easier to understand, and just makes code 'prettier'. I cannot stand ugly code!

                                        J Offline
                                        J Offline
                                        James Lonero
                                        wrote on last edited by
                                        #43

                                        Does linq make the code more readable to the next programmer who picks up your code? If the linq covers a simple loop with some decisions inside which will be easier for the next person who maintains the code? Writing code for an organization with multiple programmers and engineers, not only must your code perform what is intended without breaking, but must be as quickly understandable by the next person who pick up the code. Because, you can be sure that your code will change as the customer needs change.

                                        1 Reply Last reply
                                        0
                                        • J Joan M

                                          Hi all, Coming from Visual C++. I'll have a little bit of time in a while and I'd love learning C#... Which book would you recommend me? Thank you! :thumbsup:

                                          B Offline
                                          B Offline
                                          BryanFazekas
                                          wrote on last edited by
                                          #44

                                          I've had good luck with the SAMS books. Each is a series of lessons that typically take an hour to do, although anyone with programming experience will zip through the first third of the book. For people that learn best by doing (like me), the lessons with examples and programming assignments works well. A lot of the books include a CD/DVD, and programming examples are available for download. The current book is SAMS Teach Yourself C# in 21 Days[^]. Note: I have not personally used this book, although I've had good luck with a number of SAMS titles in various areas. If I was learning C# now, it's the first book I'd buy. I do have WROX Professional C# 2008 (which tells you when I learned C#). That kind of book is an excellent reference, valuable to own, but not (IMO) a good learning tool. I spotted another book on Amazon, this one is supposed to be a platform independent book on C#: SAMS Teach Yourself the C# Language in 21 Days[^]. Although I haven't seen it discussed, I tend to buy in ebook format, as it's easier to cart the books around. I open books on a tablet and have that standing next to the monitor when learning something new, and even better when using a book as a reference. However, I prefer hard copy for learning, but space and weight considerations have pushed me to ebooks.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups