引子
正如我在个人介绍中所写,我是一个仍然坚持.NET的头铁高级软件工程师,研究C#,.NET已经六年多,一直坚持认为自己的能力不足以教授别人,所以一直没有想法写博客。工作几年,内容涵盖了.NET框架下的各种软件的开发,WPF,WinForm,WebForm,ASP.NET,MVC5,开发的软件几乎涵盖了.NET家族的各个成员。让我下定决心写一系列C#高级开发文章的原因并不是因为某天早上起床突如其来的兴致勃勃的决定要将自己这些年积累的经验分享给大家,而是是因为公司前端的一句“快脱坑吧,你们做WPF没有什么前途,公司为了跨平台你们的项目都要用Electron重做了!”。
听起来有点悲伤,联想到公司已经连着三年没有从校招中招到一个C#的工程师了,似乎没落也不觉得奇怪。.NET开发者纷纷脱坑,新人却无以为继,眼看着C# .NET越来越冷清,我也不是没有任何的准备,由于C#和Java那些不能说的秘密,让C#程序员转型Java有着得天独厚的便利条件,我在公司中同样做过Java的开发,并在某一个时间段内考虑过转型Java,也曾想过不做.NET程序员,干回嵌入式的老本行,也在Electron出名之后就不断关注Electron的发展,学习Vue,为已经到来的跨平台需求做准备。
出去看了外面的世界才觉得还是家里好。总觉得自己啥也不行就是好折腾,这些年主流的编程语言都玩过,却始终自顾自的认为C#是很美的一门语言,另一个让我觉得很美的语言是Python,所以目前我会使用C#做桌面应用,使用Python写脚本。.NET Core的出现也让我对于C#的命运多了些许的希望,我们都能看到微软在跨平台上面的努力,成事在天,对于以后会怎样,谁也无法给出确切的预测。
一方面是冷清的大环境,一方面是还算庞大的市场,有很多公司.NET的软件需要维护,相比于C++ QT的跨平台桌面软件解决方案,.NET的效率优势十分巨大,在不需要跨平台的时候,优势还是相当大的,那.NET的开发者又是什么情况呢?在公司的面试过程中,我发现无论是校招,还是社招,对于C#语言,大家普遍认为比较简单,入门门槛低,但是实际对于语言的掌握程度却鲜有能精通的,有些是根本没有深入了解,究其原因是学习一门编程语言,入门容易,提高很难。网上很多入门视频,很少深入书籍,这就导致了提高到一定程度的之后,就没有人教你了,只能在工作中慢慢摸索前进,有人带还好,没人带的话,这个过程就比较痛苦。有些是固步自封,不愿主动了解C#的一些新的特性,不愿深挖其中的奥秘。
作为局中人,我希望能够通过我的努力,为我喜爱的东西做点力所能及的贡献,所以经过一段事件的准备,我计划出一系列C#高级编程的教程,内容涵盖了新的语言特性,专题讲解,实战项目等,希望我的努力能让更多的人深入的了解C#,了解.NET,能让更多的人技术更加的精进,不再拘泥于调用API,在别人设计好的框架下开发。希望能带着初级程序员走进高级的殿堂。
课程介绍
那么第一个系列,我叫他冷知识系列,是对比较简单的语法,知识点的一个补充,内容涵盖了初级程序员不太会用到的一些奇淫巧技,C#语言的新的语法特性等,学会了这些,不仅可以极大的开阔视野,简化编程,也可以在同伴同事前面秀一把。相信这个系列一定会让你有所收获。
适用人群
需要强调的是,这个系列并不是C#的初级文章,要看懂并且消化该系列的知识,需要你至少完成了C#初级的学习,也就是至少看过一遍C#初级的书籍,敲过一遍代码,如果你有实际的项目经验那就更好了,本系列一定能让你的C#技巧提高一个层次。
我很喜欢之前在论坛上看到的一句话,“不怕你会C#,怕就怕你只会C#”,想做高级开发工程师的童鞋,还是建议你多学一些语言,清楚编程语言的不同特性到底意味着什么,学好软件设计,我也有兴趣之后跟大家分享一些在实际工作中很常用的设计模式。毕竟社会是残酷的,出门多背几样必需品,有备无患。
C#还没有死,我们也不必在夹缝中生存。
原文地址:http://blog.51cto.com/14200510/2350792