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: (Score:3, Insightful)
While I'm not the story parent, I've recently found projects to work on in C# so I can learn...
Re:Book? (Score:4, Interesting)
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?
Parent
Re:Book? (Score:4, Interesting)
Parent
Re: (Score:2)
The funny part about what you wrote is: I'm actually sitting in front of a freshly installed (ie: within the last hour) copy of Visual Studio Pro. Now, granted, I'm working with ASP.NET but I'll still be able to move into C#...
Re:Book? (Score:4, Insightful)
Parent
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.
Parent
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:3, Informative)
After you've read a few, you'll start to get a feel for the kinds of books you like. You'll probably also get the taste of a few lemons. But you'll eventually find that a
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.
Re: (Score:2)
Re: (Score:3, Interesting)
i'd look into beginning asp.net 2.0 with c# by wrox press
Since the question was about C#, why not mention that there's a corresponding Beginning Visual C# 2005? I found it to be very helpful, unlike the other C# book I bought (Core C# and .NET from Prentice-Hall). It starts off with C# itself, and only after covering that thoroughly does it get into Windows-specific topics (ignoring the fact that C# itself is largely Windows-specific).
On a meta-note, be sure to check out what employers in your area (or the area where you'd like to live) are actually looking fo
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)
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!
Parent
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!
Parent
MSDN (Score:3, Informative)
probably a good second book on the language... (Score:2)
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)
Pro C# 2005 and the .NET 2.0 Platform (Score:2)
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)
Re: (Score:2)
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 g
Re:Book???? (Score:4, Insightful)
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".
Parent
Re: (Score:2)
And for being able to read C++ equalling being able to read C#... thats true for the base stuff. Pop in a custom control with a GUI designer, and your average C++ programmer will quickly go "What...the....f...." at the declarative attributes programming model of that kindda task. Just an example.
Re: (Score:2)
And yes, books easily become out of date, but I just as often stumble on old web pages that no o
I can recomend... (Score:2, Funny)
http://www.amazon.com/Bible-Giant-Print-Personal-
to help absolve your sins, my son...
Yes, that is very good too but... (Score:2, Flamebait)
Safari (Score:2)
SICP (Score:2)
Re: (Score:2)
Re: (Score:2)
Sorry to go against the orthodoxy, but the only reason why you've mentioned SICP is as a way of saying "look at me, I know Lisp, I'm a true hacker". How many times have you really used Lisp in for commercial development, or applied its idioms clearly in another language? Lisp programming techniques do not translate well to the popular languages for commercial development such as C, C++, Java or C#, you end up with obscure hacks and sub-optimal code because you don't use the common idioms of those languages.
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.
Parent
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 rare
Re: (Score:2)
MSDN (Score:2)
Programming C# - Jesse Liberty (Score:2)
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.
To learn the important things about C# (Score:2)
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
Effective C#: 50 Specific Ways to Improve Your C# (Score:2)
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)
"Applied
http://www.amazon.com/Applied-Microsoft-NET-Framew ork-Programming/dp/0735614229
- 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-Step
- Specifics on the latest release of C#
- While gu
Re: (Score:3, Insightful)
Which is a shame, as it's a pretty nice language backed up by a comprehensive framework. If it weren't for the fact that it's from MS and therefore automatically evil in the eyes of so many people here, I think it would be rather more popular.
that particular book was a good primer on the syntax of C# - which is surely important - and not that great a primer on the actual functionality of Visual Studio.
That's probably because it's called "Learning C#"
Re: (Score:2)
1) Open Resource (Ctrl-Shift-R in Eclipse)
2) Open Type (Ctrl-Shift-T in Eclipse)
3) Organise imports (using directives in C#; get rid of ones I don't use, sort the ones I do, add any necessary)
4) Make the overload tooltip show more than one ruddy entry at a time!
Oh, and compile-incrementally-on-save-so-quickly-you-don't -notice is rath
Re: (Score:2)
The only great thing about Microsoft development is the tools you have to do it with.
It's sad, and I'm sure to get ripped to shreds for this, but VC8's debugger is the main reason I haven't switched to Linux on the desktop. Forget editors, conciseness of programming language, little penguins running in hamster wheels, whatever, it's only the debugger that matters when it comes to the hard part.
Re: (Score:3, Funny)
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)