tags:

views:

229

answers:

5

A lot of programming and computer science topics are tricky, and as a result it's hard to know sometimes if you've gotten an idea straight after just reading about it. Some programmers' learning material incorporates self-testing pretty well; a great example of this is The Little Book of Semaphores.

I'd love some ways to test my knowledge of the .NET runtime: BCL, and C#, as well as WPF. I'd especially like to understand how storage and retrieval in data structures work in .NET in some way analogous to STL (deque, vector, map, etc...). Ideally, this would be like the material in the semaphores book, where relevant material is presented along with self-tests.

Suggestions?

A: 

That's kind of the problem with any text. If you're concerned about it, you've got a couple of options: look for texts that have problem sets, or try using it yourself. I'm working through the Project Euler stuff in Common Lisp, Python, and Ruby; I'm finding that writing notes to myself as I think through a problem helps a good bit too.

Charlie Martin
A: 

There's a world of difference between sort of getting an idea and really understanding it. "sort-of" getting it means you get the terminology, recognize the problem, but probably couldn't sit down and code a solution or explain it to somebody else. My personal experience is that if I'm honest with myself I know which side of the fence my understanding comes down on.

  • If you're not sure if you understand something completely, you don't
  • If you couldn't explain it to somebody else you probably don't. If you can explain it to someone you do.

A big part of my progression in self-learning (which will always be a large part of this profession) has been getting through my head that learning stuff on a "sort-of" level doesn't really do me any good, and teaching myself not to be satisfied by it. When you really learn something, you own it. Not until then.

At the risk of being uber-geeky, there's a great invented word for this.

Steve B.
+2  A: 

What constitutes a test may be the most ambiguous part of this question. As I understand it, the test itself could be any of the following:

1) Definition regurgitation where someone says various definitions but doesn't understand any relationships that may exist.

2) Rewrite the definition using a specific nomenclature to try to demonstrate a grasp of the concepts.

3) Teach someone else the concept from scratch. In this case, there may be challenges of translating the material as well as what methods would be preferred.

4) Give an example using a particular concept. This may be tricky as some places that define things will also give trivial examples.

5) The 'tell me about a place...' type of question to ask how something would be used.

The third one is what I've seen used often to describe where someone does really understand a concept.

JB King
A: 

If you can effectively and efficiently use the new technique, technology, or language, in a real world app, you probably have gone beyond the beginner phase and know it enough to say 'I know it'.

John MacIntyre
+1  A: 

You could take some practice tests for the MCSD. This will give you a good idea where to start. Most of the practice tests will reference various books where the answer is found.

http://www.measureup.com/catalog/exam.aspx?vid=5&cid=MCSD&tid=25

is a list of some of the practice tests.

I don't know where exactly you could tested on some of the newer technologies.

Jeff Martin