views:

1012

answers:

9

These days I have learned some basic usage of C#. I think that because C# is often used in application programming ,we should practice the language in an engineering way rather than solving some algorithmic problems. But what is the best way to practice C# if I cannot find any projects related to the language in the work.

A: 

I always have the same problem, it is not easy to find a project that you can just implement using the new language.

Why not try to implement a project that you once implemented in another language again in C#?

BeowulfOF
+1  A: 

Find an open-source project that you're interested in which uses this technology and try to contribute to it.

Alterlife
A: 

If you can't find your own work to apply your coding skills to, simply join an open-source project - you will find it a valuable real-life experience in coding and having your work critiqued by others.

Dmitri Nesteruk
A: 

Think of something really big, and copy it. design it yourself and just work away at it... learn it all at once :)

simonjpascoe
+1  A: 

I think you can try start with personal small utilities. For example, write a file backuper, personal asp.net blog site, password reminder, time tracker, etc..

the product will be used by you, so you will get exceptions or performance problems so you will be learning more..

Canavar
A: 

I always go with a game. Think of a new game, or re-do an old one. I almost always start with lights-out. Like this one in java. Start simple and extend on that. I use games to learn every aspect of a language. They're great to practice design patterns too.

Sorskoot
A: 

I hear writing your own blog engine is a popular exercise these days.

Jim Anderson
+1  A: 

You could also check out AntMe, it is a simulation of ants which you program in C#.

Björn
A: 

There's a few things I use for practice - admittedly, they're more algorithmic than business oriented, but lets face it business oriented stuff can get tedious if that's what you do all day long:

For practice in business aspects of programming, try and understand what most business wants when it comes to software and that is software to assist them to do their every day jobs. This may come down to software that does specific tasks for a user (i.e. you) or it may be software that allows storage, retrieval and reporting of business data.

  • Create a project that allows you to store and retreive data using various patterns, taking note of performance differences of each - i.e. DataSet vs. DataAdapter vs. DataReader vs. LINQ-to-SQL and Stored Procedures vs. TableDirect vs. QueryStrings. There's only so many ways of storing and retrieving data from a database.
  • Grab a demo database from the internet - like AdventureWorks or the infamous Northwind and write yourself reports displaying the data in various formats.

I often find that utility software I use that I find online just doesn't quite cut it. Sure some of them have some nice features, but inevitably there's always something missing. So I surf around and find a bunch of utilities that cover everything I think one of them should do, take all the best/most useful bits and [taking note of things I like about each of the tools] I write my own. The best way is to always think: "How do I want to use it" rather than "how must I use it if I program it this way".

BenAlabaster