2010年我的技术存档整理


以前上班的时候,碰见好的东西,不知道往哪里存,反正就是觉得以后用的找,所有到处乱存,而且是存了后很少去看,应为不知在哪啊。用我一师兄的话就不会知识管理。

看了他一篇关于知识管理的文章很有想法。今天先吧把我以前qq微博(http://t.qq.com/kongxiantao)上的一些整理一下,基本上全是关于JavaScript的。

1.关于淘宝kissy的,这里有不少的内容

官方的doc地址:http://docs.kissyui.com/kissy/docs/

  • kissy的github地址:https://github.com/kissyteam
  • kissyTeam的github地址:https://github.com/kissyteam
  • kissy开发规范地址:http://docs.kissyui.com/docs/html/styleguide/
  • kissy组件开发流程地址:http://docs.kissyui.com/docs/html/workflow/
  • kissy-tools:https://github.com/kissyteam/kissy-tools#readme
  • kissy的官方blog:http://kissyui.com/blog/
  • kissy讲解:http://www.36ria.com/site-search?q=kissy&ie=UTF-8

这些可都是好东西啊,继续精读,研读。

kissy作者的blog地址:http://lifesinger.wordpress.com/,是个牛人啊,他的每一篇blog都是精品,而且blog更新很快,在这里学了不少的东西啊

2.YSlow使用指南

http://www.yslow.net/show.php?tid=123,很好的工具,呵呵,现在一直在用

3.关于前端JS、css压缩

这两个网站压缩后的JS和CSS比JSMIn,YUI compressor压缩后等都小不少那。不过要是压缩的很多js、css,而且还有文件夹嵌套,这两个的网站就有点不好用了,

我们公司是专门写了一个程序去请求它来做的。不过,我个人的观点是:应该采用YUI compressor,理由是:

  • 是有YUI推出的,大的团对都在用这个(如淘宝),质量上有保障
  • 而这两个网站所采用的压缩,我估计也是在类似于yui compressor这样的基础上优化的,这个有机会在深入研究一下,至于有多少团队在用,再是不清楚。
  • 不管用这几个那个工具压缩后,再用GZIP在做压缩,相差很少。
  • 其它的压缩,没有深入的研究过,像JSMin,没有发言权

4.IE调试

可能是firebug使用习惯了,在IE调试其他的工具也没有折腾过,不过发现也有IE想的firebug,不过没有ff中的好用,但基本能解决问题,只需要在代码中拷贝如下代码,

IE中的Firebug酒出来了

<script type=”text/javascript” src=”http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js”></script&gt;

5.JET

官网地址:http://code.google.com/p/j-et/(在这上面折腾过一阵,这个源码容易理解,又有中文注释,有机会的在读一遍)

6.JavaScript的相关网站论坛

7.不错的文章

    • 9个优秀的基于 JavaScript 与 CSS 的 Web 图表框架:http://www.cnblogs.com/wqj0405/archive/2010/10/19/1855575.html
    • 用jquery做的桌面:http://desktop.sonspring.com/
    • 很酷的一个网站,很强悍的网站啊,检测JS 框架冲突:http://mankz.com/code/GlobalCheck.htm
    • 前端常用的调试工具:http://www.slideshare.net/taobaoued/ss-3583978
    • 雅虎的34条军规-网站优化:http://www.slideshare.net/leneli/after-yahoo-34-rules-5088505
    • Xvfb+YSlow+ShowSlow搭建前端性能测试框架:http://ued.taobao.com/blog/2010/07/07/xvfb_yslow_showslow-2/(一直说试一试,知道现在也没有做)
    • JET介绍:http://kinvix.kdv.cn/blog/?p=53
    • 22个FF插件:http://hi.baidu.com/freezesoul/blog/item/dc7dea24b453fd0b4d088d46.html
    • 2010网页设计趋势:http://blog.sina.com.cn/s/blog_449c8d500100ngj0.html
    • 50个DEMO展示html5的魅力:http://www.cnblogs.com/zhuqil/archive/2010/10/26/1861773.html
    • 26个不错的jquery幻灯片插件:http://kedou.net/blog/4565.html
    • 30个web网站设计:http://designlol.net/archives/2418
    • Firefox插件中黑客工具级的Web开发工具:http://kinvix.kdv.cn/blog/?cat=11
    • 使用Fiddler提高前端工作效率:http://www.aliued.cn/?p=2581
    • 简历中的交互设计:http://fed.renren.com/2009/10/83#more-83
    • 开心网(kaixin.com)网站前端技术分析:http://www.yixiaoer.com/?p=1066
    • 解决IE6、IE7、IE8、Firefox兼容的几种方案:http://www.yixiaoer.com/?p=1048
    • 微软等公司数据结构+算法面试100题:http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx
    • JS Test Driver :http://code.google.com/p/js-test-driver/
    • 前端优化方向:http://www.slideshare.net/nzakas/high-performance-javascript-webdirections-usa-2010
    • 前端要给力之:代码可以有多烂:http://blog.csdn.net/aimingoo/archive/2010/11/26/6036574.aspx
    • jquery 1.4.3源码解析:http://www.javaeye.com/topic/783260
    • prototype中文API:http://www.phpfans.net/manu/Prototype/
    • 75个最佳web设计资源:http://article.yeeyan.org/view/57288/22841?from_com
    • 面向程序员的数据库访问性能优化法则:http://blog.csdn.net/yzsind/archive/2010/12/06/6059209.aspx
    • wijmo—强大的jquery UI组件包:http://wijmo.com/demos/
    • 菜单360度旋转:http://cmc3.cn/n/2010/11/24/232.html
    • 如何成为一名专家级的开发人员:http://www.jobbole.com/entry.php/337
    • web开发者应该知道的最佳31个JavaScript工具:http://developer.51cto.com/art/201012/236740.htm
    • 应用最广的十大JavaScript框架:http://developer.51cto.com/art/200902/111044.htm
    • JavaScript压缩原理:http://www.slideshare.net/nzakas/extreme-javascript-compression-with-yui-compressor
    • IE内存泄露问题:http://yiminghe.javaeye.com/blog/422434
    • 攻城利器之微型框架 – Do:http://site.douban.com/widget/notes/22456/note/87598595/
    • 如何做好一份前端工程师的简历:http://ued.koubei.com/?p=873
    • 学习JavaScript不得不读的把本书:http://book.douban.com/doulist/55637/
    • html5在线测试:http://html5test.com/
    • 前端JavaScript代码组织:http://mzhou.me/?p=95230
    • JavaScript框架比较:http://hikejun.com/blog/?p=485,
    • dojo 编程规范:http://blog.bingo929.com/dojo-javascript-style-guide.html#more-3082
    • html5和css3资源汇总:http://blog.bingo929.com/html5-and-css3-tools-list.html

      新的开始


      以前的我在javaeye上注册了个bolg,地址是:http://kongxiantao.javaeye.com。本来想把它搬到wordpress上来,可是找了半天的导出工具,也没有找到好用的。的了,就干脆不找了,javaeye上的文章好多文章都是转别人的,和收藏的一些不错的文章,自己写的很少。那就从今天起,新的开始,写自己的blog。以后慢慢的把我javaeye上的好的文章(在认真读后)在转过来。

      今天就到这吧,饿了,回家吃饭去了。

      男人二十岁后应该学会的习惯


      一个男人,他应该有修养和抱负。想想,整天关注娱乐版的男人,你指望它有什么成就么?整天玩游戏的男人,整体打麻将的男人,你指望它有什么成就么?
      一、拥有自信和风度

      男人到了二十几岁后,就要开始学着用心经营自己,它体现在自己的思想与涵养上。自信是一个男人最重要的品质,自信的男人就像一只在暴风雨中战斗的海鸥,无论暴风雨多么猛烈也依旧无所畏惧。一个自信的男人,总是能够感染别人,无论这些人是朋友还是敌人。要使别人对你有信心,就必须要先对自己充满信心。自信的男人可以战胜一切困难。

      一个有风度的男人就像一片大海,不拒点滴,又包容江河。有风度使男人得到更多的青睐,不争眼前才能够放眼世界,给予别人才能够受益无穷。正所谓“宰相肚里能撑船”,一个心如大海的男人,肚中不知能撑多少船!风度偏偏让男人看上去潇洒万千。
      二、养成看书和写作的习惯

      男人到了二十几岁后,就开始要走入社会了,在与别人交往的过程中,谈吐与修养是最能征服别人的。一个有知识的男人一定是常看书的,一个有智慧的男人一定是常写作的。无论自己多忙,都要抽出时间来看看书,写写文章。因为这样做能够改变一个男人的思想与行为。一个男人要改变自己思想首先要做的就是读一本好书,读一本好书就像交了一个好朋友,它能够帮助你走好自己的路。读书的生活是最丰富多彩的,写作的时光是最能启迪智慧。

      喜欢看书和写作的男人,一定能够培养出一个好的心态。因为知识与智慧的海洋是无边无际的,但喜欢看书和写作的男人却能做到执著追求。追求是一个男人的思想,也是一个男人的行动,永不放弃地追求,无时不刻的在激励男人去战斗。在这种战斗中,使一个男人能够经历风雨的洗礼,成长为一棵参天大树。读书使男人变得的冷静,写作使男人变得成熟。
      三、要试着发现生活中的真、善、美

      男人到了二十几岁后,就要学会如何去面对生活。现在的人都开始变得浮躁,不懂什么才是“真心”地去生活。 “真”,就是对自己实事求是,不要骗自己,也不要骗别人。“真”,就是诚实做人,诚实做事。“善”,自然是善良的意思了。善待别人,就是在善待自己的生 活。“善”其实就在我们每一个人的身边,不要为难别人,不要挖苦别人,不要侮辱别人,就是善良的行为。有时你的一点点善意就能结出一个善果,使你的生活因 此而变得幸福。

      哲人说,“生活中本不缺少美,缺少的是发现美的眼睛”。是的,生活也的确是如此。不要总在惦记着自己的不幸,这样做只能使你生活的更加不幸。你觉得 “不幸”是因为你无法乐观的面对生活,生活总是充满着希望的。只要你常常抬抬头,看看阳光,你就能感受到温暖。在温暖中乐观地去追美好的人生,你自然能够 发现美。
      四、与有思想的人交朋友

      男人到了二十几岁后,就要开始有目的性地去选择朋友了。社会中的人脉关系是非常重要的,你的朋友圈子将对你的人生起着很大的影响。男人要广交朋友,多交诤友,不交损友。所谓诤友就是那些对你有帮助的朋友,而这些人往往自身也很优秀。多交诤友对一个人的生活、工作都是非常有益的。但真正的诤友也不易结交,因为这种朋友需要你付出极大的真诚,发自内心的真诚。

      有思想的朋友,他很清楚你有没有把他当作朋友。如果你只是在利用他,他在心中是不会把你当作朋友来看待的。交朋友有时并没有什么目的性,你只是觉得 这个人很有思想,值得你与之相交。但往往就是这些有思想的朋友,在你最困难的时候向你伸出他的手。朋友,是一个男人生命中最重要的元素的之一。一个男人要 想使自己像一人真正的男人那样活着,就一定要广交朋友,多交诤友。
      五、必须改掉自身的不良习惯

      男人到了二十几岁后,就必须要改掉自身的不良习惯。 不良的习惯是养成的,良好的习惯也是养成。培养自己拥有良好的习惯,就是在改掉自身的不良习惯。如果一个男人到了二十几岁后,身上还有这样那样的不良习 惯,那就是一件非常糟糕的事情了。这些不良的习惯会阻碍你人生的发展,生活会因此而失去不少光彩,事业也会因此难以取得更大的成功。

      如果你到现在还爱睡懒觉,那么清晨的第一抹阳光永远也不会照到你的笑脸上。如果你到现在还总是拖拖拉拉的,那么你将永远也无法站在冠军的位置上。如果你到现在还不会主动的去学习和工作,那么你的前途只能是一片暗淡无光的灰色。我相信没有哪一个男人想要灰色的人生,所有的男人都期望自己能有一个绚丽多彩的人生。所以为了使自己的人生绚丽多彩,男人到了二十几岁后,就必须要改掉自身的不良习惯。
      六、学会忍耐与宽容

      男人到了二十几岁后,就要学会忍耐与宽容。在社会中常有许多你无法接受的事情,但这些事情你又不得不接受时,这就需要你的忍耐。忍耐别人其实也是在 宽容别人,一个能够宽容别人的男人会显得很大度。成功的男人往往也是一个能够忍辱负重的男人。耐得住寂寞的男人从不甘寂寞,男人的忍耐是为了更好的爆发。 对那些说我们是傻瓜的人,说一句“我就是傻瓜”,使他们不知所措吧!对于那些无故指责我们的人,不要与他们争论,因为这样只会使自己变的愤怒。与其去伤害 别人,不如去宽容别人,宽容是治疗他人伤口最好的灵丹圣药。
      七、保持良好的心态,重视自己的身体

      男人到了二十几岁后,就要学会调节自己的心态,重视自己的身体。身体是革命的本钱,心态是验钞机。男人要想获取更多的财富就要拥有一副强健的体魄,男人要想长久的做首富就要拥有一种积极乐观的心态。注意饮食,经常锻练,充足的睡眠,是健康身体的保证。不要患得患失,勤奋拼搏,让心态决定一切。

      你可以不用天天去晨跑,其实那也不会占用你多长的时间,需要的只是恒心和毅力。但你一定要时常去运动一下你的身体,散步是一种不错的选择,这样做会 使你充满力量。你在冬天可以不用冷水洗澡,其实那也没有什么大不了的,因为我也曾坚持过一个冬天。但你在冬天一定要经常用冷水洗洗脸,这样做不仅可以防止 感冒,还能保持一个清醒的头脑。你可以失败,你永远要保持一种求胜的心态,战胜自己你就没有敌人。
      八、时刻保持你的微笑,让礼貌成为你的名片

      男人到了二十几岁后,要时刻保持你的微笑。笑脸迎人,说明你是一个善良的人,所有的人都愿意与善良的人打交道。不要把苦闷写在你的脸上,这样只会使别人远离你。你是什么样的人,别人通过你是否微笑着与他打招呼来判断。而这种判断对你在人家心中的印象起着很重要的作用。
      人们常说“细节决定成败”,而这细节往往就反应在你是不是一个有礼貌的人。有礼貌的人,知道关心别人。别人也会因为你的礼貌与关心,而给你走向成功的机会。 男人的名片是微笑与礼貌,它是男人成就事业的通行证。
      九、追求一个自己真正爱的女人,你一辈子也不会后悔

      男人到了二十几岁后,慢慢地就会极渴望爱情。这是非常正常的事情,千万不压抑自己这种发自内心的情感。一个男人最傻最可爱的时候就是当他爱上了一个 女人的时候。当你爱上一个女人却不知道她会不会爱上你的时候,你一定要选择一个恰当的时间向他表白。至于他是选择接受还选择拒绝那就要看你们之间的缘份和 你的努力了。男人一定要明白,女人最渴望的一定是一个深爱着她的男人。

      爱情这种事不能强求,男人一定要明白。千万不要因为得不到你的爱情就让你的友情轻易的失去,能与一个自己曾经爱过的女人成为朋友是一件不可多得的好 事。爱情之所以神圣不可侵犯,是因为它是人最心甘情愿的选择,它体现的人与人之间的尊重与信任。所以男人一定要尊重你爱着的那个女人的选择,相信她的选择 是为了她自己的幸福而做出的决定。只要你曾经追求一个自己真正爱的女人,那么你一辈子也不会后悔。
      十、为了自己的事业付出一切

      男人到了二十几岁后,一定要为了自己的事业去努力拼搏。男人最重要的就是事业,没有事业的男人不能算作真正的男人。男人的事业不定要轰轰烈烈,但一 定要有所成就,能使自己感到骄傲和自豪。一个事业心强的男人,也是一个求胜心与责任心同样强的男人。求胜心强的男人,从不甘平庸。责任心强的男人,从不惧 困难。 男人因自己成功的事业而变得高大,从而获得别人的尊重和信任。

      作为一个男人,就要为了自己的事业付出一切。要想成功你必须付出,而付出就意味你要失去一些东西。如果你不想为事业付出任何代价,那么你只能失去更多的东西,而且最后还一无所获。
      十一、爱情跟事业是可以共同拥有的

      男人到了二十几岁后,就应该努力做到爱情跟事业的双丰收。人们常说一个男人如果选择了爱情就会失去事业,如果选择了事业就得不到爱情。其实爱情和事 业本就是两回事,爱得轰轰烈烈的男人,一点也不会妨碍其获得成功的事业。一个有爱情滋润的男人一定比一个不知爱情是什么味道的男人更成熟,更有魅力,更有 干一番事业的决心。

      二十几岁的男人们,千万不要相信那些偏激的人所说的话。就像人们常说的“婚姻是爱情的坟墓”,这种说法太偏激了。婚姻与爱情的区别只是多了一些“柴 米油盐”,可以说婚姻才是一种完整的爱情,之前的爱情只是处在一种恋爱的阶段。也只有通过婚姻才能使男人和女人彻底的认识什么是爱情。爱情就是相互理解, 相互 鼓励,相互支持。在生活上彼此帮助,在事业上彼此帮助,让爱情跟事业可以双丰收。
      十二、学会勇敢一些,去承担起自己肩上的责任

      男人到了二十几岁后,要学会勇敢一些,用自己的肩膀去承担起属于自己的那份义不容辞的责任。孝顺父母是一个男人责任,疼爱妻儿是一个男人的责任,成就事业也是一个男人的责任。
      十三、永远不要放弃自己,相信自己一定能行

      男人到了二十几岁后,就必须做到永远不要放弃自己。别人之所以放弃你,那就因为你已经先放弃了自己。相信只要你不放弃自己,没有哪个人会放弃你或者 说没有哪个人能放弃你。相信自己是一个男人战胜一切的力量之源,不相信自己的男人没有成功的理由,因为他的一脚已经跨到了失败的坟墓中。

      有一句广告语,这样说“相信自己,力量在心中”。还有一句广告语,这样说“我能”。只要每个人能够做到相信自己,就一定能行。

      原文地址:http://www.mifengtd.cn/articles/a-man-after-20-should-learn.html

      我们究竟为什么不开心?(下)


      本文转贴来自:中国青年报 董月玲 张开平

      点击阅读上篇《我们究竟为什么不开心?(上)》。

      *
      他们把物质与财富,放在了快乐和意义之上

      在课堂上,本-沙哈尔不断地向听讲者发问:

      我们可以不停地追问“为什么”,来反思自己所追求的东西:可以是大房子、升职或任何其他的目标。看看要问多少个“为什么”,才能落到“幸福”的追求上?问问自己,我做的事情,对我有意义吗?它们给我带来了乐趣吗?我的内心,是否鼓励我去做不同的尝试?是不是在提醒我,需要彻底改变目前的生活?

      本-沙哈尔的哲学老师在他毕业时,给了他一点忠告:“生命很短暂,在选择道路前,先确定自己能做的事。其中,做那些你想做的。然后再细化,找出你真正想做的。最后,对于那些真正、真正想做的事,付诸行动。”

      本-沙哈尔也这样教他的学生,如何寻找能发挥自己优势和热情的工作。

      用以下3个关键问题,先来问问自己:一,什么带给我意义?二,什么带给我快乐?三,我的优势是什么?并且要注意顺序。然后看一下答案,找出这其中的交集点,那个工作,就是最能使你感到幸福的工作了。

      10多年前,本-沙哈尔遇到过一个年轻人。他是一名律师,在纽约一家知名公司上班,并即将成为合伙人。坐在他的高级公寓里,中央公园的美景一览无 余。年轻人非常努力地工作,一周至少干60个小时。早上,他挣扎着起床,把自己拖到办公室,与客户和同事的会议、法律报告与合约事项,占据了他的每一天。 当本-沙哈尔问他,在一个理想世界里还想做什么时,这名律师说,最想去一家画廊工作。

      “难道说,现实世界里找不到画廊的工作吗?”年轻人说不是的。但如果在画廊工作,收入会少许多,生活水平也会下降。他虽对律师楼很反感,但觉得没其他选择。

      因为被一个不喜欢的工作所捆绑,所以他每天并不开心。在美国,有50%的人对自己的工作不甚满意。但本-沙哈尔认为,这些人之所以不开心,并不是因为他们别无选择,而是他们的决定,让他们不开心。因为他们把物质与财富,放在了快乐和意义之上。

      “金钱和幸福,都是生存的必需品,并非互相排斥。”他说。

      他进一步说,通常在越感兴趣的事情里,人就越能发挥自己的天赋,越能做得持久。人一旦有了热情,不但动机坚定,连做事效率也会提高。举例讲,一个热爱学习的学生,可以在学习中享受创造的愉悦,而这快乐的成果,还可以帮他取得好成绩,助其获得未来的幸福。在亲密关系中也一样,两个人共享着爱情的美好,并促进彼此的成长和发展。

      许多研究表明,一个幸福的人,在生活的各个层面上都会很成功,包括婚姻、友谊、收入、工作表现以及健康。幸福与成功,存在强烈的相互作用,无论是工作上还是感情上的成功,可以带来幸福;而幸福本身,也能带来更多的成功。

      本-沙哈尔总结出这样3种工作境界:赚钱谋生、事业、使命感。

      如果只把工作当成任务和赚钱的手段,就没有任何的个人实现。这样每天去上班,只是必须而不是想去,他所期盼的,除了薪水,就是节假日了;把工作当事 业的人,除了注重财富的积累外,还会关注事业的发展,如权力和声望等。他们会关心下一个升职的机会,期望从副教授到终身教授、从教师到校长、从职员到主 管、从编辑到总编辑;假如,把工作当成使命,那工作本身就是目标了。薪水、职位固然重要,但他们工作,是因为他们想要做这份工作,动力源自内心。工作是一 种恩典,而不是为人打工。他们对工作充满热情,在工作中自我实现,获得充实感。他们的目标,正是自我和谐的目标。

      有一项研究,是针对医院清洁工的。一组人觉得自己的清洁工作很无聊,没啥意义;但另一组人,觉得很有意义,做得很投入。他们与护士、病人以及家属交 谈,想办法让医院员工、病人舒适。他们看待工作的角度更高,并在其中找到了意义:我不仅仅是个倒垃圾和洗衣服的人,正是我的工作,让医院正常运转,帮助病 人更快地康复。

      就像第二组人,由于在日常工作中找到了使命感,因而从中也得到了更多的意义和快乐,他们与服务对象的关系,也不再是简单的金钱关系。有时候,人们并没有换工作,或改变工作环境,他们所做的,只是赋予了工作本身更多的意义,从中发现乐趣,因而也提升了幸福感。

      可以想像,一个因为家长的压力而学法律的人,是无法在其中找到长久快乐的;相反,如果是基于对法律的热爱而成为律师的话,那他在维护公义的同时,也会觉得很幸福。

      “一个在工作中找到意义与快乐的投资家,一个出于正确动机的商人,绝对要比一个心不在焉的和尚高尚和有意义得多。”本-沙哈尔笃定地说。

      不同的人,会在不同的事里找到意义。如创业、当义工、抚养子女、行医、甚至是打家具。重要的是,选择目标时,必须确定它符合自己的价值观、爱好,符合自己内心的愿望,而不是为了满足社会标准,或是迎合他人的期待。“真我的呼唤”,就是使命感。

      “那真是神奇的时刻。”本-沙哈尔用一段话,描述这种美妙的体验:我甚至形成了一种迷信,世上确实有看不见的力量在帮我。只要你追随自己的天赋和内 心,你就会发现,生命的轨迹原已存在,正期待你的光临,你所经历的,正是你应拥有的生活。当你能够感觉到自己正行走在命运的轨道上,你会发现,周围的人, 开始源源不断地带给你新的机会。

      “在追求有意义而又快乐的目标时,我们不再是消磨光阴,而是在让时间,闪闪发光。”

      *
      我也有不快乐的时刻,因为我们是人

      一天,在哈佛的食堂,有个学生走到本-沙哈尔面前,问他:你就是那个教人如何快活的老师吧。学生接着又说:你要小心,我的室友选了你的课,如果哪天 我发现你并不快乐,我就要告诉他,别再上你的课。本-沙哈尔看着这个学生,笑着道:没关系,我现在就可以告诉你,我也有不快乐的时刻,因为我们是人。

      “总有人问我,你能帮我消除痛苦吗?可是为什么要用这种态度来对待痛苦。痛苦,是我们的人生经验,会让我们从中学到很多。人生的成长和飞跃,经常发生在你觉得非常痛苦的时刻。”

      漫漫人生,每个人都不可避免地会面临悲伤的时刻,比如经历失败或失去,但我们依然可以活得幸福。事实上,期盼无时无刻的快乐,只会带来失望和不满,并最终导致负面情绪的产生。

      一个幸福的人,也会有情绪上的起伏,但整体上,能保持一种积极的人生态度。他经常被积极的情绪推动着,如欢乐和爱;很少被愤怒或内疚,这些负面情绪所控制。快乐是常态,而痛苦都是小插曲。

      刚开始讲“幸福课”时,本-沙哈尔很想扮演一个无所不知、幽默的人,一个完美的导师,为此,他特地跑到喜剧演员培训班学习。但他不是那种能开激烈的玩笑,做夸张表演的人。无论怎么学,他也达不到想要的戏剧效果。

      想让自己当一个完美的老师,他发现这样即害了自己,也害了学生。“每次都很紧张,怕被发现面具下真实的样子,结果把自己搞得很累。这样不仅害了我自 己,也伤害了学生,等于给学生树立了一个‘完人’典型,告诉学生走一条永远走不通、错误的路。打开自己,袒露真实的人性,会唤起学生真实的人性。在学生面 前做一个自然的人,反而会更受尊重。”

      本-沙哈尔希望他的学生,学会接受自己,不要忽略自己所拥有的独特性;要摆脱“完美主义”,要“学会失败”。

      为了更好地记住”幸福课”的要点,本-沙哈尔还为学生简化出10条小贴士:

      1. 遵从你内心的热情。选择对你有意义并且能让你快乐的课,不要只是为了轻松地拿一个A而选课,或选你朋友上的课,或是别人认为你应该上的课。
      2. 多和朋友们在一起。不要被日常工作缠身,亲密的人际关系,是你幸福感的信号,最有可能为你带来幸福。
      3. 学会失败。成功没有捷径,历史上有成就的人,总是敢于行动,也会经常失败。不要让对失败的恐惧,绊住你尝试新事物的脚步。
      4. 接受自己全然为人。失望、烦乱、悲伤是人性的一部分。接纳这些,并把它们当成自然之事,允许自己偶尔的失落和伤感。然后问问自己,能做些什么来让自己感觉好过一点。
      5. 简化生活。更多并不总代表更好,好事多了,也不一定有利。你选了太多的课吗?参加了太多的活动吗?应求精而不在多。
      6. 有规律地锻炼。体育运动是你生活中最重要的事情之一。每周只要3次,每次只要30分钟,就能大大改善你的身心健康。
      7. 睡眠。虽然有时“熬通宵”是不可避免的,但每天7到9小时的睡眠是一笔非常棒的投资。这样,在醒着的时候,你会更有效率、更有创造力,也会更开心。
      8. 慷慨。现在,你的钱包里可能没有太多钱,你也没有太多时间。但这并不意味着你无法助人。给予和接受是一件事的两个面。当我们帮助别人时,我们也在帮助自己;当我们帮助自己时,也是在间接地帮助他人。
      9. 勇敢。勇气并不是不恐惧,而是心怀恐惧,仍依然向前。
      10. 表达感激。生活中,不要把你的家人、朋友、健康、教育等这一切当成理所当然的。它们都是你回味无穷的礼物。记录他人的点滴恩惠,始终保持感恩之心。每天或至少每周一次,请你把它们记下来。

      2006年2月,哈佛出了件大事,校长萨默斯为自己的惊人之语“女人先天不如男”,付出了“下课”的代价。即将去职的萨默斯闷闷不乐,他的好友找到本-沙哈尔,讨要如何让校长快乐起来的秘笈,本-沙哈尔慷慨支招。

      首先,他现在可能很烦乱、失落、难过,这些都属正常,因为他也是人。去大胆地经历他现在正经历着的任何事,并且自然地接受下来。

      第二,建议萨默斯本人,阅读一下哈佛积极心理学教授丹尼尔·吉尔波特的书,书中说:人类有非凡的克服令情绪失落事件的能力。事情并没有像他最初看起来的那么糟,即使是被逐出世界顶级大学的校长之位。

      第三,他可以仔细反省一下作为哈佛校长的经历,回忆自己任期内的巅峰时刻,并用他所学到的东西,去寻找新的机会和用武之地。

      假如上述办法仍不奏效的话,本-沙哈尔支了最后一招:我可以在我的课堂上,留下一个座位,校长先生可以旁听这门课并做相应的论文。

      我们究竟为什么不开心?(上)


      本文转贴来自:中国青年报 董月玲 张开平

      出人意料,去年哈佛最受欢迎的选修课是“幸福课”,听课人数超过了王牌课《经济学导论》。教这门课的是一位名不见经传的年轻讲师,名叫泰勒·本-沙哈尔。

      在一周两次的“幸福课”上,本-沙哈尔没有大讲特讲怎么成功,而是深入浅出地教他的学生,如何更快乐、更充实、更幸福。

      本-沙哈尔自称是一个害羞、内向的人。“在哈佛,我第一次教授积极心理学课时,只有8个学生报名,其中,还有2人中途退课。第二次,我有近400名 学生。到了第三次,当学生数目达到850人时,上课更多的是让我感到紧张和不安。特别是当学生的家长、爷爷奶奶和那些媒体的朋友们,开始出现在我课堂上的 时侯。”

      本-沙哈尔成了“哈佛红人”。校刊和《波士顿环球报》等多家媒体,报道了积极心理学课在哈佛火爆的情景。

      *
      “幸福课”为何会在哈佛大受欢迎?

      我们越来越富有,可为什么还是不开心呢?

      “我曾不快乐了30年。”本-沙哈尔这样说自己。

      他也是哈佛的毕业生,从本科读到博士。在哈佛,作为三名优秀生之一,他曾被派往剑桥进行交换学习。他还是个一流的运动员,在社团活动方面也很活跃。但这些并没有让他感到持久的幸福。他坦言,自己的内心并不快乐。

      “最初,引起我对积极心理学兴趣的是我的经历。我开始意识到,内在的东西比外在的东西,对幸福感更重要。通过研究这门学科,我受益匪浅。我想把我所学的东西和别人一起分享,于是,我决定做一名教师。”

      在本-沙哈尔第二次开设“幸福课”的2004年,哈佛校报上有一篇报道:《学校面临心理健康危机》,标题下的导语说:在过去的一年,绝大多数学生感到过沮丧和消沉。文章引述了一位学校舍区辅导员写给舍区主管的信。

      “我快覆没了。”这位辅导员写道。在他分管的舍区内,有20个学生出现了心理问题。一个学生因为严重焦虑而无法完成学期作业;另一个学生因为精神崩溃而错过三门考试……舍区主管把这封信转给了哈佛校长,并强调该舍区的问题并不是特例。

      一位曾患严重焦虑和情绪紊乱的哈佛毕业生说:大多数哈佛学生还没意识到,即使那些表面看来很积极、很棒的学生,也很有可能正在被心理疾病折磨着,即使你是他最要好的朋友,也未必意识到他有心理问题。

      “在内心深处,我经常觉得自己会窒息或者死去。”这名学生说。她时常不明原由地哭泣,总要把自己关起来才能睡觉。她看过几个心理医生,试过6种药物,休学两个月,来应付自己的心理问题。”我是一个成绩优异的哈佛精神病患者。”她这样描述自己。

      有个名叫玛丽亚的哈佛女生,在宿舍内自杀,年仅19岁。她的室友回忆说:就在自杀前一晚,玛丽亚和班里同学谈论天气时,还表现得十分开心的样子。“她看起来很好。她在听音乐,调子好像还很欢快。”

      哈佛一项持续6个月的调查发现,学生正面临普遍的心理健康危机。调查称:过去的一年中,有80%的哈佛学生,至少有过一次感到非常沮丧、消沉。47%的学生,至少有过一次因为太沮丧而无法正常做事,10%的学生称他们曾经考虑过自杀……

      “我们越来越富有,可为什么还是不开心呢?”这是令许多美国人深感困惑的问题。据统计,在美国,抑郁症的患病率,比起20 世纪60年代高出10倍,抑郁症的发病年龄,也从上世纪60年代的29.5岁下降到今天的14.5岁。而许多国家,也正在步美国后尘。1957年,英国有 52%的人,表示自己感到非常幸福,而到了2005年,只剩下36%。但在这段时间里,英国国民的平均收入却提高了3倍。

      我们来到这个世上,到底追求什么才是最重要的?

      本-沙哈尔坚定地认为:幸福感是衡量人生的唯一标准,是所有目标的最终目标。

      “人们衡量商业成就时,标准是钱。用钱去评估资产和债务、利润和亏损,所有与钱无关的都不会被考虑进去,金钱是最高的财 富。但是我认为,人生与商业一样,也有盈利和亏损。具体地说,在看待自己的生命时,可以把负面情绪当作支出,把正面情绪当作收入。当正面情绪多于负面情绪 时,我们在幸福这一“至高财富”上就盈利了。长期的抑郁,可以被看成是一种“情感破产”。整个社会,也有可能面临这种问题,如果个体的问题不断增长,焦虑 和压力的问题越来越多,社会就正在走向幸福的“大萧条”。”

      一项有关“幸福”的研究表明,人的幸福感主要取决3个因素:“遗传基因、与幸福有关的环境因素以及能够帮助我们获得幸福的行动。而积极心理学,可以帮助人们活得更快乐、更充实。幸福,是可以通过学习和练习获得的。”

      本-沙哈尔说:”我知道它是可行的,因为,它已深深地帮助了我。”

      我们的很多课,都在教学生如何更好地思考、更好地阅读、更好地写作,可是为什么就不该有人教学生更好地生活呢?把艰深的积极心理学学术成果简约化、实用化,教学生懂得自我帮助,这是本-沙哈尔开设”幸福课”的初衷。

      *
      幸福,应该是快乐与意义的结合

      让本-沙哈尔对幸福的理解,发生根本转变的起因,是他早年的一次重要经历。

      16岁那年,在以色列长大的本-沙哈尔,获得了全国壁球赛的冠军。在长达5年的训练中,空虚感如影相伴,他一直觉得生命中缺少了什么。虽为此闷闷不乐,但他仍坚信:无论身体或心理都要坚强,才能最终取胜;而胜利,一定会带来充实感,也能让自己最终幸福。

      终于,本-沙哈尔如愿以偿,夺冠后的他欣喜若狂,和家人、朋友举行了隆重的庆贺。那时,他对自己的理念更加深信不疑:成功可以带来快乐,过去所受的种种苦痛,都是值得的。

      “可就在那天晚上,睡前我坐在床上,试着再回味一下无限的快感。可是突然间,那种胜利的感觉,那种梦想成真的喜悦,所有的快乐,都消失得无影无踪。 我的内心,忽然又变得很空虚,只有迷惘和恐惧。泪水涌出,不再是喜极而泣,而是伤心难过。在如此顺意的情况下,尚不能感到幸福的话,那我将到何处,去寻找 我人生的幸福?”

      他极力让自己镇定,并告诉自己这只是暂时的神经过敏。但在接下来的日子里,他仍没有找回快乐;相反,内心的空虚感越来越重。慢慢地他发现:胜利,并没为他带来任何幸福,他所依赖的逻辑彻底被打破。“从那时起,我开始对一个问题非常着迷:如何才能得到真正的幸福?”

      本-沙哈尔注意观察周围的人,谁看起来幸福,他就向谁请教。他读有关幸福的书,从亚里士多德到孔子,从古代哲学到现代心理学,从学术研究到自助书籍等等。最后他决定去大学主修哲学和心理学。

      他的幸福观,逐渐清晰起来:幸福,应该是快乐与意义的结合。

      “一个幸福的人,必须有一个明确的、可以带来快乐和意义的目标,然后努力地去追求。真正快乐的人,会在自己觉得有意义的生活方式里,享受它的点点滴滴。”

      本-沙哈尔竟然从汉堡里,总结出了四种人生模式。

      当年,为了准备重要赛事,除了苦练外,他须严格节制饮食。开赛前一个月,只能吃最瘦的肉类,全麦的碳水化合物,以及新鲜蔬菜和水果。他曾暗中发誓, 一旦赛事完了,一定要大吃两天“垃圾食品”。比赛一结束,他干的第一件事,就是奔到自己喜爱的汉堡店,一口气买下4只汉堡。当他急不可待地撕开纸包,把汉 堡放在嘴边的刹那,却停住了。因为他意识到,上个月,因为健康的饮食,自己体能充沛。如果享受了眼前汉堡的美味,很可能会后悔,并影响自己的健康。望着眼 前的汉堡,他突然发现,它们每一种都有自己独特的风味,可以说,代表着四种不同的人生模式:

      1. 第一种汉堡,就是他最先抓起的那只,口味诱人,但却是标准的“垃圾食品”。吃它等于是享受眼前的快乐,但同时也埋下未来的痛苦。用它比喻人生,就是及时享乐,出卖未来幸福的人生,即“享乐主义型”;
      2. 第二种汉堡,口味很差,里边全是蔬菜和有机食物,吃了可以使人日后更健康,但会吃得很痛苦。牺牲眼前的幸福,为的是追求未来的目标,他称之为“忙碌奔波型”;
      3. 第三种汉堡,是最糟糕的,既不美味,吃了还会影响日后的健康。与此相似的人,对生活丧失了希望和追求,既不享受眼前的事物,也不对未来抱期许,是“虚无主义型”;
      4. 会不会还有一种汉堡,又好吃,又健康呢?那就是第四种“幸福型”汉堡。一个幸福的人,是即能享受当下所做的事,又可以获得更美满的未来。

      不幸的是,据本-沙哈尔观察,现实生活中的大部分人,都属于“忙碌奔波型”。

      人们习惯性地去关注下一个目标,而常常忽略了眼前的事情

      本-沙哈尔经常讲“蒂姆的故事”。在这个故事里,晃动着许多人熟悉的影子:

      蒂姆小时候,是个无忧无虑的孩子。但自打上小学那天起,他忙碌奔波的人生就开始了。父母和老师总告诫他,上学的目的,就是取得好成绩,这样长大后,才能找到好工作。没人告诉他,学校,可以是个获得快乐的地方,学习,可以是件令人开心的事。因为害怕考试考不好,担心作文写错字,蒂姆背负着焦虑和压力。他天天盼望的,就是下课和放学。他的精神寄托就是每年的假期。

      渐渐地,蒂姆接受了大人的价值观。虽然他不喜欢学校,但还是努力学习。成绩好时,父母和老师都夸他,同学们也羡慕他。到高中时,蒂姆已对此深信不 疑:牺牲现在,是为了换取未来的幸福;没有痛苦,就不会有收获。当压力大到无法承受时,他安慰自己:一旦上了大学,一切就会变好。

      收到大学录取通知书时,蒂姆激动得落泪。他长长舒了一口气:现在,可以开心地生活了。但没过几天,那熟悉的焦虑又卷土重来。他担心在和大学同学的竞争中,自己不能取胜。如果不能打败他们,自己将来就找不到好工作。

      大学4年,蒂姆依旧奔忙着,极力为自己的履历表增光添彩。他成立学生社团、做义工,参加多种运动项目,小心翼翼地选修课程,但这一切完全不是出于兴趣,而是这些科目,可以保证他获得好成绩。

      大四那年,蒂姆被一家著名的公司录用了。他又一次兴奋地告诉自己,这回终于可以享受生活了。可他很快就感觉到,这份每周需要工作84小时的高薪工作,充满压力。他又说服自己:没关系,这样干,今后的职位才会更稳固,才能更快地升职。当然,他也有开心的时刻,在加薪、拿到奖金或升职时。但这些满足感,很快就消退了。

      经过多年的打拼,蒂姆成了公司合伙人。他曾多么渴望这一天。可是,当这一天真的到来时,他却没觉得多快乐。蒂姆拥有了豪宅、名牌跑车。他的存款一辈子都用不完。

      他被身边的人认定为成功的典型。朋友拿他当偶像,来教育自己的小孩。可是蒂姆呢,由于无法在盲目的追求中找到幸福,他干脆把注意力集中在了眼下,用 酗酒、吸毒来麻醉自己。他尽可能延长假期,在阳光下的海滩一呆就是几个钟头,享受着毫无目的的人生,再也不去担心明天的事。起初,他快活极了,但很快,他 又感到了厌倦。

      做“忙碌奔波型”并不快乐,做“享乐主义型”也不开心,因为找不到出路,蒂姆决定向命运投降,听天由命。但他的孩子们怎么办呢?他该引导他们过怎样的一种人生呢?蒂姆为此深感痛苦。

      为什么当今社会有那么多”忙碌奔波型”的人呢?本-沙哈尔这样解释:因为人们常常被“幸福的假象”所蒙蔽。

      我们所处的社会环境和文化背景是这样的:假如孩子成绩全优,家长就会给奖励;如果员工工作出色,老板就会发给奖金。人们习惯性地去关注下一个目标,而常常忽略了眼前的事情,最后,导致终生的盲目追求。

      然而一旦目标达成后,人们常把放松的心情,解释为幸福。好像事情越难做,成功后的幸福感就越强。不可否认,这种解脱,让我们感到真实的快乐,但它绝不等同于”幸福”。它只是”幸福的假象”。

      这就好比一个人头痛好了之后,他会为头不痛而高兴,这是由于这种喜悦,来自于痛苦的前因。”忙碌奔波型”的人,错误地认为成功就是幸福,坚信目标实现后的放松和解脱,就是幸福。因此,他们不停地从一个目标奔向另一个目标。

      在本-沙哈尔看来,寻找真正能让自己快乐而有意义的目标,才是获得幸福的关键。

      你会休息吗?掌握最高效的休息方式


      你会休息吗?

      你是不是有过这样的困扰呢?当睡了十几个小时起来仍然觉得疲累;当花了不少钱去旅游散心却没有增加生活的激情;出去K歌和逛游乐园完并没有使自己更开心。

      休息应该是使你摆脱疲劳、放松神经、使你重新精力充沛。如果你的休息方式并不能为你带来这些,那么,无论这些活动听起来多轻松,看上去有多High,它都是一种错误。抛弃它们,来一场休息革命!

      看看我们对休息有哪些误解:

      脑力劳动者,补瞌睡对你没什么用

      你写了一天的文案,主持了一天的会议,当一切都结束了,你叹到:太累了,这一天我要睡个好觉。我们的常识使得我们对疲劳的第一反应就是“去躺躺吧”,但这是一个陷阱。

      睡眠的 确是一种有效的休息方式,但它主要对睡眠不足着或体力劳动者适用。对体力劳动者来说,“疲劳”主要是由体内产生大量酸性物质引起,通过睡觉,可以把失去的 能量补充回来,把堆积的废物排除出去。偶尔累时也可以在床上先躺一躺,闭目静息,让全身肌肉和神经完全放松后,再起来活动活动。

      但如果你是坐办公室的,大脑皮层极度兴奋,而身体却处于低兴奋状态,对待这种疲劳,睡眠能起到的作用不大(除非你是熬夜加班,连正常睡眠时间都达不到),因为你需要的不是通过“静止”恢复体能,而是要找个事儿把神经放松下来。这样你可以理解为什么你周末两天不出门依旧无精打采,而只需下班后游泳半小时就神采奕奕。

      *
      不必停下来,只是换一下

      既然睡觉不能帮助我们休息大脑,那什么办法才可以?答案是不停止活动,而只是改变活动的内容。大脑皮质的一百多亿神经细胞,功能都不一样,它们以不同的方式排列组合成各不相同的联合功能区,这一区域活动,另一区域就休息。 所以,通过改换活动内容,就能使大脑的不同区域得到休息。心理生理学家谢切诺夫做过一个实验。为了消除右手的疲劳,他采取两种方式——一种是让两只手静止 休息,另一种是在右手静止的同时又让左手适当活动,然后在疲劳测量器上对右手的握力进行测试。结果表明,在左手活动的情况下,右手的疲劳消除得更快。这证 明变换人的活动内容确实是积极的休息方式。

      比如你星期五写了5个小时的企划案,最好第二天去给你的盆栽们剪枝而不是睡到太阳晒屁股。还有一点,当你无法选择由脑力劳动转入体力劳动时,你不妨 在脑力劳动内部转换。法国杰出的启蒙思想家卢梭就讲过他的心得:“我本不是一个生来适于研究学问的人,因为我用功的时间稍长一些就感到疲倦,甚至我不能一 连半小时集中精力于一个问题上。但是,我连续研究几个不同的问题,即使是不间断,我也能够轻松愉快地一个一个地寻思下去,这一个问题可以消除另一个问题所 带来的疲劳,用不着休息一下脑筋。于是,我就在我的治学中充分利用我所发现的这一特点,对一些问题交替进行研究。这样,即使我整天用功也不觉得疲倦了。” 所以,这天你要是有好几个问题要处理,最好交替进行,而不要处理完一个再开始的二个,那样会很快被耗尽。

      最好的休息,是让你重燃生活的热情

      我们的疲惫主要来自对现有的一层不变的生活的厌倦。所以最好的休息项目就是那些让我们重新找到生活和工作热情的活动。如果你干完一件事,能够幸福地感叹“明天又是新的一天。”那这件事对你来说就是最好的恢复热情,调节情绪的方法。但可惜,我们缺乏对“休息”的想象力。我们能想出来的休息方法不是痴睡就是傻玩。

      我们给你开了下面一些活动清单,基本思路是以“做”来解决“累”,用积极休息取代消极放纵。当然,最适合你的方法还是要你自己探索。事实上如果你觉得打扫卫生比坐过山车是更好的放松,那么就去吧,别管世界上的其他人都在玩什么。

      也许你可以:

      * 用看两小时让你开怀的漫画或小说代替去KTV唱那些一成不变的口水歌
      * 试着放弃在周六晚上去酒吧,10点入睡,然后在7点起床,去没有人的街上走走,或是看看你从来没有机会看到的早间剧场,你会发现这一天可以和过去的千万个周末都不相同。
      * 不要再去你已经去过无数次的度假村找乐子了。找一条你你从没去过的街道,把它走完。你会发现这个你感到腻味的城市结果你并没有完全体会到它的妙处。
      * 旅行,而不是换个地方消遣。去一个地方对那个地方本身心存好奇,对自己这趟行程心存美意,感受自己经验范围以外的人生样貌。而不是坐了5小时飞机,只是换个地方打麻将,换个地方游泳,换个地方打球……
      * 从这个周末起学习一项新的技艺,比如弹电子琴,打鼓……每周末练习1小时以上。
      * 去社交。不要以为它总是令人疲惫的。虽然和看书比起来,它稍有点令人紧张,但也能让你更兴奋,更有认同感。你必须每周有两三天是和工作圈子和亲戚 外的人打交道。它让你在朝九晚五的机械运行中不至失去活泼的天性。女性朋友们尤为需要走出去和朋友聚会,这些时刻你不再是满脸写着“效率”的中性人,而是一个裙裾飞扬的魅力焦点。
      * 做点困难的事,如果你是精神超级紧张的人。心理学家发现解除神经紧张的方法,是去处理需要神经紧张才能解决的问题。曾经一位精神即将崩溃的总经理找到一位医师给出治疗建议,结果他得到的处方是去动物园当驯狮师。一个月以后完全康复。所以压力特别大的时候你可以为自己再找分工作,但不要是和你职业类似的。比如去孤儿院做义工,或者去一个复杂的机械工厂从学徒干起,或者做一道超级复杂的数学题。

      往往珍惜生命的人,会不顾任何代价去求得一个好的休息。花些时间休息,可以使你获得大量的精力、体力,使你取得从事任何工作,应付各种问题的力量,使你对于生命,能有一个愉快正确的认识,天下还能有别种时间的投资对于你更加有利吗?

      最后,学会享受你的无聊。我们知道在忙碌的工作学习后进入假期,过上几天就会觉得闲暇时总觉得生活中缺了什么、无所事事,而如果继续这样下去就会让自己产生一种负罪感。其实,这是不正确的。

      传统的教育告诫我们“无聊”是一种消极的情绪,一个奋发向上的人绝对不该有这种情绪,甚至不应该留给自己产生这种情绪的机会。生活中我们都背负了太多的责任,于是我们活得好累,冠冕堂皇的说压力来 自外界,但我觉得更多的压力是我们自找,因为在这个充满压力的社会我们没有学会给自己减压。看看那些静静躺在海滩休假的人们,我们应该懂得无聊是一种难得 的境界,或许比兢兢业业、勤勤恳恳的工作更难得。因为它需要你有好的心态、长远的眼光,要先接受它,让自己的心静下来,然后你才会真正的享受它。它绝不是 一种颓废,它是一种休整、一种积蓄,它会让我们戒除“只会工作”的毒瘾。

      很早以前就有人告诉过我们:不会休息的人就不会工作。可我们由于功利的原因,早已将这一说法忘记。于是我们忙碌,我们努力,于是也就害怕无聊、害怕无事可做,甚至会因为闲暇而几乎惶惶不可终日。

      工作不应该成为生活的全部,工作只是为了更好的生活。我们应该是工作的主人,绝不是工作的奴隶。千万不要以为无聊是消极、是不敬业。

      WEB前端研发工程师编程能力成长之路


      原文来自:http://qslee.com/2011/02/25/

      【背景】

      如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧;
      如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧;
      如果你是四五年的前端开发高手,没有难题能难得住你的寂寞高手,来看这篇文章吧;

      WEB前端研发工程师,在国内是一个朝阳职业,自07-08年正式有这个职业以来,也不过三四年的时间。这个领域没有学校的正规教育,没有行内成体 系的理论指引,几乎所有从事这个职业的人都是靠自己自学成才。自学成才,一条艰辛的坎坷路,我也是这样一路走来。从2002年开始接触WEB前端研发至今 已然有了9个年头,如今再回首,期间的走了很多弯路。推已及人,如果能让那些后来者少走些弯路,辛甚辛甚!

      【前言】

      所谓的天才,只不过是比平常人更快的掌握技能、完成工作罢了;只要你找到了正确的方向,并辅以足够的时间,你一样能够踏上成功彼岸。

      本文将WEB前端研发编程能力划分了八个等级,每个等级都列举出了对应的特征及破级提升之方法,希望每位在看本文的同学先准确定位自己的等级(不要以你目前能力的最高点,而是以你当前能力的中档与之等级作对比,以免多走弯路),参考突破之法破之。

      所谓的级别,只是你面对需求时的一种态度:能够完成、能够完美地完成、能够超出预期地完成。以追求完美的态度加以扎实的编程功力,那就是你的编程水平。

      切记心浮气燥,级别够了,那级别里的东西自然就懂了。悟了就是悟了,没悟也没关系,静下心来,投入时间而已。

      一.【入门】

      能够解决一些问题的水平。有一定的基础(比如最常见的HTML标签及其属性、事件、方法;最常见的CSS属性;基础的JavaScript编程能力),能够完成一些简单的WEB前端研发需求。

      举个例子:删除一字符串中指定的字符。

      1
      2
      3
      4
      5
      var str="www.baidu.com/?page";
      str=str.replace('?page',"");
      alert(str);
      str=str.substring(0,str.indexOf("/"));
      alert(str);

      首先不要苛责代码的对错严谨,毕竟每个程序员都有这样的一个过程;其次,这两段代码在这个实例里没有什么大过错,可能会有瑕疵,但能够解决问题(删除指定的字符),这就是这个级别的特征。

      再举个例子:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      // 计算系统当前是星期几
      var str = "";
      var week = new Date().getDay();
      if (week == 0) {
              str = "今天是星期日";
      } else if (week == 1) {
              str = "今天是星期一";
      } else if (week == 2) {
              str = "今天是星期二";
       } else if (week == 3) {
              str = "今天是星期三";
       } else if (week == 4) {
              str = "今天是星期四";
       } else if (week == 5) {
              str = "今天是星期五";
       } else if (week == 6) {
              str = "今天是星期六";
       }
      // 或者更好一些
      var str1 = "今天是星期";
      var week = new Date().getDay();
      switch (week) {
              case 0 :
                      str1 += "日";
                      break;
              case 1 :
                      str1 += "一";
                      break;
              case 2 :
                      str1 += "二";
                      break;
              case 3 :
                      str1 += "三";
                      break;
              case 4 :
                      str1 += "四";
                      break;
              case 5 :
                      str1 += "五";
                      break;
              case 6 :
                      str1 += "六";
                      break;
      }
      alert(str);
      alert(str1);

      入门”阶段是每个程序员的必经之路,只要“入门”,你就上路了。所谓“师傅领进门,修行靠个人”,有了这个“入门”的基础,自己就可以摸索着前进了。

      【进阶之路】

      将JavaScript、HTML、CSS之类的编码帮助手册里的每个方法/属性都通读几遍!只有将基础打好,以后的路才能走的顺畅。参考这些帮助文档,力争写出无瑕疵的代码。

      这些编码文档建议不仅是在入门提高期看,在你以后每个阶段破阶的时候都应该看看,最基础的东西往往也是最给力的东西,有时能够给你带来意想不到的收获。

      二.【登堂】

      能够正确地解决问题。不管你是通过搜索网络,或者通过改造某些成品代码(jQuery/Dojo/Ext/YUI)案例,只要能够无错地完成需求。

      同样以上面的那段“字符串剪裁”代码为例:

      1
      2
      3
      var str="www.baidu.com/?page";
      str=str.replace(/?page/,"");
      alert(str);

      仅仅解决问题对于“登堂”阶段来说已经不是问题,这个级别所给出方案不能是漏洞百出。以上面这段代码为例:replace方法的第一个参数虽然可以支持字符串,但最佳的类型是正则表达式;

      ?View Code JAVASCRIPT
      1
      2
      3
      4
      var a = new Array("日", "一", "二", "三", "四", "五", "六");
      var week = new Date().getDay();
      var str = "今天是星期"+ a[week];
      alert(str);

      对比“入门级”的代码,不管是从代码量、代码效率、代码优美性、代码思路来说,“登堂”级的这个日期处理代码都要优秀很多。

      【进阶之路】

      这个阶段虽然能够给出正确的解题方案,但是不一定是最优秀的方案。如何才能得到最优秀的方案呢?首先就是积累各种能够解决需求的方案,然后再验证每个方案,在这些方案中选择最好的一种。因此该阶段的进阶之路就是“行万里路,看万卷书”,积累各个需求的各个解决方案。

      你可以扎身在专业论坛(蓝色理想、无忧、CSDN)里,通读所有的FAQ及帖子; 你可以打开搜索引擎,穷举所有的搜索结果。自己建立测试环境一一验证这些代码:去揣摩每段代码的意图,去比较每段代码之间的差异。这两条路可以让你快速完 成原始积累,当你再面对大多数需求时能够说这些问题我以前做过,那你就水到渠成地晋阶了。

      三.【入室】

      最强代码,知道所有能够解决需求的各种方案,能够选择使用最优秀的方案满足需求。这个级别基本上产品开发编程中的代码主力。给出的一招一式,招招都是绝招。

      还以上面的那个例子为例,你能说出1、2、3之间的差别,以及适用于那种环境吗?

      1
      2
      3
      4
      5
      6
      7
      var str="www.baidu.com/?page";
      // 1、字符串剪裁
      str.substring(0, str.indexOf("?page"));
      // 2、正则表达式
      str.replace(/?page/, "");
      // 3、字符串分拆、合并
      str.split("?page").join("");

      能够解决问题的方法会有很多,但是对于程序员来说应该选择最优秀的。上面这段代码从代码量来说“正则表达式”最优秀;从代码执行效率来说: “字符 串剪裁”法最高(Chrome中“正则表达式”效率最高),split法最次;从可扩展性上来说,“正则表达式”法最优。具体使用那种方案视具体的需求环 境而定。

      “入室”阶段,程序员应该能够肯定的回答:对于这个需求而言,我的代码就是最优秀的代码

      再以“今天是星期几”为例,“登堂”级的代码你敢说是最优秀的代码了吗?

      1
      2
      // 计算系统当前是星期几
      var str = "今天是星期" + "日一二三四五六".charAt(new Date().getDay());

      对比“登堂”级的示例代码,上面这段代码给你什么感受?程序员追求的就是完美。“入室”级别追求的就是每一招每一式的完美无缺。

      从WEB前端编程来说,通过2年左右的努力,很多人能够达到这个水平,但是,很大一部分人的编程能力也就止步于此。或限于产品的需求单一性,或限于需求开发的时间紧迫性,或限于人的惰性,能够完美地解决当前的需求就够了。

      由于长期处于技术平台期,技术上得不到提高,通常这个级别的工程师会比较燥。技术上小有所成;或追求个人的突破;或追求产品差异性带来的新鲜感;或者只是想换个心情;因此很多此级别的工程师会经常换公司。

      戒骄戒躁

      切勿以为自己能写一手漂亮的代码而自满;
      切莫以为别人“尊称”你一声“大侠”你就以 “大侠”自居;
      切莫以为自己积累了一些得意的代码就成了框架式开发。

      细节决定成败,优秀的方案并不能保证最终的成功。还以“删除指定字符串”为例,原始字符串从格式上来看应该是了个URL链接,在去除“pn=0”之 后,最末尾处留了一个尾巴“?”;如果原始字符串是“http://www.xxx.com/?pn=0&a=1”,去除“pn=0”之 后 ? 和 & 两个符号紧贴一起,这更是明显的bug。

      【进阶之路】

      此阶段进阶之路就是:切勿心浮气躁;你不再被需求牵着走,而是你牵着需求走。注重细节,注意那些当前需求里没有明文给出的细节:代码性能的差异、运行平台(浏览器)的差异、需求的隐性扩展、代码的向后兼容等等。

      再通读几遍HTML/CSS/JavaScript帮助文档。

      我建议这个级别的工程师做一做WebTreeView控件,要求总节点量一万左右操作流畅,你的晋升之路就在这个控件的编码过程中。

      四.【入微】

      最强解决方案。你能够走在需求的前面,将当前需求里有的、没有直接提出来的、现在暂时没有但将来可能有的等等,及前端编程潜规则等各个方方面面都综合考虑,给出最优方案。以一招胜万招。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      var str = "http://www.xxx.com/?pn=0";   // 删除指定字符 pn=0
      // 我将这个字符串里所可能想到的各种情况都列举出来
      var a = [
               "http://www.xxx.com/VMpn=?pn=0"// pn= 可能出现在 ? 前
              , "http://www.xxx.com/VMpn=?pn="// URL里允许pn 值为空
              , "http://www.xxx.com/VMpn=?pn=0&amp;a=1"// URL 里可有多个字段
              , "http://www.xxx.com/VMpn=?a=1&amp;pn=0"// 可能排在最后
              , "http://www.xxx.com/VMpn=?a=1&amp;pn=0&amp;pn=1"// 可能有多个 pn 字段
              , "http://www.xxx.com/VMpn=?a=1&amp;pn=0&amp;b=2"// 可能在中间
              , "http://www.xxx.com/VMpn=?a=1&amp;pn=0&amp;pn=1&amp;b=1"  // 可能在中间成组
              , "http://www.xxx.com/VMpn=?a=1&amp;pn=0&amp;b=1&amp;pn=1"  // 可能零星分布
      ];
      /* 需求的不言之秘:
      ? 若出现在字符串最尾则要去之
      ? &amp; 两个符号不可重叠
      */
      var reg = /((\?)(pn=[^&amp;]*&amp;)+(?!pn=))|(((\?|&amp;)pn=[^&amp;]*)+$)|(&amp;pn=[^&amp;]*)/g;
      
      for (var i = 0; i &lt; a.length; i++) {
          alert(a[i] + "\n" + a[i].replace(reg, "$2"));
      }

      这个阶段已经不再追求一招一式,对你来说不是使用什么创新绝招解决需求,而是给出成熟稳重的方案,从根上解决问题。针对某个当前需求你的代码可能不是最优,但是针对此类的需求你的代码却是最优秀的代码。

      【进阶之路】

      很多WEB前端研发工程师在做了3-4年之后就会进入一个瓶颈期:产品开发需求是小菜一碟,没有新鲜的可以挑战的东西;代码开发中的稀奇的解题方法 都已经尝试过。没有了可挑战的难题,失去了探索的激情,也就没有了再上升的动力,好不容易走过“入室”级别的人又会有八九成止步于此。或转做技术领导人, 或转到其它的领域,或换公司。

      这些人的上升之路在哪里呢?

      这个阶段单单依靠技巧和数量的累积已经没有什么效果了,突破之路在第5层《化蝶》里会详细说明,我建议你在这个阶段末尾着重关注编程理论:面向对象/过程、代码组织形式、编译、代码规范、其它的框架设计等等。

      我建议这个级别的工程师做一做WebEditor控件,不要求完整功能,但是该控件里的模块划分、代码组织、编程思想做到位,给出一个系统的解决方案。

      五.【化蝶】

      破茧重生,这个层次关注的是编程语言本身,而不再关心产品需求。什么是茧?产品需求就是茧。当你一招胜万招,打遍天下需求之时,你如果还拘泥于需求开发,那就是你限于茧中而不自知。要么就在这个茧里默默地老去,要么就破开茧获得新生。

      还是以那个“字符串剪裁”的老例子:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      /**
       * 在拼接正则表达式字符串时,消除原字符串中特殊字符对正则表达式的干扰
       * @author:meizz
       * @version: 2010/12/16
       * @param               {String}        str     被正则表达式字符串保护编码的字符串
       * @return              {String}                被保护处理过后的字符串
      */
      function escapeReg(str) {
              return str.replace(new RegExp("([.*+?^=!:\x24{}()|[\\]\/\\\\])", "g"), "\\\x241");
      }
      
      /**
       * 删除URL字符串中指定的 Query
       * @author:meizz
       * @version:2010/12/16
       * @param               {String}        url     URL字符串
       * @param               {String}        key     被删除的Query名
       * @return              {String}                被删除指定 query 后的URL字符串
      */
      
      function delUrlQuery(url, key) {
              key = escapeReg(key);
              var reg = new RegExp("((\\?)("+ key +"=[^&amp;]*&amp;)+(?!"+ key +
        "=))|(((\\?|&amp;)"+ key +"=[^&amp;]*)+$)|(&amp;"+ key +"=[^&amp;]*)", "g");
              return url.replace(reg, "\x241")
      }
      
      // 应用实例
      var str = "http://www.xxx.com/?pn=0";   // 删除指定字符 pn=0
      delUrlQuery(str, "pn");
      这段代码相对于层次4《入微》有什么区别吗?从代码实现上来说没有太大的区别,但是从思路上来说却有着本质的区别:1、不再是就事论事,头疼医头,而是把一类问题抽象理论化,一招破万招;2、有封装的概念,不再是每次从零开始,而是站在半山腰开始爬。

      在WEB前端研发队伍里也有很大一部分人《入室》层次时就自我感觉良好,直接跨跃到《化蝶》,积累自己的代码库,抽象化问题。但没有基础,缺少强大 的后劲,即使能够破茧也经受不了风吹雨打。一份不成熟的架构设计对团队开发带来的危害远大于它带来的好处,这种例子在业界屡见不鲜。不要拔苗助长,不要不 会走就想着跑,夯实基础,水到渠成地成长,厚积薄发,强力地破茧而出。

      【进阶之路】

      你已经从原始积累,到厚积薄发,到破茧而出之后,你所关注的应该不再是一招一式、一个项目、一个模块,而应该是一种思路,一种理论。你可以做以下几 个步骤以突破到更高层次:再仔细看几遍HTML/CSS/JavaScript接口帮助文档;选择一门强语言(C++/C#/Java等)观察理解这些语 言的组织结构,语言设计;看看原型链,链式语法编程,泛型,接口编程,DOM遥控器等等;仔细阅读成熟的WEB前端开发框架的设计文档,看他们为什么要这 样设计。

      六.【大侠】

      这里所说的大侠,不是大家互相吹捧的“大侠”,而是实至名归的高手。这个级别的人完全有能力写出不差于Bindows/jQuery/Ext/YUI/Dojo的同等级别规模的前端开发框架。应用成熟的开发框架指导、解决问题

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      // 库文件 /mz/string/escapeReg.js
      /**
       * 在拼接正则表达式字符串时,消除原字符串中特殊字符对正则表达式的干扰
       * @author:meizz
       * @version: 2010/12/16
       * @param               {String}        str     被正则表达式字符串保护编码的字符串
       * @return              {String}                被保护处理过后的字符串
      */
      mz.string.escapeReg = function (str) {
              return str.replace(new RegExp("([.*+?^=!:\x24{}()|[\\]\/\\\\])", "g"), "\\\x241");
      }
      
      // 库文件 /mz/url/delQuery.js
      /// include mz.string.escapeReg;
      /**
       * 删除URL字符串中指定的 Query
       * @author:meizz
       * @version:2010/12/16
       * @param               {String}        url     URL字符串
       * @param               {String}        key     被删除的Query名
       * @return              {String}                被删除指定 query 后的URL字符串
      */
      mz.url.delQuery = function (url, key) {
              key = mz.string.escapeReg(key);
              var reg = new RegExp("((\\?)("+ key +"=[^&amp;]*&amp;)+(?!"+ key +
        "=))|(((\\?|&amp;)"+ key +"=[^&amp;]*)+$)|(&amp;"+ key +"=[^&amp;]*)", "g");
              return url.replace(reg, "\x241")
      }
      
      // 应用实例
      /// include mz.url.delQuery;
      var str = "http://www.xxx.com/?pn=0";   // 删除指定字符 pn=0
      mz.url.delQuery(str, "pn");

      自成体系,有基础,也有理论高度。知道为什么这样设计,也知道什么样的设计最好。比如这个例子可以有这样的封装:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      // 库文件 /mz/url/delQuery.js
      /// include mz.string.escapeReg;
      /**
       * 删除URL字符串中指定的 Query
       * @author:meizz
       * @version:2010/12/16
       * @param               {String}        url     URL字符串
       * @param               {String}        key     被删除的Query名
       * @return              {String}                被删除指定 query 后的URL字符串
      */
      String.prototype.delQuery = function ( key) {
              key = mz.string.escapeReg(key);
              var reg = new RegExp("((\\?)("+ key +"=[^&amp;]*&amp;)+(?!"+ key +
        "=))|(((\\?|&amp;)"+ key +"=[^&amp;]*)+$)|(&amp;"+ key +"=[^&amp;]*)", "g");
              return this.replace(reg, "\x241")
      }
      
      // 应用实例
      /// include mz.url.delQuery;
      var str = "http://www.xxx.com/?pn=0";   // 删除指定字符 pn=0
      str.delQuery("pn");

      而为什么不采用下面的那种封装呢?经过了《知微》和《化蝶》你就懂了。

      【进阶出路】

      道法自然,从根上去寻找突破的契机。你可以研读HTML解析引擎设计与实现,JS解析引擎设计与实现,其它语言的代码解析与编译实现等等。

      或者出些书。低级别的人写的书要么是一大抄,空无一物;要么是害人。

      七.【宗师】

      这个级别的人已然到了无招胜有招的境界。项目开发中的难题?没有难题!运行平台的差异?从根本上搞定!代码规范、开发模式,早已经被抛在身后。这个级别的人已经不再关注于某个前端开发框架,而是应对具体的环境给出最佳的理论指导

      这个级别的人所注意的应该是以最合理的系统架构引领着整个团队的进步,在什么样的场景下该用什么样的架构设计。3个、10个、50个、100个人的团队最应该用哪种模式?等你到了宗师级别,你再来回答吧。

      【进阶出路】

      每一个宗师就是一个高山,就是一个领域里的神,但是你仅满足于在一群比你弱的群体展现你的强大吗?如果还你是止步原地,那总会有人乘着飞机、宇宙飞船从你的头领掠过,高处不胜寒!

      要突破这片领域,那就必须跳出这片领域。要想突破WEB前端研发的宗师级,那就跳出WEB前端吧,上面还有WEB开发。即使你是WEB前端的宗师, 但没有快速的数据响应,没有高速的网络架构,没有优美的系统支持,你又能如何?所以突破之路就是把目光投到整条WEB开发的链条中去。

      八.【飞升】

      其实严格来说,飞升已经不是原领域的范围了。在WEB研发领域,对于这个层次的有一个很好听的称谓:架构师。当然那些“伪架构师”另当别论。

      一法通,万法通。在其它的技术领域,也可以按照《入门》《登堂》《入室》《入微》《化蝶》《大侠》《宗师》来划分等级;一样也可以按照我这里所写的每个级别的【进阶之路】来快速提升。