2010-10-31 76 views
22

我为一家大公司的研究部门工作,我们使用.Net平台来构建我们的原型(这意味着产品团队总是重现我们的工作原型是'有用的')。针对(短期)非网络程序员需要一个快速的C#教程

我们还为我们的项目聘请实习生。一些实习生主要进行研究,因此编码较少。但无论如何,实习生需要在C#或F#中进行一些编码,如果可以的话。他们中的大多数以前没有任何C#经验。 他们是高年级的本科生或毕业生,通常会了解一些Java和C++。但他们通常没有接受任何正式的行业质量规划培训。

难题是教他们C#/ .Net,因为他们应该在3到6个月的实习期间关注他们的研究问题。他们还需要知道一些好的C#实践,否则实习期间的代码库在实习后不可重复使用。

我学习C#的方式是从别人不同的(我第一次知道F#,然后从头读到CLR via C#Effective Java覆盖。)所以我想有经验的C#用户协商,建议短期(比如, 2或3天)C#教程。非常感谢!

回答

9

要么让他们买,或者买对他们来说,下面的两本书:

Essential C# 4.0C# 4.0 in a Nutshell

如果你真的在乎自己的风格,就像你说你做什么,也让他们:

Effective C# 2nd ed.

鉴于这一套,并假设他们已经知道如何在通用程序(例如,Java/C++),它们可以在几周内获得成效。您可以使用Effective C#准则来帮助提升可管理的代码,至少在较低的水平上。

1

了一系列简单的示例程序提供给他们。

一个简单的控制台应用程序,具有数据输入,输出,的String.Format,string.isnullorempty,getappconfig,类型转换,一个简单的SQL连接并使用查询数据表,一个使用DataReader的,反射的一些例子,

再过XML和/或JSON序列,system.text.encoding,system.text.regularexpressions,directorywachter,System.Drawing中,system.drawing.imaging等

与iTestSharp其它实例,sharpziplib,excelpackageplus,NHibernate的,BouncyCastle(OpenPGP)等。

一个示例程序我的每一个都是为 控制台,WinForms,Windows服务,Web服务授权。 WinForms包含下拉菜单,复选框,文本框(+多行),富文本控件,数据视图,数据绑定,树视图。

使用webReferences的示例应用程序,例如ReportingService WebService。 一个HTTP模块(例如IP阻塞)。 使用SOAP扩展的一个示例应用程序(例如用于加密)。

然后是一个带DropDown,CheckBoxes,TreeViews和PostBacks的ASP.NET页面。 另外一个使用ASP.NET MVC和AJAX而不是WebFroms。

JQuery,jQuery uploadify的示例应用程序。

或者更好的是让其中一个学生为所有这些学生编写一套简单的示例程序。供进一步的学生参考。 告诉他们如果他们有问题,请使用Google查找详细信息和计算器。其他主题:事件,函数指针(委托)接口,CodeDom编译器,LINQ,可为空类型,属性,注册表,文件系统,迭代器,http请求/请求,不安全的代码和指针。

+0

海事组织的例子只能作为补充,但不能取代真正的解释。 – CodesInChaos 2010-10-31 13:58:51

+0

@CodeInChaos:他们不应该要求解释循环,如果然后else语句等恕我直言,真正requries解释的唯一问题是线程安全和指针不安全的代码。此外,你不能期望有人在3天内学习像C#这样复杂的编程语言,这个概念是敷衍的,不可能的。它需要一个星期才能正确编写加密的Web服务,而另一周需要编写一个安装程序,该安装程序正确设置权限并生成一个用户并将该用户添加到某个组。 – 2010-10-31 14:00:45

+0

@CodeInChaos:让他们快速编写正确的程序的唯一方法是为他们提供sceletons,他们只需要添加功能,而不必担心这个概念,例如, Web服务中的加密,或者他们不需要编写该类来添加用户或将该用户添加到组中(本地化组名称!)。但是你肯定会遇到问题的地方在于,他们不知道SQL中允许什么,以及为了性能原因应该避免什么......如果你问我的意见,那么我告诉你,雇用程序员是一个非常糟糕的主意-术语。它不会工作。 – 2010-10-31 14:12:26