两个月了,又该是阶段总结的时候了。
序
何谓戒盈祈愿?
戒:不要。
盈:满。
祈愿:希望。
语出《商道》(最原始的出处不清楚)。
传说朝鲜巨富林尚沃有一杯,名为戒盈杯。用此杯盛酒,斟满则杯中酒荡然消失。唯有斟至七分满,酒不但不消失,反酒香扑鼻。
林尚沃言,成我者,此杯也。
刚踏入工作,早知诱惑颇多,生怕自己无法应对,遂以“戒盈祈愿”四字缀于邮件签名处,意在时时提醒自己,妥善应对各种诱惑。
不过,还是没有成功。
戒盈祈愿
第一次发工资,半月皆光。虽说之前欠债累累,不过诱惑始终无法应对。第二个月要交房租,最近还有不少设备接连出问题当掉,恐怕这之后两个月的工资也不会剩下多少。那天与同事感叹,自己父母,每月几百工资都可以把自己养大,自己月薪几千,却无法照顾好自己,唯诱惑不敌而已。
生活是小,工作是大。
感慨自己选择做软件虽历经艰辛,不过还是正确的选择。
一来自己确实喜欢,这么多年坚持下来依然乐此不疲,恐怕不会看花眼。
二来连续在两个公司里面做新人,从头开始,也确实证明我的实力,我可以做软件的。
唯一不妥的是,最近全心投入工作,发现工作也乃一无底洞,其势丝毫不亚于金钱的诱惑。总有太多的功能,太多的产品,太多的技术需要你去投入精力,吸引你去研究。但你知道,你的精力有限,你不可以所有的都做。即便如我目前这般,无牵无挂投入工作,依然时间飞快,总有做不完的任务等待。更何况日后拖家带口,上有老下有小,怎能如此部分轻重?
人说,先做最重要的事情,再做最紧急的事情。然,难矣。
首先,事情重要程度不是太好区分,并不是非黑即白。就像你希望把所有事物都分类,总会发现有些东西既不属于这个,也不属于那个。
二来,紧急的事情,总有人在后面盯着你,你必须完成。也许那些大老板可以泰然处之,因为自己是自己的监工。而我们大多数情况下,当头和客户在你身后监视你,你会选择去做重要的工作吗??
三来,人总是喜欢先做在思考,这是动物的本性。
不过我还是不甘于放弃,挑战本性也是刺激的事情。
只是具体如何去做,还未有定论。不过戒盈祈愿四字谨记在心。如何抵御诱惑恐怕是这辈子需要完成的功课。
企业管理
作为管理者,你的任务是什么?
你是不是每天都回在你的员工中徘徊,发现问题?
如果发现你的员工在打游戏,你会怎么做?
1、 过去制止他,并且把它批评一顿。
2、 找来他的头,训斥她没有好好的管理自己的下属。
3、 公司发布命令,从此之后上班时间不准打游戏,否则。。。。。。。
是吗?你选择哪一个?
如果你在这三者中作出了选择,那么很遗憾,你最好只能得到一个刚刚及格的成绩。因为第二天你会发现,有的员工在看电影,有的员工在听音乐,有的。。。。。。那么,你如何,继续批评?怒斥?抑或是颁布法令??
你很累,因为你一直在关注表象问题。为何不深刻的想象其中的原因?一个员工打游戏,或许是工作需要,或许是他已经完成任务,或许是他工作烦躁放松一下,抑或是他根本就是个不良员工。这么多可能,你作为一个企业的管理者,如何一一去分辨?其实最了解底层细节原因的就是员工自己,那么为何不把决定是否玩游戏的权利下放给他们呢?
其实最根本的原因在于你。
你没有很好的统一企业员工的目标,没有将他们的工作状况,努力程度与他们的业绩挂钩。换句话说,你没有告诉他们,他们到底应不应该玩游戏,为什么不应该玩游戏。其实一个组织就是一个有共同目标的整体,只有共同目标才能团结大家在一起,协调彼此共同努力。之后产生的所有行为,规则,如何判断正确与否,在于与企业目标以及个人目标的权衡。当他们彼此充满矛盾的时候,员工的表现就会纷繁复杂。与其你试图凭一己之力去阻止这些行为,倒不如反过来,统一他们的思想。
试想一个目标统一的组织里:工作需要打游戏的员工不用管。工作提早完成的员工会选择完成其他的任务,因为这样一来他们会活得更好的收益。工作烦躁的员工玩游戏可以使他们以后更好的投入工作,一旦心情好转他们会主动投入工作,因为如果他们不工作,他们没有收入,还会被淘汰。而那些根本不想工作的员工,他根本无法在你的组织生存,因为他们没有任何收益。
所以说,与其给你的下属制定目标,倒不如给他们激励,让他们的工作与自己的收益(自身目标)挂钩。如此一来,你可以高枕无忧矣。
我这里没有提供任何可以具体操作的方针,政策。对不起,我不是管理者,没有条件去发掘,去试验。也不要说这很难,我知道很难。但是,如果这个你都没有做好,你有时间去批评?怒斥?抑或是颁布法令???
技术管理
文档,恐怕是技术管理永远的痛。
对新员工来说,研究前辈的代码肯定义不容辞。只不过之前不管是在面试还是培训中吹得再好,真正扎入代码中,恐怕你还会失望很多。
单独的文档就不用说了,
没有注释,错误注释,过时的注释。。。。。。
不规则的变量命名,不规范的缩紧,莫名其妙的定义,不符合软工的设计模式。。。。。。
混乱的程序结构,莫名其妙的调试语句,疯狂打补丁后的残破场面。。。。。。
总之,你所看到的代码越久,就越惨不忍睹。当然,对于计算机来说,这些都是美妙的代码,因为执行起来会很顺利。对你来说,这些代码就是噩梦。所幸你还聪明,突破重重包围,你终于杀了出来。只是经过你的修改之后这些代码又增加了“某某到此一游”的痕迹。若干时期后的某天,不知道哪个傻瓜还会打开这段代码。在他抽搐不止,满嘴白沫得倒地之前,他不会想到,你因为出色的完成上级的任务,你受到了嘉奖。你的头因为出色的业绩,升了职。他只会看到,他的头发越来越少,他的上司抓耳挠腮。于是他们终于决定重写这段代码,没日没夜的加班。。。。。。
也许这个决定就是你作出的,因为那时你已经由于出色的工作业绩,晋升为他的头的头。。。。。。
公司组织培训,讲解daily build,讲解单元测试。
你是个傻小子,什么都想试试看,于是你摩拳擦掌希望将这些传说中特别有效的圣经加以运用。可是,项目是残酷的,时间有限,条件简陋。如果你所有的事情都自己做,那么累死你你也只能爬出蜗牛的足迹。于是你想高手请教。高手云:
“此事,基本,很难。”
于是,你看你的头,你的头看你的头的头,你的头的头看你的头的头的头。。。。。。
于是,我们的故事继续。
这就是在我们的生活中不断上演的轻喜剧。周而复始,直到我们麻木。最令人高兴的是,几年前的错误我们竟然还能重复的这么严丝合缝。哈?
技术
我一直奇怪我怎么这么幸运,尽管最近我的mp3坏掉了,电脑也总是出毛病,也没有一个可以让我掏心的MM。不过在技术上我还真算是幸运,因为我总是被迫做些东西,然后回过头来我竟然发现,这些历程在我身上产生了如此奇妙的结果。
我现在再用石器时代的工具,打造最奢侈华丽的现代作品。
一种服务器,从底层驱动到用户界面,完全由我们做出来。于是,我在用C++写HTML。这是好听的,其实不然。因为底层用C,所以当我们需要与底层交互的时候,我们被迫要使用一种称为C的技术。尽管我知道这种东西已经老得掉渣,但是我还必须与他打交道。最恐怖的是,尽管这么多东西糅合在一起,你还不能让他们打架,你必须合理的分配与他们打交道的时间,否则哪位吃了醋,你的工作可就。。。。。。
看来我的桃花运都交在这里了。:)
来看看这么一堆名字:
HTML、CSS、javascript、XML、C、C++、CGI、HTTP、TCP/IP,当然,还有必不可少的业务知识以及计算机基础知识。
当我把这些知识的名称作成屏保,用来在我走开时折磨我周围的兄弟时,我得到了大家最热烈的回报。:(
就是这些东西,折磨着你,你要搞清楚,他们都是做啥的?
●服务器端:
▽HTTP、TCP/IP:协议我就都放到一起了。由于不太符合这里的要求,暂时不说了。(其实我也不是太懂。^_^)要想完全理解web开发,我想还是有必要了解这些的。这也是我以后的目标。
▽CGI:就是一个接口定义,它将你的输入定义为web server的环境变量,拟通过这个来获得用户输入,也就是远端的那个该死的希望通过web访问你的程序的家伙。同时,他也将输出定义为远端的浏览器,于是你先从环境变量里获得用户的输入,处理,然后返回你的HTML给用户,用户就看到了。如此循环。。。。。。
▽C、C++:就是服务器端脚本(广义,指能运行得程序)。每个CGI程序其实就是用这些服务器端脚本编写的应用程序,相当于可执行文件。如果你在Linux下面执行CGI程序,就像执行其他的应用程序一样,它会将他的输出打印出来。只不过在你执行时,他的输出不再是远端客户的浏览器,而被重定向到你的屏幕而已。“C、C++”这个名词你可以用其他任何能够在服务器端执行的语言代替,什么java了,C# 了,perl了,随你便。只要他们可以在服务器端执行,获取用户输入,处理,再输出给用户就可。当然,在java和C# 平台,你大可不必如此费力不讨好,因为已经有人帮你做了好多。我目前是没办法啦。:(
▽XML:很多人对这个东西特别糊涂,很多人都搞不明白XML究竟和HTML的区别究竟是啥?其实说起来很简单,XML是给机器看的,HTML是给人看得。哈哈,不是吗?
XML是用来在程序之间传递信息用的,它通过定义一组特殊的形式,可以便于程序存取和读取信息。想想如果让你用文件存储数据,你怎么定义文件格式的?当然,你的应用可能比较窄,比较单一。如果有个需求要求你的文件结构可以适应各种场合,你就会发现你最后搞出来的就是XML。如果不是,那说明你搞得不好,嘿嘿。很多人试图去读XML,他会很失望的。其实他应该高兴,因为这最起码证明,他是人而不是机器。:)
我这里用到XML主要是因为我需要在服务器端存储客户端传递过来的数据,用XML可以很方便的实现增加,查找,删除,修改得功能,而不需要自己重新定义结构。当然,之后如果客户段功能有所发展,比如实现类似ajax的功能,就要求我往客户端发送XML以供处理,这个再说。
●客户端:
▽Javascript:客户端所有的动态功能,也就是说程序功能,我们都是靠这个东西实现的。现代的浏览器就是一个微型的运行环境,我们的客户端脚本就运行在这里。其实,任何脚本都可以实现客户端的程序功能,只要浏览器支持。只不过多年下来,现在大家都支持的只有javascript,所以javascript就成了客户端脚本的代名词。很多你看到的新的客户段技术都是靠javascript实现的,比如ajax,再比如微软的asp.net(客户端部分)。
可以简单的这么说,客户端浏览器你所见到的所有能动的东西,除了flash和gif,其他的都是javascript实现的。再比如其他的一些常见的功能,比如客户端输入验证,复杂的表单提交,定时刷新(某些)等等,都离不开javascript。其实在你搞清楚HTML和CSS的概念之后,稍微有些程序经验的人就会明白javascript的用武之地。想象一下,《javascript bible》这本书竟然有两千多页,可见这种技术也是博大精深。其实,原本的javascript非常简单,只不过浏览器对其进行了巨大的扩展,使之完美。
asp.net的推出是个有意思的事情。asp.net实际上就是微软在替你编写javascript代码发送给客户端,用来实现强大的功能。这种方式确实使得开发变得容易,但是却可能导致一些开发者忽视javascript的存在。也许从长期来看会推动人类历史的发展,但是却对个人发展极为不利。
▽HTML、CSS:这两种技术要合起来说,因为HTML的规范要求分工明确,各司其职。HTML是用来表述页面显示结构的标记语言,比如,表格有几行,有几列,有什么内容等等,这些骨架上和肉的东西都是由HTML描述的。CSS是用来描述骨架和肉的显示样子的,所以叫样式语言。至于层叠的问题,需要深究,自己研究去吧。CSS描述的就是表格有多宽,多高,啥背景色,边框多宽这种问题。打个比方,HTML就像女人的身体和思想,CSS就是他们的衣服。(这个比方不怎么恰当。^_^)
之前的HTML也有CSS的功能,后来分开了。为啥分开,自己去看,哈哈。
技术方面的东西我准备单独写篇文章论述一下,敬请期待。
今天写到这里,休息,休息。:)
Coofucoo
10/6/2005 1:12 AM