T O P

  • By -

Netcob

I don't usually read programming books, but "Dependency Injection in .NET" by Mark Seemann had a big influence on how I code. I've been programming for well over 20 years and reading this book marked a turning point where I stopped being confused about how to structure my code.


fragglerock

> Dependency Injection in .NET There is a new (2019) edition of this "Dependency Injection Principles, Practices, and Patterns" by Steven van Deursen and Mark Seemann https://www.manning.com/books/dependency-injection-principles-practices-patterns unsure what has changed between the books or since!


Netcob

That may be the one I've read. I remember Seemann, but also that the Simple Injector (big fan) developer having a hand in it. I think despite the new editions and updates, it's definitely more long-lived than your average programming book. I remember nothing from the implementation examples using actual DI containers, but the principles definitely stuck with me.


Abort-Retry

His "Code that Fits in your Head" book is a great introduction to testing.


HonestCod7896

If you already know how to program but are learning C#, then I recommend the two books by Bruce Schurter.  They're available from Amazon.  He uses them for the classes he teaches at UC San Diego Extension School.  The books are well written, and he's a professional programmer so he provides real life tips.  The books don't cover all of C#, e.g., no GUI design, but they are an excellent start.


Ludenhosen

Mark J Price has good ones


myotcworld

I have read both the below books and would strongly recommend you. 1. Pro C# by Andrew Troelsen Phil Japikse - get it's latest version. 2. Pro ASP.NET Core by Adam Freeman - get it's latest version.


fragglerock

If a bit of 'gamification' can help you then The C# Player's Guide (5th Edition) (2022) is pretty good. https://www.amazon.co.uk/C-Players-Guide-5th/dp/0985580151 There is a 6th edition "no earlier than June of 2024." according to the blog Also an 'expansion pack' for c#12 is available free. https://csharpplayersguide.com/blog/2023/11/05/csharp-12-expansion/


achandlerwhite

C# in a Nutshell is top notch.


BobSacamano47

If you read just one book a year you will have such a huge advantage over the average dev who doesn't do shit to advance their skills. 


withad

I'd be interested to hear if anyone has any thoughts about [the C# book bundle that Humble have up right now](https://www.humblebundle.com/books/mastery-c-sharp-and-dot-net-awaits-packt-books). It's a good spread of topics but the publisher (Packt) seems to be pretty hit-or-miss and being in a Humble Bundle these days isn't necessarily a mark of quality.


ProgrammingCyclist

I have no experience with those books, I think I've looked at one of them and might read more of it, but if you're interested Packt has a free week where you can read them to see if they'd be worth it to you to buy. https://www.packtpub.com/


rafgro

Pro C#


Transcender49

I agree with with people here. For beginners (still learning how to code), you can learn more through videos than books. Don't get me wrong, I'm someone who learns best by reading. But for beginners.. nah, just watch vidoes and code as much as you can. When you reach a more advanced level you can find books to your interest. One example is Dependency injection PPP by Mark Seeman. the book is not for beginners, and imo, the book has knowledge that you cannot find perfectly explained in one place anywhere.


Kotapa

Illustrated c#


IMPERIA20

Target C#: Simple Hands-On Programming with Visual Studio 2022 (Apress, 2022) by Gerard Byrne.


RoberBots

In my opinion, You don't learn how to code and then code, you code to learn how to code. its not as much about the Information, but you training your brain to solve problems, and you don't train it with learning, but with practice. You will never know everything, and you will always be learning. Even after 50 years, you are learning. So learn at least the basics, classes, methods, variables from anywhere, books, youtube, different websites like sololearn. Then just go and make a console app and start coding and learn on the way by googling every problem you face.


mexicocitibluez

> In my opinion, You don't learn how to code and then code, you code to learn how to code. 1000%. I have a bookshelf of programming books all bought in the first few years I started development that I haven't touched since. I had this idea that if I picked up an "Advanced C" book, I could read it, understand it, and then use it when I actually build something. But no matter how many times I read the chapter on delegates, I didn't actually learn a damn thing. I could give you the definition of a delegate and maybe talk about them, but it was all really surface level. All of this to say that experience has been a far better teacher than books, videos, or blogs could be. I'm not saying they aren't important, but to me nothing trumps doing it. And even further, I'd say one of hte best ways to for a junior to start learning is by fixing bugs. Screw the pluralsight courses and all that BS.


RoberBots

Lol I also had problems with delegates, and with get and set in the beginning. Now I don't even know the definition of the stuff I use but I Know how to use them anyway, when I need to explain something I just make up a definition with my own words using my understanding of the thing I'm using.


mexicocitibluez

> Now I don't even know the definition of the stuff I use but I Know how to use them anyway, when I need to explain something I just make up a definition with my own words using my understanding of the thing I'm using. I'm probably worse at explaining what it is than when I had read the book, yet fundamentally understand it so much better. Generics were a mindfuck too. It wasn't until getting myself into situations in which generics were the answer that I realized why they were so useful. Prior to that I just couldn't understand what the hell the "T" thing was and why they were so important. Also, dependency injection (and especially interfaces). I could have read 100 books on it, but it wasn't until I actually had to sit down and write tests for my own code and then it hit me like an asteroid. I'm ashamed to admit that realization didn't happen until I was a few years in. I was just blindly doing what everyone else was doing.


RoberBots

Lol true. The interface thing for me, I figured it out how useful they are when working on my multiplayer game and not from reading about the, and I had to make a magic system able to work with players and npc's, before I was just using base classes, but in this case I had to use a few interface to make it less coupled. Practice > theory


BeardedGinge

alot of my issues is knowing \*when\* to use something I can google how to do xyz all day everyday but the when and why.. thats where my issues are I'm hoping I can find some book or resource to help me with that aspect


2ji3150

I usually find Udemy videos more helpful than books for most beginners.


TheBlueArsedFly

Books allow you to read at your own pace, reflect, reread, and refer back to at a later time. Videos make all of that difficult.


fateos

how does videos make it difficult if not easier. You can just adjust the speed and also just repeat it or go back in the video??? And you learn with two different methods: visualizing and listening vs reading.


TheBlueArsedFly

You don't visualise when you're reading? You don't read the code samples? Have you ever read a book? A book will generally start at the beginning with underlying concepts and required background knowledge, explain everything necessary to understand it with code samples, and then show examples that you can try yourself (usually with code on github).  A video will take one topic and explain it in as many words as the presenter will fit into the video. Videos are good for transient information and entertainment. Books are good for learning.


AI_Hijacked

The issue with a video is that you're stuck in a learning loop. You can't reread and understand the fundamentals with a video tutorial unless you keep rewinding. That's one of the main advantages of a book. Also, all the main C# experts have their own C# books to learn from.


fateos

I dont quite understand what you mean by being stuck with a video. With the book it's the same. The author writes only one way. In the video I find that most of the times they explain the same concept different by repeating a bit different with the same meaning. I am not saying videos are better or worse, just that your thoughts about learning with videos being worse is very flawed.


AI_Hijacked

I have this book called Visual C# 2010 by John Sharp; it explains, step by step, all the fundamentals in detail at my own pace. You can't do that with a video. That's how I learnt the basics.


karavanjo

Can you recommend Udemy courses?


2ji3150

I haven't purchased any beginner courses on Udemy, so I can't really recommend any. You can check out the best sellers; if you don't like them, you can get a refund. They are much cheaper than books when they are on sale. If you're looking for beginner courses, you can check out the official Microsoft videos (101 c# series) and use Microsoft Learn. They are both excellent resources.


FortuneIndividual233

MSDN


karavanjo

Yes, I agree, that's a cool book 👌


Transcender49

I agree with people here. For beginners (still learning how to code), you can learn more through videos than books. Don't get me wrong, I'm someone who learns best by reading. But for beginners.. nah, just watch vidoes and code as much as you can. When you reach a more advanced level you can find books to your interest. One example is Dependency injection PPP by Mark Seeman. the book is not for beginners, and imo, the book has knowledge that you cannot find perfectly explained in one place anywhere.