ps:这是我来CSDN发表的第一篇博客,过了一段时间觉得存在一些谬误,希望能修订一下。
这个世界上有很多大神。但是本文并不是拜神的祭文。我个人更注重年轻人,或者说,新手应该怎么做。因为一方面少年强则中国强,更重要的是我也自己也是年轻人。
背景思考:我们为什么要有度娘?
很多时候问度娘和谷歌无非是为了一个代码片段。但是实践证明,网页上来的代码往往落实到最后都会变形,至少不可能是网页上原来的样子。比如变量命名,错误处理,条件编译,断言,追踪日志,,,反正就是各种悲剧。老板提醒了一句,只给一个手册,是不是完全没有能力写代码?茅塞顿开。
大多数时候,我们上网搜索的原因是我们没有查手册。至少可以说手册查得不充分。MSDN手册是有的,同行的代码也是有的,代码片段管理软件不为空,还有翔实的《C#高级编程》,visual studio对象浏览器。而在这些前提之下还要问度娘,说明是没有找到方向。在打开网络搜索之前,先反思怎样提问。至于纯粹技术性的难题直接问技术主管,应该是比搜索管用。避免成为伸手党,是技术人员进步的首要条件。
有没有必要先成大牛再做事情?换个角度看,大牛已经在那里了。我们二逼还是文艺,都在那里,不增也不减。问题的实质是,怎样安排实践进而有序、有效地积累经验。解决的方法千奇百怪,掉坑里是在所难免的。因此可以说,大牛是相对的。做技术的关注重点是商业,而不应该是文凭。因为只有商业化的设计产品才能既包含人的“主观能动性”又包含了“无差别的社会劳动”。的确,抄袭大牛是一条捷径。但从本质上看,抄袭大牛不能确保自己成为大牛,因为时代正在变化。
无论对于新手还是有经验的开发者,开发效率都是关注的重点。在生产关系中的程序员的价值在于:要么能做别人做不了的,要么做得比别人快。这是社会化生产决定的。
C#是怎样的一门语言?
我还是认为:C#是一门现代的语言,特别得益于RAD。至于它是否高效,低成本,友好,安全,文艺,,,这些问题应该根据严密组织的测试结果来回答。C#最直观的感受是它离产品很近,这正是编程所需要的。在编程语言的选择上,我个人认为应该有利于产品,毕竟我们是程序员。产品的质量,更迭的高效,还有想法的实施,我觉得这都是C#无与伦比的优势。
程序员要有产品的观点。不仅软件RELEASE是产品,其实环环节节都是产品。实际上是一个互动,首先是资源层面上的互动,比如说你用C#驱动了个树莓派,然后树莓派装个炸弹(千万不要这么做~);又比如说你用C#查询一个数据库,然后又连着一堆监控器。其次是与其他程序员的互动,主要是代码的可维护性上,比如用结构传值,前缀后缀约定等等。最后也是最重要的是和客户互动。个人认为要从白痴的观点看待产品,这种习惯往往是有益的,而且益处越到后面越明显。
而作为程序员,评价一门语言只需要带着产品的观点。再高端大气上档次而用不上的学术性语言,也不如对产品提出一点点有益的建议。经验是需要积累的,更切实地说,经验是可以积累的。
.Net Framework的可移植性在增强。但是作为一种商业产品来说,它很难彻底脱离商业化的范畴成为百分之百的GPL。即便如此,作为一门语言,而不是统一一切的“第九重天”,C#具备很好的特性。
一门语言,如果需要放到教条里面去才能说,无论如何,我觉得这是一种悲剧。
为什么要用C#?
C#对战略的影响。2010年以来的几年是微软蛋疼的几年,这几年里很多人相信C#已经沉沦了。人们也借此机会开始拥抱开源,反思微软。当然其中不缺乏妖魔化的观点。比如有的认为C#会降低人的智商,还有的认为微软帝国已经不复存在因此C#势必崩塌。这是一个争论不休的问题,正反双方都是在描述事实浪费时间而已,个人不愿卷入其中。
我想借用《代码大全》的观点。C#易于上手,这是不争的事实。然后你需要规划,到底是“深入一门语言去编程”,还是“用一门语言去编程”。假如你采用“深入”策略,你可以较快适应其他语言,而且你肯定不止只用一种语言;假如你采用“用”策略,调换就会变得非常复杂。其中还推荐了一个很好的实践,伪代码编程。我坚持伪代码编程一年左右,感觉很好。
C#可以在你程序员生涯的初期帮助你。我觉得这就是使用C#的一切动因,而且这个动因足够了。
C#与VISUAL STUDIO的区别
无可否认,这是一个新手特有的问题。我花了8个月的时间才搞清楚这个问题。C#是一门编程语言,是抽象的一个标准,是类似于法律的一个文档,有机会大家可以看一看,特别是对照一下其他语言标准。而VISUAL STUDIO只不过是辅助工具。它们的交集是C#编译器工具链。
用C#编写程序实质上指的是,使用C#编译器工具链进行程序设计的过程。在这个过程中,你使用了C#的语法,调用了符合C#接口的接口,完成一个既定的目标。理所当然你可以不借助于VISUAL STUDIO,用记事本+命令行调用C#编译器工具链也具备绝大部分的效果,只是没这么方便。
此外,VISUAL STUDIO是一套高端大气上档次的商用软件并且价格昂贵,想想微软的OFFICE,好在有免费的Express和Community版。而单纯的C#编译器工具链很便宜。还z在github上有个开源的版本。
C#会死吗?
我觉得这实际上不是语言的问题,而是一个关于“寂寞”的问题。任何一种编程语言都是信息系统。它不可避免有它的生存周期。它会经历需求、论证、设计、编码、测试、发布、更新,最终因为与人类社会的脱节而失去活力成为历史。因此可以说,任何语言都会死。
但是这并不代表没有希望。一门语言存在的价值在于改造世界,在于市场,也在于使用者的实际行动。问题的关键在于,一门语言的市场竞争力。关于C#的市场竞争力目前只能用“难以估计”来形容。对于新手最重要的是上手问题,而不是被互联网上的口水淹死。从这个角度上说,就目前而言,结合自身经历,我认为C#对于新手是适用的。甚至结合很多中小企业的开发运维实际情况而言,也还是适用的。
小结
假如有这么一种语言,能把想法快速转成目标,语法简单,接受优化,还能扩展,有免费的辅助软件,也有开源的镜像,你会不会用?反正我是用着。