In addition to the valuable links Raul and Deepu posted here, I'd like to recommend you get a good introductory book on C#: I particularly recommend writers Jesse Liberty, and Matthew MacDonald; even though some of their entry-level books are a few years old, they are excellent teachers, as well as writers.
There's a good book (free download on-line, .pdf) "Dot Net Zero" by Charles Petzold: [
^].
Here are some brief descriptions of the type of problems I assign to students who have a technical background, and some exposure to other programming languages, but are new to C# and .NET. I encourage students to use Windows Forms, rather than the Console.
0. Get an account (free) on Project Euler [
^], and create C# solutions for at least ten of the math problems.
1. (the inevitable) write a mathematical calculator that includes functions like sin,cos,tan,atan, square-root, to-the-power-of.
2. Create an Application with a TreeView that lets the end-user enter the Text for a new Node, and that will then create a new Node as ... the user's choice of ... either a Parent, Child, higher-level sibling, or lower-level sibling of the selected Node in the TreeView.
3. Based on a List<string> that holds a number of Categories, and a List<List<string>> that holds a number of Items: create a user-interface where the Categories are in one ComboBox, and a second ComboBox has its contents determined by which Item in the first ComboBox is selected: the Index of the first ComboBox's selected Item is used to select the List from the List<List<string>>
4. Using a TextBox and a StatusBar: open a Text File and display the Text in the TextBox. Based on the user's choices from menus: display information about the Text: length, number of spaces, total number of all white-space elements, total number of digits, total number of uppercase/lowercase characters, number of paragraphs (double line-feeds). Present the current status of selected Text in the TextBox at all times, showing the selection length, selection start, selection end, and total characters in the selections in a Status Bar in the Form.
5. Using a TreeView: copy the Xml file here: [
^], save it to a file, and in your program: open the file, read it into an appropriate Class structure and then create the TreeView Nodes that reflect the Xml file's structure.
This is one of my favorite assignments for students who have mastered the basics of C#:
"Create a user-interface that expedites the calculation of airplane ticket costs based on total number of passengers booking as group or family, age (child, adult, senior), date of departure (off-season, holiday, regular), date of arrival (off-season, holiday, regular), frequent-flyer membership (basic, premium, platinum), booking date, total number of passengers, domestic versus international travel, type of payment (cash, wire transfer, credit-card). All data-entry Controls must prevent entering any non-meaningful character given the context, and must perform validation.
All internal logic processing is to be performed using Enumerations (enum) and switch statements ... unless ... you present a compelling reason not to use this strategy."
That's just a few: of course, I try and "tailor" problems posed to the student's background and current interests: what the person may be enthusiastic about learning is is important ! :)