Getting more skilled on C#

R

Rene

Its been around 1.5 years now since I started using C#, I have already read
the official "Beginning C#" type of books and another book that uses C# to
explain object oriented programming concepts.

What I would like to do now is to take my skills to the next level, for this
reason, I am planning on reading the following book:

A programmer's introduction to C#
Second Edition.
By Eric Gunnerson

I am under the impression that this book teaches more advanced C# concepts
than your typical book (although it has the "introduction" word in its
title), has anyone read this book? I would like a book that teaches more in
depth programming concepts, is this the way to go?

Thanks.
 
Z

Zach

Rene said:
Its been around 1.5 years now since I started using C#, I have already read
the official "Beginning C#" type of books and another book that uses C# to
explain object oriented programming concepts.

What I would like to do now is to take my skills to the next level, for this
reason, I am planning on reading the following book:

A programmer's introduction to C#
Second Edition.
By Eric Gunnerson

I am under the impression that this book teaches more advanced C# concepts
than your typical book (although it has the "introduction" word in its
title), has anyone read this book? I would like a book that teaches more in
depth programming concepts, is this the way to go?

Thanks.

IMO you don't learn C# by reading books. Number one, learn about the
core C# language, number 2, obtain sufficient knowledge about the .NET
Framework. Then write applications, find out where you lack information
and get that information from MSDN. Create a file with all the solutions
to the problems you encountered, because the same problem is likely
to pop up again. Give these solutions proper headings, so you can find
them easily with the search option of your wordprocessor.

The jist of what I am saying is that given how learning works
psychologically,
you don't learn by reading books: you do by actively solving problems. The
first is passive, the latter is active. To give you an analogy, you don't
learn a
language like French by reading French books, not even if you look up
the words you don't know and learn those words. You learn by actively
using the language. Again - that is how the mind works.

Zach (a psychologist and a developer)
 
A

Anders Borum

Hello!
What I would like to do now is to take my skills to the next level, for this
reason, I am planning on reading the following book:

My personal experience with C# was, that during the beginning of the
learning curve, I needed to get a basic understanding of the constructs in
the language (fields, methods, nested classes, try/catch, exceptions,
iterators, constructors, inheritance, interfaces, collections .. etc.).

I'm not sure if you've already covered that part, but from that point I
started reading specific books about the technologies in .NET that was
important to me. I got a few of the handbooks from Wrox (they cover areas
such as threading, text (regex etc. and everything you want to know about
unicodes etc.) in each specific book - highly recommended - naturally with
all examples in C#).

Reading on a specific technology made me stronger in that area, but also
helped me become increasingly familiar with reading C# code because of the
examples (hence the necessity to have a firm understanding of the C#
language constructs as mentioned previously).

Although not answering your question, I was wondering if you've been
thinking about reading about design patterns? There are a few books on
design patterns where all of the examples are written in C#. If you're
interested I'd be happy to the ISBN details for you.

There are books on design patterns (especially the famous "Design Patterns"
by Gamma, et all.) that most likely will help you get that "aah, so events
in .NET are a version of the observer pattern .." kind of experience.

Books are cool =o)
 
A

Anders Borum

you don't learn by reading books: you do by actively solving problems.

Agree, but having a sound set of mental tools from reading books on the
subject help you relate better (and faster). That is, if you actually trust
the stuff that's written the C# books ;-)
 
G

Guest

hi
Professional c# from wrox press is a good one for advanced programming in C#.

regards
Ansil
 
Z

Zach

Anders Borum said:
Although not answering your question, I was wondering if you've been
thinking about reading about design patterns?

He needs a bit of guidance on this one.
E.g. James W. Cooper's book will drive him nuts.
 
Z

Zach

Anders Borum said:
Reading on a specific technology made me stronger in that area, but also
helped me become increasingly familiar with reading C# code because of the
examples (hence the necessity to have a firm understanding of the C#
language constructs as mentioned previously).

IMO it is best write some applications first to have a thorough
understanding
of what is missing in your tool kit. So when you read the specialized stuff
you
will get the Oh-that-is-how-you-do-it-feeling. The core of C# can be
explained
in 100 pages, including an introduction to the Framework. It is fruitless to
learn
solutions to problems that you don't have. But of course, besides the core
of C#
there is still a heck of a lot to learn - but in time, when you are hungry
for it.
 
A

Anders Borum

He needs a bit of guidance on this one.
E.g. James W. Cooper's book will drive him nuts.

Sure, which is why I asked him if he was interested in some ISBN numbers to
check out.
 
A

Anders Borum

IMO it is best write some applications first to have a thorough
understanding of what is missing in your tool kit.

How would you start writing applications, if you don't know what constructs
are available in the language? I mean, yes, you could get started with a
simple webform and do a click event .. nice .. but I'm talking about knowing
about the events, delegates etc. so that you have the knowledge of their
presence ..

This will help you remember the "ah, I read about that", when you see it in
the code examples. I guess this goes both ways .. you see some code with a
delegate without knowing anything about it, then finding it in a book later.

I prefer the book-approach, however.
 
T

ToddT

let me offer you some advice that has not yet been given. reading some
books on computer science in general will provide the ideas on how to
properly develop apps and the data constructs and structures that go
into a well-written app. once you know how to develop code properly,
you can then apply the principles to whatever language you desire.

speaking as a lead developer responsible for hiring developers on my
team, knowing the language is secondary to knowing how to develop
well-written apps.
 
A

Anders Borum

Hello!
speaking as a lead developer responsible for hiring developers on my
team, knowing the language is secondary to knowing how to develop
well-written apps.

I share that job description, and agree that it is important to know how to
develop well-written apps. My point is, that you could throw yourself at
writing lots of C# code (which you should), but books usually contain a
great deal of tips and insights (best practices if you like), that a C#
programmering probably won't learn, just hacking away ..

It's a combination, but I believe in the mental tools to solve the problem;
second comes knowing the target language (as much as needed) and third; the
actual implementation.
 
J

Jon Skeet [C# MVP]

Anders Borum said:
I share that job description, and agree that it is important to know how to
develop well-written apps. My point is, that you could throw yourself at
writing lots of C# code (which you should), but books usually contain a
great deal of tips and insights (best practices if you like), that a C#
programmering probably won't learn, just hacking away ..

It's a combination, but I believe in the mental tools to solve the
problem; second comes knowing the target language (as much as needed)
and third; the actual implementation.

I have a new suggestion to throw into the ring: Solve other people's
problems.

That's how I learned C#. I read the Nutshell books to get the basics,
and then launched into the newsgroups to find out what people were
running up against in real life. I then did appropriate research to be
able to answer the questions which interested me. That's what I still
do today, basically. It's what I did with Java, as well.

It's a great way of learning, and it helps other people at the same
time. Of course, it relies on being reasonably good at problem-solving
and research, but those are good skills to develop too.
 
A

Anders Borum

Hello!
I have a new suggestion to throw into the ring: Solve other people's
problems.

That's definately also great training. I mean, anything helps - reading
other peoples suggestions to the problems posted here (such as yours),
stepping in with ones own suggestions (such as this thread), and so on.

When returning from clients to the office, I usually take a walk and spend
some time with some of the developers and sit with them, talking about
various problems we've encountered and sharing solutions. Usually those
talks lead to lots of other related subjects, which is really interesting.

So yes, getting your hands dirty with code is great, but I still think books
are great :)
 
K

Kevin Yu [MSFT]

Hi Rene,

First of all, I would like to confirm my understanding of your issue. From
your description, I understand that you need to get some good reference for
C# programming. If there is any misunderstanding, please feel free to let
me know.

I haven't read 'A programmer's introduction to C#' yet. However, I
suggestion you read 'Applied .NET Framework Programming' by Jeffrey Richter
and 'Essential .NET' by Don Box. They tells much about inside the CLR, not
only the C# language itself.

HTH.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."
 
Z

Zach

Anders Borum said:
Sure, which is why I asked him if he was interested in some ISBN numbers to
check out.

Did you read Design Patterns by S.J. Metsker, and, if so,
what did you think of it? Does it have Deitel & Deitel type
of quasi clever long winded examples. I would like to have
another read on the subject, but don't want to waste my
time on non-essentials.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top