lgh269 日志(2) - 剑情浪子 - cpubbs论坛免费虚拟仪器博客 labview虚拟仪器讨论区 - cpubbs论坛 虚拟仪器论坛|labview论坛|labwindows论坛|vi|cvi|数据采集卡|入门教程|初学|软件下载|虚拟仪器免费博客|虚拟仪器电子商务|虚拟仪器商城|虚拟仪器人才中心|图形化单片机编程cpuview|虚拟仪器在线商城 - Powered by X-Space
方寸间,历数世上沧海桑田;时空里,细问人间暑往寒来;是朋友,星移斗转情不改;是知音,天涯海角记心怀。

发布新日志

  • 系统有效的测试管理方法

    2007-09-05 13:16:58

    什么测试?
           在现在充满挑战的商业环境中,组织将焦点集中在如何通过所发布的软件获得最大的商业价值。因此,加快开发周期以及提高软件质量变得越来越重要,而且低质量软件带来的风险也越大。测试是组织中最重要的用于控制这些风险的手段。
            测试提供对软件质量以及相关的风险的检视。根据检视,组织可以做出决定是否将软件投入使用。由于适当的测试,组织可以做出更好的决定以及有效控制风险。
            Sogeti(http://www.us.sogeti.com/ )的测试管理方法可以帮助我们更快地发布高质量的复杂的软件。

    机构化测试
            一个被良好定义的结构化的测试过程对于有效测试是非常重要的。一个结构化的测试方法可以带来如下好处:
    •  对于和软件质量相关的风险做出完整的检视和建议
    •  一个清晰的测试过程更有利于时间、成本和质量的管理
    • 当软件质量不高时,一个前摄的测试过程可以在早期提出警告
    • 在早期发现缺陷的能力
    • 预防缺陷的能力
    • 在整个开发周期的关键路径中,测试阶段更短
    • 测试过程产出的重用(如测试脚本和测试用例)
    • 一致性和标准化——所有参与的人将使用同样的测试语言。

    TMap以下面的4项基石(cornerstone)构成方法体系
    1. 与软件开发生命周期一致的测试活动生命周期(L)
    2. 坚实的组织融合?(O)
    3. 正确的基础设施和工具(I)
    4. 可用的技术(T)
     
    机构化测试过程的4个基石

            生命周期基石描述了在测试过程的某些特殊阶段需要实施的活动,而组织基石主要强调如下两个关键点:
    1. 测试小组中的每个人都必须被分配任务和承担责任;
    2. 测试小组融入到项目组织中。

            基础设施基石说明为了获得最优化的结果,需要适当的基础设施和工具。“测试环境”必须稳定、可控制和有代表性的。同时,有必要通过工具的使用提高测试的有效性。
            最后的一个基石是指支持测试过程的技术,这些技术用于定义基于风险的测试策略,支持有计划的测试过程,研究和审查测试基准,详细说明测试用例以及如何提交报告。技术可以促进实施结构化的、可重复的测试执行活动。

            为了实现一个结构化良好的的测试过程,各个基石应该达到一个平衡。生命周期基石是其他的中心——生命周期的每个阶段都要求有特定的组织、基础设施下和技术的支持。测试不仅仅是电脑屏幕后的测试用例执行。在真正的测试执行之前,在过程早期阶段的计划和准备活动都是必须的。这使得项目关键路径上的测试过程尽可能的短。Tmap方法体系就是基于上述思想建立起来的。

            测试生命周期由下面几个阶段组成:
    • 计划和控制
    • 准备
    • 说明
    • 执行
    • 完成
            (见后面的附表)

            计划和控制阶段涉及到测试计划的创建,定义了执行测试活动的“who, what, when, where and how”。在测试过程中,通过定期和临时的报告,客户可以经常收到关于产品质量和风险的更新。
    准备阶段决定软件说明书质量是否足以实现说明书和测试执行的成功。
            说明阶段涉及到定义测试用例和构建基础设施。一旦测试目标确定,测试执行阶段就开始。在执行阶段,需要分析预计结果和实际结果的区别,发现缺陷并报告缺陷。
            完成阶段包括对测试资料的维护以便于再利用,创建一个最终的报告以及为了更好地控制将来的测试过程对测试过程进行评估。
     

    生命周期模型

            TMap为实现有效的和高效的测试过程提供了一个途径,使得软件组织可以实现关键的商业目标。
    •  有效是因为能发现与产品风险直接相关的重要缺陷。
    • 高效是因为TMap是一个普遍适用的方法,它强调重用并采用基于风险的策略。这样的策略使得我们需要做出明智的决定:测试什么和如何彻底测试它们而不是测试所有内容。

            TMap提供了一个完整的、一致的、灵活的方法,它适合于而且应用于各种行业以及各种规模的组织,例如政府,财务和IT。TMap也用来说明各种应用之间的不同:如何在特定的环境中应用TMap的通用方法,如测试嵌入式系统、web应用程序、采用迭代方法(如DSDM或RUP)开发的应用、维护中的测试等等。TMap提供了根据特定环境创建量身定制的测试方法的灵活性。

            在TMap的基础上,还开发了一些其它的方法。所有这些方法都可以单独使用或综合起来使用。例如:
    •  TPI,一个逐步完善测试过程的模型
    • TAKT,测试自动化的方法
    •  Tsite,如何在一个永久的测试组织中实施测试过程
    • TEmb,测试嵌入系统
     

                     附表:TMap方法模型基本内容

    No

    Category

    Activities

    1

    Planning计划

    Assignment formulation

    2

     

    Global review and study

    3

     

    Establishing the test basis

    4

     

    Determining the test strategy

    5

     

    Setting up the organization

    6

     

    Specifying the test deliverables

    7

     

    Specifying the test infrastructure

    8

     

    Organizing management and control

    9

     

    Setting up the schedule

    10

     

    Consolidating the test plan

    11

    Control 控制

    Maintaining the test plan

    12

     

    Controlling th etest

    13

     

    Reporting

    14

     

    Established the detailed schedule

    15

    Preparation

    Testability review of the test basis

    16

     准备

    Defining test uints

    17

     

    Assigning test specification techniques

    18

     

    Specifying test infrastructure

    19

    Specification

    Preparing test specifications

    20

     说明

    Defining initial test database

    21

     

    Deafting test scripts

    22

     

    Producing test scenario

    23

     

    Specifying the review of test objects & infrastructure

    24

     

    Setting up the infrastructure

    25

    Execution

    Review test objects & infrastructure

    26

     执行

    Setting up initial test database

    27

     

    Execution (re)tests

    28

     

    Comparing and Analyzing the test results

    29

    Completion完成

    Discharging the test team

     

    其它内容可参考TMapRational统一过程

    http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/koomen/

  • web项目经理手册-项目经理的工作内容

    2007-09-05 13:15:10

    转自  杨争  

    一、项目经理的目标
    1、满足项目利害关系者的不同需求。
    清晰明确地了解每一个项目利害关系者的需求和期望,投其所好。
    项目利害关系者包括:项目团队成员和项目团队外成员(比如各部门的部门经理,客服等)。
    2、保证开发项目按时保质的完成。

    二、项目经理的职责
    1、建立有效的流程保证项目的顺利进行。
    2、制定详细周密的项目计划。
    3、跟踪,推动项目按计划进行。
    4、积极解决项目过程中出现的问题和冲突。
    5、调动开发团队的积极性,创造力,推动团队成员在项目过程中不断成长。

    三、项目经理的具体工作

    1、项目前期阶段
      . 技术可行性分析,对项目进行技术评估、成本评估以及风险评估。
     . 与需求方代表进行需求讨论,明确项目的目标、价值;确定项目范围、功能及优先级。
      . 组建项目团队,特别要搞清楚项目的key person(对产品有决定权的人)。
      . 项目启动会议。

        通常项目成员包括以下人员:项目经理、架构师、技术经理、产品经理、开发工程师、DBA、测试工程师、需求分析工程师、UI、文案、SQA、SCM。
       
    阶段输出物:确认后的最终需求文档
           
    2、分析设计阶段
    . 制定项目进度计划,工作任务分解(WBS)。
    . 资源申请-项目涉及到的开发资源、测试资源、设计资源。
    . 数据库设计。
    . 系统设计。
    . 文档(包括UC、Demo、TC等)评审会议

    阶段输出物:
    (1) User Case
    (2) DEMO
    (3) 系统设计文档
    (4) 数据库设计文档
    (5) User Case等文档评审
     
    3、执行阶段(开发、测试)
    . 准备开发环境、测试环境。
    . 跟踪,推动项目按计划进行。
    . 通报项目的进展情况,通常以周报的形式。
    . 对项目的阶段成果进行评估,以确保该阶段完成的质量,包括代码审核、SQL审核等。
    . 对需求变更进行控制管理。
    . 对项目风险进行管理。
    . 测试阶段客户验收、收集反馈意见。

    4、发布阶段
    . 制定项目发布计划。
    . 用户培训。
    . 发布上线。

    5、上线后监控
    . 数据监控(日志、服务器状态)。
    . BUG FIX及改进。

    5、结束阶段
    . 项目总结会。
    . 产品交付。

  • 一个浙江人的22条经典经商法则

    2007-06-27 19:58:21

    1.坚持看CCTV-1新闻联播。

          要想把握经济命脉,必须关注政局,新闻联播图文并茂,有声有色,着实为中国商人的最佳晴雨表。

          2.不要轻易相信合约或合同

          哪怕合约让你的律师看过了,公证处公证了都不要轻易相信,甚至当你的客户把钱已经汇入你指定的账户以后你都必须确认,这笔钱你能不能拿出来,能不能动,而合约以外的涉及到利益冲突的任何口头承诺与解释你都必须当他是放屁,无论香还是臭,在对方兑现承诺以前都不要沉湎其中,更无论对方是谁,哪怕那是你交了十年的朋友甚至是和你上了床的女人都必须如此。

          3.你自己必须守信,一诺千斤,但对不守信的人例外!!

          你确认你一定能够做到的事情你才可以承诺,但不要夸大其辞;你如果想一直做个商人,那么你必须树立自己的信誉!虽然你可以不在乎外界对你的争议甚至你也可以制造争议但你不能失去信誉,否则你就不是一个商人而是一个骗子;信誉具体包括你如果和别人约了2:00见面,那么你绝对不可以1:50以前或者2:01以后出现,如遇交通堵塞或意外事件,那你必须及时通知对方,除非你出了车祸遇到空难昏迷不醒或者已经死亡,否则你都没有理由爽约、早到太早或迟到太迟,而你的涵养则体现在对待对方不守时不守承诺的态度与包容等方面;而一旦当你确认对方是在为了利益而一再欺骗你,那么你对对方做出的一切行为都不过分,甚至你可以将计就计,反过来给他画一个饼!

          4.你能赢得起但你可能输不起的生意最好不做!

          在做任何生意以前,你都必须考虑清楚,如果你输了,那么你是否输得起,而不是去考虑你如果赢了会怎样怎样,输不起的事情你最好别做!而考虑输的范围时你也不要只考虑钱财方面,作为半个商人,有些东西你永远都输不起,包括你爱的女人,你的家人,你的江湖地位甚至你的信誉;所以你必须在做任何生意以前全面考虑清楚你究竟输得起输不起,如果输得起,那么OK,你去义无返顾的做吧!

          5.不要先期投入太多,给自己留够底牌

          不要把自己手里所有的牌全部亮出来,因为牌局随时会中途停止,而对方也随时会出新的牌,不到最后关键时刻,最好不要亮出你手里最有分量的牌,最后的赢家才是真正的赢家!

          6.天下无事不可为,但商人有所为也有所不为

          《菜根潭》上有句话说的好“毋以善小而不为,毋以恶小而为之”,说的是做人的道理,而生意也是如此:“不要因为利润少就不去做,也不要因为风险小就去做”;而同样在中国,违背法律的事情可以做,但违背道义的事情则坚决不能做。

          7.慎重选择合作伙伴

          无论是团队,还是个人,很多时候我们都渴望有能够和我们一起联手打天下的黄金搭档,但亲密战友是一定要慎重慎重再慎重的选择的,慎重是对彼此而言并非只针对单方,而亲密战友一定要符合下面这些前提条件才可以成为你的亲密战友;其一,他和你一定需要在一个战壕里一起战斗过至少一年;其二,在你没有负他的前提他对你所说的每一句话他自己都能负责任;其三,他必须是个实在而且能塌实干事的人;其四,他考虑得更多的是你们之间共同的利益(无论是短期的还是长期的),而这个共同利益高于个人利益;其五,关键时刻他没有躲开更没有出卖你或者大家在他能获得比合作利益还大的更大利益的前提下,五点缺一不可,否则彼此之间的合作不会长久。

          8.不要在你的团队里有你家庭成员的影子

          无论是你老婆还是你父母,都不可以在以你为核心之一的商业团队里有太多插手,因为以你为核心之一的团队接受的是你,而不是你的家庭成员,在你的团队全体成员主动接受并邀请你的家庭成员成为你们团队一员以前,无论你的家庭成员是谁,有多大的本事,或者可以给你们的团队带来多大的前进帮助,都不能成为你让你的家庭成员成为团队一员的理由;而当在你团队(三人或三人以上)里的异性成员一旦与你上了床,那么你必须考虑让对方立刻离开这个团队,要么她(他)另谋高就,要么她(他)成为你的专职情人或者太太(老公),总之,她(他)已经不能继续留在这个团队,所以在团队里不要随便考虑和异性上床或者动情。

          9.不要与和你有利益冲突的女人上床

          无论谁会占谁的便宜,或者大家之间可以同时并行两种关系,都不应该与之上床,更无论这个女人有多性感,多煽情;这样的女人包括:与你有生意往来的女人,在你手下工作的女人或者是你手下与同事的家眷,甚至是管理着你的政府机构、职能部门里的女公务员,原因有二:其一,这样的女人可以让你死都不知道是怎么死的,其二你虽然是半个商人,但另一半也不是出卖肉〈!---- 体的男ji。

          10.不要给你的女人讲你的商业细节

          无论这个女人是你包了的changji、二奶,还是你众多情人之中的一个更或者是你已经结婚多年的妻子,你都应该不和她们谈你的商业细节:第一,你谈了可能她们也不懂;第二,你谈的商业细节里面会有能让你入狱的内容;第三,那涉及到商业机密;无论你有多少信任你的女人,都不应该谈太多和你有关的商业内容;还有一个无须单列的商规就是千万不要在夜总会歌厅等色情场所给小姐和应招女郎发名片,一定要记住!

          11.你可以行贿但不要做污点证人到法庭去举证
          不管收受你贿赂的官员多么无耻,多么不够意思,你只可以行贿而绝不可以去做污点证人到法庭举证;除非你以后连半个商人都不想做了;而如果是你主动行贿,对方收受了而且也为你办了事情,那你更不应该由此来当做能抓住对方小辫子的罪证要挟对方继续为你顶风开绿灯,也无论对方是政府官员还是执法人员还是银行官员甚至办事人员的;最基本的,请客送礼吃饭洗桑拿甚至大到澳门游,这些感情投入都千万不要单独记小黑账,而财务账面上的处理也一定要不留痕迹。

          12.不要偷税漏税但要学会合理避税
          大头小尾的发票最好别开,营业税以及附加的教育基金等你该交多少交多少,增值税你更别动脑子(记得找上家要税票正常抵扣就可以了),除此以外关税你掂量掂量自己的分量,具体情况具体对待,企业所得税是可以全部避掉一分钱都不交的,但最好给地税点面子,少交点别一分钱都不交,交多交少你自己看着办,而个人所得税呢,视当地政府给纳税人办了多少实事是否把咱纳税人真当纳税人人看待的具体情况而造工资表吧。

              13.你可以利用新闻记者但不要相信记者
          你可以给记者一些钱或礼品,但你不能告诉记者很多你的底细更不能相信记者会给你保守商业秘密,甚至你不能和记者靠的太近且必须学会面对记者而设防,无论你面对是是否是漂亮风骚的女记者还是能发内参的大腕记者都如此。

          14.不要摆大,哪怕你真的是老大
          切记天外有天,不要在任何场合摆大,哪怕你真的很大,而当对方是个摆大而且肤浅的人,你如果想灭掉他,那么最好随便找块砖头砸他一个跟头,然后你走你的路!但切记,这个砖头一定不是你自己的砖头,而且这个砖头最好和你自己没什么关系。

          15.保持中立,不要卷入政治派系纷争
          在任何派系纷争面前都应该保持中立,尤其是在政治派系纷争面前,事实证明,把商业利益的希望寄托在有派系纷争可能的任何一方面都是危险而且不明智的,在派系纷争之间,你必须冷静的保持中立。

          16.不要太在乎金钱与利益得失
          切记有所得就有所失,而有所失就有所得的古训,钱没有了还可以再赚,天下自然有得是你赚不完的钱和商业机会,所以何妨在金钱与利益面前大度一些呢?更何况,更大的商业机会正在等着你去把握呢?基本上你应该没有时间计较一时的得失才对,哪怕你有的是时间去品茗赏色。

          17.不要过多用金钱粉饰自己
          虽然面子对你而言很重要,但相对于你自己的人格魅力而言,有没有名车,带游泳池的别墅,高尔夫以及你的服饰,甚至发型这些都会显得微不足道;当然你可以按自己的喜欢穿一双“内联升”的布鞋,甚至可以在有时间的时候飞到异国他乡去看一场你喜欢的球队的主场或客场比赛,更甚至你可以在很多人面前抽你自己喜欢抽的劣质香烟!

          18.资本决定发言权,但你不应该轻易让别人知道你有多大的发言权
          关心一下你的属于你的资本和你能控制的资本是正确的,甚至你该关心的包括你的坏帐和现金收益以及现金流量,但这些不应该让太多人知道;而当你以外的获得一笔巨大财富的时候,你更应该学会别把这个消息告诉别人,包括已经和你患难很久的妻子,否则她可能会要求离婚并分割你的这笔不小的资产!记住,男人的金钱应该和女人的年龄一样永远属于秘密,哪怕有一天连女人的年龄都已经不是秘密的时候,你的金钱也应该还是秘密;除非在你临死时即将捐献你的全部家产时,你都绝对不可告诉别人!

          19.总结别人的成败得失,但国外的案例你可以不用理会

          不要羡慕别人的成功,更不要鄙夷别人的失败,你首要应该做的是学会分析和总结现象背后的本质,找出别人失败或者成功的全部原因,取其长,补其短,做你自己该做的事情;而国外类似微软等那些故事,离你实在太遥远,你大可以不去管他,所以一定意义上,现有的MBA对在中国做生意的你而言并没有多大实际意义!

          20.不要用黑白道的规矩去解决商业上的冲突

          商业永远是商业,而商业是有商业自身的游戏规则在的,所以哪怕你确实是黑道人物,也不能随便利用黑道规矩去解决商业冲突,同样,即将你有很好的白道背景与资源,你也不能轻易利用这些资源来解决你在商业中的冲突!既然选择了商人,那你必须遵守商业中的一切游戏规则,愿赌就得服输!

          21.在能把握全局的前提下,不要追求事必躬亲

          不要把自己搞的没有时间与朋友交流,更不要让自己没有时间去泡女人和INTERNET,最要紧的是不要让自己没有时间放松与思考,所以,应该学会让别人去帮你打点生意,处理业务,虽然,业务的核心部分你自己必须牢牢把握;同样,把事情交给别人去做的风险你要考虑清楚并能够预防,以免你把事情交给别人去做以后,你自己又成了一名忙碌的救火队员,记住消防和救火是有区别的,消防的口号是“消防结合,预防为主”。

          22.给自己留条后路,预防众叛亲离你

          可以在沉寂江湖多年以后重整旗鼓,但你不可以倒下以后就不再起来,因为你是一个男人!所以你必须给自己留一条属于你自己的后路,后路包括藏起一个存钱罐,虽然里面只有几块钱但你将来就是要靠这几块钱东山再起;后路也包括一栋法律意义上并不在你名下的房子(你可以有个地方一个人疗伤,恢复元气),更包括一个并不经常来往的但很仗义而且你也给过他很多帮助的朋友(他可以在关键时候收留你,陪你喝酒,而这样的朋友一生中你能遇到一个也已经很幸运了);如果实在没有后路,那么你就必须有去露宿街头沿街乞讨的心理准备,但那时候你只可以去向陌生人伸手,而绝对不要向你过去帮助过的还欠着你很多债务或者人情但装做不认识你的人低头。
  • 一位老锁匠的忠告,好好看看吧,受益菲浅!

    2007-06-26 13:56:45

    一位老锁匠的忠告,好好看看吧,受益菲浅!



       诸位,咱当锁匠也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的 !回顾锁匠生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒 ,希望他们比咱们强!

      [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己 的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手! 

      [2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因 为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是 锁匠!     

      [3]不要去做技术高手,只去做综合素质高手!在业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥开锁,凭啥拿那么多钱!”这是普遍的典型的锁匠的迂腐之言。
      老段人家能,必然有他的本事,而且是你没有的本事。你想想,老黄搞经营那 么多年,难道见识不如你这个新兵?人家或许善于管理,因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落磨胚子!技术以外的技能 才是更重要的本事!!

      [4]多交社会三教九流的朋友!不要只和锁匠交往,认为有共同语言,其实更重要的是和其他类人物交往,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!  

      [5]知识涉猎不一定专,但一定要广!多看看其他方面的书,为以后做一些积累,以后的用处会更大!会少交许多学费!!   
      
      [6]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹 豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些锁匠普遍存在的性格弱点必须改变!很难?只在床上想一想当然不可能,去实践,而不要只想!不克服这些缺点,一切不可能,尽管你可能技术不错!      

      [7]工作的同时要为以后做准备!建立自己的工作环境!
        
      [8]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树立自己的品牌形象,很必要!要创造条件让别人了解自己,提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气。

      [9]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验 ,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功!
  • 从哪里跌倒,从哪里站起

    2007-06-20 10:14:33

    2003418,一个春光明媚的日子,而我却呆呆地站在从深圳到珠海的客轮甲板上,海风好冷好冷,我的眼中似乎有若干滴水在转动,分不清是海水还是泪水,是的,我的心里充满了痛苦与迷惘,我所谓的软件创业历程就这样结束了,深圳是一块热土地,同时也是一块伤心地。投资方的钱是没有了,我的付出与努力也付诸东流,我的激情与冲劲也在渐渐地减少,生活与事业仿佛进入到一种无法预测无法控制的境界,我不知道自已接下来应该做些什么,或许找份好工作安分守己,或许趁着年轻换个行业,或许继续革命……

     

    软件创业真的很难,特别在我们国家这种环境里,除非你有一项顶尖技术,别人都做不了,只有你能做,而且具有很大的市场需求量,呵呵,我这是在白日做梦。以技术为导向的公司,是很容易OVER的,即使能活下来,成本与风险也是很高的,我观察周围很多朋友的公司,活得较滋润的公司,通常是以市场为导向,即先有市场或对某个行业的市场有把握,技术只是为市场服务,满足市场的需求,技术部门工作的忙碌与否是依据于公司的市场业绩,这种公司的创业者通常是搞市场出来的,并且在某一行业具有特殊的背景与关系。相比之下,我还太嫩了,尽管拥有可以混饭的技术能力,但这不足于让一家企业发展与壮大,我们的失败有资金上的原因,也有策略与战略上的错误,对于一家技术人员创业的新公司,将所有的人力、物力、财力投入到一个那时显得先进的软件产品上,是很大风险的,做一个产品并不难,难的是将它推广与销售出来,市场与销售的成本比研发产品的成本要高出很多。

     

    幸运的,在沉寂两年后,终于有机会继续革命了,应该可以说是从哪里跌倒从哪里站起,但这次的站起不是盲目的,也不是激动的,更多的是冷静,思考的是如何应用有限的资金让企业成长起来,生存的时间越久,机会就越多,我们是有一两个小产品在销售,但那不是公司的主要收入来源,也不会投入大量的资金与精力也作产品的策划与推广工作,产品在FasterSoft暂时只是一个宣传的工具,我们将较大的精力放在能立即带来收入以及稳定可靠的软件外包与软件项目业务上,应该说我变得保守了,也变得稳重的,我不再迷恋于纯粹的技术,我喜欢那种能产生经济效益的技术,FasterSoft成立将近11个月,除了刚成立的两三个月,其他时间都能有收入以保证公司的正常运营,现在开始有些起色了,我们成为了香港、日本一些大公司的软件外包商,老实说,软件外包在我的眼里只是一种生存与学习的需要,我的最终目标不是为了外包,当企业有了一定的技术、资金、管理等方面的积累后,还是要走产品路线,虽然那曾经是我心中的痛,但不是说了从哪里跌倒就从哪里站起吗?我相信,在新的IDEA出现时,FasterSoft会以产品来取得更大的发展。

  • 提高IT投资回报的六种方法

    2007-06-20 10:12:44

    在预算紧缩的条件下,您面临的挑战是如何实现更大的网络投资回报,为了扩大IT投资回报,我们在此提出六种方法供您参考……

      当您为汽车加满油后,总希望它能行驶最大的里程数。同样,当您进行IT投资后,也希望能从中获得最大的回报。在预算紧缩的条件下,您面临的挑战是如何实现更大的网络投资回报。

      无论您的网络是像一辆高性能赛车,还是一辆体积小巧的微型汽车,您都有办法实现更大的投资回报,并向公司主管证明IT部门作出的业务决策是明智的,它们和公司的经营目标完全一致。

      在激烈的竞争中,千万不能让对手领先。为了扩大IT投资回报,我们在此提出六种方法供您参考。其中有些方法您可能以前从未考虑过。不过,随着网络技术的不断发展,能够适应未来需求的网络均采用了创新思想。因此,您可以利用现行IT投资,在降低成本的同时,行驶更远的里程。

      1. 制定和实施"按需购买、渐进扩展"的建网计划

      在需要的时候购买需要的产品,这是21世纪发展网络技术的新座右铭。它现在已经改变了公司、学校、政府和医院投资IT基础设施的方式。为了从IT投资中获得更大的回报,必须接受这样一个业务现实:您再也不能为闲置的IT基础设施进行投资,相反,您必须最大限度地利用IT系统来实现自己的业务目标。采用"按需购买、渐进扩展"的建网新方式,您可以只购买今天所需要的产品,而将来需要时再扩展系统和增加容量。因此,应该把资金投向那种易于扩展的系统。实施"按需购买、渐进扩展"的建网计划,将有利于实现可观的投资回报。与投资昂贵而又缺乏灵活性的系统相比,前者实现投资回报的速度将更快。

      2. 超前投资建设千兆以太网,让网络够适应未来需求

      即使您认为今天不需要千兆以太网,也应该抓住当前降价的有利时机,购买10/100/1000网络技术,而不是10/100网络技术。这样,您只需多花很少的钱,就能够获得超过10倍的带宽。此举既为满足未来的高带宽需求奠定了更好基础,又避免在今后一至两年内进行系统升级。您将会由于今天投资了10/100/1000网络技术而节省出大量的资金。这种超前思维方式能够减少将来的预算,节省下来的资金则可以用于IT基础设施的其他方面。

      3. 整合话音和数据,获得更好的结果

      您可能已经听说过整合技术,如果您仍不考虑实施整合,也应该了解业界已经研发出的这种新型技术能使整合式网络更方便,性能也更可靠。交换机的四层功能具有所需的流量优先级划分特性,允许通过数据基础设施来处理话音流量。同时,随着VoIP产品的不断演进,质量和可靠性也得到提高。在单一网络基础设施上整合话音与数据,堪称是一项战略性举措。它将使您的IT投资继续发挥功效。试想如果采用话音/数据二合一网络,您将能避免大量的双倍成本,例如升级与维护成本等。

      4. 在合理的地方安装无线局域网

      无线技术有利于增加IT投资回报,因为您不需要重新布线,由此会节省成本。当您能够轻松地在会议室安装低成本无线系统,并加快用户的网络速度时,为什么还要为重新布线多花钱呢。无线系统的灵活性证明,它的成本是合理的。例如,它允许笔记本电脑用户在大楼内随意走动。您现在可以购买支持多种协议的无线局域网解决方案,包括802.11a、802.11b和802.11g。由于802.11g能够和802.11b实现向后兼容,可以确保您实现一种可扩展的无线路径,从而保护IT投资决策。

      5. 整合以太网电源,提高投资效率

      通过实现基于标准的以太网电源(PoE),您能够进一步提高IT投资回报。这是因为以太网电源不需要另外安装成本昂贵的布线系统,同时还能增强设备的灵活性。广泛的设备,例如IP电话、智能插座交换机和无线局域网访问点等,可以被安装在网络的任何地点,而不需要新的布线系统,也不需要在墙上增设新的电源插座。更有甚者,以太网电源将把电源技术的管理任务交给网络管理员负责。他们可以监控电源的峰值使用、平均使用和最低使用情况,以便提高IT系统的电源使用效率。

      6. 采用具有更多自动特性的网络管理软件

      不该低估含有自动特性的网管软件包所发挥的影响力。您或许瞧不起先进网管软件所提供的各种"小部件",但它们的确可以节省时间,轻而易举地自动识别网络上的所有产品,还能够以前瞻方式发送网络问题报警。因此,这种网管软件包能够增加IT投资回报。当选择一种网络产品时,应该认真评估那种可以管理各种产品的网络管理软件。最好选择具有自动特性的标准网络管理产品,而不要使用专用网络管理软件,因为它们一定会减慢您的IT决策进度。
  • 程序员能成为富人吗?

    2007-06-20 10:00:00

    近日忙里偷闲看了几本<<富爸爸,穷爸爸>>财商系列的书,真是越看越汗颜,因为不仅发现自已的许多思想许多行为与穷爸爸的一模一样,而且发现自已要学习的东东还太多太多,这也使自已对作为程序员出身的我及广大同行们的前途产生了一系列的忧虑及困惑。

     

    程序员能成为富人吗?

     

    面对这个问题,你也许第一个想到的就是比尔盖茨,但世上又有几个老比呢?况且老比的成功并不在于他的技术,更多的应在于他的商业头脑,财商及管理能力。书中有若干观点,让蒙某人受益非浅,与大家SHARE一下吧,:)

     1之所以世界上绝大多数的人为了财富奋斗终生而不可得,其主要原因在于虽然他们都曾在各种学校中学习多年,去从未真正学习到关于金钱的知识。其结果就是他们只知道为了钱而拼命工作……去从不去思索如何让钱为他们工作……”

     

    My god, 说的不就是我们中的大多数吗,难道我们从小学到大学,曾经无数次地用心来听老爸老妈老师的话:在学校要努力学习,获得好成绩,找个稳定钱多的工作,他们不停地鼓励我们成为一名科学家,教授,律师,会计师,公务员,或者是别的××家,这难道不对吗? 可怜天下父母心, ××家在这狗屁作者的眼里成了为钱而工作的穷人,而从哈佛退学的老比却成了富人,究竟谁对谁错?

     

    2)穷人常说:我对钱不感兴趣钱对我来说不重要我不为钱工作挣钱的时候要小心,别去冒险努力学习能去好公司工作”…… 富人常说:金钱就是力量钱要为我工作要学会管理风险努力学习能发现并将有能力收购好公司”…… 穷人与破产者之间的区别是:破产是暂时的,而贫穷是永久的。

     

    3)你必须明白资产和负债的区别,并且尽可能地购买资产。资产就是能把钱放进你口袋里的东西。 负债是把钱从你口袋里取走的东西。 真正的资产可分为以下几类: 1. 不需要我到场就可以正常运作的业务。我拥有它们,但由别人经营及管理。如果我必须在那儿工作,那它就不是我的事业而是我的职业了; 2. 股票; 3. 债券; 4.共同基金; 5. 票据; 6. 产生收入的房地产; 7. 专利权如音乐,手稿,专利; 8. 任何其他有价值,可产生收入或可能增值并且有很好的流通市场的东西。

     

    朋友,你回家翻箱倒柜一下,看看你有什么资产,有多少资产,反正我已经晕倒了,祝你好运!

     

    4)财商是由四项主要技能组成的: a. 财务知识。即阅读理解数字的能力。如果你想建立一个自已怕帝国,财务知识是非常得重要的技能。这是左脑要处理的,或者说是细节。财务知识能帮助你读懂财务报表,借助这种能力你还能够辨别业务的优势和弱势。 b. 投资战略。即钱生钱的科学。投资涉及到策略及方法,这是右脑要做的事,或者说是创造。 c. 市场,供给与需求。贝尔提供市场所需要的东西,比尔盖茨也是如此。 d. 法律规章。要关心有关会计,公司方面的法律以及全国,各省的法律及规定。我们必须按规则来进行游戏

     

    阿蒙觉得以上四点非常地有道理,读了这么多年社会主义的书,思想觉悟没什么提高,在即将三张的年龄我痛苦地退出了团组织,连我自已都不明白自已现在是咱玩戏,也许是无党派吧,尽管我在大学的时候也觉悟到要学一些有用的东东,但无穷无尽的作业及课程设计将我淹没了,现在想来,那些照本宣科的东东有用吗,为什么清华的优秀毕业生到了美国的大学学习就显得异常地吃力与难堪?(一本书里说的,:)))

     

    5)掌握财务知识的人很多时候仍然不能拥有充裕的资产项目,其主要原因有五个: a. 对可能损失金钱的畏惧心理。 b. 愤世嫉俗的心理。典型:小鸡的故事。 c. 懒惰。 d. 不良的习惯。 e. 傲慢。傲慢是无知的另一面。

     

    6)我建议你采取以下十个步骤来开发上帝赐予你的才能,这种才能只有你才能控制: a. 我需要一个超现实的理由:精神的力量。 b. 每天作出自已的选择。 c. 慎重地选择朋友:关系的力量。 d. 掌握一个模式,然后再学习一种新的模式。 e. 首先支付自已:自律的力量。 f. 给你的经纪人(或优秀员工)以优厚服酬:好建议的力量。 g. 做一个印第安给予者:无私的力量。 h. 资产用来购买奢侈品:集中的力量。 i. 对英雄的崇拜:神话的力量。 j. 先予后取:给予的力量。

     

    前些日子我看了很多有关MICROSOFT有关老屁(错了,是老比,比尔盖茨)的书藉,也看了一些与对microsoft有很大意见的书,如《起来---挑战微软霸权》等,发现极端成功的人是需要天赋的,一般在较年经的时候就看得出来,当然也有大器晚成,我们国家这么多的人啊,相信有很多有天赋的人,但环境或许会埋没天赋,我现在越来越觉得在大学天天背着书包到读书馆埋头苦学是一件很不好说的事,首先这种精神是值得赞美的,但学什么,如何学,目标是什么……等等等问题也要好好思考,如果仅仅是为了期末考试,至于这样吗?

     

    以上是个人观点,不足挂齿,有用的就想一下,没用的你权当我是个疯子。

     

    <<引用阿蒙>>

  • 你会是中国第一位亿万富翁的程序员吗?

    2007-06-20 09:57:56

    近日利用周末的时间看了一些有关资本、财富、投资方面的书藉,感受颇丰,心想如果我早些年有这方面的意识,狠狠地充一下电,或许就不会走那么多的弯路,今日也不会在这与大家为CODING的事纠缠来纠缠去的,一副小打小闹的嘴脸,人要做大事,才能写大文章,或许事实上大家都与我一样,在校园的时候机械地接受老师们的照本宣科,在工作的时候一天到晚为生活而焦头烂额,极少能心平气和地思考一下反省一下,自已缺乏什么?拥有什么?追求什么?而这一点往往对我们的未来是很重要的,我们必须了解自已,并不断地提升自已,有明确的目标,不能稀里糊涂地过日子......
     
    人们常说:性格决定命运,这话不无道理,我想表达的是,我们不要总将注意力聚在自己的不足上,应多寻找自已的优势并尽最大努力地发挥。
     
    中国已有不少程序员成功的例子,比如求伯君、王志东、梁肇新、周亦等等,我研究过他们奋斗至成功的过程,并对他们表示敬意,尽管他们的公司与产品还存在很多的问题,但在这我并不想讨论太多这些我们无法改变的问题,我只想将前些日子自已抽空看书而得到的一些观点SHOW一下,也许对你有用,也许没用,有用的话就顶一下,没用的话就扁一下,呵呵
     
    (1)推销是一个创业者应该掌握的最重要的一门技巧,你应该学会并不断提高自己的推销能力和技巧。要知道融资就是将一种与众不同的商品推销给与众不同的顾客。一个成功的推销员不会畏惧与任何人打交道,不会畏惧批评和拒绝,不会没有开口要钱的勇气。
     
    (2)只要有适当的团队,适当的领导者和大胆创新的产品,没有什么是不可能的。
     
    (3)创造新产品不一定需要很高的技术。星巴克仅靠一杯咖啡,就上许多人变得富有起来。麦当劳凭借汉堡包和炸鸡,已经成为了最大的不动产持有者。
     
    (4) 投资是一种计划,而不是某种产品或是某种程序。对大多数人而言,最终目标是要实现财务自由,要从日复一日的繁重工作中解脱出来,不再为钱而工作。因此不管你为自已工作,还是为其他人工作,如果你想富有的话,就好好关注你自已的事业。
     
    (5)投资的基本原则:
    a.
    要弄清工作所得的钱是属于哪种类型的收入:工资收入、有价证券收入、被动收入
    b.
    要尽可能有效地把你的工资收入变为证券收入或被动收入
    c.
    通过购买证券将工资收入留住,并将工资收入转为被动收入或证券收入
    d.
    投资者本身才是真正的资产或负债。
    e.
    真正的投资者总是能未雨绸缪,非投资者却总想猜测将来会发生什么、什么时间发生
    f.
    你的投资基础知识学得越好,赚的钱就越多,风险也就越小
    g.
    对风险和回报的评估能力。
     
    (6)巨大的挑战和不竭的激情是你建立企业的动力。要成功,你就要全身心地投入。伟大的思想常常遭遇平庸思想的强烈冲击。

    <<引用阿蒙>>

  • 程序员的出路在哪里?

    2007-06-20 09:54:24

    <<引用阿蒙>>

    由于国奥队的惨败,近日很多的知名人士都在热烈地讨论中国足球的出路,其实结论与上一次前一次前前一次都大同小异,这些人是吃饱了没事干,日复一日年复一年地折腾,也没什么效果,可他们还会继续折腾下去,因为我们总不能不看电视不读报纸吧,中国男足一而再再而三地OVER,我也没发现刘建宏黄建翔们就枯萎憔悴下去,最多刚开始的时候有几许伤感,过不了几日又满脸肥肉地给我们上课,在我看来,他们是对的,没有必要为没有希望的东东而委屈自已,中国足球如果还是这么一个大染缸,如果还是那几个鸟领导,如果还是那群废铜烂铁,就永远永远永远没戏,建议执迷不悟的球迷早日醒悟,回家洗了睡了.

    扯皮了那么多,该回到主题上来了,我们还不如将思考中国足球出路的时间拿来思考自身的出路,既然我们无法改变周围的什么,那就从自身的改变开始吧,我们很难预测未来,比如我现在都不知两年后自已在哪里混饭吃,你知道你自已吗?这个世界变化太快了,明天我们所在的部门乃至企业往何处去,我们无法掌控,作为程序员,跳槽是很正常的,作为IT公司,倒闭也是很正常,这就让我们总有一种飘荡的感觉,何时能稳定,何时能停止飘,其实我们也不知道,我们能把握的只是如何提高自己的实力,以强硬的金钢之身迎接风雨的挑战,就是飘也要飘得优雅飘得越来越高.

    我在平静的时候喜欢思考自已未来可能出现的情况,小的时候想法很浪漫,给未来定的目标也特别地高,比如老师叫写题为<<我的理想>>的作文,班里百分之九十多的同学都将理想定为某某家,比如科学家,政治家,文学家等等,我也不例外,那时如果哪个小孩写了不是某某家而是诸如工人司机之类,作文必定不及格,而且还会被老师作思想教育, 现在想起来真是可笑,我还特意去CHECK了一下我的小学同学,发现没有哪个如愿以偿地成了某某家,成家的同学倒是很多,在农村里生了一窝小孩一天到晚与计生人员在玩捉迷藏,快成"革命家"了.......

    所以现在我们必须抛弃一切的幻想,理智地来分析我们的出路究竟在何方?

    1. 软件创业: 想说爱你不容易

    之所以将软件创业排在第一条,是因为阿蒙认为这是程序员中走得最成功的,也是最能体现价值的,将你的创意你的技术你的血汗你的希望全部融入到你的软件产品,并努力将产品推销出去,得到社会的认可与回报,当然你的产品也要不断地推陈出新,形成良性循环, 这样想着都美妙无比, 但又有几个程序员能成功?我们并不是害怕失败,事实上每一天也成百上千的程序员在策划在创业,有人在倒下就有人在站起,我稍作分析了一下,总结了一些程序员在创业时需要改正的地方,我不是某某家,所以你也千万别太相信, 你认为正确的就采纳,不正确的就当阿蒙在犯傻,通常我们会有如下的特性:

    (1)自律能力不强:这与我们长期毫无规律的工作时间有关,我们很大情况下是没有时间概念,这一点在创业时必须改正,呵呵.

    (2)缺乏管理技能: 大多程序员都比较敏感,容易感情用事,在管理上缺乏技巧,整合资源利用资源的能力要提高.

    (3)交际与口才: 呵呵,这个不用俺说了,俺第一次约女生出来压马路,还在口袋中放了一张纸条,上面记录着此次约会要谈的话题.这一条在创业中是很重要的.

     (4)乐观,积极的人生观: 我发现很多程序员都很郁闷,不够主动积极,需要果敢一些,面对失败要能保持乐观.

    (5)推销能力: 其实创业本身就是将自已以及自已的产品推销出去,推销能力是创业最应具备的能力. 还有很多,这一点不能写得太多,呵呵

    2.技术管理者

    如果创不了业,我们不妨努力让自已上一个台阶,成为技术管理者,在公司内的叫法就是技术总监,也就CTO,我认为首先你需要让你的技术成为某一领域的NO 1,然后管理水平方面再提高一下,多看这方面的书,多思考问题,最重要的是要将上下级的关系搞好,我相信再加上你的技术能力,你很快就能CTO了,呵呵,美吧?

    3.出国:

    看看外国的月亮是否真的那么圆? 如果你还年轻,如果你还有激情,如果你厌倦了你烦躁了, 那出国是你的一种选择,也是改变境状的一种手段,我从电视里书本中了解到,很多的发达国家是很好的,大小环境都不错,社会制度,公司规范,人民的素质也很高.

    4.成为技术资深者

    也就是成为某一方面的技术专家,人们都在说:性格决定命运.如果我们确实不适合创业,也成不了什么O,也出不了国,那我们总要有一项资本,才能在社会上飘荡,加上人的精力是有限的,因此我建议同行们选好一个方向,尽最大努力地让自已成为这个方向的专家,我想这也是一条很好的出路.

    5.再读书

    这对于我们来说,是痛苦的选择,刚离开那个乱七八糟的校园,又要回去继续革命,但没有办法,这个社会就是这样子,我如果能拿个博士的学位,你说我干什么不行?有人说过:一命二运三风水四积德五读书,也有一定的理由,很多路我都走不通,那我就定下心读书,读到壮士,读到烈士总可以吧,呵呵

    6.其它

    如果上面的都行不通,那在我们CODING不下去的时候,我们就想办法去做一下技术支持或客户服务或回老家养猪种田,呵呵,说不定能发呢.

  • 创业者须受三苦

    2007-06-20 09:53:03

    <<引用阿蒙文章>>

     

    曾有一段时间喜欢上了佛教,只因觉得心力交瘁心乱如麻,唯有佛教思想能沁人心脾、明心显性,以寻求心灵深处片刻的宁静……实际上,佛教说来说去,无非就是要我们真正能领悟到“苦海无边,回头是岸”的道理,通常我们在面对苦难时总会害怕与担忧,但一旦看破红尘,将人生看成一大苦难场,那么我们会变得坦然与安祥,真正地享受生命的快乐。

     
    作为一个有失败经历而且目前离成功还很远的创业者,阿蒙是有一些心得与体会的,人们常说“没有无缘无故的爱,也没有无缘无故的恨”,这个同样适用于创业,即“没有无缘无故的成功,也没有无缘无故的失败”,市场经济在一定的范围内是一个好东西,它让部分的竞争走向公开、公平、公正,因此面对客户面对市场,我们需要有成本意识,需要有质量意识,还需要有服务意识,我们不能稀里糊涂,也不能马马虎虎,更不能反应迟钝,这就对创业者有了更高的要求,创业者要功成名就,需要付出更多的心血与汗水。
     
    佛教总结人的一生有八苦(生、老、病、死、爱离别、怨憎会、求不得、五阴炽盛),阿蒙也来总结一下这些年所受的苦,归纳来说,主要有以下的三苦:
     
    1.身苦;
     
    对于初创企业来说,这个生理方面的苦是非常地明显的,由于要控制成本,我们不可能招聘太多的人才,因此创业者本身有时要担当多个角色,很多事情要亲力亲为,这种忙碌日复一日年复一年,每一天风里来雨里去,没有双周日,没有节假日,你无怨无悔,因为你要创业,你有成功的梦想,这个梦想支撑着你不断地奋斗与前进。
     
    2.心苦;
     
    创业者劳心甚于劳力,员工的表现、公司的前景、资金链现金流、市场的开拓等等都让创业者每天寝食不安如坐针毡,合同签署了固然高兴一下,但回款的问题又开始让你心烦意乱,昨晚与王总又吃了个饭,讨论关于新项目的事项,但还是没有有明确的答复,这饭不知吃到何时才能了结?创业者在思想上起伏不定,情绪上担惊受怕,心理上心力交瘁,这是常有的事情。
     
    当然也有非常NB的创业者,他们有能力空手套白狼,一下子几千万就来了,然后他们高起高做,住的是洋房,坐的是名车,N个保镖N个助理N个美女围着他转个不停,那简真太像个老板了,这种人可能命好,象阿蒙这种人是苦命的,晚上吃完饭打个包回来给老婆,叫新来的保安开大门,该死的保安还以为偶是个送饭的,回到家后仔细照镜子,还真象,不能怪人家。
     
    3.境苦。
    中国部分行业的环境并不好,比如足球,整个就是大染缸,什么四小天鹅啊,从国外飞回来后,不到一年就成了废铜烂铁。IT行业也好不到哪里去,盗版猖獗,管理混乱,部分政府好大喜功,部分企业急功近利,部分IT人士好高骛远,一年换一个地,看似逍遥,实则内心空虚,这年头要找一个好的主人也不容易啊,没有完美的企业,也没有完美的个人,因此大体上过得去就行了。
     
    市场环境千变万化,创业者需要提高注意力,随着市场环境的变化而变化。商业机会稍纵即逝,创业者需要提高警惕性,一点都不得马虎。竞争对手如狼似虎,创业者需要时时刻刻防范,并采取合理的策略与对手火拼到底。这些都是创业者要面对的环境问题,最糟糕的是遇到天灾人祸,比如当年的SARS,不知害死了多少的企业。
     
    面对这些苦,创业者需要坚强不屈,不要害怕与躲避,只要对自已、对员工负责,总有一种思想、一种安慰、一种信仰可以让创业者的心得到依靠,并成为创业者不断努力奋斗的精神支柱。无论什么艰难险阻,只要获得了激情与动力,我们都积极进取共同度过。
     
    人性的某些特质,只有通过苦难才能得到考验和提高,一个人、一个企业,乃至一个民族、一个国家,通过承受苦难而获得的精神价值是一笔特殊的财富。比如突如其来的“非典”,它实际上增强了中华民族的团结、乐观、自信等优秀品质。
     
    创业者对苦难感悟越深,就越能从中体会到人存在的意义,也就可以超然于物外,胸怀坦荡且自在逍遥,这才是对精神磨难的彻底解脱。
     
    创业者需要直面现实社会,勇敢地面对现实中的三苦,力争做到“我不下地狱,谁
  • 我为什么创业????

    2007-06-20 09:49:28

    <<引用阿蒙文章>>
     
    此类题目的文章多般是成功者所写,阿蒙非常清醒,知道自已以及FasterSoft刚刚起步,离成功还好远好远,我没有底气也没有勇气去作秀,之所以写出来,是因为有一些同行的朋友经常与我聊这个话题,我有必要将自已的观点与感受总结一下,对你有用的就顶一下,没有的就骂一下,让我感觉你的存在,呵呵。
     
    1.证明自已,突破自已;
     
    比较悲哀,我首先想到的是自已,而不是为社会贡献力量。作为个体,打工也罢,创业也罢,我们都想得到更好的发展,赚更多的钱,过上自已想要的生活,实现个人的价值,如果你缺乏这种欲望与激情,建议闭门思过或上医院看看,呵呵。打工与创业并不分好坏,每一种生活方式都有它好的一面,也有不好的一面,因此无论你是什么,都不要去羡慕别人,工作着是幸福的,你应好好珍惜你现在拥有的一切。
     
    导致一个人出来创业的原因很多,其中个人的性格是一个很重要的原因,有的人喜欢平稳安定的生活,考虑问题喜欢从家人的角度出发,家人希望他去一个稳定的单位工作,然后他就去了,然后与多数人一样认真工作,恋爱结婚生小孩,然后又教育小孩来重复一下自已的人生,呵呵,而有的人很不安份,每天都在想新点子,每天都有梦想,总在想方设法突破一下,即使失败了,也没关系,下次再来过,我想自已更多的是属于后者,我个人认为,在企业里工作,个人的能力发挥或多或少受到限制,有时还要看运气,老板好还过得不错,遇到不好的BOSS,企业也不会好到哪里去,你会比较郁闷,有时你能力强并不见得你的职位或待遇就高,而创业则能充分发挥自已的能力与潜力,面对困难面对压力,你会更加地投入与努力,为了生存与发展,你需要不停地突破自已,我觉得创业是很磨练一个人的耐力与意志的。
     
    随着企业的发展,你也会发现,公司存在着这样那样的问题,它就好象一个人一样不可能十全十美,就如同你打工时埋怨所在公司一样,你的员工也会开始埋怨你以及你的公司,这时你会去反省与思考,然后继续革命,这是一个很有意思的过程。
     
    2.创造机会,抓住机会;
     
    我在工作的过程中,喜欢寻找或创造各种机会,与别人沟通交流,我经常能获取很多有用有趣的信息,也得到过很多朋友或老师的支持与帮助。事实上,在我们的周围时时刻刻都充满了各种机会,比如就移动通信行业来说,这些年3G搞得纷纷扬扬,有的人在美滋滋地看热闹,有的人在看热闹后思考,有的人立刻行动起来,因为他知道这是一个机会,并将要来临,勿庸置疑,随着3G的商用,将给内容提供商、应用提供商、服务提供商等等带来不计其数的机会。回到创业话题,我的第一次创业是因为移动网络的升级即由2G升级到2.5G,那时面临着很多的新机会,因此有朋友对这种机会兴趣很大,于是我们决定抓住机会,一个找钱,一个写方案与计划,虽然后来因为许许多多的原因公司OVER了,但我们也从中学到了很多的东东。
     
    我的第二次创业也是自已创造的机会,当初从深圳回到珠海找工作,放弃了许多高薪(对我而言)的职位,决定到香港城市大学与李青博士、刘文印博士合作,因为他们表示如果合作得好的话,两年后就成立公司来运营,事实上我们也是按照最初的想法来一步一步地走到今天,因此我除了感谢两位老师的挺力支持,还要感谢自已能抓住机会,并坚持不懈地去努力,尽管FasterSoft还有好长好长的路要走,我们也知道前面充满了艰难险阻,但我们会尽力而为。我认为自已还很年轻,可以允许自已再失败三次。
     
    3.不服输;
     
    自从第一次创业失败后,我就一直在寻找与创造机会,因为我不服输,我认为自已能再次创业,人有时候很需要一种气,有了这股气,就会不停地折腾,直到实现为止,说心里话,我个人并没有什么了不起的,背景一般,能力一般,没财没艺没权没名,靠的是一股不服输的韧劲。
     
    4.做企业就是做善事。
     
    前些时候读了一本叫《读禅学管理》的书,书中提到“做企业就是做大善事”的观点,让阿蒙倍受安慰,因为偶向来缺乏崇高伟大的理想与精神,听这么一说,感觉自已崇高了一点也伟大了一点,呵呵。企业之所以能正常稳定地运营,大部分都是依靠社会大众的支持以及员工的努力工作,是你的客户帮了你,是你的员工帮了你,那么你就要还员工的情,提高员工福利待遇,让员工的家庭生活有保证,让他们能够安居乐业;你也要还政府的情,依法自觉纳税;你还要还社会的情,尽可能开发更多更好的产品来回报社会。大家都知道比哥不仅仅是个世界首富,而且也是世界上最具有慈悲心怀的程序员,他是最慷慨的慈善捐赠家,拥有几百亿美元的他表示,只留几百万美元给孩子,其他资产将全部捐给慈善事业,比哥是我们程序员学习的好榜样。
  • 发誓绝不再编嵌入式软件;当今做嵌入式软件开发工程师真累!

    2007-05-30 13:53:30

     
    发誓绝不再编嵌入式软件;当今做嵌入式软件开发工程师真累!

        “这不是挺好的一份工作,薪水也不菲,要跳槽到工资不到原来1/2的地方改行画PCB板,是不是有病呀!” 家人不解,朋友不解,原公司不知情的同事们更是一头雾水,这在预料中,因为连自己也确实觉得不该走到这一步呀! 但为什么还要走?抽象的说,干的太累!! 累的受不了,精神都快崩溃了,你还能再流恋那份薪水?! 

        怎么个累法?打个比方:你是个杂技演员,擅长走钢丝。你一天演一场,老板就希望你演两场....依次类推。 

        你不想演下场想打个盹?老板就用金币放你眼皮上,再给你播放上一场观众鼓掌喝彩的录音。但是一旦你上台,就全靠自己硬撑着了:老板连保险都没给你买。 
    这还只是累的低级表现形式,随着你的锻炼成长,成了“高手”了,就又多了新的麻烦,有了更深刻意义上的累:心累! 

        心累的第一层,来源于无意中“伤害”同事的内疚和被“合理的”报复。 

        这从“技高”开始。有一次排练,你无意中把钢丝升高了两米。老板发现了,这就成了下场戏的新“起点”。于是乎,你得罪了除了老板外太多的人:与你配合的人可能要付出更多劳动可以理解,但连报幕员都要嫉妒的埋怨你几句。更让你不忍的,是你的替补会急的号啕大哭。这时候,你就要小心了:第一次,大家可能有怨无言,久而久之,任何一个和你配合的“受害”者都会经常的以“合理的小的失误”搅的你要付出更多的体能。 

        如果你真能坚持,或慷慨大方会处关系,没有太感到累的话,就会过度到心累第二层:老板越来越高的“合理要求”和不断“相对降低”的设备配置 

        老板,归跟到底就是为了赚钱,因此,硬件要最低的成本,可“软”可“硬”的东西都要来软的。特别是,如果要是个博士级的专业老板,或你上边还有个博士的“总体设计”上司,那你就累着吧!能用2136,你绝不可能用2138,程序放不下?压缩压缩嘛!博士会给你很多压缩算法的资料,甚至亲自动手给你编个演示程序,你可不能说你很难整合到RTOS中去,要不,你是干什么吃的?!只有你自己知道,他半天编的演示程序,要真整合到你的多任务中正常执行够你忙十天半月的!要是不幸碰上芯片本身还有些BUG,嘿嘿,咱等小样就受着吧!或许这就是“婆婆和媳妇的差别”?-他熬出来了,而你正在熬着! 至于想用个仿真器?买KEIL的干吗,还是给老板省顿“饭钱”吧,给你批个ZLG480就不错了,哪个书法高手不是买不起纸墨笔用手指沾水在地板上练成的?博士会这样语重心长的教诲你。   
    如果你还真行,或为了妻儿糊口硬挺过来了,就面临心累的第三层:来源于用户“上帝”的“越来越挑剔”的压力: 

        事情的根源,在“软件”这东西和表演一样,只有“更好”,没有“最好”,而且好不好还要看“上帝”当时的口味以至心情。也许白天他还夸你这个界面用狂草符合他的个性,晚上二奶一句“我正在练隶书”,你就不得不通知销售部把所有装箱待发的产品重新开包上线烧录隶书字库。和你配合的生产销售以至库管门卫都会和老板一样认为是编软件的你犯了个天大的错误,没人去想那产品可怜的256K flash到底能放下多少种字体的备选界面。于是,你就再当次“高手”吧,连夜改你的程序,把几个字体界面同时压缩放下,不然,上帝的公主喜欢行楷怎么办。当然,还想报加班?不扣你奖金就算看你“干的真辛苦”的面子了!!。 

        你感到累不累呀!如果你连这都挺过来了,那看看下边更深一层的第四层心累吧:“高手绝不会出错”的共识和“小人之心度君子之腹”的可畏。 

        你编的软件有BUG吗?这当然是废话,要不DEBUG软件是干什么的!但如果你编的软件因BUG让老板在展会当众出丑(别笑,这事盖茨都遇到过),让客户大单退货,你的老板会对你怎样?第一次,可能不情愿的“原谅”你,“替你垫上这学费”,第二次,可能就会在心里犯嘀咕了。要是不幸碰巧由于你上边过度的“累”正闹情绪,比如,你那天熬夜改程序加隶书字库时,不小心把一行字库数据弄错了,而错的也真巧,正是上帝二奶芳名中的一个字......博士级的主管凭其经验会认定这不可能是程序中的BUG而只能是你有意的,老板也不会立即让你走人,毕竟找你这样的“高手”不容易呀。表面上,老板可能还给你加薪,但还蒙在鼓里的你可能会突然发现测试部门经常给你报告“有时这样,一会又自己好了”的BUG,逼迫你每天用大量的时间反复测试、加强你的程序,而老板呢,会暗地里找各种理由把你各个版本的样品收集起来,相互对比推敲,简直就象40年代日本人监看中国劳工一样的不信任。无奈,软件这东西,确实是看不见摸不着的,不象PCB板,画错了就是错了,报废一批不承认也不行。但问题是,虽然是我编的软件,但我和你一样也不知道错在哪儿,我承认什么呀! 

        我的累说出来,也不知大家会怎么想,但我确实是实在累的受不了了,还是休息几天找个新的工作吧,但发誓绝不再编嵌入式软件。 
    正巧,有个公司正满街找画PCB板的人。我就去试了两天,发现突然爱上画PCB板这个新差事了。
  • 到25岁不得不想的问题

    2007-05-30 13:48:47

    到25岁不得不想的问题 ! 
          出生于上个世70年代中后期的年轻人如今正值盛年——如果挤过了"独木桥",至少已经本科毕业;如果已经工作,至少有了一年的工作经验;如果校园时代的恋人尚未分手,至少也应该为婚姻带来的房子、车子问题而发愁......类似的假设还很多,步入这个年龄段——25岁到30岁,人生该来的差不多都来了,但是一切似乎还尚未确定,充满了可能性。后半段该怎样地生活往往就在这个时候初露端倪。 
      准确一点说,走过25岁,才逐渐地开始心灵断奶。人生就像一个长长的泳道,你已经离此岸越来越远,而彼岸尚不在视线。生活在市场经济时代的我们恐怕关心的还是自己生存的空间是否安全和明朗。 
      悲观一点地说,走过25岁,绝大多数的我们没有安全感,开始隐约感觉到熟悉的生存方式,也许是最危险,比如:学历贬值、经验饱和、能力退化、精神压抑、健康透支、"钱"途渺茫...... 
       
      学历贬值 
       
      国家统计局数据:2002年,全国在校大学生已达903万人;2003年,北京高考录取率已达70%,上海更高达81%,超过中等发达国家的平均水平。 
      靠一纸大学文凭就高枕无忧的日子,已经一去不复返! 
       
      经验饱和 
       
      某家上海杂志对1000名25—45岁的白领调查显示,28—32岁年龄段最缺乏安全感,在竞争中缺乏优势。原因是:工作8年和工作5年,在从业经验上已无区别,而后来者在学历、知识更新以及上进心方面都更胜一筹。 
      经验优势越来越小,人却越来越老...... 
       
      能力退化 
       
      一家青年报纸2002年12月对京沪穗三地白领跳槽者的调查显示,由于"重复、机械的劳动导致能力下降"的原因而选择跳槽的占48%,位居第二,仅次于占52.5%的"不满薪酬"。 
      换换脑子吧...... 
       
      精神压抑 
       
      无休无止的工作、巨大的压力,无时不在的电子邮件、7天24小时全天候待命...... 
      精神萎靡、感觉疲倦、经常失眠、心情郁闷......北京市心理卫生协会提供的数据显示:城市中25%的人存在显性或隐性心理障碍。"其中一半人又是占社会少数的白领阶层"。 
      工作恐惧症正在流行...... 
       
      健康透支 
       
      北京职业病防治研究所连续3年调查显示,目前我国白领约有70%处于亚健康状态,而在高血压人群中,约20%是35岁以下的白领。 
      年轻时拿命换钱,年老时拿钱换命...... 
       
      "钱"途渺茫 
       
      一生需要赚多少钱? 
      房子:50万元(连买房带装修)。 
      孩子:30万元(培养一个孩子到大学毕业的平均费用,不包括出国留学)。孩子20年学费、生活费每年也要花l.5万元呀! 
      父母:43.2万元(四位老人每人每月300元,聊表寸心而已)。唉,300元,就是都用来吃饭,每天也只有10元呀。 
      家用:108万元(三口之家每月开销3000元)。很省了!这里可没有任何旅游休闲呀。 
      养老:36万元(退休后再活15年,每月与老伴开销2000元)。期望值不能再高了! 
       
      不敢再算了,怎么去挣这些钱呢? 
       
      走过25岁,你不得不想:是否还有成长后劲?普通员工晋升至经理的比率为45%,经理至总监的晋升率为13%,总监至副总经理的晋升率为3%,副总经理晋升至总经理不足0.2%。你面对的,是迅速成长的群体,是整个新生代的挑战! 
      三年以后,你的位置在哪里?是否正在漠视危险?把一只青蛙放进装有沸水的杯子,它会马上跳出来;把一只青蛙放进温水并慢慢加热,开始它很舒适,等到发现水太热时,却已没有能力跳出。你现在是否已经在温水中了?
  • 创业的五个做事方法

    2007-05-30 13:40:20

    我鼓励大家创业,但鼓励大家创业不等于盲目创业。对于想创业的人,我对他们的提醒是:不要被成功企业所编写的创业故事所迷惑,因为那里讲的都是一个企业成长过程中过五关斩六将的最精彩的部分。你要用自己的头脑去思考,去学习。作为创业者,有5个很基本的做事方法必须遵循:
      第一,一定要有激情和理念,你才能感染自己和其他人。在最困难的时候,在所有人绝望的时候,你要感染你的客户,感染你的员工,感染你的合作伙伴……你要感染所有人!
      第二,要专注。别说小公司,大公司多元化也有失败的例子,小公司更应该抓准一个点把它做深、做透。这样才能积累所有的资源。小公司到处试验,会让你的企业耗尽很多资源。专注就是有所不为才能有所为,这点非常重要。
      3721坚持了6年,一直坚持做中文上网、中文搜索,我就做这一件事情;Google也是很专注,有了一定的积累以后才能横向扩展。很多创业者都栽在不够专注上,是因为他自己脑子里面没有想清楚,今天在这儿打一口井,明天在那儿打一口井,最后哪儿也没有挖出水,地面上只是留下了许多坑而已。你5个指头都叉开和一个拳头是不一样的,专注就是你把所有的资源都凝聚在一个点上。
      第三是,执行力,很多创业者很容易在这里摔跟头。我见过很多人夸夸其谈,估计他们创业,至少第一次肯定都不会成功,因为我觉得真正的创业者要少说多做,要把自己美妙的想法努力转化成结果。
      创业者做事情着眼点要低,要现实。很多创业者去见风险投资人的时候,说起自己的事业都说得云山雾罩的,其实这样会让风险投资人根本不明白你在说什么。你只要踏踏实实地说你想做什么,这个东西能解决什么问题就可以了。
      想法只是一个开头的方式,是不值钱的。我们坐在这儿,一个小时可以天马行空,弄出几十个想法来,脑子稍微一转,你的思想已经在宇宙走了好几个来回了——行动的成本才是最高的,对创业者来讲要看自己是不是有这种经验和执行力。同样的想法两个人同样做,谁的执行力更强,谁的经验更丰富,谁就更容易成功。
      第四,创业者还要有一种胸怀,就是所谓与时俱进的学习能力。我看到很多人创业不成功就是因为他们太自负,不能从成功人士那里学到一些优点,听不进好的建议。很多创业者没有经验,没有经验不可怕,问题是你有没有谦虚、开放学习的心态,使你不能与时俱进。很多创业者会陷入一个死循环,他们通常认为自己看得准,才是出手的前提;积累经验越多,才能越看越准。但你没经验,又怎么可能看准?
      解决这个问题有办法,时机不成熟,就不创业,先给别人打工。把公司让我做的事情做好,提高自己的能力,逐步就知道创业的方向了。我不赞成年轻人刚毕业就创业,我认为他们还是应该在公司里踏踏实实干五六年,虽然是打工,实际上是公司在给你“缴”学费,你在不同的平台通过积累经验,这是任何老板剥夺不走的,只有积累这种经验,你的创业能力才更高,才更有把握。我在方正工作时,从来没有觉得自己是打工,我一直认为自己是在创业,因为我觉得是在积累自己的能力,积累自己的资源。客观上,我对方正还是作了很多贡献。我到雅虎还是一种创业的心态,我把雅虎的文化改成创业的文化,因此雅虎中国在2004年取得了很好的业绩。保持良好的心态,这是你创业成功的前提。
      第五,不要盲目去模仿和抄袭大公司的做法。比如,很多人在新浪、搜狐做过,他出来就会不自觉按照大公司的做法建立一些规范制度等,但大公司为了稳妥,一般都比较慢。大公司为这个“慢”付得起代价,小公司不能用大公司的这种做事方法。我讲过大象和兔子的故事:大象和骆驼3天不吃也没事,但是新创业的公司像小兔子一样,每一步都要跑得快,要到处找食。本来就是个兔子,却以为自己是个大象,用大象的心态做事,在狼面前慢慢踱步,最后就会被狼吃掉。创业意味着你要有创业的做事方式。
      如果你跟大公司做一样的事,他的实力很强,跟他比是没有优势的。因此,如果把整个产业画成一张地图,你可以看哪些领域被谁占了,谁有什么优势。你应该找一个不在这张地图上的事情去做。比如说,前几年大家都不重视的搜索,现在就做起来了。创业公司应该踏踏实实把自己的事做好,不要在自己很小的时候就想要通吃,要颠覆,要灭掉谁,这是没有意义的。小公司要学会跟大公司合作,要学会广交朋友,在这个产业链跟别人合作,会使自己成功得更快一些。
  • 电脑一族的护眼妙招

    2007-05-21 18:55:55

    电脑一族的护眼妙招


    临床上经常遇到这样的病人,他们的症状为“眼干涩不舒,甚至干燥、畏光、视物模糊”。这类病人的职业大多是计算机操作人员、文字编辑、美术工作者、教师及刺绣工人等。随着电脑在工作、生活中的普及,这种情况更为常见。他们的症状并不是病理变化所引起,而是由于用眼不当所致。

      目不转睛害处多 
      长时间“聚精会神、目不转睛”对眼睛的危害是极大的。首先,神经高度紧张会使眼睛发胀,视神经功能慢性减退;再者,长时间近距离用眼,会促使轴性近视的发展;另外,就是眨眼动作的减少,使眼球缺乏润滑和保护作用。据统计,人正常的眨眼数为每分钟15次左右,在神情专注的时候,只有2~3次,这就使眼表面的泪液蒸发过多,而来不及得到及时的补充,久之则引起眼球表面的炎症。 
      这样的病人,早期检查结果往往查不出什么病,但长此以往,便可能失去健康的眼睛。对于青少年来说,长期近距离使用电脑会引起调节痉挛而看不清远处,继而造成真性近视等。而对于45岁以上的人来说,因为眼睛的调节能力下降出现老花、近距离视物疲劳,并且不能持久,如果长期注视电脑会使疲劳症状加重,还可能诱发青光眼、白内障等眼病。

      劳逸结合防眼病 
      要预防或消除这种情况,日常应注意对眼睛的呵护,关键是要持之以恒,可从如下几个方面做起: 
      首先,要定时休息。如每看书或使用电脑2小时要休息10~15分钟,此时可远眺窗外景观,或转动眼球、做眼保健操等,只要不集中在近距离用眼,都有休息效果。 
      其次,注意滋润眼睛,多眨眼。用电脑时,最好保持15至20度的下视角,这样有助于减少眼球暴露的面积,以减少眼球表面水分蒸发。避免工作座位在空调出风口处,还可以在座位附近放置茶水,增加周围湿度。 
      经常锻炼。建议进行球类活动,如乒乓球、羽毛球、足球、高尔夫球等,当眼球追随目标时,睫状肌不断地放松与收缩,以及眼外肌的协同作用,可以提高眼的血液灌注量,促进眼部新陈代谢,从而减轻眼疲劳。 
      注意营养均衡,多吃坚果类食物。要多吃富含钙、蛋白质的食物,避免偏食,控制甜食。因为代谢糖分时,须依靠维生素B1,糖分若摄取过多,将会造成维生素B1的不足,而容易罹患视神经炎。多吃坚果类食物,多咀嚼,能加强眼部肌肉活动,增进眼部血液循环,减轻眼疲劳。 
      眼局部进行热敷、药熏、理疗、针灸等。可以滴一些润滑眼球、缓解眼疲劳的眼药水,如珍珠明目液、珍视明、艾唯多眼药水、人工泪液等。中医眼科认为,视物日久,导致疲劳过度,或肾阴不足,津液短少,肝血虚损,内有郁热。故可内服中成药杞菊地黄丸、明目地黄丸、养血安神片、逍遥丸等。根据病人不同情况辨证论治。 
      定期体检,发现眼病尽早治疗。如有近视、远视、散光等屈光不正,要在医生指导下戴镜矫正。眼胀痛、流泪等症状明显时,应及时排除青光眼、角结膜炎等眼病。 

      古人护眼有妙招 
      祖国医学最早的经典著作《黄帝内经》中就将“目不劳,心不惑”,“旅游天地之间,视听八达之外”作为重要的养生明目手段。古人养目护眼的方法也是很有效果的,不妨坚持一试。 

      闭目放松法 
      静心闭目片刻,以两掌轻捂双眼,两肘支撑在桌子边沿,全身肌肉尽量放松,30秒钟后,睁眼闪眨多次。每日做3~5次。此法能明显改善视力,特别适用于经常阅读和写作的中老年人。 

      入静养目法 
      端坐,全身放松,眼微闭,双手放在膝头,心中反复意想:我在气中,气在我中,天人合一,气为我用。静想15分钟,然后慢慢睁开眼睛,深吸三口气,气沉下丹田。每天早晚各做一次。

      远眺按摩法 
      每日晨起,在空气新鲜处闭目,眼球从右到左,再从左到右各转5次,然后突然睁眼,极目远眺;平静端立,用眼依次注视左、右、右上角、左上角、右下角、左下角,反复5次;用洁净的两手中指由鼻梁两侧内角鼻凹处开始,从上到下环形按摩眼眶,然后眨动20次。 

      转动眼球法 
      坐在床边或椅上,双目向左转5圈,平视前方片刻,再向右转5圈。每日早晚各做一次,持之以恒,必见成效。

  • 梁肇新编程高手箴言 [转]

    2007-05-21 18:55:28

    程序员?为什么要做这样的程序?正确的入门方法是什么? 
    程序员只有在理解了以上内容的基础上,才能进一步更快地提高自身技能,这时候再开始程序的设计。其实,对一个软件的开发者来说,真正重要的不在于这行代码怎么写,那些代码应该怎么写,关键是思路的问题,而思路事实上是经验的积累。经验是使你从最初的封闭的思维方式,到最后形成开放式的思维的一个过程。将我十几年程序生涯中获得的一些经验告诉读者,使大家少走弯路也是我想写这本书的主要目的。 
    1.1 程序≠软件 
    现在很多人以为程序就是软件,软件就是程序。事实上,软件和程序在20世纪80年代时,还可以说是等同的,或者说,在非pc领域里它们可能还会是等同的,比如说某个嵌入式软件领域,软件和程序可能是等同的。但是,在pc这个领域内,现在的程序已不等于软件了。这是什么意思呢? 
    1. 软件发展简述 
    在20世纪80年代的时候,pc刚诞生,这时国内还没有几个人会写程序。那么,如果你写个程序,别人就可以拿来用。这时候的程序就能产生价值,这个程序就直接等同于软件。 
    但软件行业发展到现在,这里以中国的情况为例(美国在20世纪80年代,程序已经不等同于软件了),程序也不等同于软件了。因为现在会写程序很容易,但是你的这个程序很难产生什么样的商业意义,也不能产生什么价值,这就很难直接变成软件。要使一个程序直接变成软件,中间就面临着很高的门槛问题。这个门槛问题来自于整个行业的形成。 
    现在,你写了一个程序以后,要面临商业化的过程。你要宣传,你要让用户知道,你要建立经销渠道,可能你还要花很多的时间去说服别人用你的东西。这是程序到软件的一个过程。这门槛已比较高了。 
    我们在和国内的大经销商的销售渠道的人聊天时,他们的老板说,这几年做软件的门槛挺高的,如果你没有五、六百万做软件,那是“玩”不起来的。我说:“你们就使门槛很高了。”他说:“那肯定是的。如果你写个“烂”程序,明天你倒闭了,你的东西还占了我的库房,我还不知道找谁退去呢。我的库房是要钱的呀!现在的软件又是那么多!” 
    所以,如果你没有一定的资产的话,经销商都不理你。实际情况也是这样的,如果你的公司比较小,且没什么名气,你的产品放到经销商库房,那么他最多给你暂收,产品销不动的话,一般两周绝对会退货。因为现在经销商可选择的余地已很多了,所谓的软件也已经很多了。而程序则更多,程序都想变成软件,谁都说自己的是“金子”。但只有经受住用户的检验,才能成为真正的“金子”。 
    这就是美国为什么在20世纪90年代几乎没有什么新的软件公司产生的原因。只是原来80年代的大的软件公司互相兼并,我吞你,你吃我。但是,写程序的人很多,美国的程序变软件的门槛可能比我们还高,所以很多人写了程序就丢在网上,就形成了共享软件。 
    2. 共享软件 
    共享软件是避开商业渠道的一种方法。它避开了商业的门槛,因为这个行业的门槛发展很高以后就轻易进不去了。我写个程序丢在网上,你下载就可以用,这时候程序又等于软件。共享软件是这样产生的,是因为没有办法中的办法。如果说程序直接等于软件的话,谁也不会轻易把程序丢到网上去。 
    开始做共享软件的人并不认为做它能赚钱,只是后来用的人多了,有人付钱给他了。共享软件使得程序和软件的距离缩短了,但是它与商业软件的距离会进一步拉大。商业软件的功能和所要达到的目标就不是一个人能“玩”得起来的了。这时的软件也已不是几个人、一个小组就能做出来的了。这就是在美国新的软件公司没法产生的原因。比如netscape网景是在1995~1996年产生的新软件公司,但是,两三年后它就不见了。 
    1.1.1 商业软件门槛的形成 
    1. 商业软件门槛的形成 
    商业软件门槛的形成是整个行业发展的必然结果。任何一个行业初始阶段时的门槛都非常低,但是,只要发展到一定的阶段后,它的门槛就必然抬高。比如,现在国内生产小汽车很困难,但在20世纪50年代~60年代的时候,你装4个轮子,再加上柴油机等就形成汽车。那时的莱特兄弟装个螺旋桨,加两个机翼,就能做飞机。整个行业还没有形成的时候,绝对可以这样做,但是,到整个行业形成时,你就做不了了。所有的行业都是这样的。 
    为什么网站一出来时那么多人去挤着做?这也是因为一开始的时候,看起来门槛非常低,人人都可以做。只要有一个服务器,架根网线,就能做网站。这个行业处于初始阶段时,情况就是这样的。但这个行业形成后,你就轻易地“玩”不了了。 
    国内的软件发展也是如此。国内的软件自从软件经销商形成以后,这个行业才真正地形成。有没有一个渠道是判断一个行业是否形成的很重要的环节。任何一个行业都会有一个经销渠道,如果渠道形成了,那么这个行业也就形成了。第一名的经销商是1994年~1995年成立的,也就是说,中国软件行业大概也就是在1995年形成的,至今才经历8年时间的发展。 
    有一种浮躁的思想认为,中国软件产业应该很快就能赶上美国。美国软件行业是上世纪80年代形成的,到现在已经发展了20多年了。中国软件行业才8年,8年才是一个懵懂的小孩,20多岁是一个强壮的青年,那么他们的力量是不对等的。但也要看到,当8岁变成15岁的时候,它真正的能量才会反映出来。 
    2. 软件门槛对程序员的影响 
    现在中国软件行业正在形成。所以,现在做一个程序员一定要有耐心,因为现在已经不等于以前了。你一定要把所有的问题搞清楚,然后再去做程序。 
    对于程序员来说,最好的工作环境是在现有的或者初始要成立的公司里面,这是最容易成功的。个人单枪匹马闯天下已经很困难了。即使现在偶尔做两个共享软件放在网上能成名,但是也已经比较困难了。因为现在做软件的人已经很多了。这也说明软件已经不等于程序了,程序也不等于软件。 
    程序要变成软件,这中间是一个商业化的过程。没有门槛以前,它没有这个商业过程,现在有这个行业了,它中间就有商业化的过程。这个商业的过程就不是一个人能“玩”的。 
    如果你开始做某一类软件的时候,别人已经做成了,这时你再决定花力气去做,那么你就要花双倍的力气去赶上别人。 
    现在的商业软件往往是由很多模块组成的,模块是整个系统的一部分。个人要完整地写一个商业系统几乎是不可能的。软件进入windows平台后,它已经很复杂了,不像在dos的时候,你写两行程序就能卖,做个zip也能卖。事实上,美国的商业编译器也不是一个人能“玩”的。现在你可能觉得它是很简单的,甚至linux还带了一个gcc,且源程序还在。你可以把它改一改,做个vc试一试,看它会有人用吗?它能变成软件吗?即使你再做个界面,它也还是一个gcc,绝对不会成为visual c++那样能商业化的软件。 
    可见,国外软件行业的门槛要比中国的高很多了。我觉得我们中国即使再去做这样的东西,也没有多大的意义了。这个门槛你是追不过来的。不仅要花双倍的力气,而且在这么短的时间内,你还要完成别人已经完成过的工作,包括别人所做的测试工作。只有这样,才能做到你的软件与别人有竞争力,能与它做比较。 
    1.1.2 认清自己的发展 
    如果连以上认识都不清楚,很可能就以为去书店买一本mfc高手速成之类的书,编两个程序就能成为软件高手。就好像这些书是“黄金”,我学两下,学会了vc、mfc,就能做一个软件拿出去卖了。这种想法也不是不行,最后一定能行,但要有耐心,还要有机遇。机遇是从耐心中产生的,越有耐心,就越有机遇。你得非常努力,要花很多的精力,可能还要走很多的弯路。 
    如果你是从mfc入手的,或是从vb入手的,则如要做出一个真正的能应用个人领域的通用软件,就会走非常多的弯路。直接的捷径绝对不是走这两条路。这两条路看起来很快,而且在很多公司里面确实需要这样的东西,比如说我这家公司就是为另一个家公司做系统集成的,那我就需要这样的东西,我不管你具体怎么实现,我只需要达到这个目标就行了。 
    任何软件的实现都会有n种方法,即使你是用最差的那种方法实现的,也没有问题,最后它还是能运行。即使有问题,再改一改就是。但是,做通用软件就不行了,通用是一对多,你做出来的软件以后要面向全国,如果将来自由贸易通到香港也好,通到国外也好,整个产品能销到全世界的话,这时候,通用软件所有做的工作就不是这么简单了。所以说,正确的入门方法就很关键。 
    如果你仅仅只是想混口饭吃,找个工作,可能教你成为mfc的高手之类的书对你就足够了。但是,如果你想做一个很好的软件,不仅能满足你谋一碗饭吃,还能使你扬名,最后你的软件还能成为很多人用,甚至你还想把它作为一个事业去经营,那么这第一步就非常关键。这时就绝对不能找一本mfc或找一本vb的书学两下就行,而是要从最底层开始做起,从最基本做起。 
    1.2 高手是怎样练成的 
    1.2.1 高手成长的六个阶段 
    程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封。 
    我认为,一个程序员的成长可分为如下六个阶段。 
    ? 第一阶段 
    此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。 
    ? 第二阶段 
    此阶段能精通基于某种平台的接口(例如我们现在常用的win 32的api函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。 
    ? 第三阶段 
    此阶段能深入地了解某个平台系统的底层,已经具有了初级的内功的能力,也就是“手中有剑,心中无剑”。 
    ? 第四阶级 
    此阶段能直接在平台上进行比较深层次的开发。基本上,能达到这个层次就可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行vxd或操作系统的内核的修改。 
    这时已经不再有语言的束缚,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的。为什么会难呢?这就是因为很多人的思想变不过来。 
    ? 第五阶级 
    此阶段就已经不再局限于简单的技术上的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶段以后,能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是ms word这样的大型软件,只要有充足的时间,也一定会设计出来。 
    ? 第六阶级 
    此阶段也是最高的境界,达到“无招胜有招”。这时候,任何问题就纯粹变成了一个思路的问题,不是用什么代码就能表示的。也就是“手中无剑,心中也无剑”。 
    此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁看一下少林拳的对战,就能把此拳拿来就用。这就是真正的大师级的人物。这时,win 32或linux在你眼里是没有什么差别的。 
    每一个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。 
    要想从第二个阶段过渡到第三个阶段,就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。经过二、三年的积累就能达到第三个阶段。但是,有些人到达第三个阶段后,常常就很难有境界上的突破了。他们这时会产生一种观念,认为软件无非如此,认为自己已无所不能。其实,这时如果遇到大的或难些的软件,他们往往还是无从下手。 
    现在我们国家大部分程序员都是在第二、三级之间。他们大多都是通过自学成才的,不过这样的程序员一般在软件公司也能独当一面,完成一些软件的模块。 
    但是,也还有一大堆处在第一阶段的程序员,他们一般就能玩玩vb,做程序时,去找一堆控件集成一个软件。 
    现在一种流行的说法是,中国软件人才现在是一个橄榄型的人才结构,有大量的中等水平的程序员,而初级和高级程序员比较少。而我认为,现在中国绝大多数都是初级的程序员,中级程序员很少,高级的就更少了。所以,现在的人才结构是“方塔”形,这是一种断层的不良结构。而真正成熟的软件人才结构应该是平滑的三角形结构。这样,初级、中级、高级程序员才能充分地各施所长。三种人才结构对比如图1.1所示。 
    图1.1 三种人才结构对比 
    1.2.2 初级程序员和高级程序员的区别 
    一般对于一个问题,初级程序员和高级程序员考虑这个问题的方法绝对是不同的。比如,在初级程序员阶段时,他会觉得vb也能做出应用来,且看起来也不错。 
    但到了中级程序员时,他可能就不会选择vb了,可能会用mfc,这时,也能做出效果不错的程序。 
    到高级程序员时,他绝对不是首先选择以上工具,vb也好,vc也好,这些都不是他考虑的问题。这时考虑的绝对是什么才是具有最快效率、最稳定性能的解决问题的方法。 
    软件和别的产品不同。比如,在软件中要达到某个目标,有n种方法,但是在n种方法中,只有一种方法或两种方法是最好的,其他的都很次。所以,要做一个好的系统,是很需要耐心的。如果没有耐心,就不会有细活,有细活的东西才是好东西。我觉得做软件是这样,做任何事情也是这样的,一定要投入。 

    程序员到达最高境界的时候,想的就是“我就是程序,程序就是我”。这时候我要做一个软件,不会有自己主观的思路,而是以机器的思路来考虑问题,也就是说,就是以程序的思考方式来思考程序,而不是以我去设计程序的方式去思考程序。这一点如果不到比较高的层次是不能明白的。 
    你设计程序不就是你思考问题,然后按自己的思路去做程序吗? 
    其实不是的。在我设计这个程序的时候,相当于我“钻”入这个程序里面去了。这时候没有我自己的任何思维,我的所有思维都是这个程序,它这步该怎么走,下步该怎么走,它可能会出现什么情况。我动这个部分的时候,别的部分是否要干扰,也许会动一发而牵全身,它们之间是怎么相互影响的? 
    也只有到达这个境界,你的程序才能真正地写好,绝对不是做个什么可视化。可视化本身就是“我去设计这个程序”,而真正的程序高手是“我就是程序”,这两种方法绝对是不同的。比如,我要用vb去设计一个程序,和我本身就是一个程序的思维方式,是不一样的。别人也许觉得操作系统很深奥,很复杂,其实,如果你到达高手状态,你就是操作系统,你就能做任何程序。 
    对待软件要有一个全面的分析方法,光说理论是没有用的。如果你没有经过第一、第二、第三、第四这四个阶段,则永远到达不了高境界。因为空中楼阁的理论没有用,而这些必须是一步一步地去做出来。 
    一个高级程序员应该具备开放性思维,从里到外的所有的知识都能了解。然后,看到世界最新技术就能马上掌握,马上了解。实际上,技术到达最高的境界后,是没有分别的。任何东西都是相通的,只要你到达这个境界以后,什么问题一看就能明白,一看就能抓住最核心的问题,最根本的根本,而不会被其他的枝叶或表象所迷惑,做到这一步后才算比较成功。 
    从程序员本身来说,如果它到达这一步以后,他就已经形成了开阔的思维。他有这种开放性思维的话,他就能做战略决策,这对他将来做任何事情都有好处。事实上,会做程序后,就会有一种分析问题的方法,学会怎么样把问题的表象剖开,看到它的本质。这时你碰到任何具体的问题,只要给点时间,都能轻而易举地解决。实际上,对开发计算机软件来说,没有什么做不了的软件,所有的软件都能做,只是看你有没有时间,有没有耐心,有没有资金做支撑。 
    这几年,尤其是这两三年,估计到2005年前,中国软件这个行业里面大的软件公司就能形成。现在就已经在形成,例如用友,它上市后,地位就更加稳固了。其他大的软件企业会在这几年内迅速长大。这时候,包括流通渠道、经销商的渠道也会迅速长大。也就是说,到2005年以后,中国软件这个行业的门槛比现在还要高很多,与美国不会有太大的差别。此时,中国软件才真正体现出它的威力来。如果你是这些威力中的一员,就已经很厉害了。 
    别人可能知道比尔?盖茨是个谈判的高手,是卖东西的高手,其实,比尔?盖茨从根本上来说是个程序高手,这是他根本中的根本。他对所有的技术都非常敏感,一眼就看到本质,而且他本身也能做程序,时常在看程序。现在他不做董事长,而做首席设计师,这时他就更加接近程序的本质。因为他本身就有很开阔的思维,又深入到技术的本身,所以他就知道技术的方向。这对于一个公司,对他这样的人来说,是非常重要的。 
    如果他判断错误一步,那公司以后再回头就很难了。计算机的竞争是非常激烈的,不能走错半步。很多公司以前看上去很火,后来就 
    销声匿迹了,就是因为它走错一步,然后就不行了。为什么它会走错?因为他不了解技术的本质在哪里,技术的发展方向在哪里。 
    比尔?盖茨因为父母是学法律的,所以他本身就很能“侃”,很有说服力,而他又是做技术的,就非常清楚技术的方向在哪里,所以他才能把方向把握得很准确,公司越来越大。而别的公司只火一阵子,他却火了还会再火。就算微软再庞大,你如果不把握好软件技术的最前沿,一样也会玩完。就像intel时刻把握着cpu的最新技术,才能保证自己是行业老大。技术决定它的将来。 

    所以,程序员要能达到这样的目标,就要有非常强的耐心和非常好的机遇才有可能。事实上,现在的机会挺好的,2005年以前机会都非常大,以后机会会比较小。但是,如果有耐心的话,你还是会有机会的,机会都是出在耐心里。我记得有句话说“雄心的一半是耐心”,我认为雄心的三分之二都是耐心。如果你越有野心,你就越要有耐心,你的野心才有可能实现。如果你有野心而没有耐心,那都是胡思乱想,别人一眼就能看穿。最后在竞争中,对手一眼就看到你的意图,那你还有什么可竞争的? 

    1.2.3 程序员是吃青春饭的吗 
    很多人都认为程序员是三十岁以前的职业,到了三十岁以后,就不应再做程序员了。现在的很多程序员也有这种想法,我觉得这种想法很不对。 
    在20世纪80年代末到90年代初,那时软件还没有形成行业,程序员不能以此作为谋生的手段时,你必须转行,因为你年轻的时候不用考虑吃饭的问题,天天“玩”都可以,但是以后就不可能了。 
    据我了解,微软里面的那些高手,几乎都是四五十岁的,而且都是做底层的。他们是上世纪70年代就开始“玩”程序的,所以对于整个计算机,他们是太清楚了。现在有些人主观臆断地希望微软第二天倒闭就好了,但那可能性太小了。因为那些程序员是从cpu是4004的时候开始,玩到现在奔腾iv,没有哪一代东西他们没有经历过。 
    你知道他们现在正在玩什么吗?现在正在玩64位的cpu。你说你普通的程序员,有这个耐心吗?没有这个耐心,你绝对做不了,你也绝对做不了高手。他为什么能做?因为他不仅是玩过来的,而且他还非常有耐心,每一步技术他都跟得上,所以对他来说,没有任何的难度和压力。 
    因为计算机技术没有任何时候是突变的。它的今年和去年相差不会很大,但是回过头来看三年以前的情况,和现在的距离就很大。所以说,如果你每年都跟着技术进步的话,你的压力就很小,因为你时刻都能掌握最新的技术。但是,如果你落下来,别说十年,就是三年,你就赶不上了。 
    如果你一旦赶不上,就会觉得非常吃力;如果你赶不上,你就会迷失方向;如果你迷失了方向,你就觉得计算机没有味道,越做越没劲。当你还只是有个思路的时候,别人的产品都做出来了,因为你的水平跟别人相差太远,人家早就想到的问题,你现在才开始认识。水平越高,他就看得越远,那么他的思维就越开阔;水平越低,想的问题就越窄。 
    64位cpu是这个十年和下个十年最重要的技术之一,谁抓住这个机会,谁就能抓住未来赚钱的商机。cpu是英特尔设计的,对这一点他肯定清楚。举例来说,如果从64位的角度来看现在的32位,就像从现在的角度去看dos。你说dos很复杂吗?当你在dos年代的时候,你会觉得dos很复杂。你说现在的windows不够复杂吗?windows太复杂了,但是你到了64位的时候再去看windows,就如同现在看dos一样。 
    整个64位系统的平台和思维方式、思路都比现在更开阔,打个比方说,现在的windows里面能开n个dos窗口,每个dos窗都能运行一个程序。到达64位的时候,操作系统事实上能做到开n个x86,开n个windows 98,然后再开n个windows 95都没有问题,系统能做到这一步,甚至你的系统内开n个windows nt都没有关系。这就是64位和32位的差别。所以,微软的那些“老头”,四、五十岁的那几个做核心的人,现在正在玩这些东西。你说微软的技术它能不先进吗?是linux那几个玩家能搞定的吗? 
    微软的技术非常雄厚,世界计算机的最新技术绝对集中在这几个人手里。而且这几个人的思维模式非常开阔,谁都没有意识到的东西他早就开始做了。现在64位的cpu都出来一二年了,你说有什么人去做这些应用吗?没有,有的就是那几个unix厂商做好后给自己用的。 

    所以,追求技术的最高境界的时候,实际上是没有年龄限制的。对我来说,现在都三十三了,我从来没有想过退出这行,我觉得我就能玩下去,一直玩到退休都没有问题。我要时刻保持技术的最前端,这样的话对我来说是不困难的,没有任何累的感觉。 
    很多人说做程序不是人干的事情,是非人的待遇。这样,他们一旦成立一个公司,做出一点成绩,在辉煌的时候马上就考虑退出。因为他们太苦了,每天晚上熬夜,每天晚上烧了两包烟还不够,屋子里面简直就缺氧了,好像还没有解决问题。 
    白天睡觉,晚上干活,那当然累死了,这是自己折腾自己。所以,做程序员一定要有一种正常的心态,就是说,你做程序的时候,不要把自己的生活搞得颠三倒四的。如果非得搞得晚上烧好多烟才行,这样你肯定折腾不到三十岁,三十岁以后身体就差了。 
    事实上,

    梁肇新:
     1970年出生于广西玉林,1989年就读于广西大学;
     1993年大学毕业后进入珠海巨人公司,从事软件开发工作,深入研究了Windows内核,开发出汉字平台系统;
     1995年7月离开巨人公司,独立创业;
     1997年独立开发出使其一举成名的《超级解霸3.0》,独创"Direct -CDROM"技术,因解决了电脑上播放VCD的读死问题而蜚声海内外;
     1999年创立北京世纪豪杰计算机技术公司,担任董事长兼首席程序员,在视音频编解码、网络传输、图像处理、操作系统等四大领域拥有多项专利。 

    “梁肇新这个人了不起,他走了一条跟我完全不同的路,依靠自学把Windows系统研究透了,不仅在编程技术上成为了绝顶的高手,而且在思想上也达到了很高的高度。我非常钦佩他。”
                    —陈榕(北京科泰世纪有限公司首席科学家,前微软COM+开发组核心成员)

    本书的作者梁肇新先生是国内著名的编程高手。他开发的“豪杰解霸”系列软件产品在中国的通用软件市场中是一个难得的亮点。我听过很多关于他的故事,给我的感觉是,他的编程技术,他的能力,他的意志品质和他的经历就好像一段传奇,相信他也是很多程序员心中的榜样。传奇是无法复制的,但是如果一个程序员对榜样仅仅抱着仰慕的心情而没有超越的野心,大概算不上是一个合格的程序员,而如果仅仅有超越的野心而不善于从榜样的身上学习,恐怕也算不上聪明的程序员。

        一般在事业上最成功的程序员都不太愿意动手写作。很多人是太忙不想写,也有一些人是想写却写不好。难得梁肇新先生这样的编程高手愿意抽出宝贵的时间,将自己的技术心得与读者分享,不能不说是中国程序员的幸事。梁先生在这本书里论述了多方面的技术问题,却都讲得相当深入。表面上来看,这本书的内容有些分散,其实形散而神聚,通篇体现出一个核心思想,就是要迎难而上,务求甚解,无论是硬件原理、操作系统模型还是MMX指令,一定要自己动手,把道理彻底弄明白。读者如果能够从书中感受到这种精神和方法,那么应该说就是大有收获的。

  • 给年轻工程师的十大忠告123全集

    2007-05-21 18:54:34

    给年轻工程师的十大忠告  
      诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强! 

    [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手! 

    [2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师! 

    [3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。8051很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此! 

    [4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低! 

    [5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务,法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!  

    [6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!! 

    [7]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错! 

    [8]工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住! 

    [9]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会... 

    [10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功! 
    (秦风) 

    给年轻工程师十大忠告---后话 
    发布时间:2003-02-24 作者: 露寒人远 
      
      笔者去年写过一篇〈给年轻工程师十大忠告〉的文章,先后发表在21IC、大测控和网易等处。本是随意感触之笔,不料却引起轰动,议论纷纷,迄今已经在2600多个站点转载,浏览者不下百万之众。其中转载者竟然写出“一个美国老工程师的心里话--给年轻工程师的十大忠告”云云,让人觉得很有意思,咱这土包子不曾去过美利坚合众国,很崇敬人家的先进技术,只是对那些去国外洗过几年盘子,伺候洋人,回来却在乡亲们面前摆谱充大爷的人从来都是嗤之以鼻(狐假洋威)!也仔细浏览过很多读者反馈的意见和看法,大多数表示赞同,也有一些人表示了不同意见。这里针对大家的一些看法,作出一些回应,表示对大家的谢意(鞠躬!)。 
      笔者技术出身,技术上没啥造就,也正应了一些读者说的,三十好几岁还没啥成绩就该考虑考虑了。十余年的工程师生涯,先后一起喝酒、共事的工程师不下千人,高手也遇到不少,对他们的所思所想了解比较深刻,再加上自己漂泊打工的漫长坎坷经历,感触颇多,方成彼文,希望能对咱师弟师妹有所帮助。 
      我在前文中说得很明白,绝大多数人并不指望成为教授、院士!实际上也不可能!大多数工程师在企业工作,完全是商业运营,谁舍得花大把银子给你装备先进测试设备,送你参加各种学术会议,为你准备齐全的国内外专业期刊杂志,有耐心等你一两年出成果?笔者曾经被迫只用一台指针式三用表做寻呼台的编码器,累得吐血,你想能保证技术指标吗?你再看看国外大公司工程师的工作环境,你就知道自己有没有希望!当然你很努力,难道别人就不努力啦? 
      在科研院所特别是军工单位当然条件好很多,国家也舍得花钱。本人毕业初期曾经在某大型军工研究所工作,当时就有500MHZ的四通道数字示波器,还带微型打印机,可出来之后在台湾人、香港人那里都再也没有碰见,更别说从玉米地走出来的私营土老板了。可惜目前的管理体制太差,严重制约技术进步,任人唯亲,裙带关系,人浮于事,条条框框......有点新思维的人不是被打击就是被晾起来,有点本事的都跑了,相信很多人对此有体会,我也遇到很多从这些地方出来的工程师,我的一位师兄在内地某军工研究所工作,苦熬十几年,参加过多项部级大项目的开发,单片机开发颇有一些名气,最近来信说要下海来深圳打工,单位一房改,多年的积蓄翻了个底朝天,女儿的学费没着落,心寒了,走了! 
      当然,如果你以搞技术为乐趣,而不在意其他,那另当别论!总之,对大多数人而言,正确的心态是把技术看成养家糊口的饭碗,我经常给我这里的工程师讲:不要以为我们比门口钉鞋的张大爷高尚,本质上是一样的,都是靠手艺吃饭而已!实际上他的综合素质并不比我们低,而且在很多方面要向他学习(工程师的性格缺陷在前文已经叙述)。 
      再者,大家不是庙里的和尚,女朋友,家庭,小孩,孝敬父母.....这些都是你需要考虑的,否则,万分之一,你幸运地成了专家,却众叛亲离值得吗?我这里有几个工程师(有一位还曾是大学讲师,堪称软件高手)女朋友、老婆跟人跑了,伤心欲绝,为啥,都是银子惹得祸。 
      有人说,社会总得有工程师吧,不然......没错!多数工程师最终还是工程师,即使他不愿意,没办法,总不能跟自己的肚子过不去吧!干这个总算有小小体面,总算能裹腹,又不是所有的人都能发达!收起自己的理想,把自己算进门口卖荔枝的小姑娘一伙人,老老实实,过过日子,也不失为一种活法。别老有想头,自尊。老板可以道貌岸然地请你吃饭卡拉OK,奉承你几句,别飘飘然,骨子里就是把你和她们看成一类人,鄙视得很呢!笔者混到研发经理,总工的位置上都身同感受,更何况咱们这些还在埋头焊电路板的师弟师妹。 
      既然大多数人还是得搞技术,说这么多有什么用?其实道理大家都明白,但笔者有两点用意:一是师弟师妹们刚踏入行业,可塑性很强,或许能对他们有一些启发,能少走一些弯路,就很开心了。二是笔者的一些感触,不吐不快。老工程师中毒比较深,需要下重药才行。我正考虑给自己来一剂哩! 
      最后,为了避免人家把我这土生土长的纯种大陆工程师再搞成洋鬼子或假洋鬼子,让人心里不爽,干脆就署个名吧。秦风 

    给年轻工程师的十大忠告之三[转帖] 
    [ 作者:秦风    转贴自:中国测控联盟http://www.mcaxis.com 
       两年前写过一篇《给年轻工程师的十大忠告》,过了大半年又写了《给年轻工程师的十大忠告》后话,均引起工程师们的热烈关注,很多人写了邮件给我,或称呼为“老师”,或称呼为“大哥”。“老师”自不敢当,“大哥”权且担当,岁数大,过来人而已。由于工作关系,而且信件比较多,不能一一回复,在此深表歉意。这里写出之三,算是对大家的一个交代。 
       很多年轻的朋友对前途迷茫,“不知该往哪里去”,其实,现在社会机会多多,有点出息也不是没有机会,关键是方向的把握。人不能改变社会,只能适应社会,社会需要什么样的人,咱们就朝这个方向修炼,即使修不成罗汉,至少也能修成满面油光的和尚!年轻的朋友走上社会,往往心高气傲,志向远大,随着不断遇到挫折,愿望会越来越小,很多人过了三十就只求小康温饱,何也?自信心逐渐褪色,主观思想逐渐现实,家庭的拖累,环境的限制,个人性格的缺陷等等。我始终认为:性格决定命运!知识或技能是次要的,而心态和性格才是主要的。如同企业选人才,首先是他的性格,是否属于开放、包容一类,是否善于与人交流沟通,是否能够专注,是否善于自我总结,是否没有偏执症状等,而技能的高低反而在其次。年轻朋友们掌握这个大方向是有前途的关键,几乎决定了一生的命运!
        当然,上面的话有些虚幻,不是那么明确。每个人的具体情况不同,当然不可能走同样的路。但几个原则却是一致的。在前面两篇文章中也有叙述:千万不可沉湎于技术,什么叫沉湎?就是神思全部的投入,做了一个项目如同范进中举般欣喜若狂,觉得自己才是最聪明智慧的人,老板、同事这个不懂,那个无知,好象自己才是天下的英才,其实这种想法很幼稚、很愚蠢,是自恋症而已,永远记住:自己是沧海一粟;要善于丰富自己的各项技能,知识面要广泛,什么是复合型人才,说白了,就是一物多用。每一行、每一个职位都有其高深之处,别以为只有C++才是学问,很多工作的学问比C++要复杂很多;有出息未必一定要去做销售,但销售确实是最锻炼人的综合能力的工作,是对人的综合素质的考量。因此,我非常支持能去做一段时间的销售,哪怕你不喜欢,哪怕不是为了银子,只要去做,一生将收益无穷,这是切身感受!最的好处是学会了与人沟通的技巧、理解了解别人,培养市场感觉,这恰恰是那些闭门造车的工程师感觉前途渺茫的最根本原因!其实每个话题都值得写大篇文章,这里只能简短截说,讲个大概。
        人人都有理想或目标,对绝大部分人而言,你没有希望成为比尔.盖茨、李嘉诚,也没希望成为陈景润、钱学森,你可以不信邪,你可以认为自己空前绝后,你一辈子只能是普通人!你一样需要钱,甚至是渴望。社会认可一个人的尺度也是钱,而不是你学会了单片机!单片机能够让你裹腹,却不能让你挣脱钱的束缚,为了钱,你不得不点灯熬油搞开发,而此时你的小学结业的大老粗老板正搂着小蜜喝着法国红酒洗桑那,而你还得挤出笑脸谄媚地吹捧他,你也会为了区区几百元的年终奖贬低同事以抬高自己的身价……这就是现实,这就是社会!我在这里不是刻意贬低工程师,只是想说明,技术的高低与社会道德没有直接关系,如果非要说不同,那就是知识分子更虚伪!其实我们都是普通人而已。
        既然是普通人,就该用普通人的眼光看待人和事物。说明白了,怎么多挣钱才是唯一的正途。既然目标是挣钱,那么其他就是其次了。可能有人说,谁都想挣钱,不就是没办法吗?的确,挣钱不容易,但观念错了,就真正没希望了,所以首先要改变观念,把自己和街头卖水果的婶子看成一类人,放下架子,融进社会中去,卖水果也有学问,起码人家察言观色、判断人的眼光绝对在你之上。别看你的老板笑眯眯地夸你能干,是个人才,那是免费的兴奋剂而已,骨子里看你不过是个臭打工仔,和那些民工没什么两样。
        有人说,我的技术好,工资也不少啊?的确,有那么一些技术过硬的人可以拿5、6K,甚至10K以上,一般也就是这个数字,可你知道,这个数字在很多初中毕业的销售人员看来其实很一般的。我时常遇到年收入10几万甚至更高的销售人员,可你知道,他们连写个报告都文理不通啊。据统计中国的百万富翁有300万,你说你排在哪里?还在为娶媳妇的房子发愁呢。
       从来就没有什么救世主,也没有神仙皇帝,要改变一切,只有靠我们自己!
       当然,我不是说工程师都去跑销售挣钱,而是说要结合自己的特点,优势寻求发展机会。有人说哪里有机会啊?其实机会就在身边,就看你有没有眼光看到,就看你有没有能力抓住!
       没有眼光,所以要练眼光,没有能力,所以要修炼工夫!有了好的项目,一旦与市场结合,也就是发展的机会。说起来简单,操作起来其实蛮需要技巧,需要很多专业知识以外的东西。详尽的阐述还是放在以后的文章里吧。别太执着于专业,好象离开专业就损失了大学的知识,好象就失去了精神依托。专业只是你取得成功的一个因素,而且还远远不是主要因素,其实你可能在其他方面更有天赋而你还没有觉察,当局者迷而已!敢于舍弃,没有舍弃,如何获得?我们已经清楚,自己是普通人,现在最需要的是钱,哪怕我们是理想主义者,钱就能帮助我们实现理想!既然如此,还有什么可犹豫的?
        当然,也不要盲目,假如你的功夫(不仅仅是专业知识)还很幼稚可笑,最好闷着头先修炼,盲动造成损失不谈,关键是打击了你的信心,甚至人你认为:咱就是当工程师的材料,做别的,咱不行啊。唉,就这样算了吧,该放就放!聪明的做法是先在老板那里拿着薪水练兵,多看多听多琢磨,却要少说,别太早让老板看出你的野心来。
        现在是夜里三点二十二分,扯了许多,很累,眼睛之流水。还是准备结束这篇文章吧,余下的话到“之四”里说吧。顺便说说,一些正统人士可能反对或怀疑我的某些观点,咱要事先声明,绝无坏心,引导师弟师妹们走上邪路,这是浪迹江湖十余年的工程师生涯的真实体会而已,对与错,先不要下结论,让师弟师妹们体会几年之后告诉你他们的感受再说!

  • .net工程师必懂题

    2007-05-21 17:58:53

    1.面向对象的思想主要包括什么?

    2.什么是ASP.net中的用户控件

    3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?

    4.列举一下你所了解的XML技术及其应用

    5.值类型和引用类型的区别?写出C#的样例代码。

    6.ADO.net中常用的对象有哪些?分别描述一下。

    7.如何理解委托?

    8.C#中的接口和类有什么异同。

    9.。net中读写数据库需要用到哪些类?他们的作用

    10.UDP连接和TCP连接的异同。

    11.ASP.net的身份验证方式有哪些?分别是什么原理?

    12.进程和线程分别怎么理解?

    13.什么是code-Behind技术。

    14.活动目录的作用。

    15..net中读写XML的类都归属于哪些命名空间?

    16.解释一下UDDI、WSDL的意义及其作用。

    17.什么是SOAP,有哪些应用。

    18.如何部署一个ASP.net页面。

    19.如何理解.net中的垃圾回收机制。

    20.常用的调用webservice方法有哪些?

     

    1.      填空: (1)面向对象的语言具有___继承性、_封装___性、___多态性。

            (2)能用foreach遍历访问的对象需要实现 IEnumerable接口或声明GetEnumerable 方法的类型。

            (3)列举ADO.net中的五个主要对象Command、Connection、DataSet、DataSetCommand、DataReader。

    2. 不定项选择:

    (1) 以下叙述正确的是: 

          A. 接口中可以有虚方法。     B. 一个类可以实现多个接口。 
          C. 接口不能被实例化。       D. 接口中可以包含已实现的方法。 

       (2) 从数据库读取记录,你可能用到的方法有:

          A. ExecuteNonQuery            B. ExecuteScalar

          C. Fill                        D. ExecuteReader

    3. 简述 private、 protected、 public、 internal 修饰符的访问权限。


    4. 写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键,  注意:ID可能不是连续的。) 


    5 .列举ASP.NET 页面之间传递值的几种方式。 


    6. 写出程序的输出结果 

    class Class1  { 
           private string str = "Class1.str"; 
           private int i = 0; 
           static void StringConvert(string str)  { 
               str = "string being converted."; 
           } 
           static void StringConvert(Class1 c)  { 
               c.str = "string being converted."; 
           } 
           static void Add(int i)  { 
               i++; 
           } 
           static void AddWithRef(ref int i)  { 
               i++; 
           } 
           static void Main()  { 
               int i1 = 10; 
               int i2 = 20; 
               string str = "str"; 
               Class1 c = new Class1(); 
               Add(i1); 
               AddWithRef(ref i2); 
               Add(c.i); 
               StringConvert(str);         
               StringConvert(c); 
               Console.WriteLine(i1); 
               Console.WriteLine(i2); 
               Console.WriteLine(c.i); 
               Console.WriteLine(str); 
               Console.WriteLine(c.str); 
           }  
        } 


    7.写出程序的输出结果 

    public abstract class A  

            public A()  
           { 
                Console.WriteLine('A'); 
            } 
            public virtual void Fun()  
           { 
                Console.WriteLine("A.Fun()"); 
            } 

    public class B: A  

            public B() 
           { 
                Console.WriteLine('B'); 
            } 

            public new void Fun()  
           { 
                Console.WriteLine("B.Fun()"); 
            } 

            public static void Main()  
           { 
               A a = new B(); 
               a.Fun(); 
            } 


    8.      写出程序的输出结果: 
    public class A  

            public virtual void Fun1(int i) 
           { 
                Console.WriteLine(i); 
            } 

            public void Fun2(A a)   
           { 
                a.Fun1(1); 
                Fun1(5); 
            } 


    public class B : A  

            public override void Fun1(int i)    
           { 
                base.Fun1 (i + 1); 
            } 

            public static void Main()   
           { 
                B b = new B(); 
                A a = new A(); 
                a.Fun2(b); 
                b.Fun2(a);          
            } 

     

    9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 

       求第30位数是多少, 用递归算法实现。(C#语言)


    10.  程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言) 

    要求:  1.要有联动性,老鼠和主人的行为是被动的。

    2.考虑可扩展性,猫的叫声可能引起其他联动效应。 

    问题: 
    1.ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释 
    2.什么是WEB控件?使用WEB控件有那些优势? 
    3.请解释ASP。NET中以什么方式进行数据验证? 
    4.请谈谈对正则表达式的看法? 
    5.ASP。NET中共有几种类型的控件?各有什么区别? 
    6.WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。 
    7.WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用? 
    8.ASP。NET与ASP相比有什么优势? 
    9.请解释web.config文件中的重要节点 
    10.请解释ASP。NET中的web页面与其隐藏类之间的关系? 
    11.什么是viewstate,能否禁用?是否所用控件都可以禁用? 


    13.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决 
    14.请解释一个WEB页面中代码执行次序。 
    15.请解释什么是上下文对象,在什么情况下要使用上下文对象 
    16.请解释转发与跳转的区别? 
    17.请解释ASP.NET中不同页面之间数据传递有那些方式? 
    18.请解释ASP。NET中button  linkbutton imagebutton 及hyperlink这四个控件之间的功别 
    19.请解释一下。NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。 
    20.如果出现ASP。NET中的事件不能触发可能由于什么原因造成? 
    21.如果需要在datagride控件中的某一列中添加下拉列表框并绑定数据怎么解决? 
    22.请解释asp.net中的数据绑定与传统数据绑定有什么区别? 
    23.请解释.net采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,以图示方式解释。 
    24.请解释接口的显式实现有什么意义? 
    Q:您在什么情况下会用到虚方法?它与接口有什么不同?

    Q:Override与重载有什么区别?

    Q:值类型与引用类型有什么区别?

    Q:怎样理解静态变量?

    Q:向服务器发送请求有几种方式?

    Q:DataReader与Dataset有什么区别?

    Q:如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

    Q:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

    Q:软件开发过程一般有几个阶段?每个阶段的作用?

    Q:微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?

    Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式?

    Q:您对WebService的体会?

    以下几道题目如果您不会,请较为详细的描述您的解决思路和方法

    Q:通过超链接怎样传递中文参数?

    Q:请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

    Q:请编程实现一个冒泡排序算法?

  • 把业务逻辑放在服务器上要怎么实现

    2007-05-21 17:53:29

    创建业务实体层,映射数据库的关系,其业务逻辑在中间服务器层实现,减轻了数据库服务器的压力。有利于负载均衡
  • Java程序开发者需要了解的十大清规戒律

    2007-05-21 17:52:56

    对Java开发者来说,有许多的标准和最佳实践。本文列举了每一个开发人员必须遵从的十大基本法则;如果有了可以遵从的规则而不遵从,那么将导致的是十分悲惨的结局。


    1. 在你的代码里加入注释

    每个人都知道这点,但不知何故忘记了遵守。算一算有多少次你“忘记”了添加注释?这是事实:注释对程序在功能上没有实质的贡献。但是,你需要一次又一次的回到你两个礼拜之前写的代码上来,可能一辈子都是这样,你一定记不住这些代码为什么会这样。如果这些代码是你的,你还比较的幸运。因为它有可能让你回忆起。但是不幸的是,很多时间,这些代码是别人的,而且很有可能他已经离开了公司。


    2. 不要让事情复杂化

    我以前就这么干过,而且我相信所有的人都这么干过。开发人员常常为一个简单的问题而提出一个解决方案。我们为仅仅只有5个用户的应用而引入EJBs。我们为一个应用使用框架而它根本不需要。我们加入属性文件,面向对象的解决方案,和线程到应用中,但是它根本不需要这些。为什么我们这样做?我们中的一些人是因为不知道怎么做更好,但是还有一些人这样做的目的是为了学习新的知识,从而使得这个应用对于我们自己来说做得比较有趣。


    3. 牢牢记住——“少即是多(less is more)”并不永远是好的

    代码的效率是一伟大的事情,但是在很多情况下,写更少的代码行并不能提高该代码的效率。请让我向你展示一个简单的例子。

     

    if(newStatusCode.equals("SD") && (sellOffDate == null ||
    todayDate.compareTo(sellOffDate)<0 || (lastUsedDate != null &&
    todayDate.compareTo(lastUsedDate)>0)) ||
    (newStatusCode.equals("OBS") && (OBSDate == null ||
    todayDate.compareTo(OBSDate)<0))){
    newStatusCode = "NYP";
    }
     


    我想问一句:说出上面的那段代码的if条件想干什么容易吗?现在,我们再来假设无论是谁写出这段代码,而没有遵从第一条规则——在你的代码里加入注释。

    如果我们把这个条件分到两个独立的if陈述句中,难道不是更简单一些吗?现在,考虑下面的修正代码:

     

    if(newStatusCode.equals("SD") && (sellOffDate == null ||
    todayDate.compareTo(sellOffDate)<0 || (lastUsedDate != null &&
    todayDate.compareTo(lastUsedDate)>0))){
    newStatusCode = "NYP";
    }else
    if(newStatusCode.equals("OBS") && (OBSDate == null ||
    todayDate.compareTo(OBSDate)<0))
    {
    newStatusCode = "NYP";
    }
     


    难道它不是有了更好的可读性?是的,我们重复了陈述条件。是的,我们多出了一个多余的“IF”和两对多余的括弧。但是代码有了更好的可读性和可理解性。


    4. 请不要有硬代码

    开发人员常常有意识的忘记或者忽视这条规则,原因是我们,和一般时候一样,在赶时间。如果我们遵从这条规则,我们可能会赶不上进度。我们可能不能结束我们的当前状态。但是写一条额外的定义静态常量的代码行又能花费我们多少时间呢?

    这里有一个例子。

    public class A {


    public static final String S_CONSTANT_ABC = "ABC";


    public boolean methodA(String sParam1){

    if(A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1)){

    return true;

    }

    return false;

    }

    }

    现在,每一次我们需要和某一些变量比较字符串“ABC”的时候,我们只需要引用S_CONSTANT_ABC,而不是记住实际的代码是什么。它还有一个好处是:更加容易在一个地方修改常量,而不是在所有的代码中寻找这个代码

     

    不要发明你自己的frameworks


    已经推出了几千种frameworks,而且它们中的大多数是开源的。这些frameworks中间有很多是极好的解决方案,被应用到成千上万的应用中。你们需要跟上这些新frameworks的步伐,最起码是肤浅的。在这些极好的、应用广泛的frameworks中间,一个最好的、最直接的例子是Struts。在你所能想象到的frameworks中,这个开源的web frameworks对于基于web的应用是一个完美的候选者。但是你必须记住第二条规则——不要让事情复杂化。如果你开发的应用只有三个页面—请,不要使用Struts,对于这样一个应用,没有什么“控制”请求的。


    6. 不要打印行和字符串相加

    我知道,为了调试的目的,开发人员喜欢在每一个我们认为适合的地方添加System.out.println,而且我们会对我们自己说,会在以后删掉这些代码的。但是我们常常忘掉删去这些代码行,或者我们根本就不想删掉它们。我们使用System.out.println来测试,当我们测试完成以后,为什么我们还能接触到它们呢?我们可能删掉一行我们实际需要的代码,仅仅是因为你低估了System.out.println所带来的伤害,考虑下面的代码:

     

    public class BadCode {
    public static void calculationWithPrint(){
    double someValue = 0D;
    for (int i = 0; i < 10000; i++) {
    System.out.println(someValue = someValue + i);
    }
    }
    public static void calculationWithOutPrint(){

    double someValue = 0D;
    for (int i = 0; i < 10000; i++) {
    someValue = someValue + i;
    }

    }
    public static void main(String [] n) {
    BadCode.calculationWithPrint();
    BadCode.calculationWithOutPrint();
    }
    }
     

    根据测试,calculationWithOutPrint()方法的运行花了0.001204秒。相比较而言,运行calculationWithPrint()方法花了令人惊讶的10.52秒。


    (如果你不知道怎么得到一个像这样的表格,请参阅我的文章“Java Profiling with WSAD” Java Profiling with WSAD)

    避免这样一个CPU浪费的最好方法是引入一个包装器方法,就象下面这样:

     

    public class BadCode {

    public static final int DEBUG_MODE = 1;
    public static final int PRODUCTION_MODE = 2;

    public static void calculationWithPrint(int logMode){
    double someValue = 0D;
    for (int i = 0; i < 10000; i++) {
    someValue = someValue + i;
    myPrintMethod(logMode, someValue);
    }
    }

    public static void myPrintMethod(int logMode, double value) {


    if (logMode > BadCode.DEBUG_MODE) { return; }


    System.out.println(value);
    }
    public static void main(String [] n) {
    BadCode.calculationWithPrint(BadCode.PRODUCTION_MODE);
    }
    }
     

    根据测试,使用了StringBuffer的那个方法只花了0.01秒来执行,而那个使用了字符串相加的方法却花了0.08秒来运行。选择是显而易见的。


    7. 关注GUI

    不管这听起来有多么可笑,我都要再三地说明:GUI对于商业客户来说和功能和性能一样重要。GUI是一个成功的系统的必要的一部分。(但是),IT杂志常常倾向于忽视GUI的重要性。很多机构为了省钱而不雇用那些在设计“用户友好”GUI方面有丰富经验的设计人员。Java开发人员不得不依赖他们自己的HTML知识,但是他们在这方面的知识十分有限。我看到过很多这样的应用:它们是“计算机友好”,而不是“用户友好”我很少很少能看到有开发人员既精通软件开发,又精通GUI开发。如果你是那个不幸的开发人员,被分配去开发用户接口,你应该遵从以下的三条原则:

    一、不要重复发明轮子。寻找有相似用户接口需求的已经存在的系统。

    二、首先创建一个原型。这是非常重要的步骤。客户喜欢看看他们将要得到什么。这对你来说也是很好的,因为在你全力以赴而做出一个将要使用户生气的用户接口之前,你就得到了它们的反馈。

    三、戴用户的帽子。换一句话说,站在用户的视角检查应用的需求。例如,一个总结页面到底要不要分页。作为一个软件开发者,你倾向于在一个系统中忽视分页,因为这样使得你有比较少的开发复杂性。但是,这对于从一个用户的视角来说却不是最好的解决方案,因为小结的数据将会有成百上千个数据行。


    8. 永远准备文档化的需求

    每一个业务需求都必须文档化。这可能在一些童话故事里才能成真,但是在现实世界却不可能。不管时间对于你的开发来说是多么紧迫,也不管交付日期马上就要到来,你永远都必须清楚,每一个业务需求是文档化的。


    9. 单元测试、单元测试、单元测试

    我将不会深入地讨论哪些什么是把你的代码进行单元测试的最佳方法的细节问题。我将要说的是单元测试必须要做。这是编程的最基本的法则。这是上面所有法则中最不能被忽略的一个。如果你的同事能为你的代码创建和测试单元测试,这是最好不过的事。但是如果没有人为你做这些事,那么你就必须自己做。在创建你的单元测试计划的时候,遵从下面的这些规则:

    一、在写代码之前就写单元测试用例。

    二、在单元测试里写注释。

    三、测试一切执行“interesting”功能的公有方法(“interesting”的意思是非setters或getters方法,除非它们通过一种特殊的方式执行set和get方法)。


    10. 记住—质量,而不是数量。

    不要在办公室里呆得太晚(当你不必呆的太晚的时候)。有时,产品的问题、紧迫的最终期限、意想不到的事件都会阻止我们按时下班。但是,在正常情况下,经理是不会赏识和奖赏那些下班太晚的员工的,他赏识他们是因为他们所做产品的质量。如果你遵从了我上面给出的那些规则,你将会发现你的代码更加少的bug,更加多的可维护性。而这才是你的工作的最重要的部分。


    总结

    在这篇文章里,专家给出了针对Java开发人员的十个重要的规则。重要的不仅仅是知道这些规则,在编码的过程中遵从这些规则更为重要。希望这些规则能够帮助大家成为更好的编程人员和专业人员。

912/5<12345>
Open Toolbar