Jump to content

  • Log In with Google      Sign In   
  • Create Account


- - - - -

C# Workshop - Introduction

  • You cannot reply to this topic
159 replies to this topic

#1 JWalsh   Moderators   -  Reputation: 463

Like
1Likes
Like

Posted 01 June 2007 - 06:35 AM

Greetings All! Here we are in June once again. You know what that means?! It means it's once again time for GDNet's annual Language Workshop. Due to previous interest, this time I will be running an introductory workshop on C#! Although the workshop requires no previous programming experience, this workshop will run at a more accelerated rate than previous workshops. Familiarity with C++, Java, or similar languages will help you understand the syntax and concepts more quickly. C# Workshop Proposal (Start date: July 1, 2007) Overview: This workshop is designed to aid people in their journey to learn beginning C#. This workshop is targeted at highly motivated individuals who are interested in learning C# or who have attempted to learn C# in the past, but found that without sufficient support and mentoring they were unable to connect all the pieces of this highly complex but powerful programming language. This is a 'guided' self-teaching C# workshop. Each student is responsible for taking the time to read the material and learn the information. The community and tutors that arise out of this workshop are here for making the learning process run more smoothly, but are not obligated to baby-sit a person's progress. Because everyone will be working from the same materials, students may find it easier to get answers to the specific questions they might have. There is no minimum age requirement, and there is no previous programming experience required. Additionally, this workshop does not attempt to defend C# as a language, nor does it attempt to demonstrate that C# is either more or less useful then other programming languages for any particular purpose. People who intend to start a discussion about the differences between C# and ANY other languages (except as are relevant to a particular discussion), are encouraged to do so elsewhere. This workshop is for educational, not philosophical discussions. "C# Workshop" Summary:
  1. Anyone interested in participating will Sign Up on the provided sign up thread, and then either post or Private Message (PM) me their email address and either an AIM/MSN account if they desire to do so
  2. Anyone interested in participating will download Charles Petzold's .NET Book Zero and optionally the official C# Language Specification 1.2 and 2.0 from Microsoft's website.
  3. Each week participants are responsible for reading the designated chapters of the assigned text material.
  4. As people have questions on a chapters they may post them in our weekly chapter forums, located in the C# Workshop Forum, to be answered by myself and other members of the GDNet community.
  5. More advanced C# programmers may post additional questions or exercises to help test the other students' understanding of the material.
  6. Every two weeks there will be a programming project (see below) - designed to test a student's understanding of the previous 2-4 weeks. Students can optionally complete these projects and post a link to their source code for review.
Timeline: The workshop will begin July 1st, and is estimated to run between 9 and 12 weeks, depending on any setbacks due to my own schedule, delays due to people needing more time to complete projects, etc... C# Workshop Text: .NET Book Zero This is a free, downloadable book by the well known author Charles Petzold. It is intended for experienced C++ programmers, but does a reasonable enough job presenting the material contained within the C# Specifications for beginning programmers. C# Language Specification 1.2 This document describes the C# language in detail and is intended to be correct for the 7.1 version of the C# compiler. C# Language Specification 2.0 This document describes the new features of the C# language for 2.0, including Generics, Anonymous Methods, and Partial Types. Based on my experience with the C++ Workshop I've come to believe that it is essential that the learning materials for an online workshop such as this are ...wait for it...online, and freely available. This guarantees the widest audience possible will be able to participate. There will likely be supplemental materials such as links, tutorials, etc...provided, however .NET Book Zero will be the core reading material for this Workshop. Signup Threads: Unlike previous workshops, this one will require you to Sign Up on a provided thread by providing your name and your interest in participating. You can also optionally post an email address and AIM/MSN name, or you can Private Message (PM) that information to me, JWalsh, here on GDNet. The information will not be sold, transferred, or otherwise leave my possession. This information will be used strictly to contact you regarding workshop issues should I feel the need to check up on your understanding of the material individually. Chapter Threads: The C# Workshop Forum has been created for our purposes and each week a forum will be created that covers the current chapters within the assigned text. People can then post their questions and answers for the current chapters in that forum. People who come late to the workshop can read over the previous threads and continue to post their new questions. The weekly chapter forums will have an introduction thread which will be mirrored (and stickied) in "For Beginners." The first post of each weekly thread will be structured with a brief introduction to the workshop, and provide links back to the C# Workshop Forum so that people can easily navigate to us from 'For Beginners', and follow the conversation of the current week. Project Threads: Forums will be created for each of the Bi-Weekly Projects where the first post outlines the details and requirements of the project. People can then use those forums to discuss the project, get design ideas, ask questions, and post their links to completed projects. About IDE's: For numerous reasons, Visual C# 2005 Express Edition is the recommended IDE for this workshop. Participants who are already familiar with another IDE, however, are encouraged to use whatever they feel will help them learn most effectively. To keep the workshop moving along, no assistance will be given for installing or configuring any other IDE then Visual C# EE. Other members of the workshop wishing to submit installation and configuration guides for additional IDE's are welcome to do so. [Edited by - JWalsh on July 21, 2007 10:28:06 PM]
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints

Sponsor:

#2 Alpha_ProgDes   Crossbones+   -  Reputation: 4688

Like
0Likes
Like

Posted 01 June 2007 - 06:52 AM

Will this mirror the C++ Workshop, as far as Chapter and subject go?

#3 JWalsh   Moderators   -  Reputation: 463

Like
0Likes
Like

Posted 01 June 2007 - 07:03 AM

Not precisely. But the level of complexity will be the same. We'll be reading approximately 50 pages per week, in the order in which they are provided in the C# specification. I'm trying to get through this workshop much more quickly than the previous workshop. Depending on how well this goes, and people's interest, more advanced C# workshops may follow. Specifically, WinForms and/or WPF, the XNA Framework, etc...

I'm doing C# development almost entirely these days. So I'm looking forward to moving on to the fun stuff.

Weeks for this workshop will likely break down as follows:

Week 1 (48 pages)
Introduction
Lexical Structure

Week 2 (48 pages)
Basic Concepts
Types
Variables
Conversions

Week 3 (56 pages)
Expressions

Week 4 (36 pages)
Statements
Namespaces
Structs

Week 5 (60 pages)
Classes

Week 6 (50 pages)
Arrays
Interfaces
Enums
Delegates
Exceptions
Attributes
Unsafe Code

Week 7 (52 pages)
Introduction to C# 2.0
Generics

Week 8 (38 pages)
Anonymous Methods
Iterators
Partial Types
Nullable Types
Other Features
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints

#4 shawnre   Members   -  Reputation: 266

Like
0Likes
Like

Posted 01 June 2007 - 07:17 AM

Sweet, but, got a question for ya jwalsh. I am currently trying to follow along with the old C++ workshop. I am at odds with classes and stuff and been posting questions mostly in the General Programming forum.

Anyhow, I am getting ready to start my second year in college, main programming class has been VB using VS .net 2003. Taking VB2 next semester, as well as starting a C++ class, which is why I am trying to get a jump on it this summer by following along with your old C++ workshop. In your opinion, would I be trying to bite off too much to follow along with this workshop at this point? Are the programming practices pretty much the same, with just language specific syntax being the main differences?

Thanks,

Shawn

#5 Coragi   Members   -  Reputation: 122

Like
0Likes
Like

Posted 01 June 2007 - 07:40 AM

Nice timing! I just posted a topic saying that I bought a C# and a XNA books so I can write games using them! Your course will be great for me! I am ready to start! :-D

#6 JWalsh   Moderators   -  Reputation: 463

Like
0Likes
Like

Posted 01 June 2007 - 11:12 AM

Quote:
Original post by shawnre
Sweet, but, got a question for ya jwalsh. I am currently trying to follow along with the old C++ workshop. I am at odds with classes and stuff and been posting questions mostly in the General Programming forum.

Anyhow, I am getting ready to start my second year in college, main programming class has been VB using VS .net 2003. Taking VB2 next semester, as well as starting a C++ class, which is why I am trying to get a jump on it this summer by following along with your old C++ workshop. In your opinion, would I be trying to bite off too much to follow along with this workshop at this point? Are the programming practices pretty much the same, with just language specific syntax being the main differences?

Thanks,

Shawn


Shawn,

I'm glad to hear you're making progress on the C++ Workshop. C++ is a very powerful language, and understanding it will give you a powerful tool in your problem-solving toolbox.

As for your main question...

As you know, C++ is very different from VB, both in syntax, and also in semantics. This is both a blessing and a curse, however, as the differences make it more difficult to learn the two languages at the same time, while making it easier to keep the two of them separate in your mind.

In contrast, C# is VERY similar to C++ in semantics, and even closer in Syntax. There are maybe a dozen key syntax changes, and the rest are all semantics. There's the introduction of some new keywords, a more java-like class system, reflection, and the existence of managed memory. Aside from that, C#'s access to the .NET Framework Library gives you a whole slew of capabilities which are not present in native C++ (though is present in C++/CLR). This is the primary reason people say C# is easier to learn than C++ (also the lack of pointers).

At any rate, whether or not you've got the time to learn C++ and C# simultaneously only you can answer. As to whether it's possible, yes, it's possible. The similarities in semantics will make it easier to pick up the C# concepts you've already covered in C++, however without a solid C++ foundation you may frequently try using C# syntax or keywords when writing C++.

This can be not only problematic but also frustrating. If you feel you can keep the similar syntax separate in your mind, than having an understanding of both languages will help you appreciate the uniqueness of each of the individually. As well, a familiarity with C++ makes C# very easy to pickup.

If you're concerned you can't keep the syntax separate however(there really is only about a dozen key differences), then you might want to wait until you're more familiar with C++ Syntax - say at least until you've completed the C++ Workshop and done the exercises in the book.

I hope this answers your question.

Cheers!


Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints

#7 JWalsh   Moderators   -  Reputation: 463

Like
0Likes
Like

Posted 01 June 2007 - 03:40 PM

Anyone else interested in the workshop?
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints

#8 JBS103   Members   -  Reputation: 168

Like
0Likes
Like

Posted 01 June 2007 - 04:11 PM

I certainly am. Did I misread or will there be another thread for sign up? (Or is this it?)

#9 Del Snd of Thndr   Members   -  Reputation: 190

Like
0Likes
Like

Posted 01 June 2007 - 04:27 PM

I'd be interested in following along.
~del

#10 Dwiff   Members   -  Reputation: 122

Like
0Likes
Like

Posted 01 June 2007 - 04:36 PM

Good timing, just bought a C# book myself and I'm about halfway through it now. I caught onto the C++ workshop after it kinda died down so this will be fun.

#11 DrEvil   Members   -  Reputation: 1102

Like
0Likes
Like

Posted 01 June 2007 - 04:46 PM

Count me in.

#12 Telastyn   Crossbones+   -  Reputation: 3726

Like
0Likes
Like

Posted 01 June 2007 - 05:53 PM

I am skeptical of using the specs as a learning source, especially for beginners. And I'm skeptical of the ordering (I'm of the opinion that generic containers should be taught before arrays in languages that have them).

I doubt I'll have the time to contribute substantially, but will likely browse the workshop forum and answer some questions.

#13 jbadams   Senior Staff   -  Reputation: 17932

Like
0Likes
Like

Posted 01 June 2007 - 06:16 PM

I'm interested in participating (as a student).

If it so happens that you're still unable to get the desired level of support from the forum software in time I'm also happy to help out with moving threads around and whatnot.

#14 dannay   Members   -  Reputation: 122

Like
0Likes
Like

Posted 01 June 2007 - 07:13 PM

I am very much interested in joining :)

#15 greencrayon   Members   -  Reputation: 138

Like
0Likes
Like

Posted 01 June 2007 - 09:23 PM

Sweet, does this mean I can hang up my pointers for good?
Cout me in. I have been playing around with XNA for the last month and I like C# a lot. Looking forward to getting started.

#16 Rebooted   Members   -  Reputation: 612

Like
0Likes
Like

Posted 01 June 2007 - 10:28 PM

Quote:
Original post by jwalsh
As you know, C++ is very different from VB, both in syntax, and also in semantics. This is both a blessing and a curse, however, as the differences make it more difficult to learn the two languages at the same time, while making it easier to keep the two of them separate in your mind.

In contrast, C# is VERY similar to C++ in semantics, and even closer in Syntax.
Don't Visual Basic and C# have almost identical semantics? I'm sure I've seen people say VB.Net is effectively just a different syntax for C#.

#17 thallish   Members   -  Reputation: 202

Like
0Likes
Like

Posted 01 June 2007 - 10:39 PM

I am also interested.


#18 TheUnbeliever   Members   -  Reputation: 961

Like
0Likes
Like

Posted 01 June 2007 - 11:01 PM

I think I'm sufficiently capable to give this workshop a miss, but I would like to indicate an interest in any future, more advanced, C# workshop were there to be such a thing.

#19 Squid4D   Members   -  Reputation: 122

Like
0Likes
Like

Posted 01 June 2007 - 11:12 PM

Sounds fun, count me in.

#20 M-E   Members   -  Reputation: 109

Like
0Likes
Like

Posted 02 June 2007 - 03:16 AM

I'm interested too.





PARTNERS