怎么做,与为什么?[转]
(转自:http://www.cnblogs.com/poplau/archive/2009/08/27/1555348.html,仔细阅读了这篇文章之后,在对于自身在开发过程中,发现了很多缺点!尤其是上个月月底的一次面试,面试官问我的一个问题,看了这篇文章后,不由产生些许感慨。特意转到自己的博客,用以以后提醒自己,如何学?如何做?)
有些东西,靠网上的东拉西拽是不能得到的,也许应该给予更多的思考,还有就是天赋。我,一个小小程序员,一个上了年纪的coding爱好者。只是想把自己这些时间想写的东西写出来。
.net以来,在一个人数不多的公司工作,做网站,学习.net从无到有。开发团队从几人变成一个人在战斗,夜以继日的琢磨,一个项目又一个。其间总是觉得有乐趣,总是想着有那么一天,自己写的东西交出去,能够得到大家的认可。但是,交付的越多,维护的也就越多,事也就越来越多,一个人在战斗,互联网做支撑,有什么问题就GOOGLE。只要是怎么做,总能或多或少找到一些解决办法,或者替代的方式,数据库操作,把helper拿来,ajax,下案例,调试成功开始搞,extjs,帮助文档很好,照着写就好,界面什么的,抓过来,看看script,改改总能成功,慢慢的,形成了自己做WEB网站或小应用程序一套完整的框架,并且能够快速的完成大多数中小型企业的需求,界面也做的很炫(切页面的功夫还不赖)。一个接一个,做完了再重复劳动,没有停下来的时间,体力劳动。
也许这样写代码,有自己的困惑,比如安全性,比如能不能换一种方式,等等...这些都想过,但是在脑海里只是昙花一现,也许无暇顾及,也许是井底之蛙,也许没人指出,也许一直都在重复这样一种项目...
忽然有一天,有个人问我
“你知不知道ADO访问数据的原理,是怎样操作的?”....我用的封装好的代码,就没去管了
“你知不知道Ajax的原理?”...就会用
“你看过HTTP协议吗?有哪些状态,机制是什么样的?请求时返回都有哪些值?”...不知道
“在并发十几万时,你怎么处理?服务端缓存和客户端缓存怎么实现?”...新问题
“重载和覆盖(应该是重写)有什么区别?”...用过,但用的不多,所以没怎么深入了解。也不知道啥时候该用重载,啥时候用覆盖重写override overload overwrite。...
开始,我真想说,查查GOOGLE,一准准能回答你。呵呵,其实,这些问题自己也曾想过,也曾经看过这方面的,当时是有些体会,但之后没有项目实践经验,久而久之就忘了,就又回到重复哪些熟悉代码的过程中去了。得出结论,我走偏了...
静下心来,想一想,为什么啊?
也许,一直以来,我总在寻求怎么做,却从来没有问为什么,有问题找GOOGLE,而不是思考,同时也没有这些项目经历去研究为什么,或许,我只满足于把东西做出来,就仅止步于此?但是,现实告诉我,会怎么做的人只能拿普通的薪水,懂得为什么的人就能拿高薪。
恩,不管怎样,我还是喜欢写代码,尽管上了年纪T_T。但在程序顺利运行的过程中总能有一点小小的满足感,我希望自己写的东西能够给更多的人或者企业去应用。
为什么?为什么喜欢写代码?也许,就像尼古拉斯凯奇在《战争之王》中,回答布丽姬·穆娜为什么要倒卖军火一样,这是我所擅长的。
感谢那些让我清醒的人啊。
对于软件开发,我也是学了两年多了,从来都只是思考怎么用?却不问为什么要这么用?记得那个面试官在看了我的简历之后,问了我一个很简单的问题:你的那个项目里面为什么要用到这个技术?当时我就懵了,因为我从来就没有思考过这个,就是一种觉得顺理成章的想法。因为项目里面要用,那我就用咯!这样下去,我这辈子都只能做一个很普通的程序员,学什么都只能到达一个会用的层次,你只有仔细的思考为什么,学的东西才会更多。
最近也一直在学习wcf,有点困难!以前只会写几个服务,可是看了Artech的wcf之后,才知道wcf的博大精深!所以学东西,必须多思考为什么这么做?而不是总想着怎么做?这里面应该是有一个顺序的关系。