一个优秀.NET程序员的技能树 Web/WinForm/通吃,包括ASP.NET,WebService,Remoting,Thread,Serializable,ADO.NET等命名空间
精通UML
精通DesignPatterns 23+N种模式:默写各个模式UML图,熟记代码实现方式,范例,以及.NET相关接口
精通CLR
VB.NET/C#通吃
精通OOP理念
精通DB设计与T-SQL,SQL2005就可以了
熟悉AJAX全套技术
通吃WPF/WCF/WF/LINQ
WEB 2.0理念,理解Blog/Wiki/RSS架构,SOA理念
精通数据结构/操作系统/安全加密
精通.NET设计规范
研究5套以上经典源码,例如:SharpDevelop,PetShop,DotNetNuke,SmartClient,NUnit,FotoVision,CSLA等等
熟悉DirectX编程模式
翻译过1-2本技术书籍
对于.net方面的开发人员, 我认为应该掌握的基本技术素质:
asp.net方面
webcontrols和htmlcontrols
webform验证控件, 熟练地在不同场合使用客户端验证和服务器端验证
了解Get. POST等常用web actions区别.
知道Application, Session, httprequest周期.
了解httpruntime的cache与session的区别
javascript和DHTML如何work
ajax如何work, 如果可以,最好了解一个ajax框架. 如微软提供的框架.
WinForm常用控件
web service
Threading, STA 和MTA
ADO.net, dataset, datareader
Regular expression初步知识
基础sql server
基础Debugging
如果再进阶的话,
可以了解httpmodule, httphandler如何应用
理解appdomain及其应用
可以思考.net如何与其它技术平台work. 如com+, com, java.
可以了解新技术(如linq, wpf,wwf,wcf)等对应用的影响.
可以思考如何提高应用程序的安全性,可维护性,可扩展性, 可
可以思考高可用性, 高容量环境下的应用开发.
进阶的Debugging, 到底层去理解系统是如何work的. 如何能在用高级语言编程时,也想到底层是如何work的, 那么你的系统一定会相对运行得效率高,省资源. 不要总想着硬件便宜, 加硬件或者升级硬件就行了.
再进一步,可以扩展知识面, 点面结合. 点是指你得主要技术强项,如.net, 面当然是指更宽的技术知识面和商业知识面了.
了解Microsoft的其它技术和它的历史
了解Microsoft以外的世界是什么样的
了解不同的商业知识Business domain, 计算技术其实是为这些商业领域服务的, 成为商业领域专家,是个不错的选择.