text:
Best project-based C# books?Page 1 of 1
12 Replies - 43529 Views - Last Post: 11 January 2013 - 10:50 AM
Best project-based C# books?
Posted 04 January 2013 - 07:36 AM
What do I mean by project-based? Simple. Most C# books are, in my opinion, garbage. Why? Because they exhaustively list each and every thing a beginner needs to know to learn the language, but if the student even manages to finish the book they have no idea where to go next, because they may have the technical knowledge of C# they need and ideas for their programs, but they have little or no instructions as to how to combine C# and their ideas into a piece of functional software. On top of that proper coding techniques are rarely, if ever mentioned. I have a YouTube video from someone who made an entire C# terrain engine, inspired by Morrowind. The amount of time effort and love that went into that must have been phenomenal. But they have quit the project? Why? Because the code is unusable, cluttered and a few other things, can't remember the exact words. Basically it sounds like it would take too long to untangle the mess, it would be quicker to write another engine, which is what they are doing.
I went to college for an AAS-T degree in computer science for 3 years. I failed. Why? Because college is set up, at least in the computer science field, to make you fail. My programming teacher, who was also my counselor, told me this. I went through numerous books, just like the majority of the C# books out there, and when I finally managed to finish one I had no clue how to use the knowledge. If you don't use it, you loose it, and now I am regaining it.
So that's the end of my rant... I'm looking for books that are project-based. This is the primary feature I want. Next up are books that teach you how to construct a program while you learn the language. Not talking about these crappy little example programs used in every other book. Or worse the code-snipped examples unrelated to anything else. Complex stuff built chapter by chapter, piece by piece, so you can see each one and understand how it fits. Finally I'm looking for books that while teaching you C# in a learn-as-you-go manner, they also show you how to properly write your code. That's the third and final desired feature.
I'm especially interested in hearing from folks that have actually used any books they recommend themselves. Get it from the horse's mouth so-to-speak. So please post your suggestions along with just why you made it. Thank you, I really appreciate it!
- DreamBliss
Replies To: Best project-based C# books?
Re: Best project-based C# books?
Posted 04 January 2013 - 08:09 AM
This post has been edited by Michael26: 04 January 2013 - 08:11 AM
Re: Best project-based C# books?
Posted 04 January 2013 - 08:37 AM
Charles Petzold's Programming Windows in C#: He assumes a certain level of C# competence, but he also teaches some C# along the way. Throughout the book you'll be building on set of programs: a text editor, a paint like program, a system info program, etc. while learning how to do Windows programming.
Lynn Thomas Harrison's Introduction to 3D Game Engine Design Using DirectX 9 and C#: This author also assumes a certain level of C# competence, but he also teaches C# along the way. Throughout the book, you'll be building first a 2D Game Engine and then a 3D Game Engine and end up with 2 or 3 games.
Notice that both books don't start from the nuts and bolts "this is a variable" or "this is an if statement" level. They expect that you've already picked up some that on your own. The books jump in at the level of "here is how you build a data structure".
A friend of mine was using a C# book that simply was atrocious. It's goal was to teach C# starting at the ground level by having the reader build up a Paint like program. It sounds like exactly what you are looking for, but I feel the book actually set my friend back because he was a competent C programmer before picking up the book. It even set his C programming back a few steps because some concepts were poorly explained. Unfortunately, I don't remember the name of the book or its author to try to make sure that nobody else picks it up.
Re: Best project-based C# books?
Posted 04 January 2013 - 08:44 AM
This is normal and every programmer goes through it.
The simple fact is there is a great chasm between learning a language and learning to design good architecture for a program. Its the difference between learning English, and learning to write a best selling novel. One is language while the other is planning, design, character development etc. Most English course books don't teach book authoring. And authoring books don't teach the language. So perhaps you're just expecting the wrong thing out of the C# books. Try looking for program design books. Books about good OOP architecture which are generally language neutral or talk about C#, JAVA, Objective-C all together.
I'll be the first to say that most computer programming courses are a set-up, but not for hte reason you state. Most courses teach in 3 years what a good book and some motivation will teach in 6 months. Honestly, one adult to another, it just sounds like you're whining because you failed and you're blaming the system for your inability to grasp/apply the material. I'm sure the other 1,000 students a year that go through that course and don't fail have a different view. The courses simply CAN'T be rigged to make you fail because if that were the case the universities which are in the business of repeat customers would be out of business. Most of us find the opposite is true. Far too many graduates pass while having no fraking clue what to do, because it makes the teacher look good, get re-hired, and the school gets more students and therefore more money.
Software engineering is as much about artistic style as it is science. 10 coders will approach the same problem in at least 5 different ways. But there is no short road. One really does have to start with learning the language, then building simply projects to get a feel and understanding for the simple constructs/tools available to them. Then build up to more complex programs.
You simply can't go from "This is a for loop" to "This is how you build a complete point of sale and inventory system." There are too many foundation principals to learn first. Think about how you learned English as a child. Did you learn "'To run' is a verb. 'Table' is a noun. This is how you use them to create a complelling protagonist while building a story-arc for a mystery novel." No. Because you have to build up understand of concepts layer by layer. Programming languages are even tougher because nobody is speaking to you in C# all day and you can't use C# in your real-world.
This is a complete language, in a complete environment, in a complete eco-system. You're not just learning one little thing. You're learning to speak Martian, while learning to live on heavy-gravity planet in a 5 dimensional universe populated by a race of talking furniture. EVERYTHING is new and different and works on a different set of laws and principals. There is just so much to take in and fully grasp that it can't all happen in a couple books.
Re: Best project-based C# books?
Posted 04 January 2013 - 05:59 PM
I will look into your suggestions.
I am not whining. I just stated the facts. I appreciate your optimism, but you are wrong. I can't remember the term the teacher used, but he had a term for it. It's a way to weed out the weaker students so only the strongest get through. It's done this way, at least at that college, intentionally. I would not be surprised to see the same in many other colleges. But I am sure the $100,000+ institutions don't have such a system in place. They don't need to. The price tag excludes all but the strongest, or richest, students. None of this is a complaint. All of it is merely observation and speculation.
In the end it doesn't matter how things are. It only matters how I choose to respond. The response I have chosen is to go back and finish college if I am able to do so, if it flows for me to do so. I succeed. There is no failure, it does not exist. If I go back, I finish, no matter what they throw at me. I am not the person I was back then. In the meantime I learn from books.
I also believe all possibilities exist, even failure (but only as a possibility, it is not a reality for me.) As such, I believe a book that teaches a programming language can be written in a learn-as-you-go manner, and teach proper coding techniques. How? Very simple. If you are building some sort of program, or several programs, as you proceed through the book, than all that has to be done is be sure that along with the language information, in the chapters where relevant, program design is discussed and then demonstrated in the programs you build.
For example C# is an Object Oriented Language. So as you teach C# you should naturally teach Object Orientation as well. It is not expected or required to get very advanced in one book. We're talking the basics here. Maybe another book will be for the intermediate level, and still another for an advanced level. The point is not everything on C# will be taught in a beginning book, and likewise not everything on Object Orientation needs to be taught, just the basics.
In this way one book can teach you C#, Object Orientation, and by proxy program design fundamentals all in a learn-as-you-go approach. It can be done, and not only that, I am certain it has been done. I just want the titles of these kinds of books.
That said if I have to get 2 or 3 books to learn all this so be it. Not against that at all.
- DreamBliss
Looking at your links now.
- DreamBliss
Re: Best project-based C# books?
Posted 04 January 2013 - 06:11 PM
DreamBliss, on 04 January 2013 - 06:59 PM, said:
That's a good attitude that I can get behind.
There are a number of resources in this very long list: That's why there are several spoiler tags. One of the book links (Build a Program Now! in Visual C# by Microsoft Press, ISBN 0-7356-2542-5 is a terrific book that has you build a Windows Forms application, a WPF app, a database application, your own web browser.) is one I can't recommend enough and works by walking you through the building of a web browser, and used car lot tracking program and a few others. I still reference it many times myself and I think is available as an ebook or PDF for about 10 buck.
My standard beginner resources post - Updated DEC 2012
You can try to learn C# by dismantling snippets and googling terms - basically you can take a hit-n-miss, shotgun approach. Or you could just follow a proper training program whether it be a couple intro books, school, on-line course or series of tutorials like the ones we offer. I'll tell you from experience that just fumbling around in the dark and trying to teach yourself with no guidance doesn't work. Its like stumbling across a Harrier Jump Jet and trying to teach yourself how to fly with no background in piloting: You simply lack any groundwork to start from. How can you lay out your own training course if you don't already know the material? Would you go to a university where the teacher says "I don't know any of this but we'll fumble through it together?"
We have a tutorials section and a learning C# series of articles.
First learn the language by working 2-5 "Learn C# in 30 days" type books cover to cover. Do a couple hundred on-line tutorial projects where you build what you're told to build, the way you are told to build it WITH AN EXPLANATION OF WHY so you can learn.
There are three routes people seem to take when learning programming.
- Just start trying to create programs
- Start taking apart other programs and try to figure out the language by reverse engineering
- Follow a guided learning course (school or self-teaching books)
For the life of me I can't figure out why people try 1 & 2. I strongly suggest taking the guided learning approach. Those book authors go in a certain order for a reason: They know what they're doing and they know the best order to learn the materials.
You start by learning a coding language FIRST.
Learn to plan before you type.
THEN you start designing software with a purpose.
If this sounds like you
Newbie/Rookie said:
Otherwise, you can just jump to the resources here:
Some of the tutorials below are for C# or Java not C, C++, VB.NET [...]. But the conceptual stuff of classes, object oriented design, events etc. are not language specific and should give you enough guidance in theory of program development for you to be able to look-up specific code example in your chosen coding language.
Resources, references and suggestions for new programmers. - Updated Oct 2012
This post has been edited by tlhIn`toq: 04 January 2013 - 06:12 PM
Re: Best project-based C# books?
Posted 04 January 2013 - 07:33 PM
I went ahead and ordered:
Head First C# by Andrew Stellman
Programming Microsoft Windows with C# by Charles Petzold
Have these on hold at my library:
Visual Studio 2008 Step-By-Step
Beginners Guide to Object Oriented Design and C# (something like that)
Currently have checked out:
Build a Program Now for Visual Studio 2005
C# 4.0 In A Nutshell
C# Visual Studio 2010 Express (something like that)
Looking at the links you posted now. I guess my perspective would be, "I'm somewhat familiar with the basics of programming and I would like to create a game engine but am perfectly happy to work on simple applications that hold my interest while I'm learning for now." Have a section for that?
Re: Best project-based C# books?
Posted 05 January 2013 - 02:50 AM
Beginning C# 2008 Objects: From Concepts to Code also walks you through the design and architecting of a functioning C# application, showing the why and the how of the development decisions that go into professional C# coding.
Re: Best project-based C# books?
Posted 10 January 2013 - 04:06 PM
Might be up your alley if you are wanting to do some small projects and need ideas along with some general guidance. I don't work you through them with actual code, but I do provide tips to how you can go about creating solutions and additional ideas on expanding them. They are generally language neutral and have varying skills levels.
*End of shameless plug*
This post has been edited by Martyr2: 10 January 2013 - 04:07 PM
Re: Best project-based C# books?
Posted 10 January 2013 - 05:20 PM
Re: Best project-based C# books?
Posted 11 January 2013 - 12:32 AM
I went from no knowledge to chapter 8 and now having to make a simple tic tac toe game within a month of learning so I would say the book is worth the price
Re: Best project-based C# books?
Posted 11 January 2013 - 06:35 AM
Re: Best project-based C# books?
Posted 11 January 2013 - 10:50 AM