英文原文:Worried About Your .NET Skills? 译文链接
自从我十六岁起,我就在软件行业开始了第一份工作(没错,这意味着到现在已经 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 设计的课程面向那些希望更换他们工具的开发者。我的课程包括:
如果你没有准备好
但要清楚,如果这不是你想走的路并不意味着你就是个差的开发者。有许多杰出的开发者用着各种不同的技术。转向一个新技术并不能使你成为好的开发者;无论你是想转向或者不想。不要让“酷孩子们”的心理伤了你的自我。