<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>浮山狼de博客 &#187; 程序员</title>
	<atom:link href="https://www.fushanlang.com/category/programmers/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fushanlang.com</link>
	<description>next station - 下一站，活在当下，且行且思</description>
	<lastBuildDate>Sat, 29 Nov 2014 15:14:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.5</generator>
	<item>
		<title>是什么造就了伟大的程序员(转)</title>
		<link>https://www.fushanlang.com/what-makes-a-great-programmer-rpm-1915/</link>
		<comments>https://www.fushanlang.com/what-makes-a-great-programmer-rpm-1915/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 08:44:54 +0000</pubDate>
		<dc:creator><![CDATA[fushanlang]]></dc:creator>
				<category><![CDATA[程序员]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.fushanlang.com/blog/?p=1915</guid>
		<description><![CDATA[<p> 回想起来就像是在昨天。那是2000年，在数据结构课程的课堂上，Pargas博士站在前面给我们讲一些关于数据结构的话题，一个SSH的画面投影在我们前 面的墙上。有人问了一个问题，他说了一些东西，差不多是这样的话“是这样，如果你想成为一个真正的计算机科学家，你需要从现在开始就使用vi编辑器”。</p> <p>我想他是在笑谈，课后感觉他说的话并不是完全的正确，但作为年轻且容易被感染的我，回到寝室立刻就开始学习如何使用vi。学习过程不容易，花费了不少时间，但一旦掌握了其中的窍门，我发现，使用vi的确可以更快的做事情。</p> <p>时间推到6年前，那时我对TextMate十分的着迷。我的工作是做Java开发，但同时我学习Rails，在业余时间开发一些Rails项目。那时几乎所有我读的文章和观看的视频都是说明和演示如何使用TextMate来完成文本编辑工作的方法技巧的。事实上，我每天都在使用的Eclipse想要把我变成一头蠢猪。于是，我买了一台Mac电脑，开机后十分钟内我就买了一套TextMate装了上去。</p> <p>说老实话，这两种编辑器没有一种使我成为一个更好的程序员。</p> <p></p> <p>优秀的工具并不会把你变得更优秀。你使用的工具确实很重要。事实上，它们非常棒。但老虎伍兹即使用几根树枝也能把我们全部打败，梅西即使不穿鞋也能把我们踢的很惨，拉斐尔-纳达尔即使使用一个60年代产的老式木质网球拍也能把我们任何一个人打败。该死，他即使用乒乓球拍也能打败我们。技术，知识，以及锻炼出来的经验是你在与人对比中最重要的部分。</p> <p>所以，工具造就不出程序员。那什么可以呢？我想，造就一个伟大的程序员的诸多因素都依赖于你所从事的事和与你共事的人，但从很多在软件开发领域取得了巨大成功的人身上，我看到了很多共同的特征，我觉得值得与你们分享一下。我并不确定这些特征你是否能学得到，或者你天生就有，但我强烈的感觉到，如果我能花更多了时间去追求这些特征，而不是钟情于更换编辑器，我一定能取得更大的进步。</p> 以人为本 <p>我知道的最好的程序员总是把人放在第一位。他们明白他们是在为人写软件，即使那只是一些复杂系统的后台程序或协议，除了程序员没有人会用到它们。他们写文档，因为这很重要。他们帮助其它人如何使用自己的程序代码。他们愿意付出更多的努力去解决更复杂的问题来让人们以正确的方式使用他们的软件。</p> 对学习有很大的胃口 <p>神奇的程序员对知识有一种可笑的饥渴感。他们总是对你说一些新的、有趣的东西。他们习惯于大量的阅读(不论在线的还是线下的)，他们喜欢尝试，从中学到经验。他们对新出现的语言和平台毫不担忧恐惧。</p> 掌握问题规律的本领 <p>当你做开发有了一段时间后，你会发现有时出现的问题和你曾经处理过的问题看起来惊人的相似。能够识别这些问题，把过往的解决方案应用到你当前的问题上，这是一个很有用处的本领。如果每次都能改进这个方案，那是更好了。</p> <p>注意，这并不意味这你可以盲目的认为过去这个方案可行，现在它就一定可行。这种过往问题和现在出现的问题的类型匹配是很有技巧性的。你需要认真判断何时使用一个历史方案是可行的，什么时候是不行的。</p> 有一点神经质 <p>我弟弟在高中时上了一次Python课，当我问他是否喜欢这课时，他说我脑袋一定出问题了才去愿意当一名程序员，他说编程是他这辈子子做过的最无聊的一件事。从某种程度上讲，他是对的。大多数的日子里我是对着计算机说话，而不是人。想到这些要把一行一行的基本的长长短短的语句拼成一个软件，我不由的打了大大一个冷战。并不是所有的人都喜欢做这种事情，但是我知道的最优秀的程序员绝对是热爱制作软件的。</p> 执着 <p>软件开发是一个实际上比任何人的想像都要缓慢的开发过程。它很费时间。有时候你必须要有最够的耐心去精雕细琢出你需要的代码。有时，作为程序员，我们会写出非常有趣的代码，但也有时候，我们不得不哭丧着脸去写一大堆过去曾经写过的代码。想想伟大的程序员之所以能坚持下来，是因为他们能看到他们所从事的事业的大蓝景，他们喜欢这一点一点走向目标的开发过程。</p> <p>这就是我想到的构成一个优秀程序员的一些特征，但这并不是全部，所以我想听听你的观点。你认为是什么使一个程序员变的优秀？</p> <p>感谢espensorvik提供的优秀的图片！ 本文原始地址：是什么造就了伟大的程序员？</p> ]]></description>
				<content:encoded><![CDATA[<p> 回想起来就像是在昨天。那是2000年，在数据结构课程的课堂上，Pargas博士站在前面给我们讲一些关于数据结构的话题，一个SSH的画面投影在我们前 面的墙上。有人问了一个问题，他说了一些东西，差不多是这样的话“是这样，如果你想成为一个真正的计算机科学家，你需要从现在开始就使用vi编辑器”。</p>
<p>我想他是在笑谈，课后感觉他说的话并不是完全的正确，但作为年轻且容易被感染的我，回到寝室立刻就开始学习如何使用vi。学习过程不容易，花费了不少时间，但一旦掌握了其中的窍门，我发现，使用vi的确可以更快的做事情。</p>
<p>时间推到6年前，那时我对TextMate十分的着迷。我的工作是做Java开发，但同时我学习Rails，在业余时间开发一些Rails项目。那时几乎所有我读的文章和观看的视频都是说明和演示如何使用TextMate来完成文本编辑工作的方法技巧的。事实上，我每天都在使用的Eclipse想要把我变成一头蠢猪。于是，我买了一台Mac电脑，开机后十分钟内我就买了一套TextMate装了上去。</p>
<p>说老实话，这两种编辑器没有一种使我成为一个更好的程序员。<span id="more-1915"></span></p>
<p><img title="keyboard" src="http://www.fushanlang.com/blog/wp-content/uploads/auto_save_image/2011/06/084456Xyd.jpg" alt="Crazy Awesome Keyboard! Yeah!" /></p>
<p>优秀的工具并不会把你变得更优秀。你使用的工具确实很重要。事实上，它们非常棒。但老虎伍兹即使用几根树枝也能把我们全部打败，梅西即使不穿鞋也能把我们踢的很惨，拉斐尔-纳达尔即使使用一个60年代产的老式木质网球拍也能把我们任何一个人打败。该死，他即使用乒乓球拍也能打败我们。技术，知识，以及锻炼出来的经验是你在与人对比中最重要的部分。</p>
<p>所以，工具造就不出程序员。那什么可以呢？我想，造就一个伟大的程序员的诸多因素都依赖于你所从事的事和与你共事的人，但从很多在软件开发领域取得了巨大成功的人身上，我看到了很多共同的特征，我觉得值得与你们分享一下。我并不确定这些特征你是否能学得到，或者你天生就有，但我强烈的感觉到，如果我能花更多了时间去追求这些特征，而不是钟情于更换编辑器，我一定能取得更大的进步。</p>
<h3>以人为本</h3>
<p>我知道的最好的程序员总是把人放在第一位。他们明白他们是在为人写软件，即使那只是一些复杂系统的后台程序或协议，除了程序员没有人会用到它们。他们写文档，因为这很重要。他们帮助其它人如何使用自己的程序代码。他们愿意付出更多的努力去解决更复杂的问题来让人们以正确的方式使用他们的软件。</p>
<h3>对学习有很大的胃口</h3>
<p>神奇的程序员对知识有一种可笑的饥渴感。他们总是对你说一些新的、有趣的东西。他们习惯于大量的阅读(不论在线的还是线下的)，他们喜欢尝试，从中学到经验。他们对新出现的语言和平台毫不担忧恐惧。</p>
<h3>掌握问题规律的本领</h3>
<p>当你做开发有了一段时间后，你会发现有时出现的问题和你曾经处理过的问题看起来惊人的相似。能够识别这些问题，把过往的解决方案应用到你当前的问题上，这是一个很有用处的本领。如果每次都能改进这个方案，那是更好了。</p>
<p>注意，这并不意味这你可以盲目的认为过去这个方案可行，现在它就一定可行。这种过往问题和现在出现的问题的类型匹配是很有技巧性的。你需要认真判断何时使用一个历史方案是可行的，什么时候是不行的。</p>
<h3>有一点神经质</h3>
<p>我弟弟在高中时上了一次Python课，当我问他是否喜欢这课时，他说我脑袋一定出问题了才去愿意当一名程序员，他说编程是他这辈子子做过的最无聊的一件事。从某种程度上讲，他是对的。大多数的日子里我是对着计算机说话，而不是人。想到这些要把一行一行的基本的长长短短的语句拼成一个软件，我不由的打了大大一个冷战。并不是所有的人都喜欢做这种事情，但是我知道的最优秀的程序员绝对是热爱制作软件的。</p>
<h3>执着</h3>
<p>软件开发是一个实际上比任何人的想像都要缓慢的开发过程。它很费时间。有时候你必须要有最够的耐心去精雕细琢出你需要的代码。有时，作为程序员，我们会写出非常有趣的代码，但也有时候，我们不得不哭丧着脸去写一大堆过去曾经写过的代码。想想伟大的程序员之所以能坚持下来，是因为他们能看到他们所从事的事业的大蓝景，他们喜欢这一点一点走向目标的开发过程。</p>
<p>这就是我想到的构成一个优秀程序员的一些特征，但这并不是全部，所以我想听听你的观点。你认为是什么使一个程序员变的优秀？</p>
<p><em>感谢espensorvik提供的优秀的图片！<br />
</em>本文原始地址：是什么造就了伟大的程序员？</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fushanlang.com/what-makes-a-great-programmer-rpm-1915/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5.3开发者模式</title>
		<link>https://www.fushanlang.com/php5-3-developer-mode-1858/</link>
		<comments>https://www.fushanlang.com/php5-3-developer-mode-1858/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 09:17:42 +0000</pubDate>
		<dc:creator><![CDATA[fushanlang]]></dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[程序员]]></category>

		<guid isPermaLink="false">http://www.fushanlang.com/blog/?p=1858</guid>
		<description><![CDATA[PHP开发者模式 <p>最近升级到php5.36 最新版本运行，总是会很多 &#8220;Fatal Error&#8221; 或 “Notice” 错误，后来发现Notice 是因为 php.ini 里在development模式下定义error_reporting = E_ALL &#124; E_STRICT, 在此模式下php解释器检查语法比较严格，如果想忽略的话可以改为error_reporting  =  E_ALL &#38; ~E_NOTICE 来跳过Notice级别的警告。</p> <p>而deprecate的error警告，提示我们的PHP程序要与时俱进的向着最新的编码要求看齐，这样在以后升级PHP版本时才不会带来很多不可预测的错误，编码也更加规范。</p> <p>php升级为5.3后，程序会报 Function split() is deprecated 的错误。 这是因为种种原因（主要是关于正则的原因，具体见后），split这个函数在新版本不支持了。 在php中，再使用deprecated的函数会报错，必须改掉。（java里deprecated的函数只是给警告，还可以继续用） 改为什么呢？ 看第一个参数，如果第一个参数不是正则表达式，split改为 explode；如果是正则表达式，split改为preg_split。 explode会比以前快很多，因为以前要考虑正则，explode不考虑正则。 ————- PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?). 所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, <span style="color:#777"> . . . &#8594; Read More: <a href="https://www.fushanlang.com/php5-3-developer-mode-1858/">PHP5.3开发者模式</a></span>]]></description>
				<content:encoded><![CDATA[<h2>PHP开发者模式</h2>
<p>最近升级到php5.36 最新版本运行，总是会很多 &#8220;Fatal Error&#8221; 或 “Notice” 错误，后来发现Notice 是因为 php.ini 里在development模式下定义<strong>error_reporting = E_ALL | E_STRICT,</strong> 在此模式下php解释器检查语法比较严格，如果想忽略的话可以改为<strong>error_reporting  =  E_ALL &amp; ~E_NOTICE</strong> 来跳过Notice级别的警告。</p>
<p>而<strong>deprecate的error警告</strong>，<strong>提示我们的PHP程序要与时俱进的向着最新的编码要求看齐，这样在以后升级PHP版本时才不会带来很多不可预测的错误，编码也更加规范。</strong></p>
<p>php升级为5.3后，程序会报 Function split() is deprecated 的错误。<br />
这是因为种种原因（主要是关于正则的原因，具体见后），split这个函数在新版本不支持了。<br />
在php中，再使用deprecated的函数会报错，必须改掉。（java里deprecated的函数只是给警告，还可以继续用）<br />
改为什么呢？ 看第一个参数，如果第一个参数不是正则表达式，split改为 explode；如果是正则表达式，split改为preg_split。<br />
explode会比以前快很多，因为以前要考虑正则，explode不考虑正则。<br />
————-<br />
PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?).<br />
所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, 詳可見: PHP:</p>
<p>Differences from POSIX regex<br />
* POSIX → PCRE<br />
* ereg_replace() → preg_replace()<br />
* ereg() → preg_match()<br />
* eregi_replace() → preg_replace()<br />
* eregi() → preg_match()<br />
* split() → preg_split()<br />
* spliti() → preg_split()<br />
* sql_regcase() → No equivalent</p>
<p>*  需要 regex 的 split, 可用 preg_split() 代替<br />
* 不需要 regex, 只要要快速分割固定的字串, 可用 explode() 代替. (速度會比需要 regex 的快很多)</p>
<p>常见的警告：</p>
<h2>Function split() is deprecated 的解决办法</h2>
<h2>Function ereg() is deprecated 的解决办法</h2>
<h2>Function eregi() is deprecated 的解决办法</h2>
<h2>Function ereg_replace() is deprecated 的解决办法</h2>
<h2>Notice：php Undefined offset: 0 in 行号</h2>
<h2>Notice：php Undefined index &#8220;&#8221;: 0 in 行号</h2>
]]></content:encoded>
			<wfw:commentRss>https://www.fushanlang.com/php5-3-developer-mode-1858/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>程序员需培养企业家式的能力（转）</title>
		<link>https://www.fushanlang.com/programmers-need-to-develop-entrepreneurial-capacity-transfer-1792/</link>
		<comments>https://www.fushanlang.com/programmers-need-to-develop-entrepreneurial-capacity-transfer-1792/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 02:11:11 +0000</pubDate>
		<dc:creator><![CDATA[fushanlang]]></dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[程序员]]></category>
		<category><![CDATA[阅读]]></category>

		<guid isPermaLink="false">http://www.fushanlang.com/blog/?p=1792</guid>
		<description><![CDATA[<p>古人云：＂劳心者治人，劳力者治于人。＂时空流转，恐怕当代人对这句话的解读得适时更新了。古代劳力者，指的是农夫挑夫等粗重劳力，劳心大致指善用头脑的 翘脚老板。但到了当代，劳心与劳力的边界看似变得模糊，连街边摆个地摊什么的都得动动脑思考哪的人流量大些，而曾经让人无比崇尚的IT精英也有沦落成码字 民工的地步，没错，他们用脑，但是属于劳心还是劳力呢？尚且称为高级劳力者比较贴切。</p> <p> 当资源变得极大丰富时，资源的整合就成为了劳心者更高级的工种。这个世界上最具价值的工作无异于能让＂1+1&#62;2＂的资源整 合，它不只是老板或企业家的专属，事实上每个人都应具备这样的眼光与思维，治人者治己为先。来看看一位IT界高级民工的感触，较有代表性，非技术工种同样 适合阅读：</p> <p>在工程师这个圈子呆久了，我发现大部分的人都有一个共同点，那就是不善表达，或者说懒得表达。在公众面前 讲话会脸红，不能很好地表现自己，而且“善于表现自己”其实会被认为是一个缺点——因为大家都觉得有真才实学就好了，而且普遍信奉“低调”的做人哲学，那 些善于表现的人会被说成“很能忽悠”。</p> <p>举个例子来说吧，李开复应该算是一个很成功的人了，而且是技术出身，但是你会发现这几年很多人都 对他有负面评价，说他“不好好管理公司，整天跑去演讲”、 “就是一个说书的”、“做秀”云云，都是针对他频繁出现在公众面前这件事情来说的，而且你会发现大部分的负面评价都是出自技术圈的。但是这种在公众面前演 讲、推销自己其实是一种很重要的能力，尤其是在现代社会，它是一种“企业家式的能力”。</p> <p>昨天去参加了RIAMeeting组织的一次小 型聚会，见了不少技术牛人，他们都有丰富的开发经验和技术体会，并且对于技术有精益求精的态度，让我这个去蹭吃蹭喝的人觉得比较惭愧，也学习到了不少东 西。在聚会结束的时候大家开始自我介绍，可以料想到：一个比一个谦虚、腼腆、不善表达——和我在其它场合接触到的大部分技术人员一样。这给了我一些触动， 加上最近我也看了一些东西，就决定写这么一篇日志。由于它也是和技术有很大关系的，所以决定放在这个 Blog 上。</p> <p>上大学的时候我了 解到有“程序员”这个职业，就是写代码的，不过在我毕业进入中国雅虎之后，我更喜欢“工程师”这个称谓web developer 也可以叫做前端工程师或者UI工程师，因为这个名字总是能让我想起游戏《红色警戒》里面那个带着黄帽子拿着工具箱到处跑的角色，如果半路上不被敌军的狗咬 死就可以修好断桥和建筑，或者把敌军的建筑占领。我对工程师这个群体一直都抱有普遍的好感，他们低调、技术高超、真诚、单纯、有责任感，值得信任。和他们 在一起工作你会感觉特别舒服。记得刚入职的时候，我对Linux一点也不了解，有次碰到一个问题，正好旁边几个工程师在那里聊天，于是我就像他们求助，他 们过来之后一个人负责操作，其他几个在旁边七嘴八舌建议，不一会就把问题解决了，我当时就觉得特别有安全感，所以在以后的工作中遇到问题也没有特别着急 过，因为我知道我身边有很多牛逼的工程师，有他们在就没有什么问题是解决不了的。</p> <p>在现实生活中，无论是哪个圈子和团体，都会经常发现这 样的例子：有一些很有才华的人在社会上始终不成功，相反，有一些资质平平的人却为自己挣得了不错的地位和财产。为什么会出现这样的情形呢?一个重要原因是 前者不善于经营自我， 而后者善于。善于经营自我经常会被广大有真才实学的人鄙视，觉得那是“钻营”和不务正业。事实上，正如《自由秩序原理》一书中所说的那样，这是一种“企业 家式的能力”，而且 “一个人的成功不是取决于自己既有的才能、知识、技术等等，而是取决于能否成功地将它们转换成‘对其他有能力做出回报的人有用的具体的服务’，这正是自由 社会的本质之所在。”</p> <p>如果真的是这样的话，那么由于每个人的“企业家式的能力”的不同，势必会出现能力相同的人获得的报酬却相差很大， 引起很大的不满，而且每个人必须为自己的才能去寻找市场，这就必然面临压力和风险。但是这种代价是必须的，为什么呢? 因为如果不是根据使用才能的有用结果而是根据才能来决定报酬的话，那么就必须有一个权威来判定每个人的才能大小和级别，这就必然导致专制。“如果想替代那 种对自己的命运负责而导致的压力，那么可供选择的就只有那种人们必须服从的个人命令所产生的令人更为厌恶的压力。”</p> <p>虽然我们这一代没有 经历过计划经济、分配工作这些事情，不过应该也有所耳闻吧，那个时候每个人不必去营销自己，因为上级已经给你安排好了工作和报酬，虽然说是根据你的能力进 行的安排，但是里面必然掺杂了诸如个人恩怨等其它因素，那种不公平比现在的这种不公平要严重得多。尽管现在的市场经济也有不公平的地方，因为它只承认“在 市场上得到实现的价值”，但是我想相比之下大家应该都更讨厌专制吧。两害相权，只能取其轻。</p> <p>鉴于此，我很希望工程师可以抛弃一些偏见，虚心地去学习那种“企业家式的能力”：在公众面前讲话的能力、写文章的技巧等等，培养自己的一些市场意识，当然，这都是建立在真才实学的基础上的。如果没有真才实学而专门去推销自己的话，那真的是投机钻营了。</p> <p>最后我想说的是，其实很多技术人员因为性格使然，是很难学会这种“企业家式的能力”的，但是他们又确实有能力又踏实肯干，很多时候对于他们来说真的不太公平。所以如果以后有机会并且有钱的话，我很想创建一家让工程师有幸福感并且摆脱无力感的公司。（CNBETA）</p> ]]></description>
				<content:encoded><![CDATA[<p>古人云：＂劳心者治人，劳力者治于人。＂时空流转，恐怕当代人对这句话的解读得适时更新了。古代劳力者，指的是农夫挑夫等粗重劳力，劳心大致指善用头脑的 翘脚老板。但到了当代，劳心与劳力的边界看似变得模糊，连街边摆个地摊什么的都得动动脑思考哪的人流量大些，而曾经让人无比崇尚的IT精英也有沦落成码字 民工的地步，没错，他们用脑，但是属于劳心还是劳力呢？尚且称为高级劳力者比较贴切。</p>
<p><span> 当资源变得极大丰富时，资源的整合就成为了劳心者更高级的工种。这个世界上最具价值的工作无异于能让＂1+1&gt;2＂的资源整 合，它不只是老板或企业家的专属，事实上每个人都应具备这样的眼光与思维，治人者治己为先。来看看一位IT界高级民工的感触，较有代表性，非技术工种同样 适合阅读：</span></p>
<p><span>在工程师这个圈子呆久了，我发现大部分的人都有一个共同点，那就是不善表达，或者说懒得表达。在公众面前  讲话会脸红，不能很好地表现自己，而且“善于表现自己”其实会被认为是一个缺点——因为大家都觉得有真才实学就好了，而且普遍信奉“低调”的做人哲学，那  些善于表现的人会被说成“很能忽悠”。</span></p>
<p><span>举个例子来说吧，李开复应该算是一个很成功的人了，而且是技术出身，但是你会发现这几年很多人都  对他有负面评价，说他“不好好管理公司，整天跑去演讲”、  “就是一个说书的”、“做秀”云云，都是针对他频繁出现在公众面前这件事情来说的，而且你会发现大部分的负面评价都是出自技术圈的。但是这种在公众面前演  讲、推销自己其实是一种很重要的能力，尤其是在现代社会，它是一种“企业家式的能力”。<span id="more-1792"></span></span></p>
<p><span>昨天去参加了RIAMeeting组织的一次小  型聚会，见了不少技术牛人，他们都有丰富的开发经验和技术体会，并且对于技术有精益求精的态度，让我这个去蹭吃蹭喝的人觉得比较惭愧，也学习到了不少东  西。在聚会结束的时候大家开始自我介绍，可以料想到：一个比一个谦虚、腼腆、不善表达——和我在其它场合接触到的大部分技术人员一样。这给了我一些触动，  加上最近我也看了一些东西，就决定写这么一篇日志。由于它也是和技术有很大关系的，所以决定放在这个 Blog 上。</span></p>
<p><span>上大学的时候我了 解到有“程序员”这个职业，就是写代码的，不过在我毕业进入中国雅虎之后，我更喜欢“工程师”这个称谓web  developer  也可以叫做前端工程师或者UI工程师，因为这个名字总是能让我想起游戏《红色警戒》里面那个带着黄帽子拿着工具箱到处跑的角色，如果半路上不被敌军的狗咬   死就可以修好断桥和建筑，或者把敌军的建筑占领。我对工程师这个群体一直都抱有普遍的好感，他们低调、技术高超、真诚、单纯、有责任感，值得信任。和他们   在一起工作你会感觉特别舒服。记得刚入职的时候，我对Linux一点也不了解，有次碰到一个问题，正好旁边几个工程师在那里聊天，于是我就像他们求助，他  们过来之后一个人负责操作，其他几个在旁边七嘴八舌建议，不一会就把问题解决了，我当时就觉得特别有安全感，所以在以后的工作中遇到问题也没有特别着急  过，因为我知道我身边有很多牛逼的工程师，有他们在就没有什么问题是解决不了的。</span></p>
<p><span>在现实生活中，无论是哪个圈子和团体，都会经常发现这  样的例子：有一些很有才华的人在社会上始终不成功，相反，有一些资质平平的人却为自己挣得了不错的地位和财产。为什么会出现这样的情形呢?一个重要原因是  前者不善于经营自我， 而后者善于。善于经营自我经常会被广大有真才实学的人鄙视，觉得那是“钻营”和不务正业。事实上，<strong>正如《自由秩序原理》一书中所说的那样，这是一种“企业 家式的能力”，而且 “一个人的成功不是取决于自己既有的才能、知识、技术等等，而是取决于能否成功地将它们转换成‘对其他有能力做出回报的人有用的具体的服务’，这正是自由 社会的本质之所在。”</strong></span></p>
<p><span>如果真的是这样的话，那么由于每个人的“企业家式的能力”的不同，势必会出现能力相同的人获得的报酬却相差很大，  引起很大的不满，而且每个人必须为自己的才能去寻找市场，这就必然面临压力和风险。但是这种代价是必须的，为什么呢?  因为如果不是根据使用才能的有用结果而是根据才能来决定报酬的话，那么就必须有一个权威来判定每个人的才能大小和级别，这就必然导致专制。“如果想替代那  种对自己的命运负责而导致的压力，那么可供选择的就只有那种人们必须服从的个人命令所产生的令人更为厌恶的压力。”</span></p>
<p><span>虽然我们这一代没有  经历过计划经济、分配工作这些事情，不过应该也有所耳闻吧，那个时候每个人不必去营销自己，因为上级已经给你安排好了工作和报酬，虽然说是根据你的能力进   行的安排，但是里面必然掺杂了诸如个人恩怨等其它因素，那种不公平比现在的这种不公平要严重得多。尽管现在的市场经济也有不公平的地方，因为它只承认“在  市场上得到实现的价值”，但是我想相比之下大家应该都更讨厌专制吧。两害相权，只能取其轻。</span></p>
<p><span>鉴于此，我很希望工程师可以抛弃一些偏见，虚心地去学习那种“企业家式的能力”：在公众面前讲话的能力、写文章的技巧等等，培养自己的一些市场意识，当然，这都是建立在真才实学的基础上的。如果没有真才实学而专门去推销自己的话，那真的是投机钻营了。</span></p>
<p><span>最后我想说的是，其实很多技术人员因为性格使然，是很难学会这种“企业家式的能力”的，但是他们又确实有能力又踏实肯干，很多时候对于他们来说真的不太公平。所以如果以后有机会并且有钱的话，我很想创建一家让工程师有幸福感并且摆脱无力感的公司。（<span>CNBETA</span>）</span></p>
]]></content:encoded>
			<wfw:commentRss>https://www.fushanlang.com/programmers-need-to-develop-entrepreneurial-capacity-transfer-1792/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让休息的大脑工作</title>
		<link>https://www.fushanlang.com/rest-of-the-brain-to-work-1445/</link>
		<comments>https://www.fushanlang.com/rest-of-the-brain-to-work-1445/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 01:08:12 +0000</pubDate>
		<dc:creator><![CDATA[fushanlang]]></dc:creator>
				<category><![CDATA[程序员]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[阅读]]></category>

		<guid isPermaLink="false">http://www.fushanlang.com/blog/?p=1445</guid>
		<description><![CDATA[<p>今天早上读了一篇关于高效编程的文章，它提到了“欲擒故纵”，制定一个行之有效的工作休息时间控制，给大脑留出休息和空白的时间，让我们一直关注的问题在“后台运行”，time  break之后重新回到我们的主题工作之后，能够带来焕然一新的效果。而且这个分时控制，防止了我们面对计算机时，工作和娱乐还有网络上其他的东西，海量信息轰炸我们的大脑，使我们大脑疲于应付，不能够思考自如，以至于工作效率低下，太多信息侵占了我们的注意力，甚至你连分清这些信息哪些有益都变得很困难。</p> <p>有了这么一个分时控制，我们单独拿出不同的时间面对不同的信息，工作的时候更容易集中精力，解决主要的问题所在。time break 休息的时候让大脑远离工作，神游空白一番，可能解决问题的思路变得更开阔一些。下面是这篇文章。“</p> <p>昨天我做了一些事情使我的编程效率提高了一倍。简单，容易，但使我的生活发生了巨大的变化。</p> <p>你们中可能有些人已经知道我是怎么做的。对于其他的人，这听起来有些疯狂。</p> <p>我不持续工作。</p> <p>或者，我把定时器设置成50分钟，在此期间我只干一件事 — 没email，没聊天工具，没游戏，没分心的事。50分钟后，我去散步。</p> <p>它使我效率增倍。而且作为一个副作用，它使我的工作更加快乐。 我知道你们中的很多人在想什么。无论何时这个(或其它特别的Pomodoro技巧)被提及时，我都会听到各种的常见的怀疑声。</p> <p>那就让我们一一看来：</p> <p>这样做不会使我的注意力不能集中在我正要努力解决的难题上吗？很奇怪，跟你的直觉相反，不会。当你做其它的事情来放松你的神经时，你的大脑却仍然在思考你的问题。很多次，思路豁然开朗，把很多一直都无法解决的难题都解决掉了，这是因为你开始从远处观察这个问题，在大背景下，而不是紧紧的死揪着某处。</p> <p>你是怎么停下来的？当我编程时我从来不看表。昨天我使用的是微波炉的定时器，但我工作效率上的变化使我大为震惊，我买了一个秒表，就是上面图中的那个。</p> <p>我的生活中有太多的各种各样的打搅我的事情，邮件，聊天工具，电话短信。你的方法对我不管用。我有个原则：在我的工作时间里不允许有分心的东西。当我休息完后，我会花几分钟把这种分心的事情处理掉：检查邮件，回复聊天软件里的消息，回电话。当把这些事情全做完后我才开始启动定时器。</p> <p></p> <p>看起来它会给我的生活带来不必要的压力。的确会，但却是积极性质的。我发现自己急切的想知道在每个工作时间段里能究竟能做多少工作。我不由的开始把工作细化成更小的模块，催促自己看是否能在这时间段里完成这个模块。但这没有压力。我有个更好的词来描述督促自己把工作完成的更好更高效的现象：愉快。我很愉快。它把难题变成了游戏。</p> <p>工作后你会用多长时间来休闲？ 我不知道。这难住我了。我会去散步 — 一个足够长的散步，至少10分钟。有时我会到阳台上，吃个橘子，听听大自然的声音。有时我会把秒表倒计时10分钟，以免我回来的太早。</p> <p>在休息时间我可以做任何想做的活动吗？ 我想不能。我觉得你必须只做一种活动，让你大脑闲置的活动。散步，乒乓，玩乐器，发呆，打盹。考虑那些温和的、有目标挑战的活动 — 特别是户外的 — 效果会更好，但这只是我的猜测。</p> <p>这里有什么秘密？ 秘密，以我个人的见解，是当你强迫大脑释放缠绕很久的问题时，潜意识里会使它缠绕的更紧：你的大脑强烈希望回到问题上。于是它会一直研究它，思考它。你越使你的大脑从工作上拽走，它就越强的返回到工作中。越是特意的停止工作，你越更多的投入到问题中，你把思想带离工作越远，思想会越想回去。这比起你死盯着电脑屏幕/敲出一堆垃圾代码来，你的大脑会更有效率的多。退一步，海阔天空。我可以保证，当你又重新回到座位上坐下来时，你会有各种更好的该怎么样做的想法。就像是有一个小程序、设计评审程序，当你在玩乐时，在你的大脑深处后台运行，帮你思考问题。</p> <p>如果你非常的聪明，怎么会想到要依赖这样的做法？ 这个嘛。这里我的故事要转向说一下坏的事情：我过去做事情也是这样“玩玩干干”！事实上，我的工作时间和娱乐时间的分配已经无法控制。我以前编程就像是在受煎熬。我决定要改变。</p> <p>为什么？因为我发现当浏览器变得越来越友好，计算机变得约来越使人分心时，我开始在潜意识里把计算机的娱乐功能和工作功能混淆在一起了。我工作一会儿，就去看看骇客新闻，再去读几篇有趣的文章，然后再工作一会儿，然后写几条评论，然后看看邮件，等等。</p> <p>回头一想我在做什么？很显然：我正在拿各种各样新鲜刺激的事物过程来轰炸我的大脑。我的大脑不能工作在我的“主要”问题上，因为我忙着来回折腾在数十个不同的产生刺激因素的事物过程中。事后你会发现这最后的结果是把一心只放到一件编程事情上的情况转变成一心放在了很多事情上，而这些事情都跟编程没有关系。如果你喜欢使用计算机进行娱乐活动，你可以在工作前，午餐时，或工作休息期间。我越观察现代的计算机活动，我越相信计算机功能繁多、使娱乐更方便的性质已经严重的跟它作为一种能够生产工作的机器的用途相抵触了。几年来，我甚至慢慢的停止了赛场运动，约来越多的时间“沉浸”在了计算机世界里。这对你的大脑不是件好事，请相信我。</p> <p>这是一个很简单的事情，你也许会很难想象到它会有什么用处。但请给自己一次机会 — 谁能预料你会有什么发现呢？</p> <p>作为一个边注，从所有的这些事情，我发现物理的把你的电子设备按功能分离开也许是另外一个能提高你的工作效率的好方法。(这是一个防止你把消极的电子设备和消极的设备之间的界限弄混淆的方法)</p> <p id="source">[英文出处]：To code quickly, you must quit coding</p> <p>”</p> ]]></description>
				<content:encoded><![CDATA[<p>今天早上读了一篇关于高效编程的文章，它提到了“欲擒故纵”，制定一个行之有效的工作休息时间控制，给大脑留出休息和空白的时间，让我们一直关注的问题在“后台运行”，time  break之后重新回到我们的主题工作之后，能够带来焕然一新的效果。而且这个分时控制，防止了我们面对计算机时，工作和娱乐还有网络上其他的东西，海量信息轰炸我们的大脑，使我们大脑疲于应付，不能够思考自如，以至于工作效率低下，太多信息侵占了我们的注意力，甚至你连分清这些信息哪些有益都变得很困难。</p>
<p>有了这么一个分时控制，我们单独拿出不同的时间面对不同的信息，工作的时候更容易集中精力，解决主要的问题所在。time break 休息的时候让大脑远离工作，神游空白一番，可能解决问题的思路变得更开阔一些。下面是这篇文章。“<span id="more-1445"></span></p>
<p>昨天我做了一些事情使我的编程效率提高了一倍。简单，容易，但使我的生活发生了巨大的变化。</p>
<p>你们中可能有些人已经知道我是怎么做的。对于其他的人，这听起来有些疯狂。</p>
<p>我不持续工作。</p>
<p>或者，我把定时器设置成50分钟，在此期间我只干一件事 — 没email，没聊天工具，没游戏，没分心的事。50分钟后，我去散步。</p>
<p>它使我效率增倍。而且作为一个副作用，它使我的工作更加快乐。<br />
我知道你们中的很多人在想什么。无论何时这个(或其它特别的Pomodoro技巧)被提及时，我都会听到各种的常见的怀疑声。</p>
<p>那就让我们一一看来：</p>
<p><strong>这样做不会使我的注意力不能集中在我正要努力解决的难题上吗？</strong>很奇怪，跟你的直觉相反，不会。当你做其它的事情来放松你的神经时，你的大脑却仍然在思考你的问题。很多次，思路豁然开朗，把很多一直都无法解决的难题都解决掉了，这是因为你开始从远处观察这个问题，在大背景下，而不是紧紧的死揪着某处。</p>
<p><strong>你是怎么停下来的？当我编程时我从来不看表。</strong>昨天我使用的是微波炉的定时器，但我工作效率上的变化使我大为震惊，我买了一个秒表，就是上面图中的那个。</p>
<p><strong>我的生活中有太多的各种各样的打搅我的事情，邮件，聊天工具，电话短信。你的方法对我不管用。</strong>我有个原则：在我的工作时间里不允许有分心的东西。当我休息完后，我会花几分钟把这种分心的事情处理掉：检查邮件，回复聊天软件里的消息，回电话。当把这些事情全做完后我才开始启动定时器。</p>
<p><img src="http://img208.poco.cn/mypoco/myphoto/20101203/09/4220479820101203092423076.jpg" /></p>
<p><strong>看起来它会给我的生活带来不必要的压力。</strong>的确会，但却是积极性质的。我发现自己急切的想知道在每个工作时间段里能究竟能做多少工作。我不由的开始把工作细化成更小的模块，催促自己看是否能在这时间段里完成这个模块。但这没有压力。我有个更好的词来描述督促自己把工作完成的更好更高效的现象：愉快。我很愉快。它把难题变成了游戏。</p>
<p><strong>工作后你会用多长时间来休闲？</strong> 我不知道。这难住我了。我会去散步 — 一个足够长的散步，至少10分钟。有时我会到阳台上，吃个橘子，听听大自然的声音。有时我会把秒表倒计时10分钟，以免我回来的太早。</p>
<p><strong>在休息时间我可以做任何想做的活动吗？</strong> 我想不能。我觉得你必须只做一种活动，让你大脑闲置的活动。散步，乒乓，玩乐器，发呆，打盹。<em>考虑</em>那些温和的、有目标挑战的活动 — 特别是户外的 — 效果会更好，但这只是我的猜测。</p>
<p><strong>这里有什么秘密？</strong> 秘密，以我个人的见解，是当你强迫大脑释放缠绕很久的问题时，潜意识里会使它缠绕的更紧：你的大脑强烈希望回到问题上。于是它会一直研究它，思考它。你越使你的大脑从工作上拽走，它就越强的返回到工作中。越是特意的停止工作，你越更多的投入到问题中，你把思想带离工作越远，思想会越想回去。这比起你死盯着电脑屏幕/敲出一堆垃圾代码来，你的大脑会更有效率的多。退一步，海阔天空。我可以保证，当你又重新回到座位上坐下来时，你会有各种更好的该怎么样做的想法。就像是有一个小程序、设计评审程序，当你在玩乐时，在你的大脑深处后台运行，帮你思考问题。</p>
<p><strong>如果你非常的聪明，怎么会想到要依赖这样的做法？</strong> 这个嘛。这里我的故事要转向说一下坏的事情：我过去做事情也是这样“玩玩干干”！事实上，我的工作时间和娱乐时间的分配已经无法控制。我以前编程就像是在受煎熬。我决定要改变。</p>
<p>为什么？因为我发现当浏览器变得越来越友好，计算机变得约来越使人分心时，我开始在潜意识里把计算机的娱乐功能和工作功能混淆在一起了。我工作一会儿，就去看看骇客新闻，再去读几篇有趣的文章，然后再工作一会儿，然后写几条评论，然后看看邮件，等等。</p>
<p>回头一想我在做什么？很显然：我正在拿各种各样新鲜刺激的事物过程来轰炸我的大脑。我的大脑不能工作在我的“主要”问题上，因为我忙着来回折腾在数十个不同的产生刺激因素的事物过程中。事后你会发现这最后的结果是把一心只放到一件编程事情上的情况转变成一心放在了很多事情上，而这些事情都跟编程没有关系。如果你喜欢使用计算机进行娱乐活动，你可以在工作前，午餐时，或工作休息期间。我越观察现代的计算机活动，我越相信计算机功能繁多、使娱乐更方便的性质已经严重的跟它作为一种能够生产工作的机器的用途相抵触了。几年来，我甚至慢慢的停止了赛场运动，约来越多的时间“沉浸”在了计算机世界里。这对你的大脑不是件好事，请相信我。</p>
<p>这是一个很简单的事情，你也许会很难想象到它会有什么用处。但请给自己一次机会 — 谁能预料你会有什么发现呢？</p>
<p>作为一个边注，从所有的这些事情，我发现物理的把你的电子设备按功能分离开也许是另外一个能提高你的工作效率的好方法。(这是一个防止你把消极的电子设备和消极的设备之间的界限弄混淆的方法)</p>
<p id="source">[英文出处]：<a href="http://www.whattofix.com/blog/archives/2010/11/to-code-quickly.php" target="_blank">To code quickly, you must quit coding</a></p>
<p>”</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fushanlang.com/rest-of-the-brain-to-work-1445/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>一个老程序员的随想(转)</title>
		<link>https://www.fushanlang.com/an-old-programmers-capriccio-rpm-1254/</link>
		<comments>https://www.fushanlang.com/an-old-programmers-capriccio-rpm-1254/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 06:59:48 +0000</pubDate>
		<dc:creator><![CDATA[fushanlang]]></dc:creator>
				<category><![CDATA[感悟]]></category>
		<category><![CDATA[程序员]]></category>

		<guid isPermaLink="false">http://www.fushanlang.com/blog/?p=1254</guid>
		<description><![CDATA[<p>软件开发的世界里充满了不理解，客户不理解软件是怎样开发的、经理不理解开发人员、开发人员不理解指挥者。</p> <p>问题在于软件开发惊人的困难，造成很少有开发人员能够说出软件自始至终是怎样开发的，并能够对这个过程中会遇到的不同选择所隐含的结果表现出适度的理解。</p> <p>在软件开发人员还很年轻的时候（十几岁或二十出头），他们通常集中精力学习和使用技术，称自己为perl程序员、Linux专家、EJB开发人员、.NET开 发人员等。对他们来说技术是最重要的事情。因为技术在不断的变化，年轻的程序员倾向于大致学习一个技术，在一到两个项目中使用，然后重新开始学习新技术或 者是学习以前使用过的技术的最新发展。这里的问题是，他们一遍又一遍的重复的学习的不过是同样的低层次基本技能的不同风味。</p> <p>幸运的是，很多开发人员在经过了几轮技术学习之后逐渐意识到：一旦用COBOL、Java、C#等语言为事务控制编写过代码，就会开始认识到基本的、本质的东西是不变的。不同环境下的数据库访问、用户界面设计等领域也是同样的情况。不久以后，开发人员逐渐认识到无论具体的技术怎样，很多基础性的东西是保持不变的，这些基础性的东西有的在学校里讲过，有的没有。</p> <p>这 种认识经常发生在开发人员接近三十岁或刚过三十岁的时候，通常是人们开始稳定下来，结婚、买房的时候。这是比较幸运的情况，因为上面提到的这些新的个人需 求意味着他们不可能再投入大量的时间去学习新的技术，他们需要用这些时间和家庭成员在一起。突然的，高层次的角色如项目负责人、项目经理、（非敏捷的）建 模人员等对他们变得非常有吸引力，因为这些角色不需要持续花费大量的时间和精力去学习新技术。于是，等到开发人员开始真正学到技艺的时候，他们已经处于离 开开发人员角色的转变过程中了。</p> <p>所幸的是，新的“小年轻”不断的跟上来，这个过程在不断的循环重复。最终的结果是：大部分最活跃的正在开发软件的人通常不 是最称职的做这件事的人，而他们自己甚至还不知道。</p> ]]></description>
				<content:encoded><![CDATA[<p>软件开发的世界里<strong>充满了不理解</strong>，<strong>客户不理解软件是怎样开发的、经理不理解开发人员、开发人员不理解指挥者</strong>。</p>
<p>问题在于软件开发惊人的困难，造成很少有开发人员能够说出软件自始至终是怎样开发的，并能够对这个过程中会遇到的不同选择所隐含的结果表现出适度的理解。</p>
<p>在软件开发人员还很年轻的时候（十几岁或二十出头），他们通常集中精力学习和使用技术，称自己为perl程序员、Linux专家、EJB开发人员、.NET开 发人员等。<strong>对他们来说技术是最重要的事情</strong>。<span id="more-1254"></span>因为技术在不断的变化，年轻的程序员倾向于大致学习一个技术，在一到两个项目中使用，然后重新开始学习新技术或 者是学习以前使用过的技术的最新发展。这里的问题是，<strong>他们一遍又一遍的重复的学习的不过是同样的低层次基本技能的不同风味。</strong></p>
<p>幸运的是，很多开发人员在经过了几轮技术学习之后逐渐意识到：一旦用COBOL、Java、C#等语言为事务控制编写过代码，就会<strong>开始认识到基本的、本质的东西是不变的</strong>。不同环境下的数据库访问、用户界面设计等领域也是同样的情况。不久以后，开发人员逐渐认识到无论具体的技术怎样，很多基础性的东西是保持不变的，这些基础性的东西有的在学校里讲过，有的没有。</p>
<p>这 种认识经常发生在开发人员接近三十岁或刚过三十岁的时候，通常是人们开始稳定下来，结婚、买房的时候。这是比较幸运的情况，因为上面提到的这些新的个人需 求意味着<strong>他们不可能再投入大量的时间去学习新的技术，他们需要用这些时间和家庭成员在一起</strong>。突然的，高层次的角色如项目负责人、项目经理、（非敏捷的）建 模人员等对他们变得非常有吸引力，因为<strong>这些角色不需要持续花费大量的时间和精力去学习新技术</strong>。于是，等到开发人员开始真正学到技艺的时候，他们已经处于离 开开发人员角色的转变过程中了。</p>
<p>所幸的是，新的“小年轻”不断的跟上来，<strong>这个过程在不断的循环重复</strong>。最终的结果是：<strong>大部分最活跃的正在开发软件的人通常不 是最称职的做这件事的人，而他们自己甚至还不知道</strong>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fushanlang.com/an-old-programmers-capriccio-rpm-1254/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
