黑曼陀罗生日:技术人员的基本素质

来源:百度文库 编辑:偶看新闻 时间:2024/04/17 03:34:57
 技术人员的基本素质

算来我也作了大概六七年的技术了,是时间应该总结一下了,我想最值得我回忆的,不是哪个具体技术,而是对于技术的态度问题、习惯问题或者叫做素质问题。下面就跟大家做个小小的探讨吧,希望有共同经验的人多提意见。

我根据我这几年的经验,总结了一下,大致有这么几个方面的素质需要我们技术人员必须具备。

首先,态度问题。这里总结了6条。态度是第一位的,如果态度无法端正,不管你的具体技术有多强,对自己,对团队,对企业都没有好处。比方说,我们有的同事为公司做事情,总是布置一件任务,完成一件,缺乏主动性,这种情况下,你就会缺乏上进的精神,在公司里也不可能有进一步发展的余地。

其次,习惯问题。这里我总结了7个。习惯是经常保持某种态度或者心理而存在的惯性心理。有时候小小的错误就是因为习惯导致的,在技术中,我们最需要的是惯性思维,而最可怕的也是惯性思维。比方说,解决一个问题,首先要有惯性思维,才可能迅速判断问题的症结所在;而如果惯性无法解决问题,你又不能及时地从惯性思维的圈子里跳出来,你就会陷入麻烦了,问题因此也解决不了。

第三,方法问题。习惯解决不了的东西,必须要用正确的方法来处理,方法对了才可能进一步转化为习惯,形成一个良性循环。

最后,技巧问题。不是每一件事情都有捷径,但是我相信作每件事情都会存在一定的技巧,当然,我更相信熟能生巧,只有你对自己的技能非常熟悉,掌握了才可能会学到技巧,不然反而弄巧成拙。

 

 

态度:这六个态度分别是XXX

态度一:有的人认为我在为公司打工,公司的事情只要完成就行了,就像小孩子完成家庭作业一样,这种想法可能会成为自己能力上进步的绊脚石。当然,我相信在座的都是优秀的。在我这几年做事的时候,尤其是给别人做事的时候,非常注意别人的想法,就是从别人的角度来想想他为什么要这样做。不要认为这样做只对公司有好处,这样想对你是有好处的,从短期来看,你的思路因此而开阔,下次遇到类似的问题时候就会迎刃而解;长期来看,我们在座的以后可能都是公司的骨干,甚至可能会有自己的公司,这时,这种经验就对你非常有用了。

态度二:认真对待每件事情。有很多情况下,你没有做好某个领导要交待的任务,并不是你的技术问题,更重要的是你的态度问题,你想着认真去做好,没有做不好的,只不过是花费多少精力的问题。当然,你不想着认真去做,可能是因为你有其他原因,这就是另一回事了。

态度三:消灭“我以为”。这个和习惯的关系最大,而且越是有经验的技术人员越容易犯这个错误,因为他们的思维更容易固化。经常“我以为”可能会导致一些意想不到的错误,那些错误似乎比一般的程序编译错误更加难找。所以,大家都要尽量避免这种错误。我简单的举个例子:

看看下面这个程序,输出都会是什么东西?

或许善于用我以为的人会说,第一个输出1,第二个输出字母”a”ASCII码?是这样吗?可以放到你们自己的IIS上调试以下,发现第二个根本就是错误,无法通过解释。

知道了结果,我们在反过来看看造成这种错误的原因是什么?我觉得主要是因为对函数cint的一知半解,和我以为的想法。类似的例子举不胜举,虽然我说的这个很简单,在座的都不会犯,可能有的错误会影响这个网站,这都是值得注意的。

态度四:相信我能够。这个也就是平常说的自信问题,虽然不能盲目自信,但是对于自己解决问题的能力应当保持时刻清醒地认识。比方说你会用基本的SQL数据库的操作能力和ASP编程的基础,你就应该相信用ASP实现连接SQL数据库是非常简单的,而事实上就是这样。

态度五:保持学习。这点很重要,因为你一定要相信技术发展的速度永远比你想象的要快。那操作系统来讲,从99年我认识Windows95,Windows 98开始,到后来的Windows Me, Windows2000, Windows XP, Windows Server 2003, Vista,共7年时间产生了7个版本,每个版本可能有若干个产品,那么你要做的就是,学习那些你需要的技术。不然你就适应不了。从程序上来讲,从早期的Fortran, C, Pascal, Basic, VB, VC , Java , Delphi, .NET 你似乎都无法理解他们发展的速度。那怎么办?总不能都学吧,这就是我要下面说的,慎重对待新技术。

态度六:慎重对待新技术。和上面的一点似乎有点矛盾,其实没有。作为技术人员,尤其是技术骨干,必须要有远见,正确预见技术的发展趋势,不然你就很被动,比方说现在的Blog,你们说它的发展在哪里? RSS , XML的发展在哪里? 你的网站能在下一代操作系统上正确显示吗?这些都是技术人员应该考虑的问题。

 

 

让我们来看看,我们的习惯问题吧。这是我总结出来的几个习惯,我觉得有了这些习惯或许可以有更多的积累,在技术的艰难道路上有省点力气。

习惯:一共有七个

1)笔杆子永远比你的脑瓜子好使。我以前刚开始学习程序的时候,和很多初学者一样,整天就是对着书本上的例子抄,放到电脑上,然后运行,看看结果,再稍微改改,再看看结果,最后算是记住了。可是后来发现,经常不用,又忘记了。这是因为,一方面,我们刚开始根本没有理解,另一方面,就在于我们并没有注重积累。有时候你觉得那个问题要解决起来很容易,你也碰到过那样的问题,但是你就是想不起来怎样解决?这种经历或许我们都有过。

2)正式发布之前的有效测试控制。在企业里做事,不同于平时自己的学习,必须要保证100%的正确和安全,尤其是放到互联网上的东西,没有经过专业的测试,你公司的信息很可能被100多个黑客看了个遍,你还不知道。所以,这一点非常重要。

一般情况下,测试分为人工测试和软件测试两种。我们通常的测试都是人工测试,做一些测试方案,然后由专人一项一项地测试,把错误记录下来,然后交给技术人员修改,完了再来一次。这样做的缺点比较多,一方面,你的考虑一定不是最周全的,另一方面,测试周期长。软件测试通常用于高度保密、安全的系统,比如银行系统等,测试类型也包括内容测试、风险测试、压力测试等,按照常理,都应当尽量使用软件测试,可是由于各方面的原因,应当考虑自己企业的测试预算进行。但是无论怎样测试必须要做,而且要作为重要的一环。

详细测试的情况,你们还可以学习http://www.51testing.com/

3)计划和非计划事务之间的配合。一般来讲不管是某个公司,还是某一个员工,最好都有年度计划,月度计划和周计划,然而在企业的日常运作过程中,由于质量控制、客户需求、人员变动等方面的原因,变化总是比计划快,然而这不应该影响个人的计划。我觉得良好的计划应该能把每天的8个小时分为53来做,5小时留给固定计划,3小时留给变动,这样,工作效率必然会得到提高,而且容易应付突然的事故。谈到突来的事故,就不得不说下面一条。

4)永远注意分清事情的轻重缓急。我说计划和非计划的53并不是固定不变的。上次我们公司遇到新闻无法显示,尽管我在学校有很多事情要做,但是我知道这件事情如果不能在最短时间内解决会严重影响公司的正常经营,因此我立即停下手头的事情,过来解决。那个时候我就不能说,我已经没有3个小时的变动时间了。也就是说,无论什么情况下必须要分清轻重缓急,先处理急的,再处理重,再处理轻,再处理缓。这个原则必须掌握。

5)在完成任务的情况下追求完美。做技术的人时间长了以后觉得很多东西总是重复劳动,而且会越来越缺乏兴趣。这主要是因为没有认识到自己进步的方向,我认为,做技术应当保持好心态,首先要完成任务,其次要考虑你的技术的质量,比如灵活性、可持续性、可扩展性等等。你做了一个网页,内容很简单:菜单,新闻,登陆。那么你就的考虑是否可以在你完成任务的情况下考虑背后更多的事情,比方说:网页的速度、新闻提供信息的丰富性等等。

6)重视团队的力量。俗话说,一个好汉三个帮,一个篱笆三根桩,良好的团队在做同一件事情的时候一定会出现1+12的效果,反之,如果合作不好,反而会事倍功半。市场上没有一个成功的软件产品是靠一两个人开发出来的,即使有它的生命周期也不会很长。所以一定要重视团队的力量,具体怎么合作,我后面专门有节要讲。

7)重视对每个阶段的总结积累。前面的这些都是一些具体的习惯,重要的是,你必须对每一个阶段所作的工作予以总结,这对你的成长和进步必将带来阶梯形的进步。你没有总结,那只有零散的经验,以后总有一天你需要大量的时间来收拾着一堆东西。这就像我们在扫地,当扫一个很大的广场时,你一定要分区域堆成小堆才行。

8)预见任何一个可能抛出的异常。这里所谓的异常是按照面向对象的思路说的,其实并不是异常。意思就是说尽量把错误消灭在设计阶段,而不是编码和测试阶段,这样不仅会大大减轻测试者工作量、提高工作效率,同时对自己以后的编程能力也有很大的帮助。

看看下面的例子,这是两个数据库,两者之间用字段S_ID关联,我们经常凡的错误是这样的,看程序片断。

9)做好必要的代码注释。这其实是代码可读性中的一条,不过把它单独拿出来,是因为我认为,代码注释不仅是让别人读懂代码,更重要的是对程序以后的升级和修改,在注释上花费一些时间是值得的。

10)代码的可读性。我们注重代码的可读性是对自己工作负责任的表现。也是提高自给能力的基础。

请看下面两段Code

 

 

方法问题我这里主要讲4点。但是我们的方法不局限于这三点,有很多,需要大家在工作中去发现。

1)善于利用互联网完成自己的任务。我们现在做技术比以前容易多了,有大量的免费资料可以从互联网上找到,甚至可能会有一系列的解决方案。你所作的就是用恰当的方法检索你需要的资料。当你对某个问题无法解决,而你的周围技术人员又无法提供帮助时,互联网显然是一个很好的场所。

2)用简单的方法作复杂的事情。我们的技术是做得越简单越好还是越复杂越好?这个问题或许大家都可一想一想,但是不是所有事情都能做简单的,技术的最高境界在于你能用最简单的方法作出最复杂的事情。我举个简单的例子。这个例子是关于多个人多种权限的组合问题,这些问题似乎在国有企业管理系统中存在的比较多,我曾经设计过这样的系统,现在拿来给大家分享。

首先来看,左边的是一些事务处理,或者叫业务树;右边的是一些人,或者组织机构。要想不同的人有不同的权限,假设有10件事情,1个人,那么权限和事情的组合就超过了1万种,那么你应该怎样设计这个系统呢?大家可以思考一下。

3)寻找适合于你的软件。现在市场上能够实现应用软件的开发工具非常多,就从普通的文本编辑软件来讲都不下10种,重要的在适合你的和适合开发的软件中找到一个平衡点。比方说Ultraedit,EditPlus这两个工具,你想做asp开发,你选择哪个呢?

4)永远不要在你的成品上留下垃圾文件。很多公司的服务器就是一个大型的垃圾堆见场,这是平常不注重维护造成的。一方面有的公司把测试的场所和发布的场所不分离,另一方面,有的员工对旧的版本一直保留在发布场所。这都是不恰当的做法。

 

 

技巧:

1)程序/软件复用。程序复用得有点是你能够省去大量的时间在相似的工作上。比如说用户登陆功能,这在许多程序上都能够使用的,适合于开发通用代码。从层次上将,最简单的就是代码复用(比如:函数复用),其次才是程序复用(比如刚才说的用户登陆),最后是软件复用(比如:两个逻辑上相近的系统可以复用)。

2)尽量避免让错误侵入你的服务器。这是为服务器的安全考虑,但是同时也是工作中的一个最基本的技巧。作为技术人员,必须要时刻警惕应用程序的安全和效率。我们很多人在做程序的时候习惯于在服务器端处理,比如判断用户提交的信息里有没有特殊符号,这样做一个是效率低下,另外一方面就是安全性低。效率低下体现在

3)常用技巧。下面给出几个平常用到的asp的一些技巧,似乎也不算技巧。