Hi guys,
I've taken introductory courses on Java at the local community college about a year ago. I didn't finish because the final projects were kind of boring to me and the focus of the class strayed away from showing new concepts. I was already busy with a job too so I wound up not attending for the rest of it. I pretty much just learned and took note of the essential things that seem to be common in most languages.
Since the start of the year I've gotten back into it with some older books I got on C++ (Dummies book and Deitel) and applying the knowledge right away to some C# projects in Unity.
It's been pretty good, I've learned how to tackle problems I ran into myself and used tutorials online in a way that wasn't just copy/pasta.
I wound up making a pretty functional 2.5d platformer.
Still there are things that confuse me like bit-shifting and more complex array stuff.
I'd like to learn more to maybe solidify my understanding of C#
Do any of you have some good book recommendations on C#?
I'm about to head to the local store right now to see what they've got.
Thanks!
Replies
This is the best programming book there is, especially if you've already been introduced to programming. It's for C, not C#, but I believe it's still worth a look, especially if you're having trouble with bithacking and arrays. After pointer arithmetic, arrays will be gravy.
Unless you're doing some low-level (hardware) programming work or interviewing for a job, bit-shifting is irrelevant. I would spend more time on learning how to build complex data structures and algorithms. And this is the area where Python really excels at(much much better than C/C++/C#/Java).
For learning material, I recommend codecademy.com (http://www.codecademy.com/tracks/python). IMHO, reading a book is the slowest way to learn programming.
Until you've got a good grasp on programming pragmatics, I would stray away from anything .NET. Learning the .NET side of the house is just as intense as learning programming for the first time, or even more so. Not to say I don't like .NET, I couldn't live without it - literally - as it's what pays my bills and puts food on my family's table.
Enterprise-Level Software Development is my profession, but I'm brand new to the world of CG. Three months ago, when I was scouring the internet to decide which CG application I should learn first, I found that an overwhelming response was that if I could learn Maya - I could pretty much learn anything CG. I'll say the same about Visual Studio/.NET Framework. If you do decide to jump right into it, and you do struggle to learn it, there probably isn't anything in the programming world that you can't do.
Below I've listed a few books from my personal library - books that I feel should be on every coder's bookshelf. It's probably safe to say that you won't get through all of these books in the first year, or understand them for many years but they're amazing books and I go back through and re-read them all the time. Many deal with high-level overviews, and computer programming theory.
[ame="http://www.amazon.com/Programming-Language-Pragmatics-Third-Edition/dp/0123745144/ref=sr_1_1?ie=UTF8&qid=1399671668&sr=8-1&keywords=programming+language+pragmatics"]Programming Language Pragmatics[/ame]
[ame="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?ie=UTF8&qid=1399671785&sr=8-1&keywords=design+patterns"]Design Patterns: Elements of Reusable Object-Oriented Software[/ame]
[ame="http://www.amazon.com/The-Mythical-Man-Month-Engineering-Anniversary/dp/0201835959/ref=sr_1_1?ie=UTF8&qid=1399671832&sr=8-1&keywords=mythical+man+month"]The Mythical Man Month: Essays on Software Engineering[/ame]
[ame="http://www.amazon.com/The-Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?ie=UTF8&qid=1399671882&sr=8-1&keywords=the+pragmatic+programmer"]The Pragmatic Programmer: From Journeyman to Master[/ame]
[ame="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_4?ie=UTF8&qid=1399671928&sr=8-4&keywords=the+pragmatic+programmer"]Clean Code: A Handbook of Agile Software Craftsmanship[/ame]
[ame="http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/ref=sr_1_1?ie=UTF8&qid=1399671991&sr=8-1&keywords=enterprise+design+patterns"]Patterns of Enterprise Application Architecture[/ame]
For .NET Specific:
[ame="http://www.amazon.com/CLR-via-Edition-Developer-Reference/dp/0735667454/ref=sr_1_1?ie=UTF8&qid=1399672041&sr=8-1&keywords=CLR+via+C#"]CLR via C#[/ame]
[ame="http://www.amazon.com/Metaprogramming-NET-Kevin-Hazzard/dp/1617290262/ref=sr_1_16?s=books&ie=UTF8&qid=1399672147&sr=1-16&keywords=.NET"]Metaprogramming in .NET[/ame]
[ame="http://www.amazon.com/Depth-3rd-Edition-Jon-Skeet/dp/161729134X/ref=pd_sim_b_2?ie=UTF8&refRID=1RHFQEK0HTHH2HZM5EFP"]C# In Depth: By Jon Skeet[/ame]
[ame="http://www.amazon.com/C-5-0-Unleashed-Bart-Smet/dp/0672336901/ref=sr_1_7?s=books&ie=UTF8&qid=1399672236&sr=1-7&keywords=.net+unleashed"]C# 5.0 Unleashed[/ame]
As far as the Unleashed series of books go, all around, they're my favorite.
www.dreamincode.net helped me out in that matter. Once I had a firm grasp on the concept of programming, then I started buying books.