这样教出来的孩子不优秀很难!
这样教出来的孩子不优秀很难!
一则
儿两岁。某日,头撞桌角,长一包,大哭。一分钟余,我走向桌子,大声问:"桌子呀,是谁把你撞疼了?哭得这么伤心?”
儿止哭,泪眼看我。我抚桌,冲儿问:"谁呀?谁撞疼了桌子?""我,爸爸,我撞的!""哦,是你撞的,那还不快向桌子鞠个躬,说对不起!"儿含泪,鞠躬,说:"对不起"。
自此,儿学会了责任和担当!
二则
儿三岁。无故大哭,我问:"咋了,哪不舒服?""没有不舒服。""那为什么哭!""就是要哭!"明显撒娇。“好吧,你要哭我们都没意见,可是你在这儿哭不合适,会打扰我们说话的,爸爸给你找个地方,你一个人好好哭,哭够了再叫我们。”说完将儿关进了洗手间:"哭完了敲门。"2分钟,儿拍门:“爸爸,爸爸,我哭完了!”。"好,哭完了?哭完了就出来吧。"
至今,儿18岁,仍未学会操纵和迁怒!
三则
儿5岁。傍晚,牵儿散步经小桥,桥下碧水见底,暗流汹涌。儿仰头看我:“爸爸,小河好美,我想跳下去游泳。"我一愣:“好吧,爸爸跟你一起跳。不过我们先回家,换一下衣服。”
回,儿换衣毕,见一盆水在面前,困惑。
“儿子,下水游泳得把脸埋进水里,这你懂吧?”儿点头。“那我们现在就先练习一下,看看你能埋多久。"我看表。"好!"儿把脸埋进水里,豪气冲天?仅10秒:"呸呸,爸爸,呛水了,好难受。""是吗?等等跳到河里,可能会更难受些。""爸爸,我们可以不去跳吗?""好吧,不去就不去了。"
从此,儿学会了谨慎而不冒失,三思而后行。
四则
儿6岁,好吃。某晚,放学经麦当劳,驻足:"爸爸,麦当劳!”垂涎欲滴。
"嗯,麦当劳!想吃?"
"想吃!"
"儿子,一个人想吃就吃呢,叫狗熊;想吃而能不吃呢,叫英雄。"
接着问:“儿子,你要做英雄呢还是做狗熊?”
“爸爸,我当然要做英雄!”
"好!那英雄,想吃麦当劳时会怎样呢?"
"能不吃!"很坚定!
"太棒了,英雄!回家吧。"
儿流着口水,随我回。
从此,儿学会了有所为而有所不为,经得起诱惑。
五则
儿8岁,顽皮,与大同学打架。伤痕累累,回,大哭不止。
"委屈?"
"委屈!"儿泣答。
"愤怒?"
"愤怒!"儿嚎啕。
"你打算怎么办?"再问,"需要爸爸为你做点什么?"
"爸爸,我要找块砖头,明天从背后去砸他!"
"嗯,我看行!爸爸明天为你准备砖头。"继续问,"还有呢?"
"爸爸,你给我弄把刀,我明天从背后去捅他!"
"好!这个更解气,爸爸这就去准备一下。"我上楼。
理解支持,儿渐平静。约20分钟,我从楼上搬一大堆衣服及棉被?
"儿子,你决定了吗?是用砖头,还是用刀呀?"
"但是,爸爸,你搬那么多衣服被子干吗?"儿困惑。
"儿子,是这样的:如果你用砖头砸他,那么警察 就会把我们带走,在监狱 里大概只要住一个月,我们就带些短衣薄被就可以;如果你用刀子捅他,那么我们在监狱里至少3年回不来,我们可要多带些衣服被子,四季都要带齐?"
"所以,儿子你决定了吗?爸爸愿意支持你!"
"要这样的?"儿惊愕。
"是这样的,法律是这样规定的!"我趁机普法。
"爸爸,那我们就不干了吧?!"
"儿子,你不是很愤怒吗?"
"嗨嗨,爸爸,我已经不愤怒了,其实我也有错。"儿脸红。
"好,爸爸支持你!"
自此,儿学会了选择和代价。
六则:
儿9岁,四年级,数学不及格,闷闷不乐。
"怎么了?考试不及格,还给我们脸色。"
"因为数学老师很讨厌,她的课不爱听。"理直气壮。
"哦,怎么个讨厌法?"我很感兴趣。
"??,??"儿说了很多,"总之她也不喜欢我。"
“哦,别人喜欢你,你就喜欢她;别人不喜欢你,你就讨厌她。这说明你是个主动的人还是被动的人?”
“是个被动的人!"儿子回答。
“是强者,还是弱者?是大人,还是小人?”继续问。
“是弱者,是小人!”儿怯怯。
"那你要做大人,还是小人?"
"做大人!爸爸,我知道了:无论老师喜不喜欢我,我都可以去喜欢她,尊敬她,主动影响她,做一个强者。”
翌日,开心上学,数学从此优秀。并知道了何为大人,何为小人。
七则
儿10岁,玩游戏。妻屡教,子不改。
"儿子,听说你每天玩这个?"我指着电脑。
"嗯。"承认,低头!
“每次玩完之后,什么感受?"
"茫然,空虚,没劲,自责,看不起自已?"
"那为什么还玩呢?把持不住自己,是不?"
"是的,爸爸。"儿很无助。
"好!爸爸帮助你!"我搬来电脑,给儿子一小锤,"儿子,砸了它!"
"爸爸!"儿惊愕!
"砸了它,爸爸可以没有电脑,但不能没了儿子!"
儿流泪,亲手砸了电脑!
从此,儿懂得了什么叫原则。
昔孟母,择邻处,子不学,断机杼。
八则
儿11岁。我与妻久居异乡,每日致电老母亲,问候。一日,儿接电话:
"爸爸,您好!"很兴奋!
"嗯,好!奶奶呢?请奶奶听电话。"
"爸爸,你为什么每天只给奶奶打电话呀?"
"这有什么好奇怪?因为那是我妈!"
"那我呢?我也想你们!"
"你找你妈去呀!"
从此,妻每天6点,能接到儿子问候,风雨无阻,至今已8年!
九则
儿12岁,六年级,作业繁重,情绪焦躁。傍晚,儿放学归,刚进门。
"臭小子,你昨天是不是把我的盘子打破了?"我妹妹开始发难。
"没有呀,姑姑,我没有!"一脸困惑。
"我看见你打的,还耍赖!"我母亲又铁证如山。
"我没有呀!你们冤枉我?"大哭,躺地,情绪爆发?
约5分钟,我从房间出,厉声道:
"咋了?在这里发疯!"
"爸爸,姑姑和奶奶冤枉我!"
"冤枉?冤枉你又咋样!冤枉你就躺下了?没出息!你是不是男子汉?"
儿止哭,站起,低头:
"爸爸,她们冤枉我。"
"男子汉大丈夫,就算天塌下来,也不能躺下!何况一个小小的盘子?没出息!"我继续,"人这一辈子,要经历多少风风雨雨,被冤枉、污蔑、背叛、出卖?你就趴下了?那是孬种!"
儿挺腰,抬头:
"爸爸,我懂了,现在我该怎么办?"
"现在?问问你自已,你有很多时间吗?"
"没有,很多作业要做。"
"那还不去做作业!记住,哪怕山崩地裂,不理它,先做好自己的事!"
儿提起书包,向奶奶,姑姑行礼,从容走进书房。
我们仨会心一笑。
"宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒."儿子,当你长大后,看到这幅对子时,或许,你会想起今天,想起奶奶,想起姑姑,想起爸爸的良苦用心!
用于展现图表的50种JavaScript库
在很多项目中都会有在前端展现数据图表的需求,而在开发过程中,开发者往往会使用一些JavaScript库,从而更有效地达到想要的目标。最近,TechSlide上的一篇文章总结了50种用于展现图表的JavaScript库,并对每种库做了简要的说明。这对于想要选择合适JavaScript库的开发者很有参考意义。
文章作者首推的库是D3,他说到:
它非常让人惊叹,我很喜欢它的简洁性。它的文档非常完备,源代码托管在GitHub上,而且不断会添加新的示例。有一种叫做Tributary的创建D3原型的工具,其中有很多非常棒的示例。这个库非常好,以至于xcharts、nvd3、Rickshaw、Cubism.js、dc.js、xkcd都是基于它构建的。如果你想要做出优秀的自定义数据可视化效果,那么D3可能是你最佳选择,或者对于更简单的图,你可以选择上面所提到的基于D3的库。最后,我强烈推荐阅读Scott Murray关于D3的免费书《Interactive Data Visualization for the Web》和《Dashing D3 tutorials》。
接下来,他列举并简要说明了其它用于展现数据、制作表格和图表的JavaScript库,列在前20位的如下:
- HighCharts——它非常强大,你可以在JSFiddle中查看和编辑大量示例。它不免费,但拥有很多客户(IBM、NASA、MasterCard等)。它还向下兼容IE 8。
- jqPlot——如果你已经在使用jQuery,不想为HighCharts付费,而且情况很简单,不需要D3那样复杂的库,那么jqPlot是很好的选择。
- dygraphs——一种开源的JavaScript库,可以做出可交互、可缩放的时间线图表。对于大数据集合非常适用。
- Protovis——和D3出自同一支团队之手,是一种免费的开源库。你可以查看这个stackoveflow 页面来了解D3与其的区别。
- Flot Charts——与jqPlot一样,Flot是一种针对jQuery的纯JavaScript库,专注于简单的用法、引人注目的外观和交互特性。
- Google Chart Tools——强大、免费、易于使用。内容丰富,从最简单的线状图到负责的层级树状图都有,在展示页面中提供了大量设计良好的图表类型。
- dc.js——基于D3的JavaScript图表库,拥有本地跨过滤器(crossfilter)的支持,并让你可以高效率地浏览大型多维数据集。
- xcharts——基于D3用于构建自定义图表的库。
- nvd3——让你可以构建可重用的图表和图表组件,同时具有d3.js的强大功能。
- rickshaw——用于创建可交互时间线图表的JavaScript工具。
- Cubism.js——用于可视化时间线的D3插件。使用了Cubism构建更好的实时仪表盘,可以从Graphite、Cube和其他源拉取数据。
- xkcd——让你可以使用D3在JavaScript中做出XKCD样式的图表。
- jQuery Sparklines——一种jQuery插件,可以直接在浏览器中创建小型的内嵌图表。
- peity——一种简单的jQuery插件,可以把元素的内容转换成简单的饼图、线图和柱状图。
- BonsaiJS——一种轻量级的图形库,拥有直观的图形API和SVG渲染器。
- Flotr——为Prototype.js所用的JavaScript图表库。它拥有很多特性,像对负数值的支持、鼠标跟踪、选定支持、缩放支持、事件挂钩、CSS样式支持、在画布(canvas)中包含文字、旋转的标签、渐变颜色、图形标题和子标题、电子表格、CSV数据下载等等。
- ProtoChart——物如其名,ProtoChart让你可以使用JavaScript和Prototype创建很漂亮的图表。它是一种开源库。
- Flotr2——HumbleSoftware当前正在做的项目,让你可以使用Canvas和JavaScript创建图表。
- jQuery-Visualize——HTML的table元素驱动的HTML5 canvas图表。也是针对jQuery的图表插件。
- JS Charts——基于JavaScript的图表生成器,只需要很少甚至不需要编码。免费版会有水印,可以通过付费去掉。
- ……
文章中还列举的JavaScript库有:PlotKit、MilkChart、moochart、moowheel、table2chart、Canvas 3D Graph、TufteGraph、ArborJS、TimePlot、gRaphael、ICO、Elycharts、ZingChart、RGraph、Dojo Charting、Bluff、canvasXpress、ccchart、JIT、JSXGraph、Smoothie Charts、YUI Charts、amcharts、Emprise JavaScript Charts、FusionCharts、JavaScript Diagram Builder、jGraph、Sencha Touch Charts、Style Chart、AwesomeChartJS等,都各有千秋,如果你对这些库感兴趣的话,可以访问相应的链接或者阅读原文。
这个列表对于想要利用JavaScript技术创建图表展现数据的开发者来说,非常具有参考意义,你可以从中选择最适合的库,从而高效、高质量地完成任务。
Chrome浏览器超强调试工具
在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器。在Chrome出来的时候,我就喜欢上它的简洁、快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现在的FireFox4 也比之前的FireFox3有很大的进步)。
不过当时由于Chrome的开发者工具还不是很完善,而我又不是很熟悉,加之对于Firebug的好感和依 赖,当时还是用回FireFox作为我的主浏览器。
后来由于开发Chrome的插件(现在的FaWave),就一直使用Google Chrom作为我的主浏览器,渐渐熟悉Chrome的开发者工具,而Chrome也一直在快速迭代,快速进步中,到现在,Chrome已经绝对成为我的主 浏览器,Chrome的开发者工具,我也认为比Firebug更好用。
得益于Google V8的快速,和对HTML5和CSS3的支持也算比较完善,html类的富客户端应用Chrome上无论是流畅性还是呈现的效果,都是比较出色的,这对于开发者,特别是对于那些喜欢研究前沿技术的前端开发者来说,是很重要的。
对于本文,作为一个Web开发人员,除了上面的原因以外,与我们开发相关的,就是Chrome的开发者工具。而本文,就是要详细说说Chrome的开发者工具,说说我为什么认为它比Firebug要好用。
怎样打开Chrome的开发者工具?
你可以直接在页面上点击右键,然后选择审查元素:
或者在Chrome的工具中找到:
或者,你直接记住这个快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接打开控制台),或者直接按F12。
打开的开发者工具就长下面的样子:
不过我一般习惯与点左下角的那个按钮,将开发者工具弹出作为一个独立的窗口:
下面来分别说下每个Tab的作用。
Elements标签页
这个就是查看、编辑页面上的元素,包括HTML和CSS:
左侧就是对页面HTML结构的查看与编辑,你可以直接在某个元素上双击修改元素的属性,或者你点右键选"Edit as Html"直接对元素的HTML进行编辑,或者删除某个元素,所有的修改都会即时在页面上得到呈现。(注:看到上面右键菜单的最后一个选项"审查元素"了么?这是不是说明这个开发者工具的页面也是HTML来的呢?你点一下就知道了哦,嘿嘿)
你还可以对某个元素进行监听,在JS对元素的属性或者HTML进行修改的时候,直接触发断点,跳转到对改元素进行修改的JS代码处:
Elements标签页的右侧可以对元素的CSS进行查看与编辑修改:
你还可以通过这里看到各CSS选择器设置的CSS值的覆盖情况。
下面的Metrics可以看到元素占的空间情况(宽、高、Padding、Margin神马的):
注意到上面的Properties没有?这个很有用哦,可以让你看到元素具有的方法与属性,比查API手册要方便得多哦(要注意某些方法和属性在IE、FireFox等其他浏览器下面的支持情况哦)。
Resources标签页
Resources标签页可以查看到请求的资源情况,包括CSS、JS、图片等的内容,同时还可以查看到存储相关的如Cookies、HTML5的Database和LocalStore等,你可以对存储的内容编辑和删除。
这里的CSS文件有一个好玩的特性,你可以直接修改CSS文件,并且修改即时生效哦:
Network标签页
Network标签页对于分析网站请求的网络情况、查看某一请求的请求头和响应头还有响应内容很有用,特别是在查看Ajax类请求的时候,非常有帮助。注意是在你打开Chrome开发者工具后发起的请求,才会在这里显示的哦。
点击左侧某一个具体去请求URL,可以看到该请求的详细HTTP请求情况:
我们可以在这里看到HTTP请求头、HTTP响应头、HTTP返回的内容等信息,对于开发、调试,都是很有用的。
Scripts标签页
很明显,这个标签页就是查看JS文件、调试JS代码的,直接看下图的说明:
还有你可以打开Javascript控制台,做一些其他的查看或者修改:
你甚至还可以为某一XHR请求或者某一事件设置断点:
Timeline标签页
注意这个Timeline的标签页不是指网络请求的时间响应情况哦(这个在Network标签页里查看),这个Timeline指的JS执行时间、页面元素渲染时间:
点击底部的Record就可以开始录制页面上执行的内容。(这个不熟悉,请参考文末链接)
Profiles标签页
这个主要是做性能优化的,包括查看CPU执行时间与内存占用:
这个也不熟悉,不多说,还是请参考文末链接吧。
Audits标签页
这个对于优化前端页面、加速网页加载速度很有用哦(相当与Yslow):
点击run按钮,就可以开始分析页面,分析完了就可以看到分析结果了:
它甚至可以分析出页面上样式表中有哪些CSS是没有被使用的哦:
Console标签页
就是Javascript控制台了:
这个除了查看错误信息、打印调试信息(console.log())、写一些测试脚本以外,还可以当作Javascript API查看用。
例如我想查看console都有哪些方法和属性,我可以直接在Console中输入"console"并执行:
怎么样,一目了然了吧 ?再例如我想查看日期函数都有哪些方法:
(注:注意在这里看到的某些方法和属性是ES5新增的,记得兼容其他浏览器的支持情况哦)
结语
Google Chrome除了简洁、快速,现在的Chrome的插件也非常的丰富了。而对于web开发者来说,Chrome对于HTML5、CSS3等一些新标准的支 持也是比较完善的,而且Chrome的开发者工具我个人认为真的非常好用,这就是为什么我向web开发者推荐使用Chrome的原因。
注1:本文截图的Chrome版本为:13.0.782.215 m
注2:Chrome开发者工具更详细的说明请参考:http://code.google.com/intl/zh-CN/chrome/devtools/docs/overview.html
常用帮助文档链接
海底苍鹰(tank)博客 帮助文档大全
http://blog.51yip.com/manual/jquery/
Chrome Developer Tools
https://developers.google.com/chrome-developer-tools/docs/overview?hl=zh-CN
迄今见过的最好的职业规划的文章
如果这篇文章没有分享给你,那是我的错。
如果这篇文章分享给你了,你却没有读,继续走弯路的你不要怪我。
如果你看了这篇文章,只读了一半你就说没时间了,说明你已经是个“茫”人了。
如果你看完了,你觉得这篇文章只是讲讲大道理,说明你的人生阅历还不够,需要你把这篇文章珍藏,走出去碰几年壁,头破血流后再回来,再读,你就会感叹自己的年少无知。
如果你看完了,觉得很有道理,然后束之高阁,继续走进拥挤的地铁,依然用着自己昨日的观念来思考自己的未来,你的人生也将继续重复着昨日的状况。
如果你看完了,觉得那是一个过来人,对你的人生忠告,并你也愿意用他告诉你的思想去指导自己今后的生活,对你来讲成功不是很难,难的是你是否可以用这篇文章里的思想一直鞭策自己。
如果你看完了,觉得那是一个长辈用他的一生的时间来写的一篇对你忠告的文章,说明你已经有了和他相似的人生阅历,只要你继续努力,成就伟业并不难,难的是你是否可以把自己的人生经验和他人分享呢?
体验决定深度,知识决定广度。你的人生是什么呢?
现将原HP公司大中华区总裁孙振耀的一篇文章转发给大家。这是一篇十分深刻却又非常朴实的文章,看了以后很有感触。希望大家也抽空读一读,并有自己的收获。
一、关于工作与生活
外企员工的成功很大程度上是公司的成功,并非个人的成功,西门子的确比国美大,但并不代表西门子中国经理比国美的老板强,甚至可以说差得很远。而进外企的人往往并不能很早理解这一点,把自己的成功90%归功于自己的能力,实际上,外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。
二三十岁的时候,生活的压力还比较小,身体还比较好,上面的父母身体还好,下面又没有孩子,不用还房贷,也没有孩子要上大学,当个外企小白领还是很光鲜的,挣得不多也够花了。但是人终归要结婚生子,终归会老,到了40岁,父母老了,要看病要吃药,要有人看护,自己要还房贷,要过基本体面的生活,要养小孩……那个时候需要挣多少钱才够花才重要。所以,看待工作,眼光要放远一点,一时的谁高谁低并不能说明什么。
从这个角度上来说,我不太赞成过于关注第一份工作的薪水,更没有必要攀比第一份工作的薪水,这在刚刚出校园的学生中间是很常见的。正常人大概要工作35年,这好比是一场马拉松比赛,和真正的马拉松比赛不同的是,这次比赛没有职业选手,每个人都只有一次机会。要知到,有很多人甚至坚持不到终点,大多数人最后是走到终点的,只有少数人是跑过终点的,因此在刚开始的时候,去抢领先的位置并没有太大的意义。刚进社会的时候如果进500强公司,大概能拿到3k-6k/月的工资,有些特别技术的人才可能可以到8k/月,可问题是,5年以后拿多少?估计5k-10k了不起了。起点虽然高,但增幅有限,而且,后面的年轻人追赶的压力越来越大。
职业生涯就像一场体育比赛,有初赛、复赛、决赛。初赛的时候大家都刚刚进社会,大多数都是实力一般的人,这时候努力一点认真一点很快就能让人脱颖而出,于是有的人二十多岁做了经理,有的人迟些也终于赢得了初赛,三十多岁成了经理。然后是复赛,能参加复赛的都是赢得初赛的,每个人都有些能耐,在聪明才智上都不成问题,这个时候再想要胜出就不那么容易了,单靠一点点努力和认真还不够,要有很强的坚忍精神,要懂得靠团队的力量,要懂得收服人心,要有长远的眼光……
看上去赢得复赛并不容易,但还不是那么难。因为这个世界的规律就是给人一点成功的同时让人骄傲自满,刚刚赢得初赛的人往往不知道自己赢得的仅仅是初赛,有了一点小小的成绩大多数人都会骄傲自满起来,认为自己已经懂得了全部,不需要再努力再学习了,他们会认为之所以不能再进一步已经不是自己的原因了。虽然他们仍然不好对付,但是他们没有耐性,没有容人的度量,更没有清晰长远的目光。就像一只愤怒的斗牛,虽然猛烈,最终是会败的,而赢得复赛的人则象斗牛士一样,不急不躁,跟随着自己的节拍,慢慢耗尽对手的耐心和体力。赢得了复赛以后,大约已经是一位很了不起的职业经理人了,当上了中小公司的总经理,大公司的副总经理,主管着每年几千万乃至几亿的生意。
最终的决赛来了,说实话我自己都还没有赢得决赛,因此对于决赛的决胜因素也只能凭自己的猜测而已,这个时候的输赢或许就像武侠小说里写得那样,大家都是高手,只能等待对方犯错了,要想轻易击败对手是不可能的,除了使上浑身解数,还需要一点运气和时间。这和体育比赛是一样的,最后高手之间的比赛,就看谁失误少谁就赢得了决赛。
二、 根源
你工作快乐么?你的工作好么?
有没有觉得干了一段时间以后工作很不开心?有没有觉得自己入错了行?有没有觉得自己没有得到应有的待遇?有没有觉得工作像一团乱麻每天上班都是一种痛苦?有没有很想换个工作?有没有觉得其实现在的公司并没有当初想象得那么好?有没有觉得这份工作是当初因为生存压力而找的,实在不适合自己?你从工作中得到你想要得到的了么?你每天开心么?
天涯上愤怒的人很多,你有没有想过,你为什么不快乐?你为什么愤怒?
其实,你不快乐的根源,是因为你不知道要什么!你不知道要什么,所以你不知道去追求什么,你不知道追求什么,所以你什么也得不到。
我总觉得,职业生涯首先要关注的是自己,自己想要什么?大多数人大概没想过这个问题,唯一的想法只是——我想要一份工作,我想要一份不错的薪水,我知道所有人对于薪水的渴望,可是,你想每隔几年重来一次找工作的过程么?你想每年都在这种对于工作和薪水的焦急不安中度过么?不想的话,就好好想清楚。越是焦急,越是觉得自己需要一份工作,越饥不择食,越想不清楚,越容易失败,你的经历越来越差,下一份工作的人看着你的简历就皱眉头。于是你越喝越渴,越渴越喝,陷入恶性循环。最终只能哀叹世事不公或者生不逢时,只能到天涯上来发泄一把,在失败者的共鸣当中寻求一点心理平衡罢了。大多数人都有生存压力,我也是,有生存压力就会有很多焦虑,积极的人会从焦虑中得到动力,而消极的人则会因为焦虑而迷失方向。所有人都必须在压力下做出选择,这就是世道,你喜欢也罢不喜欢也罢。
一般我们处理的事情分为重要的事情和紧急的事情,如果不做重要的事情就会常常去做紧急的事情。比如锻炼身体保持健康是重要的事情,而看病则是紧急的事情。如果不锻炼身体保持健康,就会常常为了病痛烦恼。又比如防火是重要的事情,而救火是紧急的事情,如果不注意防火,就要常常救火。找工作也是如此,想好自己究竟要什么是重要的事情,找工作是紧急的事情,如果不想好,就会常常要找工作。往往紧急的事情给人的压力比较大,迫使人们去赶紧做,相对来说重要的事情反而没有那么大的压力,大多数人做事情都是以压力为导向的,压力之下,总觉得非要先做紧急的事情,结果就是永远到处救火,永远没有停歇的时候。(很多人的工作也像是救火队一样忙碌痛苦,也是因为工作中没有做好重要的事情。)那些说自己活在水深火热为了生存顾不上那么多的朋友,今天找工作困难是当初你们没有做重要的事情,是结果不是原因。如果今天你们还是因为急于要找一份工作而不去思考,那么或许将来要继续承受痛苦找工作的结果。
天下没有轻松的成功,成功,要付代价。请先忘记一切的生存压力,想想这辈子你最想要的是什么?所以,最要紧的事情,先想好自己想要什么。
三、什么是好工作
当初微软有个唐骏,很多大学里的年轻人觉得这才是他们向往的职业生涯,我在清华bbs里发的帖子被这些学子们所不屑,那个时候学生们只想出国或者去外企,不过如今看来,我还是对的,唐骏去了盛大,陈天桥创立的盛大,一家民营公司。一个高学历的海归在500强的公司里拿高薪水,这大约是很多年轻人的梦想,问题是,每年毕业的大学生都在做这个梦,好的职位却只有500个。
人都是要面子的,也是喜欢攀比的,即使在工作上也喜欢攀比,不管那是不是自己想要的。大家认为外企公司很好,可是好在哪里呢?好吧,他们在比较好的写字楼,这是你想要的么?他们出差住比较好的酒店,这是你想要的么?别人会羡慕一份外企公司的工作,这是你想要的么?那一切都是给别人看的,你干吗要活得那么辛苦给别人看?另一方面,他们薪水福利一般,并没有特别了不起,他们的晋升机会比较少,很难做到很高阶的主管,他们虽然厌恶常常加班,却不敢不加班,因为“你不干有得是人干”,大部分情况下会找个台湾人香港人新加坡人来管你,而这些人又往往有些莫名其妙的优越感。你想清楚了么?500强一定好么?找工作究竟是考虑你想要什么,还是考虑别人想看什么?
我的大学同学们大多数都到美国了,甚至毕业这么多年了,还有人最近到国外去了。出国真的有那么好么?我的大学同学们,大多数还是在博士、博士后、访问学者地挣扎着,至今只有一个正经在一个美国大学里拿到个正式的教职。国内的教授很难当么?我有几个表亲也去了国外了,他们的父母独自在国内,没有人照顾,有好几次人在家里昏倒都没人知道,出国,真的这么光彩么?就像有人说的“很多事情就像看A片,看的人觉得很爽,做的人未必。”
人总想找到那个最好的,可是,什么是最好的?你觉得是最好的那个,是因为你的确了解,还是因为别人说他是最好的?即使他对于别人是最好的,对于你也一定是最好的么?
对于自己想要什么,自己要最清楚,别人的意见并不是那么重要。很多人总是常常被别人的意见所影响,亲戚的意见,朋友的意见,同事的意见……问题是,你究竟是要过谁的一生?人的一生不是父母一生的续集,也不是儿女一生的前传,更不是朋友一生的外篇,只有你自己对自己的一生负责,别人无法也负不起这个责任。自己做的决定,至少到最后,自己没什么可后悔。对于大多数正常智力的人来说,所做的决定没有大的对错,无论怎么样的选择,都是可以尝试的。比如你没有考自己上的那个学校,没有入现在这个行业,这辈子就过不下去了?就会很失败?不见得。
我想,好工作,应该是适合你的工作,具体点说,应该是能给你带来你想要的东西的工作,你或许应该以此来衡量你的工作究竟好不好,而不是拿公司的大小,规模,外企还是国企,是不是有名,是不是上市公司来衡量。小公司,未必不是好公司,赚钱多的工作,也未必是好工作。你还是要先弄清楚你想要什么,如果你不清楚你想要什么,你就永远也不会找到好工作,因为你永远只看到你得不到的东西,你得到的,都是你不想要的。
可能,最好的,已经在你的身边,只是,你还没有学会珍惜。人们总是盯着得不到的东西,而忽视了那些已经得到的东西。
四、普通人
我发现中国人的励志和国外的励志存在非常大的不同,中国的励志比较鼓励人立下大志愿,卧薪尝胆,有朝一日成富成贵。而国外的励志比较鼓励人勇敢面对现实生活,面对普通人的困境,虽然结果也是成富成贵,但起点不一样,相对来说,我觉得后者在操作上更现实,而前者则需要用 999 个失败者来堆砌一个成功者的故事。
我们都是普通人,普通人的意思就是,概率这件事是很准的。因此,我们不会买彩票中500万,我们不会成为比尔盖茨或者李嘉诚,我们不会坐飞机掉下来,我们当中很少的人会创业成功,我们之中有 30 %的人会离婚,我们之中大部分人会活过65岁 ……
所以请你在想自己要什么的时候,要得 “ 现实” 一点,你说我想要做李嘉诚,抱歉,我帮不上你。成为比尔盖茨或者李嘉诚这种人,是靠命的,看我写的这篇文章绝对不会让你成为他们,即使你成为了他们,也绝对不是我这篇文章的功劳。“ 王侯将相宁有种乎”但真正当皇帝的只有一个人,王侯将相,人也不多。目标定得高些对于喜欢挑战的人来说有好处,但对于大多数普通人来说,反而比较容易灰心沮丧,很容易就放弃了。
回过头来说, 李嘉诚比你有钱大致50 万倍,他比你更快乐么?或许。有没有比你快乐50万倍,一定没有。他比你最多也就快乐一两倍,甚至有可能还不如你快乐 。寻找自己想要的东西不是和别人比赛,比谁要得更多更高,比谁的目标更远大。虽然成为李嘉诚这个目标很宏大,但你并不见得会从这个目标以及追求目标的过程当中获得快乐,而且基本上你也做不到。你必须听听你内心的声音,寻找真正能够使你获得快乐的东西,那才是你想要的东西。
你想要的东西,或者我们把它称之为目标,目标其实并没有高低之分,你不需要因为自己的目标没有别人远大而不好意思,达到自己的目标其实就是成功,成功有大有小,快乐却是一样的。我们追逐成功,其实追逐的是成功带来的快乐,而非成功本身。职业生涯的道路上,我们常常会被攀比的心态蒙住眼睛,忘记了追求的究竟是什么,忘记了是什么能使我们更快乐。
社会上一夜暴富的新闻很多,这些消息,总会在我们的心里面掀起很多涟漪,涟漪多了就变成惊涛骇浪,心里的惊涛骇浪除了打翻承载你目标的小船,并不会使得你也一夜暴富。
“ 只见贼吃肉,不见贼挨揍。”我们这些普通人既没有当贼的勇气,又缺乏当贼的狠辣绝决,虽然羡慕吃肉,却更害怕挨揍,偶尔看到几个没挨揍的贼就按奈不住,或者心思活动,或者大感不公,真要叫去做贼,却也不敢。
我还是过普s通人的日子,要普通人的快乐,至少,晚上睡得着觉 。
五、跳槽与积累
首先要说明,工作是一件需要理智的事情,所以不要在工作上耍个性,天涯上或许会有人觉得你很有个性而叫好,煤气公司电话公司不会因为觉得你很有个性而免了你的帐单。当你很帅地炒掉了你的老板,当你很酷地挖苦了一番招聘的 HR ,账单还是要照付,只是你赚钱的时间更少了,除了你自己,没人受损失。
我并不反对跳槽,但跳槽决不是解决问题的办法,而且频繁跳槽的后果是让人觉得没有忠诚度可言,而且不能安心工作。现在很多人从网上找工作,很多找工作的网站常常给人出些馊主意,要知道他们是盈利性企业,当然要从自身盈利的角度来考虑,大家越是频繁跳槽频繁找工作他们越是生意兴隆,所以鼓动人们跳槽是他们的工作。所以他们会常常告诉你,你拿的薪水少了,你享受的福利待遇差了,又是 “ 薪情快报” 又是 “赞叹自由奔放的灵魂 ” 。至于是否会因此让你不能安心,你跳了槽是否解决问题,是否更加开心,那个,他们管不着。
要跳槽肯定是有问题,一般来说问题发生了,躲是躲不开的,很多人跳槽是因为这样或者那样的不开心,如果这种不开心,在现在这个公司不能解决,那么在下一个公司多半也解决不掉。你必须相信, 90% 的情况下,你所在的公司并没有那么烂,你认为不错的公司也没有那么好。就像围城里说的, “ 城里的人拼命想冲出来,而城外的人拼命想冲进去。”
每个公司都有每个公司的问题,没有问题的公司是不存在的。换个环境你都不知道会碰到什么问题,与其如此,不如就在当下把问题解决掉。很多问题当你真的想要去解决的时候,或许并没有那么难。有的时候你觉得问题无法解决,事实上,那只是 “ 你觉得” 。
人生的曲线应该是曲折向上的,偶尔会遇到低谷但大趋势总归是曲折向上的,而不是象脉冲波一样每每回到起点,我见过不少面试者,30 多岁了,四五份工作经历,每次多则3年,少则 1 年,30 多岁的时候回到起点从一个初级职位开始干起,拿基本初级的薪水,和20多岁的年轻人一起竞争,不觉得有点辛苦么?这种日子好过么?
我非常不赞成在一个行业超过3 年以后换行业,基本上, 35岁以前我们的生存资本靠打拼, 35 岁以生存的资本靠的就是积累,这种积累包括人际关系,经验,人脉,口碑 …… 如果常常更换行业,代表几年的积累付之东流,一切从头开始,如果换了两次行业, 35岁的时候大概只有5年以下的积累,而一个没有换过行业的人至少有了 10 年的积累,谁会占优势?工作到2-3年的时候,很多人觉得工作不顺利,好像到了一个瓶颈,心情烦闷,就想辞职,乃至换一个行业,觉得这样所有一切烦恼都可以抛开,会好很多。其实这样做只是让你从头开始,到了时候还是会发生和原来行业一样的困难,熬过去就向上跨了一大步,要知道每个人都会经历这个过程,每个人的职业生涯中都会碰到几个瓶颈,你熬过去了而别人没有熬过去你就领先了。跑长跑的人会知道,开始的时候很轻松,但是很快会有第一次的难受,但过了这一段又能跑很长一段,接下来会碰到第二次的难受,坚持过了以后又能跑一段,如此往复,难受一次比一次厉害,直到坚持不下去了。大多数人第一次就坚持不了了,一些人能坚持到第二次,第三次虽然大家都坚持不住了,可是跑到这里的人也没几个了,这点资本足够你安稳活这一辈子了。
一份工作到两三年的时候,大部分人都会变成熟手,这个时候往往会陷入不断的重复,有很多人会觉得厌倦,有些人会觉得自己已经搞懂了一切,从而懒得去寻求进步了。很多时候的跳槽是因为觉得失去兴趣了,觉得自己已经完成比赛了。其实这个时候比赛才刚刚开始,工作两三年的人,无论是客户关系,人脉,手下,和领导的关系,在业内的名气……
还都是远远不够的,但稍有成绩的人总是会自我感觉良好的,每个人都觉得自己跟客户关系铁得要命,觉得自己在业界的口碑好得很。其实可以肯定地说,一定不是,这个时候,还是要拿出前两年的干劲来,稳扎稳打,积累才刚刚开始 。
你足够了解你的客户吗?你知道他最大的烦恼是什么吗?你足够了解你的老板么?你知道他最大的烦恼是什么吗?你足够了解你的手下么?你知道他最大的烦恼是什么吗?如果你不知道,你凭什么觉得自己已经积累够了?如果你都不了解,你怎么能让他们帮你的忙,做你想让他们做的事情?如果他们不做你想让他们做的事情,你又何来的成功?
六、等待
这是个浮躁的人们最不喜欢的话题,本来不想说这个话题,因为会引起太多的争论,而我又无意和人争论这些,但是考虑到对于职业生涯的长久规划,这是一个躲避不了的话题,还是决定写一写,不爱看的请离开吧。
并不是每次穿红灯都会被汽车撞,并不是每个罪犯都会被抓到,并不是每个错误都会被惩罚,并不是每个贪官都会被枪毙,并不是你的每一份努力都会得到回报,并不是你的每一次坚持都会有人看到,并不是你每一点付出都能得到公正的回报,并不是你的每一个善意都能被理解 …… 这个,就是世道。好吧,世道不够好,可是,你有推翻世道的勇气么?如果没有,你有更好的解决办法么?有很多时候,人需要一点耐心,一点信心。每个人总会轮到几次不公平的事情,而通常,安心等待是最好的办法。
有很多时候我们需要等待,需要耐得住寂寞,等待属于你的那一刻。周润发等待过,刘德华等待过,周星驰等待过,王菲等待过,张艺谋也等待过…… 看到了他们如今的功成名就的人,你可曾看到当初他们的等待和耐心?你可曾看到金马奖影帝在街边摆地摊?你可曾看到德云社一群人在剧场里给一位观众说相声?你可曾看到周星驰的角色甚至连一句台词都没有?每一个成功者都有一段低沉苦闷的日子,我几乎能想象得出来他们借酒浇愁的样子,我也能想象得出他们为了生存而挣扎的窘迫。在他们一生最中灿烂美好的日子里,他们渴望成功,但却两手空空,一如现在的你。没有人保证他们将来一定会成功,而他们的选择是耐住寂寞。如果当时的他们总念叨着 “ 成功只是属于特权阶级的”,你觉得他们今天会怎样?
曾经我也不明白有些人为什么并不比我有能力却要坐在我的头上,年纪比我大就一定要当我的领导么?为什么有些烂人不需要努力就能赚钱?为什么刚刚改革开放的时候的人能那么容易赚钱,而轮到我们的时候,什么事情都要正规化了?有一天我突然想,我还在上学的时候他们就在社会里挣扎奋斗了,他们在社会上奋斗积累了十几二十年,我们新人来了,他们有的我都想要,我这不是在要公平,我这是在要抢劫。因为我要得太急,因为我忍不住寂寞。二十多岁的男人,没有钱,没有事业,却有蓬勃的欲望 。
人总是会遇到挫折的,人总是会有低潮的,人总是会有不被人理解的时候的,人总是有要低声下气的时候,这些时候恰恰是人生最关键的时候,因为大家都会碰到挫折,而大多数人过不了这个门槛,你能过,你就成功了。在这样的时刻,我们需要耐心等待,满怀信心地去等待,相信,生活不会放弃你,机会总会来的。至少,你还年轻,你没有坐牢,没有生治不了的病,没有欠还不起的债。比你不幸的人远远多过比你幸运的人,你还怕什么?路要一步步走,虽然到达终点的那一步很激动人心,但大部分的脚步是平凡甚至枯燥的,但没有这些脚步,或者耐不住这些平凡枯燥,你终归是无法迎来最后的那些激动人心。
逆境,是上帝帮你淘汰竞争者的地方。要知道,你不好受,别人也不好受,你坚持不下去了,别人也一样,千万不要告诉别人你坚持不住了,那只能让别人获得坚持的信心,让竞争者看着你微笑的面孔,失去信心,退出比赛。胜利属于那些有耐心的人。
在最绝望的时候,我会去看电影《 The Pursuit of Happyness》(当幸福来敲门)《 Jerry Maguire 》,让自己重新鼓起勇气,因为,无论什么时候,我们总还是有希望。当所有的人离开的时候,我不失去希望,我不放弃。每天下班坐在车里,我喜欢哼着《隐形的翅膀》看着窗外,我知道,我在静静等待,等待属于我的那一刻。
原贴里伊吉网友的话我很喜欢,抄录在这里:
每个人都希望,自己是独一无二的特殊者含着金匙出生、投胎到好家庭、工作安排到电力局拿 1w月薪这样的小概率事件,当然最好轮到自己红军长征两万五、打成右派反革命、胼手胝足牺牲尊严去奋斗,最好留给祖辈父辈和别人自然,不是每个吃过苦的人都会得到回报,但是,任何时代,每一个既得利益者身后,都有他的祖辈父辈奋斗挣扎乃至流血付出生命的身影羡慕别人有个好爸爸,没什么不可以问题是,你的下一代,会有一个好爸爸吗?
七、入对行跟对人
在中国,大概很少有人是一份职业做到底的第一份工作还是有些需要注意的地方,有两件事情格外重要,第一件是入行,第二件事情是跟人其实没有哪个行业特别好,也没有哪个行业特别差,或许有报道说哪个行业的平均薪资比较高,但是他们没说的是,那个行业的平均压力也比较大。看上去很美的行业一旦进入才发现很多地方其实并不那么完美,只是外人看不见。
我的建议只是让人快乐工作的建议,不是如何发大财的建议,我们只讨论一般普通打工者的情况。我认为选择什么行业并没有太大关系,看问题不能只看眼前 从前年开始,国家开始整顿医疗行业,很多医药公司开不下去,很多医药行业的销售开始转行。其实医药行业的不景气是针对所有公司的,并非针对一家公司,大家的日子都不好过,这个时候跑掉是非常不划算的,大多数正规的医药公司即使不做新生意撑个两三年总是能撑的,大多数医药销售靠工资撑个两三年也是可以撑的,国家不可能永远捏着医药行业不放的,两三年以后光景总归还会好起来的,那个时候别人都跑了而你没跑,那时的日子应该会好过很多。
有的时候觉得自己这个行业不行了,问题是,再不行的行业,做得人少了也变成了好行业,当大家都觉得不好的时候,往往却是最好的时候。大家都觉得金融行业好,金融行业门槛高不说,有多少人削尖脑袋要钻进去,竞争激励,进去以后还要时时提防,一个疏忽,就被后来的人给挤掉了,压力巨大,又如何谈得上快乐?也就未必是“好”工作了。
其实选什么行业真的不重要,关键是怎么做。事情都是人做出来的,关键是人。
有一点是需要记住的,这个世界上,有史以来直到我们能够预见得到的未来,成功的人总是少数,有钱的人总是少数,大多数人是一般的,普通的,不太成功的。因此,大多数人的做法和看法,往往都不是距离成功最近的做法和看法。因此大多数人说好的东西不见得好,大多数人说不好的东西不见得不好。大多数人都去炒股的时候说明跌只是时间问题,大家越是热情高涨的时候,跌的日子越近。
年轻人在职业生涯的刚开始,尤其要注意的是,要做对的事情,不要让自己今后几十年的人生总是提心吊胆,更不值得为了一份工作赔上自己的青春年华。勇于给钱的公司,不是倒了,就是跑了,要不就是每天睡不好觉,人还是要看长远一点。很多时候,看起来最近的路,其实是最远的路,看起来最远的路,其实是最近的路。
跟对人是说,入行后要跟个好领导好老师,刚进社会的人做事情往往没有经验,需要有人言传身教。对于一个人的发展来说,一个好领导是非常重要的。所谓“好”的标准,不是他让你少干活多拿钱,而是以下三个。
首先,好领导要有宽广的心胸,其次,领导要愿意从下属的角度来思考问题 第三,领导敢于承担责任 多认识一些人,多和比自己强的人打交道,同样能找到好的老师,不要和一群同样郁闷的人一起控诉社会,控诉老板,这帮不上你,只会让你更消极。和那些比你强的人打交道,看他们是怎么想的,怎么做的,学习他们,然后跟更强的人打交道。
八、选择
每天,每一刻我们都在做这样那样的决定,我们可以漫不经心,也可以多花些心思,成千上万的小选择累计起来,就决定了最终我们是个什么样的人。
从某种意义上来说我们的未来不是别人给的,是我们自己选择的,大多数人都没有什么选择 但每天你都可以选择是否为客户服务更周到一些,是否对同事更耐心一些,是否把工作做得更细致一些,是否把情况了解得更清楚一些,是否把不清楚的问题再弄清楚一些……
你也可以选择在是否在痛苦中继续坚持,是否抛弃掉自己的那些负面的想法,是否原谅一个人的错误,是否相信我在这里写下的这些话,是否不要再犯同样的错误……
生活每天都在给你选择的机会,每天都在给你改变自己人生的机会,你可以选择赖在地上撒泼打滚,也可以选择咬牙站起来。你永远都有选择。
每天生活都在给你机会,他不会给你一叠现金也不会拱手送你个好工作,但实际上,他还是在给你机会。
你最终会成为什么样的人,就决定在你的每个小小的选择之间。
你选择相信什么?你选择和谁交朋友?你选择做什么?你选择怎么做?……
选择做什么产品其实并不那么重要,而选择怎么做才重要。选择用什么人并不重要,而选择怎么带这些人才重要。
一个大学生毕业了,他要去微软也好,他要卖猪肉也好,他要创业也好,他要做游戏代练也好,只要不犯法,不害人,都没有什么关系,要紧的是,选择了以后,怎么把事情做好。
你还可以选择时间和环境,比如,你可以选择把这辈子最大的困难放在最有体力最有精力的时候,也可以走一步看一步,等到了40岁再说,只是到了40多岁,那正是一辈子最脆弱的时候,上有老下有小,如果在那个时候碰上了职业危机,实在是一件很苦恼的事情。与其如此不如在20多岁30多岁的时候吃点苦,好让自己脆弱的时候活得从容一些。你可以选择在温室里成长,也可以选择到野外磨砺,你可以选择在办公室吹冷气的工作,也可以选择40度的酷热下,去见你的客户,只是,这一切最终会累积起来,引导你到你应得的未来。
绝大部分事情你有选择,只是往往你不把这当作一种选择。认真对待每一次选择,才会有比较好的未来。
九、选择职业
职业的选择,总的来说,无非就是销售、市场、客服、物流、行政、人事、财务、技术、管理几个大类有个有趣的现象就是,500强的CEO当中最多的是销售出身,第二多的人是财务出身,这两者加起来大概超过95%。
销售就是一门跟人打交道的学问,而管理其实也是跟人打交道的学问很多人在工作中觉得为什么领导这么保守,这也不行那也不行,错过很多机会。很多时候是因为,你还年轻,你想的是“能做什么”,而作为公司领导要考虑的方面很多,他比较关心“不能做什么”。
究竟选择什么样的职业,和你究竟要选择什么样的人生有关系,有些人就喜欢下班按时回家,看看书听听音乐,那也挺好,但就不适合找个销售的工作了,否则会是折磨自己。
先想好自己要过怎样的人生,再决定要找什么样的职业。有很多的不快乐,其实是源自不满足,而不满足,很多时候是源自于心不定,而心不定则是因为不清楚究竟自己要什么,不清楚要什么的结果就是什么都想要,结果什么都没得到。
我想,我们还是因为生活而工作,不是因为工作而生活,生活是最要紧的,工作只是生活中的一部分。所以要有娱乐、要有社交、要锻炼身体,要有和睦的家庭……最要紧的,要开心如果你做得越好越不开心,那你为什么还要工作?首先的首先,人还是要让自己高兴起来,让自己心态好起来,这种发自内心的改变会让你更有耐心,更有信心,更有气质,更能包容……否则,看看镜子里的你,你满意么?
人会说,你说得容易,我每天加班,不加班老板就会把我炒掉,每天累得要死,哪有时间娱乐、社交、锻炼?
你没时间去健身房锻炼身体,但是上下班的时候多走几步可以吧,有楼梯的时候走走楼梯不走电梯可以吧?办公的间隙扭扭脖子拉拉肩膀做做俯卧撑可以吧?谁规定锻炼就一定要拿出每天2个小时去健身房?你没时间社交,每月参加郊游一次可以吧,周末去参加个什么音乐班,绘画班之类的可以吧,去尝试认识一些同行,和他们找机会交流交流可以吧?开始的时候总是有些难的,但迈出这一步就会向良性循环的方向发展。而每天工作得很苦闷,剩下的时间用来咀嚼苦闷,只会陷入恶性循环,让生活更加糟糕。
虽然离开惠普仅有十五天,但感觉上惠普已经离我很远。我的心思更多放在规划自己第二阶段的人生,这并非代表我对惠普没有任何眷恋,主要还是想以此驱动自己往前走。
由于受我父亲早逝的影响,我很早就下定决心,要在有生之年实现自己的愿望,我不要像我父亲一样,为家庭生活忙碌一辈子,临终前感伤,懊恼自己有很多没有实现的理想。
Carly Fiorina曾经对我说过“这个世界上有好想法的人很多,但有能力去实现的人很少”,2007年5月21日在北大演讲时,有人问起那些书对我影响较大,我想对我人生观有影响的其中一本书叫“TriggerPoint”,它的主要观点是:人生最需要的不是规划,而是在适当的时机掌握机会,采取行动。
放松自己,不给事情设定目标及时间表不正确,没有年度,季度,月及周计划也不正确。
我的人生观是“完美的演出来自充分的准备”,“勇于改变自己,适应不断变化的环境,机会将不断出现”,“快乐及有意义的人生来自于实现自己心中的愿望,而非外在的掌声”。
我总结人生有三个阶段,一个阶段是为现实找一份工作,一个阶段是为现实,但可以选择一份自己愿意投入的工作,一个阶段是为理想去做一些事情。
GIT乱码解决方案汇总
在处理一个有中文文件名的项目时却出现文件名乱码的问题。
情况重现
- 在一个使用cygwin的bash提交的git项目中,已经完成了所有的提交,但使用TortoiseGit查看的时候,却发现仍有文件没有提交,甚至是有文件还处于未暂存的状态。于是使用TortoiseGit提交;
- 再次用cygwin下的git status查看,这次又发现了未提交的情况。再次用git commit命令行提交;
- 回到TortoiseGit下查看,问题又出现了!此时准备返回两次提交前的版本,却因为文件名乱码的问题,无法返回了!
乱码原因
搜索一番,发现git文件名、log乱码,是普遍问题,这其中有编码的原因,也有跨平台的原因。主要原因是Windows 系统中的Git对中文文件名采用不同的编码保存所致。
Windows系统中使用的msysGit,采用的是系统编码来保存文件名;而Cygwin中的Git默认采用UTF-8编码来保存文件名。如果两个软件同时对一个版本库进行操作,且都认为对方是使用自己使用的编码来保存文件,就会导致文件名编码混乱,无法识别。
这就导致,如果一直使用TortoiseGit(实际调用MsysGit)提交,那么中文文件名没问题;一直使用cygwin提交,中文文件名也没问题。但一定不能交叉使用。
分别设置LANG、LC_CTYPE、LC_ALL参数为同样的编码,问题依旧。
cygwin官方网站提到了非拉丁语文件名的问题,也许研究后能解决该吧:Chapter 2. Setting Up Cygwin
这里还有一篇讲解Linux系统编码文章:locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别
官方终极解决方案
这个问题的官方终极解决方案,就是更新到msysGit1.7.10或更新版本。这个版本之后,msysGit和Git for Windows已经采用了UTF-8编码来保存文件名,不会再出现乱码的情况。安装和使用可参考这篇文章:使用Git、Git GUI和TortoiseGit
不幸的是,对于使用老版本msysGit提交的版本库,升级到msysGit1.7.10或者更高会出现编码问题。
有两篇文章介绍了这个问题的解决办法:
- 升級到 msysgit 1.7.10 的檔名亂碼處理方式(需要翻墙)
- upgrading to msysGit 1.7.10 (or higher)
下面的文章,是历史遗留,可以不看。若希望知其所以然,则不妨观之。
乱码情景对号入座和解决方案
乱码情景1
在cygwin中,使用git-add添加要提交的文件的时候,如果文件名是中文,会显示形如274\232\350\256\256\346\200\273\347\273\223.png的乱码。
解决方案:
在bash提示符下输入:
git config --global core.quotepath false
core.quotepath设为false的话,就不会对0×80以上的字符进行quote。中文显示正常。
乱码情景2
在MsysGit中,使用git log显示提交的中文log乱码。
解决方案:
设置git gui的界面编码
git config --global gui.encoding utf-8
设置 commit log 提交时使用 utf-8 编码,可避免服务器上乱码,同时与linux上的提交保持一致!
git config --global i18n.commitencoding utf-8
使得在 $ git log 时将 utf-8 编码转换成 gbk 编码,解决Msys bash中git log 乱码。
git config --global i18n.logoutputencoding gbk
使得 git log 可以正常显示中文(配合i18n.logoutputencoding = gbk),在 /etc/profile 中添加:
export LESSCHARSET=utf-8
乱码情景3
在MsysGit自带的bash中,使用ls命令查看中文文件名乱码。cygwin没有这个问题。
解决方案:
使用 lls --show-control-chars
命令来强制使用控制台字符编码显示文件名,即可查看中文文件名。
为了方便使用,可以编辑 /etc/git-completion.bash
,新增一行 alias ls="ls --show-control-chars"
终极解决方案
终极的解决方案是通过修改git和TortoiseGit源码实现,有网友这么做了:让Windows下Git和TortoiseGit支持中文文件名/UTF-8,也可以直接访问这个开源的Google项目:utf8-git-on-windows。
如果不抗拒命令行的话,直接用Cygwin来提交Git库。因为Cygwin其实是一个在Windows平台上的模拟器,它完全模拟GNU/Linux的方式运行,所以Cygwin中的Git是采用UTF-8编码来保存中文的。
在操作git时,把区域设置修改为 中文GBK。这之后就可以进行git相关操作了。
在终端中跟windows保持一致
1
2
|
export LC_ALL=zh_CN.GBK; export LANG=zh_CN.GBK
terminal -> set charactor encoding -> gbk
|
切换回linux默认
1
2
|
export LC_ALL=en_US.utf8; export LANG=en_US.utf8
terminal -> set charactor encoding -> unicode(utf-8)
|
改变文件名的编码
如果已经造成乱码的恶果,还可以在utf8和gbk之间切换文件名。真的修改,而不是像上面那样修改显示的(解码的)效果。
CI框架源码完全分析之核心文件Codeigniter.php
$assign_to_config['subclass_prefix']));
}
/*
*php 程序运行默认是30s,这里用set_time_limt延长了,关于set_time_Limit() http://www.phpddt.com/php/set_time_limit.html
* 扩展阅读,关于safe_mode:http://www.phpddt.com/php/643.html ,你会完全明白的
*/
if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
@set_time_limit(300);
}
/*
* 加载Benchmark,它很简单,就是计算任意两点之间程序的运行时间
*/
$BM =& load_class('Benchmark', 'core');
$BM->mark('total_execution_time_start');
$BM->mark('loading_time:_base_classes_start');
//加载钩子,后期会分析到,这玩意特好,扩展它能改变CI的运行流程
$EXT =& load_class('Hooks', 'core');
//这里就是一个钩子啦,其实就是该钩子程序在这里执行
$EXT->_call_hook('pre_system');
//加载配置文件,这里面都是一些加载或获取配置信息的函数
$CFG =& load_class('Config', 'core');
// 如果在index.php中也有配置$assign_to_config,则也把它加入到$CFG
if (isset($assign_to_config))
{
$CFG->_assign_to_config($assign_to_config);
}
//加载utf8组件、URI组件、Router组件
$UNI =& load_class('Utf8', 'core');
$URI =& load_class('URI', 'core');
$RTR =& load_class('Router', 'core');
$RTR->_set_routing();
//如果在index.php中定义了$routing,那么就会覆盖上面路由
if (isset($routing))
{
$RTR->_set_overrides($routing);
}
//加载output输出组件,不然你怎么用$this->Load->view()啊
$OUT =& load_class('Output', 'core');
//又见钩子,这里你可以自己写钩子程序替代Output类的缓存输出
if ($EXT->_call_hook('cache_override') === FALSE)
{
if ($OUT->_display_cache($CFG, $URI) == TRUE)
{
exit;
}
}
//安全组件啦,防xss攻击啊,csrf攻击啊
//关于xss攻击:http://www.phpddt.com/php/php-prevent-xss.html
//关于csrf:攻击:http://www.phpddt.com/reprint/csrf.html
$SEC =& load_class('Security', 'core');
//加载输入组件,就是你常用的$this->input->post();等
$IN =& load_class('Input', 'core');
//加载语言组件啦
$LANG =& load_class('Lang', 'core');
//引入CI的控制器父类
require BASEPATH.'core/Controller.php';
function &get_instance()
{
return CI_Controller::get_instance();
}
//当然你扩展了CI_Controller控制器的话,也要引入啦
if (file_exists(APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php'))
{
require APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php';
}
//加载你自己应用中的控制器Controller,如果没有当然error啦
if ( ! file_exists(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php'))
{
show_error('Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.');
}
include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php');
// 好的基础的类都加载完毕了,咱可以mark一下
$BM->mark('loading_time:_base_classes_end');
//路由获取了控制器名和方法名,比如说默认welcome/index
$class = $RTR->fetch_class();
$method = $RTR->fetch_method();
//这里CI规定一般非公共的方法以_开头,下面是判断,如果URI不可访问就show_404()
if ( ! class_exists($class)
OR strncmp($method, '_', 1) == 0
OR in_array(strtolower($method), array_map('strtolower', get_class_methods('CI_Controller')))
)
{
if ( ! empty($RTR->routes['404_override']))
{
$x = explode('/', $RTR->routes['404_override']);
$class = $x[0];
$method = (isset($x[1]) ? $x[1] : 'index');
if ( ! class_exists($class))
{
if ( ! file_exists(APPPATH.'controllers/'.$class.'.php'))
{
show_404("{$class}/{$method}");
}
include_once(APPPATH.'controllers/'.$class.'.php');
}
}
else
{
show_404("{$class}/{$method}");
}
}
//又是钩子,该钩子发生在控制器实例化之前的
$EXT->_call_hook('pre_controller');
//又mark一个点
$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start');
//终于实例化控制器了
$CI = new $class();
//钩子,不想多说了
$EXT->_call_hook('post_controller_constructor');
/*
* ------------------------------------------------------
* Call the requested method
* ------------------------------------------------------
*/
// Is there a "remap" function? If so, we call it instead
if (method_exists($CI, '_remap'))
{
$CI->_remap($method, array_slice($URI->rsegments, 2));
}
else
{
// is_callable() returns TRUE on some versions of PHP 5 for private and protected
// methods, so we'll use this workaround for consistent behavior
if ( ! in_array(strtolower($method), array_map('strtolower', get_class_methods($CI))))
{
// Check and see if we are using a 404 override and use it.
if ( ! empty($RTR->routes['404_override']))
{
$x = explode('/', $RTR->routes['404_override']);
$class = $x[0];
$method = (isset($x[1]) ? $x[1] : 'index');
if ( ! class_exists($class))
{
if ( ! file_exists(APPPATH.'controllers/'.$class.'.php'))
{
show_404("{$class}/{$method}");
}
include_once(APPPATH.'controllers/'.$class.'.php');
unset($CI);
$CI = new $class();
}
}
else
{
show_404("{$class}/{$method}");
}
}
// 终于调用方法了,$this->load->view()把内容放到缓存区
call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2));
}
$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end');
$EXT->_call_hook('post_controller');
//这里就是把缓存区的内容输出了
if ($EXT->_call_hook('display_override') === FALSE)
{
$OUT->_display();
}
$EXT->_call_hook('post_system');
//关闭数据库的链接
if (class_exists('CI_DB') AND isset($CI->db))
{
$CI->db->close();
}
10 个不错的 jQuery 代码片段
[代码] 图片预加载
01 |
( function ($) { |
02 |
var cache = []; |
03 |
// Arguments are image paths relative to the current page. |
04 |
$.preLoadImages = function () { |
05 |
var args_len = arguments.length; |
06 |
for ( var i = args_len; i--;) { |
07 |
var cacheImage = document.createElement( 'img' ); |
08 |
cacheImage.src = arguments[i]; |
09 |
cache.push(cacheImage); |
10 |
} |
11 |
} |
12 |
13 |
jQuery.preLoadImages( "image1.gif" , "/path/to/image2.png" ); |
[代码] 在新窗口打开链接 (target=”blank”)
1 |
$( 'a[@rel$=' external ']' ).click( function (){ |
2 |
this .target = "_blank" ; |
3 |
}); |
4 |
5 |
/* |
6 |
Usage: |
7 |
<a href="http://www.catswhocode.com" rel="external">catswhocode.com</a> |
8 |
*/ |
[代码] 当支持 JavaScript 时为 body 增加 class
1 |
/* 该代码只有1行,但是最简单的用来检测浏览器是否支持 JavaScript 的方法,如果支持 JavaScript 就在 body 元素增加一个 hasJS 的 class */ |
2 |
$( 'body' ).addClass( 'hasJS' ); |
[代码] 平滑滚动页面到某个锚点
01 |
$(document).ready( function () { |
02 |
$( "a.topLink" ).click( function () { |
03 |
$( "html, body" ).animate({ |
04 |
scrollTop: $($( this ).attr( "href" )).offset().top + "px" |
05 |
}, { |
06 |
duration: 500, |
07 |
easing: "swing" |
08 |
}); |
09 |
return false ; |
10 |
}); |
11 |
}); |
[代码] 鼠标滑动时的渐入和渐出
1 |
$(document).ready( function (){ |
2 |
$( ".thumbs img" ).fadeTo( "slow" , 0.6); // This sets the opacity of the thumbs to fade down to 60% when the page loads |
3 |
4 |
$( ".thumbs img" ).hover( function (){ |
5 |
$( this ).fadeTo( "slow" , 1.0); // This should set the opacity to 100% on hover |
6 |
}, function (){ |
7 |
$( this ).fadeTo( "slow" , 0.6); // This should set the opacity back to 60% on mouseout |
8 |
}); |
9 |
}); |
[代码] 制作等高的列
1 |
var max_height = 0; |
2 |
$( "div.col" ).each( function (){ |
3 |
if ($( this ).height() > max_height) { max_height = $( this ).height(); } |
4 |
}); |
5 |
$( "div.col" ).height(max_height); |
[代码] 在一些老的浏览器上启用 HTML5 的支持
01 |
( function (){ |
02 |
if (! /*@cc_on!@*/ 0) |
03 |
return ; |
04 |
var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video" .split( ',' ),i=e.length; while (i--){document.createElement(e[i])} |
05 |
})() |
06 |
07 |
//然后在head中引入该js |
08 |
<!--[ if lt IE 9]> |
09 |
<script src= "http://html5shim.googlecode.com/svn/trunk/html5.js" ></script> |
10 |
<![endif]--> |
[代码] 测试浏览器是否支持某些 CSS3 属性
01 |
var supports = ( function () { |
02 |
var div = document.createElement( 'div' ), |
03 |
vendors = 'Khtml Ms O Moz Webkit' .split( ' ' ), |
04 |
len = vendors.length; |
05 |
06 |
return function (prop) { |
07 |
if ( prop in div.style ) return true ; |
08 |
09 |
prop = prop.replace(/^[a-z]/, function (val) { |
10 |
return val.toUpperCase(); |
11 |
}); |
12 |
13 |
while (len--) { |
14 |
if ( vendors[len] + prop in div.style ) { |
15 |
// browser supports box-shadow. Do what you need. |
16 |
// Or use a bang (!) to test if the browser doesn't. |
17 |
return true ; |
18 |
} |
19 |
} |
20 |
return false ; |
21 |
}; |
22 |
})(); |
23 |
24 |
if ( supports( 'textShadow' ) ) { |
25 |
document.documentElement.className += ' textShadow' ; |
[代码] 获取 URL 中传递的参数
1 |
$.urlParam = function (name){ |
2 |
var results = new RegExp( '[\\?&]' + name + '=([^&#]*)' ).exec(window.location.href); |
3 |
if (!results) { return 0; } |
4 |
return results[1] || 0; |
5 |
} |
[代码] 禁用表单的回车键提交
1 |
$( "#form" ).keypress( function (e) { |
2 |
if (e.which == 13) { |
3 |
return false ; |
4 |
} |
5 |
}); |
网站建设公司赚钱的案例分析
现在我想用托尔斯泰的一句话:“赚钱的公司都是一样的,不赚钱的公司各有各的问题”。就在今年,2013年,遇到了一个建站公司的“奇葩”,之所以叫奇葩,是因为如今那么多的建站公司中,绝大多数都赔钱或者支出平衡,竟然有这么一家还真是赚钱的。(不便写出公司名称,奇葩有点贬义,以下简称JP“极品”的意思)
前些日子加入了一个HMTL5群,里面成员是全国各地的建站公司,北京的也不少,北京做百度推广的建站公司,提起名字相互并不陌生,而且存在一种“好奇心”,你懂的,相互问问工资、提成、业绩、什么的。聊着聊着,这位“极品”就脱颖而出了。
他们有如下特点:
* 只有三名销售,主要负责报价、方案、跟进、合同、跟踪和结款。
* 每名销售每天能接10个客户咨询电话(公司每天接30个咨询电话,全国范围)
* 每名销售每月能签20-60万网站建设合同(公司主要经营网站建设,以企业网站为主)
* 销售月收入1万左右
* 普通企业网站成交价在2万以上
* 设计师和程序的月薪在8000以上
* 客户来源以SEO为主,百度推广为辅,公司有一名厉害的SEOer,只有在需要的时候才会打开百度推广
* 公司注册资金30万,地理位置北京4环边上,2008年成立,20名员工
* 公司网站百度权重2,谷歌PR4,日IP估计1500-2000
* 排在百度前三的关键词:北京网站设计,北京高端网站建设,北京网站设计公司,网站设计制作,网站建设制作,网站建设 北京,北京 网站设计,北京网站建设,北京 网站建设,北京网站制作。
我知道,你肯定不信,认为是在瞎吹。我跟一些朋友说的时候,他们的反应和你们一样。
以上信息有一部分是道听途说,有一部分是客观获得。不过有些信息是可以通过分析推倒出来的,我认为可信度80%。
我的分析如下:
第一:业务人员
人不在多,在于精。我相信这句话,有经验、有签单能力的销售,3名足以。能力不足的销售被称为(客户)“杀手”,比如“有名新销售来了一个月,给了60多个客户,一单都没出”。JP的业务员不仅是销售,还是项目经理,网站建设执行最麻烦,单独依靠项目经理、设计师、程序哪一方都是不成的,要求哪一方都要靠得住,不能存在短板(木桶理论),我想三名月薪1万的人组成的TEAM,能轻松搞定一个几万块钱的项目。
第二:客户
1 客户数量:我们公司有个网站日IP100多,每天来3-5个咨询。由此推断,日IP1500,的网站,每天30个咨询不是什么难事儿,更何况是全国范围。
2 客户来源:JP公司百度推广占40%,SEO占60%。百度推广来的客户有很多不怎么靠谱,都是比价的,或者随便问问,要做也得等几个月,所以还是自己优化靠谱,命运掌握在自己手里。百度跟烧钱没什么区别,要咨询你的话,平均一个客户得300元(支付给百度推广)。
3 客户质量:每人每天接10个客户咨询电话,里面肯定有不少质量差的(预算低的难以置信、意向低、随便问问)。不过JP不愁客户,遇到不靠谱的客户直接Pass,几十分钟后又能来个新客户,每天新客户源源不断。与大多数建站公司不同,遇到个意向低的客户,也要死缠烂打,为什么,因为一天可能就来这一个,错过这个,今天就没有客户上门了,哪怕是“随便问问”的客户,也竭尽全力,浪费资源(不要在一棵树上吊死)。
第三:核心竞争力
我曾问过JP签单的主要理由,他们自称是:客户喜欢他们的案例。我也看过他们的案例,企业网站设计水平确实不一般,属于高端大气上档次的那种,而且案例数量还真多。一般的建站公司也就只有几个拿得出手的“漂亮案例”或者“知名客户”。由此可见,JP的核心竞争力是“设计”,再往前推,“设计”依靠设计师,据我多年从业经验来看,能做出这些案例与如今月薪8000-1万的设计师水平相符。估计几年来,这家公司在设计方面的投资不是一笔小数目,“不简单呢”。
第四:客户感受与成交率
客户在咨询JP之前,一般都是看过他们的官网的,里面大量案例,甚至有自己同行的案例,客户对他们的信任感油然而生。拿起电话咨询之时,心理已经有了倾向性。“不用比老虎跑得快,只需比你跑得快。”客户在寻找建站供应商时,看过诸多公司的案例,谁的“高端大气上档次”的案例多,谁就是赢家(看谁的家底厚)。而且他们从不比稿(合同前出设计图)。
结论:
客户数量多意向大+案例好又多+销售能力强+公司消化能力强=挣钱的原因
供应链的竞争
今后的竞争是供应链的竞争,就企业建站这行来看,我分析JP公司的供应链如下:
1 客户来源:依靠SEO+百度推广,公司有一名NB的SEOer,潜心研究三年SEO技术,让客户每天都能源源不断从祖国各地来到他们网站
2 客户转化:多年来高端设计师案例积累,客户看到大量高端大气上档次的案例之后,对公司产生好感,转化成高质量的意向客户
3 签单能力:月薪一万、经验丰富、销售能力强的业务员促成签单
4 消化能力:项目经理+设计师+程序,三人均能独当一面,1万月薪代表了1万的效力。
5 利润分配:员工都属于高要求、高能力、高工资的三高人员,另外公司配备专车,地处北京四环,能给客户留下很好的印象和感觉。用对人,做对事儿,老板也得到了高回报,是一个良性循环。
我们再看看普通的建站公司供应链:
每天来客户数量不多而且不稳定,销售、设计、程序收入在5000左右(能力和效力也在5000左右),客户多的时候消化不了,客户少的时候又没有活干,人员能力不足导致在客户服务方面问题多多,人员流动大,学习成本高,一年算下来,客户多的那几个月挣的钱要填补到客户少的那几个月给员工发工资,老板挣的都是辛苦钱,恶性循环。
今日写这个,主要是自我反省,也分享给他人。哪个行业都有赚钱的,也有赔钱的。赚钱的少,赔钱的多。成功的企业都是一样的,用对人,做对事儿,赶上机会了。不成功的企业各有各的不同,没找对人,人不对自然事儿就做不对,有了机会也会错过。
企业高管个人离职的25个原因
10、不喜政治斗争
13、年老病衰、自然退役