自从我十六岁起,我就在软件行业开始了***份工作(没错,这意味着到现在已经28年了)。有一件事始终如一,那就是技术的变迁……但旧的技术并没有消失。最近的一个例子就是Silverlight。做了五年全职做.Net培训,当它进入了微软的“维护模式”之后,我就饱受责难。但事实是许多企业正使 用Silverlight,并且它并不会很快消失。和Windows Forms,ASP.NET Web Forms,VB6甚至是MFC一样。你需要问自己的问题是,你想要继续使用旧的技术还是学习新的。
我应该坚持还是应该放弃?
这是一个复杂的问题,我想分享一个我在职业生涯中被问到的问题,我是希望享受开发的乐趣还是赚钱。我不一定两者都能做到。我们当时与使用了 MUMPS的医院系统互动。MUMPS(或者M)是使用一种无模式的数据库(例如NoSQL)去存储大容量的事务的系统。当然,这听起来像是一种全新的技 术,但事实上它在1966年被设计出来并且仍然应用于主要的医院和银行。你想成为MUMPS的开发者吗?留下的少数的开发者在赚着大钱。但是它并不是新技 术。这可能对你们来说并不重要,但是对另外一些人却不。这和大部分技术一样。当然,AngularJS、NodeJS和Python很迷人,但是自从大量 的无聊的开发者学习着它们,这些技术领域(学习者)已经更多了。
你必须回答基本的问题,你是想去学习一些新技术,还是做一份足够养活你和你的家庭,在特定技术方面成为专家的工作?这没有“酷”这样的等级。每一个开发者都是不同的,对于你来说重要的,并不对其他人也重要。这是非常个人的决定。
.NET不会消失,但是你所使用的一些技术也许需求会越来越少(前述的Windows Forms,ASP.NET Web Forms,Sliverlight等),但是对这些技术精通的开发者总能找到自己的一席之地。当然,你可以决定转向如ASP.NET MVC,Web API和WinRT等更新的.NET技术。做出学习更新技术的决定会给予你新的机遇,但也可能使你与一大群开发者去竞争。这完全取决于你真正想要什么。
今日的Web开发
如果你真就想转移你的.NET技能去一个更新的网络开发技术如ASP.NET MVC?别误会我,从ASP.NET Web Forms过渡到MVC不是一个简单的步骤。这么做意味着你必须要学习服务端和客户端代码怎样一同协作。这意味着你需要学习JavaScript。
继续读下去,我知道我说了JavaScript,你们当中有些人可能已经犹豫了。C#和JavaScript在某些方面很相似,但其他方面明显不 同。但事到如今,JavaScript并不是你10年前所害怕使用的糟糕语言。语言本身并没有太大的进化,但是库和工具却变化了。有些时候我甚至喜欢写 JavaScript。
在典型的一天开发中,我用ASP.NET MVC处理我大多数站点上大约30%的工作;大约70%我用客户端代码处理。讽刺的是,我所写的客户端代码更像我曾经所做的Sliverlight工作。 我相信这是我们要实现的(并且有充足的证据支持这一点)。富客户端网络体验正成为标准。试图使用旧的技术如Web Forms去创造这样的体验将是痛苦的。但是运用你的.NET技术区创建非常好的Web站点并不如你所想的那样遥不可及。
特别是当你来自桌面开发,网络开发似乎势不可挡。仅仅对技术丛林首字母的匆匆一瞥(如CSS,HTML5,MVC等等)就会让大多数的人内心产生恐 惧。但事实是,这里有很多小技术点。它们中的大部分你之前已经做过,只是以不同的形式。用HTML5构建页面和VB6 forms,Windows Forms或者XAML从根本上是不同的。数据绑定仍然在那。调用服务对于一些人来说可能是一个全新的层,但是有时我们中的大多数已经分离对服务的调用。 这只是代码。
如果你准备好了
当然如果你准备好了我希望我的课程能够帮助你得到你想要的。我已经在过去的几年关注较新的网络技术以便我在JavaScript,CSS,网络调试和Web API设计的课程面向那些希望更换他们工具的开发者。我的课程包括:
- 为C#开发者准备的JavaScript
- 用FireBug, WebDeveloper, 和Fiddler调试网络程序
- Web API设计
- 一个更好的CSS:LESS 和SASS
- 用Bootstrap, AngularJS, ASP.NET, EF和Azure建站点
如果你没有准备好
但要清楚,如果这不是你想走的路并不意味着你就是个差的开发者。有许多杰出的开发者用着各种不同的技术。转向一个新技术并不能使你成为好的开发者;无论你是想转向或者不想。不要让“酷孩子们”的心理伤了你的自我。