最近看了传智播客(http://net.itcast.cn/)的.net培训视频,感受颇深,忍不住要把感受写下来跟网友分享一下。

  我从接触.net到现在已经至少过去了三五个年头,用.net也已经做了若干个大大小小的项目。在看培训视频之前我还在努力地学习.net的各种新的框架和控件(如Telerik UI,AJAX Control Toolkit,各种ORM框架等),一边硬着头皮学一边也在心里抱怨着IT技术更新太快。曾经还会为熟练使用.net自带的一大堆服务器控件和Linq To SQL而颇有成就感,现在却要面对一波又一波技术的更新浪潮,随着岁数的增长,也渐渐地感觉学起来越来越费劲了。

  然而一看传智播客网站上的杨中科老师的.net培训视频,还没看完就有了一种醍醐灌顶的感觉,感叹这几年来真是被微软给惯坏了。为什么这么说呢,自打.net出了2.0以后我就开始关注和学习了,刚开始自然是找本书来看,那时候的书籍上记载的都是大篇幅阐述各种服务器控件的使用。其实在接触.net之前我都是用ASP来做网站项目的,当时使用ASP的感觉是写代码麻烦(几乎啥都要自己去实现),前端和后台的代码混杂起来致使阅读和维护不便,最大的缺点还是调试困难,不过现在看来最大的好处是做出来的网页干净(当时没觉得,虽然当时客户跟我反映说网页打开速度比好多知名的大网站还快,我也没去想那么多)。.net的出现带来了一大堆的封装好的服务器控件以及CodeBehind、ViewState、AJAX Extension控件等神奇的技术。当时微软号称ASP.net是ASP的升级版本,我也是举双手认同,从此开发和调试都方便了很多,因为开发网站可以像开发桌面应用程序那样拖控件,而调试也可以在后台代码里下断点来实现了,于是我从此开始放弃了ASP的进一步学习和使用。在实际的项目实践中,一开始由于项目需求并不是很复杂,开发过程进展总体来说比较顺利,开发调试效率都比以前用ASP提高了很多,这段时间持续了至少有两三年。但是随着项目规模的增大和对性能要求的提高,遇到的困难也越来越多,而且解决起来都感觉无从下手,因为我已经渐渐地形成了“拖控件改属性响应事件”的开发模式,遇到实现不了的需求就去网上搜控件的用法或找更好的替代控件,遇到渲染出来的客户端网页上ViewState内容太多也是束手无策,客户也渐渐发现了问题,不断跟我抱怨说还不如以前的项目(用ASP做的)做得功能强大且打开页面快。其实在看培训视频前我也已经开始质疑微软的.net,不过我想到的是出于.net本身的问题而不只是服务器控件的问题,因为用Web Form开发太久,当我想转到微软新推出的MVC开发模式时已经感觉很不习惯了,感觉太难学,因此我都已经开始动摇了对.net的信心,准备投靠目前更火热的PHP阵营。看了培训视频后,我总算明白了我的问题出在哪里了,原来是我被微软惯坏了,我已经不会用传统的Web开发模式来开发网站了,原来一直以来我都是在用开发WinForm的模式来开发网站,而且更要命的是我都没有深入研究和理解那些服务器控件和aspx页面渲染的原理。刚学会.net的时候还自以为很牛B,拖几个控件就能做出网站来,人家问我AJAX代码的问题,我直接说我不用写这些代码,直接用什么UpdatePanel控件就行了。现在想来太可笑了,正如杨老师所说的,这些服务器控件又难学又不好用,真正做项目的时候用这些控件的确很痛苦。

  技术不断在更新,然而其底层的技术却多年来未曾改变,不管微软推出多少服务器控件和多少框架,像我这样的开发者们,千万要保持清醒的头脑,万变不离其宗,不应该盲目地花很多时间和精力去学习人家封装好的东西,而应该尝试自己去实现,做Web开发的朋友不要忘记了Web“请求-处理-响应”的本质。别人做出来的东西终究是别人的,哪怕开源的也好,维护起来还是很困难很痛苦,真正的高手应该学会自己写框架写控件,并且有选择性地使用别人封装好的东西。

  联想到程序员自身的提高和发展问题,在学习技术的过程中,有好的老师提供正确的引导是多么的重要,少走几年弯路就意味着多赚几万块钱。总是听到不少老师在网上给学员培训时说诸如“没必要去学习原理,只要会用就行”之类的话,这就跟我当年刚学会拖控件就以为精通了.net一样可笑。都说IT行业技术发展迅速,其实真正迅速的还是在于应用层的东西,而这些东西我们真的没必要都去学。切记,封装是一把双刃剑,滥用者必然没有好下场。从今天起,做一个聪明的.net程序员。

做一个聪明的.net程序员的更多相关文章

  1. 如何成为一个优秀的java程序员

    Java程序员有许多应遵循的守则或最佳实践方式.本文概述了每个开发者最应该遵循的10条守则或戒律,如果不遵循它们,将会导致灾难性后果. 1. 为代码添加注释(Add comments to your ...

  2. 做一名合格的程序员(learning of a previous team)

    合格程序员的基本素质 作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具 有的素质.  1 团队精神和协作能力 把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备 ...

  3. 一个优秀windows C++程序员的知识体系

    思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的热情. 转自http://www.cppblog.co ...

  4. 一个优秀windows C++程序员的知识体系[转]

    转自:一个优秀windows C++程序员的知识体系 思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的 ...

  5. 转:一个优秀windows C++程序员的知识体系

    转自:http://www.cppblog.com/weiym/archive/2012/06/10/178287.html.根据自身的经历,觉得作者总结的很好. 思考一个优秀windows C++ ...

  6. 一个十年java程序员的心得

    展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的1 ...

  7. 转 一个典型的 C++ 程序员成长经历:

    1.  完整的学一遍 C++ 所有语言特性,典型书籍 "The C++ Programming Language" Part1, Part2, "C++ Primer&q ...

  8. 一个普通底层.NET程序员关于职场瓶颈期的思考,辗转自我提升/跳槽/转行之间

    徒有工龄,没技术没学历没平台没家底,工作几年,无车无房无存款还前景不明. 时常有身边的亲友问怎么学开发怎么转互联网,说起IT行业都说工资高,动辄月薪上万动辄年薪几十万. 再看看自己,我可能是假的程序员 ...

  9. 一个10年Java程序员的年终总结,献给还在迷茫中的你

    我越来越担心我作为一个Java程序员的未来. 恍然间,发现自己在这个行业里已经摸爬滚打将近10年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作 ...

随机推荐

  1. Java日期处理类

    1.Date java.util.Date 2.Calendar 日历类,通过getInstance()获取实例对象,可以获取年月日时分秒 3.SimpleDateFormat 日期格式化,forma ...

  2. 项目经验之:GIS的初步工作窗体的搭建

    不多说了,上图,初步工作刚好完 GIS平台系统,实现整个供水系统的协调与统一.系统以管网为基础依据,建立可实现供水管网规划设计.输配管理.图档管理.抢修辅助决策及综合查询.统计等功能. 整体窗口设计 ...

  3. zookeeper 系列

    ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.ZooKeeper的目标就是封装好复杂易出错的关键服务 ...

  4. .NET下的延迟加载

    在应用中有很多实例可能需要延迟创建对象, 比如设计模式中的单例模式就是一种非常常见的情况.如果不考虑线程安全我们通常会编写如下代码: public class SingleInstance { pri ...

  5. Flash Builder 4.6 界面显示一半中文一半英文?

    Flash Builder 4.6 (简称 Flex 4.6 或 FB 4.6)启动后界面有时候会显示一半中文,一半英文(这种奇葩的情况一般发生在 FB 4.6 刚安装后或操作系统安装一个类似 SP1 ...

  6. makefile中的patsubst

    函数名称:加前缀函数—addprefix. 函数功能:为“NAMES…”中的每个文件名称加入前缀“PREFIX”.參数“NAMES…”是空格切割的文件名称序列,将“SUFFIX”加入到此序列的每个文件 ...

  7. Android PhoneGap源码分析——白名单

    对于单独的Web app应用来说,加载进来的url一般不能保证它的安全性.那么如何来处理url安全性的问题呢. 让我们来看看PhoneGap是如何做的. PhoneGap采用了白名单的形式,认为在白名 ...

  8. oschina git 私有项目使用。。

    工作流程 安装设置 git 下载最新版本的git http://git-scm.com/downloads 当你安装完成git的时候,你需要简单的配置一下,打开终端: 用户名 第一步,你需要告诉git ...

  9. Keeplived 配制图解

    http://blog.csdn.net/tantexian/article/details/50056229

  10. ubuntu下tomcat启动巨慢分析

    在一个ubuntu14新环境部署tomcat,通过CI启动一个应用时,启动耗时达到15分钟之久.仔细看tomcat输出的耗时统计日志发现如下日志: Creation of SecureRandom i ...