views:

194

answers:

8

If one is learning one's second third or fourth language, you want to know how well you are doing on understanding the basic syntax for it. I know Microsoft has their ExamPrep exams (or they used to at least) and I am wondering if other such resources exist.

Not looking for Good programmer vs. Bad Programmer, but just how well do you understand the syntax and underlying features.

I imagine that such a function would require some significant effort so it may cost, or I could write my own testing engine (a very viable option except its hard to test what you don't know).

Possibly this is an open source project in the making but I don't feel I could have been the first to think of this. Any links or suggestions to process would be helpful. Trying to look for deadspots.

+8  A: 

Try and answer questions on StackOverflow.

Fortyrunner
A: 

Your best evaluator would be the compiler in conjunction with forums like stackoverflow. More and more coding is the best way to master a language.

Shree
+2  A: 

Write a small but non-trivial program in that language.

Morendil
A: 

I found that problem solving tells you a great deal about a language. And usually you have a faint idea what special features a language offers (ok, with C# I'm still learning new things regularly, but still). Trying to solve problems with particular methods or paradigms the language is designed for (e. g. the pipeline in Powershell, even though normal procedural programming is equally possible there) might help in picking up how those work.

But specifically testing what one does not know ... might be hard. Reading other people's code might help. Preferrably someone who you can ask in case you don't understand something specific.

Joey
A: 

You could write something small and silly like a Markov chain based text generator or a couple of Project Euler problems to see how you're doing in addition to looking long and hard at a few open source projects, preferably ones where you already understand the problem domain.

Hank
+1  A: 

do some programming in some well known online judges website like spoj and topcoder and gain some experience in the syntax and develop your programming skill as well.

Nave
A: 

Read, understand and extend an existing, reasonably complex real-world program written in said language, which has been written by an experienced programmer.

Writing your own program is not enough, since that only means you know a subset of the language, sufficient to write a program. But that subset might be really small compared to the whole language. E.g. if you know C, you can write programs that a C++ compiler accepts, but that doesn't mean you know C++.

ammoQ
A: 

If you are onto your third or fourth language you normally have a reasonable idea yourself

Tim