关于开发者的技术水平到底该如何定义,到底一个人的技术水平应该定位在高、中、低的标准是什么呢?很多人觉得这是一个仁者见仁的问题,有人觉得根据公司的那个员工等级判断。答案是肯定不是,从纯开发技术的角度来分析。很多人觉得自己一门语言精通了就去学其他语言了,美其名曰集大成者,这样的工作十几年却是初级水平的技术人员也不少。

下面我来讲讲我的认知,C#这门技术到底学到什么程度可以进入到什么级别。

我常说C#的入门技术是委托、事件、消息。只有当你可以纯熟运用这三个技能的时候,才刚刚入门,此时C#的大门才算正式为你打开。很多人在学了一些语法编写一些项目后就觉得C#精通了,其实你们还没入门呢(对日开发的居多)

下面上一个图片,大家来看看自己的定位,当然是纯技术角度,其实,有些时候一个软件架构,用初级软件工程师也是可以架构的。

  

1,        comom language runtime :初级人员无视他,中级人员起码要知道他,高级人员多数要会使用其中一些应用比如security,架构师要理解原理。

2,        .netframework :这里有许多框架,会的越多越好。

3,        Base class library :这里都是基本语法你会了多少呢,想成为高手一定要全部学会,一个都不能丢。

4,        Runtime infrastructure library:这里内容初级开发者不用了解,进入中级就要开始一点点吸收了,想到高级要全部消化,是全部哦。

5,        Framework calss library:这里都是基本应用,初级程序员肯能都会接触一些,中级就会了解和运用一些,高级就要全部会用。

6,        Core concepts:这里的内容同上。

7,        Core features,core objects,CLI language,DLR略过。。。

8,        Desktop:CUI了解就行,GUI要深入了解,另外这里的涉及到了XAML语言,这个要学会。

9,        Web:这里涉及的框架sharpoint如果工作没涉及不去了解也是可以的,但asp.net是必会的,其中的MVC就算工作没应用也要学会。Asp.net runtime是进阶高手的一个路障,了解的越多越好。Silverlight的话,会xaml基本就能用,如果工作需要精通。

10,     SOA:这也是个必会的东西,而且至少要精一个。

11,     Open web interface for .net:要了解,会使用,如果工作需要,要精通。

12,     SDK:要了解,会基本使用。

13,     Development:这个基本没有人能全会,但工具这个要熟练使用,毕竟工具会的越多越好,但不是技术加分。

14,     Platforms:这个基本很难有人全精,但多少要了解,工作用过的要精通。

15,     Productivity:起码nuget要会用。

16,     Build:高级人员要了解原理。

17,     Testing:至少要会使用1个,其他的要了解。

18,     Deploy/publish:这个基本都百度的出用法,了解就可以,起码知道有这个东西,需要的时候可以百度。

19,     Framework tool:这里有些是必会的,有些会用就行,但最好全部了解,需要的时候学习用法。

20,     Data:这里内容作为高级人员是必会的,其中的orm可以用EF作为跳板深入研究(这里的水很深)。

21,     Conponents:中级以后难免要接触这些,了解的越多进步的越多。

22,     Concept:这是图片里没有的,中级以后就会接触的,像什么IOC,AOP,MVC,MVVM,DDD等等,在学习这些的过程中可以逐渐向架构师前进,其实这些概念学会了之后会发现,概念只是装逼用的。在概念里分为基本概念和高级概念,像IOC,AOP就是基本概念,这些东西在编码时你已经应用过了,而且有一些现成的开源代码,而且原理很简单,学会后可以用具体语言来把你编码的方式表达出来,不去了解也无妨,但知道的多了,方便忽悠;而DDD就是高级概念,光百度是学不会的,一定要应用过才能了解,但DDD这样的高级概念很复杂,非技术人员很难理解,技术人员也未必有那么好的口才讲解,而IOC,AOP这类的简单概念很容易理解,基本上口才笨拙的开发人员也能讲的很溜,很适合给领导很讲解。所以在领导看来,会基础概念和会高级概念都是一样一样一样地。

看到这里是不是那些以为C#很简单的同学就很吃惊啦啊,那些自以为自己是大神的是不是发现,原来自己不过才是刚入门的小菜鸟啦,那些以为自己C#精通的外包达人们,是不是打开图片后一脸陌生的感觉呀。其实,C#并不比其他语言简单,水深的狠,哪那么容易精通。

这些还只是C#,作为一个程序员,还要有其他必备的知识,比如HTML和CSS你得会,JS你得会,别说你知道标签是什么意思就说自己会了,起码DIV+CSS切图玩的起来才算会。数据库你得会,数据库水很深,别轻易说自己有初级DBA的水平,那些传说中每天备份表数据的初级DBA可是连入门都没有呢,不要和他们比;作为高级开发人员,起码存储过程要信手拈来把,起码要有解决过大数据死锁的经验吧。如果业余爱好再丰富一点的人,PS基本使用也要会把,falsh也要了解吧,3Dmax是不是也可以玩玩啊,程序员也要有美感嘛。此外,程序员要会写文档,解决方案可是基本技能,高级点的概要设计也是文档嘛。另外高级程序员难免还得写点ppt吧。

除了这些,还有一些要了解的东西,比如操作系统呀,硬件呀,软件工具等等,因为不一定什么时候你面对着一些性能bug,就需要他们的知识才能解决,或者解释。

再更上一层楼,要接触一些开源代码啦,现在Xamarin都开源了,你有去了解吗?很多开源代码都很厉害的,不要对我说在CSDN下载了一些开源代码啊。。。

以上全部是纯技术分析,当然不是全部,如有遗漏欢迎大家补充。

上面这些都是纯技术,是虚拟社会,回到现实世界,由于一些人是由初级程序员,尤甚者未入门的程序员,直接跳级到了架构师,或者高级程序员,从而引发代码世界的混乱,而这样的人才之所以成功,除了自身年龄和口才外,和那些非技术人才的力捧也是主因之一。不过呢,话说回来,我们是商业社会,有些项目能用即可,有些项目拖延到烂尾也是必要的,所以口才的重要性,并不比技术低。一个技术没入门的架构师并不比一个真才实学的架构差,即便他们其他技能也是零,因为我相信存在即是合理。

----------------------------------------------------------------------------------------------------

注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
若您觉得这篇文章还不错,请点击下右下角的推荐,非常感谢!

我对C#的认知。的更多相关文章

  1. %iowait和CPU使用率的正确认知

    resources 理解 %IOWAIT (%WIO) LINUX系统的CPU使用率和LOAD Linux Performance Observability Tools How Linux CPU ...

  2. 【AI开发第一步】微软认知服务API应用

    目录 介绍 API分类 使用‘视觉’API完成的Demo 点击直接看干货 介绍 从3月份Google家的阿尔法狗打败韩国围棋冠军选手李世石,到之后微软Build2016大会宣布的“智能机器人”战略.种 ...

  3. [翻译]Primer on Cognitive Computing(认知计算入门)

    Source Kelly J., Primer on Cognitive Computing 20150216. 侵删,联系方式:zhoujiagen\@gmail.com. 按A candidate ...

  4. IBM的“认知计算时代”

    IBM 提出信息技术进入“认知计算时代”.所有电子设备都有潜力发展出认知能力,换言之,都可以像人一样‘思考’. 何为认知计算时代呢?  认知计算系统能够学习并与人类自然地交流,以扩展人类或机器可亲自执 ...

  5. 传统认知PK网络认知 刚子扯谈烤串认知

    文/刚子 2013.7.23 提到认知,有太多的介绍,我就不在秀理论文字了,那样等于自我抄袭式的传播给大家,对于大家也没意思,可以推荐大家到百度里面搜索下”认知结构”,介绍的比我详细.同行老陈说的! ...

  6. java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

    本章介绍DataOutputStream.我们先对DataOutputStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解. 转载请注明出处:http://www.cnblog ...

  7. JPA学习(1)基础认知

    JPA 是什么 Java Persistence API:用于对象持久化的API. Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层: JPA和Hibernate的 ...

  8. 人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍

    人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍 工业机器人,家用机器人这些只是人工智能的一个细分应用而已.图像识别,语音识别,推荐算法,NL ...

  9. 思维认知-读mindhacks杂记

    1. 导语 无意中浏览知乎,搜索到了mindhacks.cn这个个人geek的网址.mindhacks博主本人是牛人程序员一枚,但他的博客主题涵盖的主要内容确是思维改变生活. 博客链接地址:http: ...

  10. 【我所认知的BIOS】—> uEFI AHCI Driver(4) — 第一个Protocol真难搞

    [我所认知的BIOS]-> uEFI AHCI Driver(4) - 第一个Protocol真难搞 LightSeed 4/23/2014 文章对EFI_DRIVER_BINDING_PROT ...

随机推荐

  1. HTML 5将给开发者带来什么?

    在新的时代里,相信网页技术会伴随HTML 5的来临进入大洗牌的局面,HTML 5旨在解决Web中的交互,媒体,本地操作等问题,一些浏览器已经尝试支持HTML 5的一些功能,而开发者们有望最终从那些We ...

  2. React(八)样式及CSS模块化

    (1)内联样式 注:样式要采用驼峰命令发,如果非要使用原生css样式写法,需加引号 缺点:一些动画,伪类不能使用 class App extends Component { constructor(p ...

  3. 初识Jmeter

    初识Jmeter 测试计划是根节点,其下可以有多个Thread Group,起始可配setUp Thread Group和tearDown Group.在每个Group下可创建其它节点,模拟各类实际行 ...

  4. 【原创】XAF常用属性字段设置

    1.IP地址IPV4 [XafDisplayName()] [ModelDefault("EditMaskType", "RegEx")] [ModelDefa ...

  5. cadence电源和地平面的处理

    覆铜是PCB布线的常用操作,下面总结覆铜的方法以及电源层分割的方法 PCB设计中,经常面临电源.地噪声的挑战,在高速数字系统中,电源和地的设计非常关键!电源和地的主要作用有: 一,为数字信号提供稳定的 ...

  6. SSIS - 9.文件系统任务

    文件系统任务是用来操作服务器上的文件和目录的.比如,可以新建任务来创建.复制.删除或移动一个文件或一个目录. 一.操作和属性 一个文件系统可以定义如下10种操作. 所有的操作包含Name, Descr ...

  7. [转]jenkins2 插件安装

    文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd Jenkins的安装包和插件在7个国家有20多个镜 ...

  8. 《Android插件化开发指南》勘误

    一些常识: 1)全书70个代码例子中,涉及到插件的例子,请先assemble插件的项目,这会在HostApp项目中生成assets目录,并在该目录下plugin1.apk.这样,HostApp才能正常 ...

  9. AIO系列文档(1)----图解ByteBuffer

    因何而写 网上关于bytebuffer的文章真的很多,为何在此还要写一篇呢?主要是基于以下几点考虑 很多人在使用t-io时,还不会bytebuffer,只会照着t-io提供的例子照猫画虎,不利于灵活运 ...

  10. SDL 开发实战(五): SDL 纹理渲染

    本文我们讲一下如何使用SDL_Texture将视频纹理渲染出来. 1. SDL 视频渲染相关对象 SDL 视频渲染主要涉及到四个对象:SDL_Window.SDL_Render.SDL_Texture ...