Slashdot Log In
C# Book Recommendations?
Posted by
Cliff
on Fri Mar 16, 2007 01:45 AM
from the which-one-is-the-best-to-learn-from dept.
from the which-one-is-the-best-to-learn-from dept.
Stevecrox asks: "I'm in my final year of university and have a working knowledge of C/C++, Visual Basic, VHDL and a variety of Assembler languages, however chatting to a friend on his placement year I've been told that C# is what employers are really looking for. What book would you recommend to someone looking to learn C# with my experience?"
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Book? (Score:3, Insightful)
Re:Book? (Score:4, Interesting)
(http://www.daishar.com/blog)
Reading a book wouuldn't help in your case either. My suggestion? Every computer science student at one point or another has had the desire to build a game. Go download Visual C# Express [microsoft.com] and XNA Game Studio Express [microsoft.com] for free and learn C# while scratching that itch at the same time. While the XNA bits won't necessarily be directly applicable to getting a job outside of game development, you can use the full .NET framework for Windows games (XNA on Xbox 360 uses a more limited version of the Compact .NET Framework). Could there be a more fun way to learn C# than by building a game?
Re:Book? (Score:4, Interesting)
(http://opendevice.blogspot.com/ | Last Journal: Thursday September 09 2004, @11:35AM)
Re:Book? (Score:4, Insightful)
(http://www.kibbee.ca/)
Re:Book? (Score:5, Interesting)
Example: C programmer in Matlab. Task: Take two vectors of same length, for every i smaller than length, multiply the ith element of the first with the ith element of the second vector.
Results:
Just playing around, as you suggest:
function y = multiply_vectors(a, b)
y = zeros(size(a));
for i = 1:length(a)
y(i) = a(i)*b(i);
end
end
Doing it the proper (Matlab) way:
y = a.*b;
It's a simple and therefore unlikely example, granted, but there are many such differences between programming languages. Just playing around doesn't easily allow to find them because, technically, the code works. It just doesn't work efficiently. That said, once you know how to deal with the language, by all means, screw around. A lot.
A few (Score:4, Informative)
Next up i'd look into beginning asp.net 2.0 with c# by wrox press if you are interested in web development. It is an example driven book. You read a little, then it walks you through doing something. It also has assignments at the end of the chapter to make sure you are getting it.
Continue with pro asp.net 2.0 with c# 2005 by apress. It will give you a deeper look into more advanced topics of asp.net.
A programmer's introduction to C# (Score:4, Informative)
http://www.apress.com/book/bookDisplay.html?bID=4
(Actually, A programmer's introduction to PHP is also very good.)
Re:A programmer's introduction to C# (Score:4, Insightful)
(Last Journal: Saturday October 20, @06:40PM)
I will also recommend the In a Nutshell [oreilly.com] book. I am a big fan of those books as they cut all the crap and take you directly to the meat (I loved specially the SQL IAN book).
And for all the people saying "dont buy a book", STFU. If you do can not answer the question of the poster just do not post anything. His question is not "Should I buy a book?" but "Which book to buy". If there is something I have learned is that reading a book is *never* a bad idea. Or what, if someone asks you in the street how to get to X you answer "No, dont go to X, go to Y, X sucks" ?.
sheesh!
Don't get the Nutshell one (Score:4, Funny)
The authors of the "nutshell" books are not all the same, hence the vast differences in quality. Buyer beware!
MSDN (Score:3, Informative)
probably a good second book on the language... (Score:2)
(http://slashdot.org/~bradkittenbrink/journal | Last Journal: Sunday December 08 2002, @05:08PM)
It skips over a lot of the hand holding that a "Learn Foo in X Days" book will give you but goes in to great detail about how the language is implemented, often giving examples of how C# code is compiled to IL assembly language and sometimes further giving examples of how it will be compiled by the JIT compiler into x86 assembly language.
Inside C# by Tom Archer (Score:2)
(http://www.int64.org/)
Head First Java (Score:1, Insightful)
(http://www.dylanbrams.com/ | Last Journal: Saturday September 01, @01:42PM)
Charles Petzold (Score:1)
Pro C# 2005 and the .NET 2.0 Platform (Score:2)
(http://kestas.kuliukas.com/)
It isn't a "recipe" book that tells you how to do common things, or something that you read from cover to cover to learn the basic syntax for non-programmers, it's more of a reference book..
In a nutshell:
Translate (Score:2, Insightful)
(http://www.stankin.com/)
Book???? (Score:2, Insightful)
Books are a waste of time.. The only time I'll buy a book is if the info is very difficult to source online.
If you can read C++, you can read C#. The class naming and hierarchy of their APIs are so verbose that you should be able to understand any sample code.
If you're not in any projects (open source or not), get in & hack hack hack away. C# is pretty widespread now so any issues, just Google it. If you don't like MSDN doco, learn to like it, because it's free and pretty good once you know how to navigate it. And there are a truckload of MSDN blogs as well.
Also look at: - http://msdn.microsoft.com/msdnmag/ [microsoft.com]
- http://www.apress.com/free/ [apress.com] (Dissecting a C# Application on the bottom - is about SharpDevelop IDE, which is pretty good)
Who are you planning to be employed by? You might be better off learning
Re:Book???? (Score:4, Insightful)
(http://www.chriswareham.net/)
You suggest books are a waste of time, and to just dive in and start hacking. This attitude is a major reason why there is so much bad code out there. As I point out in reply to another post that recommends a book on Lisp to someone wanting to learn C#, if you don't know the common idioms of the actual language you are using then you will produce terrible code. A good book wont just teach you the nuts and bolts of a language such as the raw syntax, it will also encourage good practices - what I think James Coplien or Tom Cargill described as teaching "programming in the large".
I can recomend... (Score:2, Funny)
(http://www.waxworlds.org/edam)
http://www.amazon.com/Bible-Giant-Print-Personal-
to help absolve your sins, my son...
Learning C# (Score:1)
(http://www.itjobfeed.com/)
Safari (Score:2)
(http://www.karastathis.org/ | Last Journal: Tuesday April 05 2005, @07:51PM)
C# Precisely (Score:1)
http://www.dina.kvl.dk/~sestoft/csharpprecisely/ [dina.kvl.dk]
SICP (Score:2)
Re:SICP (Score:4, Interesting)
That said, how many times have I used Lisp for commercial development? None. How often have I applied its idioms? I do so on a daily basis.
Better to learn OO than C# (Score:2)
Don't bother with books aimed purely at C#. If you know OO well, you can appreciate other languages too. I recently went from coding C# to Java for the first time, with very little change of pace, simply because the tools, APIs, syntax and general patterns are so similar. I'd expect the same from C/C++, because the C# syntax is both similar and simpler. In particular, context-completion features with popup help in IDEs mean that I very rarely refer to the docs anymore. VB6 used to pop up just the method signatures, with VS2005 and Eclipse, a short description of the routine pops up as well.
But grokking OO after being a procedural programmer for a long time is the hardest mental hurdle to jump. I worked with a bunch of VB6 programmers who just didn't get it, even though the language supports polymorphism reasonably well. Since I left they've transitioned to C# - I hope they had a major epiphany, because if not, they have a lot of big, static classes with very large methods hanging around.
MSDN (Score:2)
(Last Journal: Saturday January 13 2007, @02:19AM)
MCAD (Score:1)
If you are looking for information on the .NET framework and namespaces, not syntax and language features, then consider getting one of the MCAD books.
They cover a lot of subjects concerning the .NET framework, assemblies, deploying, databinding, controls, web services and many other things.
Having worked with .NET for a bit over a year now, I have learned a lot of things about the .NET framework by reading the "Developing and Implementing Windows-based Applications with Visual C# .Net and Visual Studio .NET", that I have not touched upon otherwise while working with .NET. The book is a bit dated compared to the newer .NET frameworks, but still covers a lot of ground that can be very useful.
-NikolajProgramming C# - Jesse Liberty (Score:2)
(http://www.langoats.com/)
I was in the same position (Score:1)
(http://www.keenada.com/)
Since I've been developing C# professionally, I've found the 'C# Cookbook' and the 'ADO.NET Cookbook' extremely useful (both by O'Reilly). People on my team are constantly borrowing these books from me.
Essential C# 2.0 (Score:2)
It goes from 'Hello World' to generics, delegates, interfaces, reflection, threading etc. In short if you are stuck in a MS shop and have to build complex code (like I once was), it is very helpful.
RE: C# Book Recommendations (Score:1)
To learn the important things about C# (Score:2)
(http://www.pair.com/~mullr)
1) Write a small program to start understanding the syntax. Use code you find on the web for reference.
2) Become familiar with the following projects, and understand how they are implemented:
a) mbUnit [mbunit.com], a fantastic example of modern, idiomatic c# design.
b) DynamicProxy [castleproject.org], which pushes (abuses?) the CLR's reflection APIs past what you might think they are capable of.
3) Get a copy of
4) Write something larger.
Effective C#: 50 Specific Ways to Improve Your C# (Score:2)
Design Patterns in C# (Score:1)
I liked this one: Design Patterns in C# [amazon.com]
Though it isn't a primer (obviously, given the title) it does contain quite a bit of good information. The author was responsive to my email inquiries about it as well.
I question your assumption (Score:3, Informative)
One thing for sure - the demand for C++ programmers has collapsed, at least in the DC area.
My C# cook recommendations (Score:2)
(http://www.tronster.com/)
"Applied
http://www.amazon.com/Applied-Microsoft-NET-Frame
- Recommend reading this first, cover to cover
- It gives the gritty details of
- Services as an invaluable reference
"Visual C# 2005 Step By Step"
http://www.amazon.com/Microsoft-Visual-C-2005-Ste
- Specifics on the latest release of C#
- While guided, not too much fluff
Good luck!
check your local public library (Score:2)
So if you don't want to blow $40 on Pro C# 2005 and the
visual c# 2005 (Score:1)
C# Essentials (Score:2, Informative)
(http://ryanrusson.com/ | Last Journal: Wednesday December 13 2006, @12:06PM)
It covers the language as quickly as anything I've seen. I felt fairly up-to-speed after a long weekend with this book. It won't waste your time telling you how to code "hello world" or giving you architectual guidance (there's plenty of that online). It's cheap too.
Your biggest hurdle will be learning the
I highly recommend... (Score:1)
It's the best C# introduction for both seasoned programmers and newbies.
FDG (Score:2)
It won't teach you to program in C#, but it will explain why things are the way they are, and give you a lot of good rules to keep you from making bad mistakes. Especially if you want to make reusable libraries, but even if not.
C# Books (Score:1)
Learning the
* read CLR via C#, Second Edition, by Richter
I taught myself C# and my first year of code was rather hideous until I started spending time on Design Patterns. The following books are good:
* Patterns of Enterprise Application Architecture (Hardcover) by Martin Fowler
* Head First Object-Oriented Analysis and Design A Brain Friendly Guide to OOA&D By Brett McLaughlin, Gary Pollice, David West
* Design Patterns C# (Hardcover) by Steven John Metsker (Author)
For web, I would recommend the following ASP.NET books:
* Programming Microsoft ASP.NET 2.0 Applications: Advanced Topics by Dino Esposito (Paperback - Mar 15, 2006)
* Programming Microsoft ASP.NET 2.0 Core Reference by Dino Esposito (Paperback - Nov 30, 2005)
You definitely need to do code so I would start some sort of project for someone, like a non-profit, in
Also, C# isn't the only language thats hiring. You might want to consider Java or other alternatives to the windows world. Windows keeps me employed, but if I was to start my own company, the startup costs are too high for a windows environment.
Late to the party (Score:1)
I'm late to the party, but I'll throw in my two cents here. Visit the MS site!
The truth is, you know how to program, you want to learn details. Well MS wants you to learn those details too. So go to www.msdn.com and check out what they have. You should be able to download a free copy of VS 2005 Express Edition that will let you play around.
If you really want to dig in, take an Microsoft Certification course. That means, buy a Self-paced training kit from MS and work your way from front to back (takes 50-100 hours). When you are done you will have a shiny certificate that says that you know some major aspect of C# (and you will).
Now, when it comes up in an interview, you can confidently state that "yes I know .NET" and you can provide a document to prove it. Employers put different weightings on the value of certifications, but if you're up against other new grads, you have more proof than they do about your knowledge. Plus you'll have demonstrated your "dedication to lifelong learning" in a concrete fashion (rather than "I just read a book and got some of it").
Book (Score:1)
Don't stop at just the language (Score:1)
Re:For all you no-book response people (Score:1)
(http://snicks.bravehost.com/)
No. Perhaps those of you that don't read books simply have a reading comprehension problem?
He asked what books to get. He didn't ask what your opinion of using a book to get a jumpstart on a language is....
Hyakujo.