`
phpxer
  • 浏览: 71508 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

从事计算机需要修身养性

阅读更多
从事计算机是需要修养性格的。
所以专门在这里开辟一个栏目,将为了技术而修身养性。


第一,脚踏实地地从事计算机工作,而不是浮躁和狂妄。

     真正进入这个行业已经两年多了,回顾两年多的历程,我付出了很多努力,做出了一些小东西,很多人都觉得我计算机很厉害。唉,其实我自己仔细看看我的历程,得失寸心知。一句话:完全是坚强意志下的苦干蛮干,编码--错误--编码--错误--.......--解决,然后一切又重新开始。从来没有去想过为什么会出错,只知道从网上找答案,从书上搜答案,以及凭借意志力和以身体为代价去无穷无尽地调试,试验! 仔细一想,除了苦力和不思进取,没了。
     我会Java了吗?想想,我一直在coding,或者在别人的基础上coding(使用开源项目),在出版商和一些狂热分子的鼓动下,学习这个学习那个,但其实,我并不明白Spring哪里比EJB好,抑或是Ruby On Rails哪里比J2EE强。用过Hibernate,但是一直都是用它编码,然后出错,然后调试,查文档,看书,搜索.......用 Hibernate的过程一点都不美丽,除了Bug还是Bug。学了ASP,学PHP,用PHP去模拟面向对象,搞得性能很差,但是到现在我也没有搞清楚为什么性能差。 写代码速度巨慢。一点都不见得生活快乐,幸福........
    为什么? 原因其实很简单: 我一直在跟风,一直在学习工具怎么用,却从来没有去仔细钻研这个工具,没有搞明白工具是怎么造的。那我这个技术高手,无非是个旧时代的铁匠吧。其实连铁匠都算不上,人家师傅会在撒手前把原理交代清楚,加上几十年如一日,最后还是要搞得清清楚楚的,锻锤好铁来。
    我犯了三个错误:第一,跟风,不断学习各种各样的工具,直接后果是什么工具都没有学习好。第二,学习工具,不学习本质。第三,花了很多无用功在工具的使用上。
    计算机不是快餐,工具才是快餐。长期食用快餐一定会营养不良。


第二,软件开发的目的不在于软件本身,而在于按时保质地帮助用户实现价值。
    很多时候,我总是去选择更完美的技术方案,追求软件的完美。但是最后并不见得软件好了多少,反而延迟交付时间,让用户心焦火燎地等待。
    软件需要更加完美,灵活架构,可读性强,这是肯定的。
    但是,相对于客户需要的价值--我开发软件的根本目标而言,软件架构/特性/新技术的使用等等,都是次要的,只有保证软件质量和按时交付以及用户需要的功能,才是重要的。
  
    用下面这句格言来检讨自己:
        进度让步于质量,但绝对不要为了增加新功能而错过时间表.        ---[美]Jesse Liberty
  
    为什么强调进度?如果软件不能按时交付,客户会失望,领导会着急,自己会灰心----然后他们还有自己,一起催着自己加班,赶时间,于是生活变得匆忙杂乱,生活没有质量,软件质量难以保证。如果软件出错了,我将来会更乱。长期这样下去,健康会成问题,那就变成40岁以前用钱换健康,40岁以后用钱换健康了。从个人的角度来讲,这会导致我一生的损失,损失健康,损失幸福,损失快乐。
    相反,即使功能没有全部完成,但是我交付了可使用的已完成的功能给用户,用户和领导都会即使有些不满意,但是他们也会基本满足,他们会同意合理延期。我自己也会保持好心情,然后也不用忙乱中加班,软件Bug更少。慢慢地,他们会适应我的进度(因为那是我最佳的状态),工作变得美好起来,生活幸福,身体健康。 :)

    软件质量的权衡要素:
        运行正确 > 满足要求的性能 > 易于用户交互和便于使用 >  按时交付 > 代码可维护(例如可读性,扩展等)>  更多细微功能 > 应用新技术
  
    软件的价值,包括:使用价值和时间,潜在的扩展性。

第三,从事计算机不是为了学习新技术的,而是为了造福生活,改善生活。
   让大家更满意,让自己生活更幸福,这才是从事软件开发的根本目标。

第四,深刻去钻研技术,脚踏实地去钻研科学,工作才会给人生带来附加价值。
    不说什么高尚的理想了,整天加班忙于应付,而不能控制学习和工作、生活,就算写了很多软件,学了很多技术,那就是整天在软件中死亡,人生不会因此而更有意义。

欢迎讨论

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics