周末无聊,发篇蛋疼: 聊聊程序员的知识面以“搜商”(两篇)
1.关于新技术怎么对待 及程序员的知识面
现在真是一个信息爆炸,终身学习的年代,尤其对程序员,对我们这种以代码混温泡的人来说,每天都有新的技术发布,微软的SL,几年内从SL1一直到SL4,.Net 1.0,1.1,2.0,3.0,3.5,4.0想一下,才用了几年,升级了这么多版本。
那对于我们,该怎么办?很多朋友一见新技术发布,便一直在学习,从技术预览版到beta1,beta2再到RC,再到正式发布,刚学的一知半解了,马上又有新的一门技术需要去学习。
可是,学了这么多FrameWork ,对你的工作真的有用吗?可能你的老板还是让你用.net 2.0做着开发,你的团队还是以VS2005进行交流。
说这些,不是批评爱学习的朋友们,我只是觉得,在现在的环境下,对技术一定要有所筛选。
去学几门新技术,倒不如把你手中的弄的再精通一些,不要最后对大部分都是一知半解,无法在实际中应用。
那么对于新技术,我们应该怎么办?从我个人来讲,新技术的作用,主要是扩展知识面。对于新技术,重要的是了解,就是要关注以下几个问题:
1.是什么 新技术是什么,哪个公司发布的(有点废话,呵)
2.为什么----这门技术是从什么角度进行发布的,针对哪些应用,是企业,还是互联网,是BS,还是CS,解决了哪些问题
3.怎么用----要配合哪些东西使用。
这三条中,一定要注意第二条----解决了哪些问题,很多人学新的技术,框架一路学,学到最后对这门技术,框架定位是什么都不知道,解决了哪些问题,也不知道。
比如 SL的3D效果,Ajax的局部刷新 ,例子举的简单 因为本人对BS。互联网不大了解,各位见笑 。
这种对新技术的了解,就是对你的知识面的扩展
那么扩展了以后有什么用?
OK,现在,你对新技术的特性有一定的了解,再针对 你手下的开发,或是下一个项目,在必要的时候 ,你应该有选择的切换到新的平台,新的架构 这中间,可能你要和你上的司沟通,和你的PL沟通, 你要用你的了解,去说服他们允许你,或你所在的团队,在开发中使用新的技术和方案。 这种沟通,不是你会几个 Demo代码,自己写过两个小程序就能沟通,或是在对技术的了解上,对比现有,所能提炼出来的。。。
然后,在真正的开发中,你再去学习,带着你的应用,你的问题 去学习,比顺着DEMO学习要去快的多。
PS:准备拿新技术跳槽用的另当别论
总结一下上面这些废话,就是对新的东西 : 不一定会,但一定要知道有
二。程序员的搜商
搜商这个词,不知道算不算是我杜撰出来的,我对它的定义,就是对互相网,具体些就是搜索引擎,论坛的应用。
我原来加入去很多群,C#,.Net,winform …… 诸如此类,但是后来都退出了,为什么,因为感觉里面很费时间,很多人不会思考,不会自己解决问题,十个问题中有九个是类似于“SQL 连接显示服务器不存在怎么处理”的问题,我不明白现在互联网这么发达,这种问题,为什么不去搜一下而到群里去问,为了自降身份好玩吗?
在开发中遇到问题,老鸟也好,菜鸟也好,都是很正常的事情,区别就是你怎么对待这种问题 ,有的人去查官方文档 ,有的人直接问,有的人去搜索。
而在搜索中,你的搜商就体现出来了。 就是说你怎么设定关键字去搜,你去搜“SQL连接显示服务器不存在或连接被拒绝”肯定是很难找到恰当的答案的(当然,这个例子还好点,因为是MS抛的异常,很多人直接copy过去了),但是你要提炼成 “MSSL 连接 拒绝” 估计会事半功倍 。
我碰到一些同事和朋友,遇到 一个问题,问我怎么办,我说我又没做过你那种应用,我怎么能知道, 你去百度或google一下吧,过了半小时,他告诉我他没找到,让我帮他研究一下。
结果我用搜索引擎,一搜就搜到了。
能不能用好一个搜索引擎,这真不是一个小问题,这对煅练你的思维,你提练问题的能力 都有很大的作用。
英语还好一些的朋友,应该多试一些英文搜索,我原来有一次C#并口开发,百度 google几乎所有 .net C# 并口 读写 的结果,一无所获,最后逼急了(本人英语也很垃圾 ) ,google "C# Parrell Port"(不知道并口是不是这么写了,当时金山词霸搞定) 结果就看到了一篇很不错的E文,豁然开朗。
大家再遇到问题,在问身边的牛人之前,在论坛上发贴之前,自己去baidu一下,去google一下。
三。题外废话:程序员的自悟。
在C#中,有时要涉及一些第三方COM的调用 ,比较多的是对Excel,Word或是其他的Introp (注意:不是.net 自带的那个组件)。 这时,这种第三方COm文档很少,或是干脆没有文档 ,怎么进行开发?
这时,如果面对特定的应用,你 baidu.google也是无济于事 。
下面分享一下本人的经验 :
1.先把COM加到工程里,用对象浏览器看DLL的类库结构,根据名称去猜每一个类的含义,函数的作用。
2.对不确定的功能。建一个工程,写几个简单的初始化码, 断点运行,然后在监视窗口中看对象的成员变化。
最BT的作法是,你可以在监视窗口中直接调用对像的函数,以观察数据变化 。。。
凑了没用的几百字,斗胆发到首页上,希望砖头少点。
(PS:我承认我两年前离开CSDN到CNBLOG就是因为这里不需要你是专家,达人就可以把自己的文章发到首页,我觉得这是一种公平的环境,我的文章都会发到首页,因为每一篇文章都认为是自己的心血之作,有感而作)