<?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>Tinyfool的Blog &#187; 记录</title>
	<atom:link href="http://tiny4.org/blog/category/story/feed/" rel="self" type="application/rss+xml" />
	<link>http://tiny4.org/blog</link>
	<description>这就是我，Tinyfool，郝培强！身高180，体重240，标准的中年老胖子。 有妻有女，无房无车，现居上海，程序员。</description>
	<lastBuildDate>Fri, 20 Apr 2012 00:58:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>漫漫长夜，照亮我继续前行的几盏灯（一、直爽，勤奋，执着的刘涛）</title>
		<link>http://tiny4.org/blog/2010/05/long-night-walker-light/</link>
		<comments>http://tiny4.org/blog/2010/05/long-night-walker-light/#comments</comments>
		<pubDate>Fri, 28 May 2010 19:47:59 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[记录]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=294</guid>
		<description><![CDATA[我把我的职业生涯回忆文章定名为《在路上》，是因为最近我有些感悟，开始不那么彷徨：人生是一段旅程，大多理想也许无法达到，但无所谓，只要还在路上，我们就可以继续追寻，这种努力的追寻有时候比结果更重要，有时候能产生比你想要的结果更好的结果。 其实我不并像很多人以为的那么乐观，我对我们的国家，我们的社会，我们的个人发展，总体的看法一直都是很悲观的，以至于这些认识讲出来都可能会违反我国法律。但是，最近在大问题上，我越来越不彷徨，我可以不管自己的内心多么悲观，多么苦闷，都积极的去面对这个世界，作出自己的努力。有些人对此有巨大作用，堪比照亮我漫漫前路的明灯，他们是刘涛，李志文，叶劲峰，周筠，刘江，李笑来，我会一一撰文介绍一下他们。 一、直爽，勤奋，执着的刘涛 twitter id:@liut blog:http://liut.cc/blog/ 刘涛是我的一个老朋友。最早知道他是很久以前了，那次我跟火炬讨论一个非常复杂的MySql问题，我们都束手无策。他跟我说要是刘涛在就好了，他说刘涛钻研一个东西就会钻研的很深，刘涛可以解决他遇到的所有的MySql的问题。说这句话的时候，刘涛还只是一个网管，兼MySql DBA。 过了几年，刘涛在一个公司做程序员。Donew5周年聚会，我、火炬和刘涛都应约参加。那次就是周鸿祎的第一次提出“谁的屁股都不干净，出来混都是要还的”，那时候，我和刘涛都坐在会场的一角。 刘涛问我，tiny，这个人这么无耻，你觉得应该不应该骂？ 我说应该。 他立刻站起来，大喊了一句“周鸿祎，你给我滚下来” 全场皆惊，一片混乱，周鸿祎的回应大概是说，骂我的有本事上来说之类。 我就被刘涛吓了一跳，虽然之前火炬也跟我讲过刘涛的性格很直爽。此事，记录在我多年前写的Blog《参加Donews五周年聚会之爽与不爽》之中。那时我就非常佩服刘涛了，真是太直爽。 后来，我们创业曾考虑拉刘涛出来，但那时他所在的公司貌似很好，所以作罢。 后来，我老婆（@yatounini）生完孩子以后重新出来上班，刘涛和我另外一个朋友大鱼儿所在的公司也正在招人。我就跟刘涛说，希望让我老婆过去，跟他们学习学习。刘涛还是很直率的说，你老婆水平要是不行我们可不要啊。 其实那时候，我老婆的水平确实还很一般，我想让她过去主要目的也是希望她可以在一个比较靠谱的团队里面锻炼锻炼，提高一下水平，有刘涛和大鱼儿在的团队我百分百放心。 后来，因为我老婆的技术不行，编程习惯不好，刘涛有几次告诉我可能不想要她了。直到后来他和大鱼发现，我老婆做事情的时候往往还是很认真，也肯于学习，虽然底子差了一点，但是后来还是有很大进步的，我老婆才在那个公司真的立了足。 而因为刘涛的苛刻，我老婆也经常跟我抱怨刘涛要求太高了，甚至几次被气哭。 但是最后，我老婆还是理解了刘涛的苦心，从她自己的成长看到了刘涛的苛刻带来的诸多好处。 刘涛在项目中总是追求精益求精，对每个人check in的代码都会review，看到错误和不好的代码，都要求重做，或者他亲自改掉。因为他的严格，他们的项目才有了可靠的质量，也因为他的严格，我老婆的技术水平也有了很大的进步。 对比起来，我就很欠缺对完美追求的执着，也因为嫌麻烦不去做code review。在这个问题上实际上是有惨痛的教训的。我们做搜索产品的时候，有一个程序员水平虽然还可以，但是做事情很马虎。有很多次都出现了，他写一个代码花了一个星期，然后check in到我们的主线以后，后来，引发了很严重的事故，然后我和火炬花几个小时，甚至几天的时间调试才发现是他的bug。这些事故，很多都严重的影响了客户对我们服务的信任程度（不过幸亏我们的态度很诚恳，尽量及时解决问题，他们都原谅了我们）。 有一次是，我们的构建索引的老代码（我写的）因为省事儿用了Dom解析Xml，随着数据增长，内存耗费很严重。于是我要求他写一个Sax的解析程序，他自己没有搞定，在我做了demo后，指导后，终于做出来了。但是他把新的Sax实现加上去以后，居然没有去掉Dom实现。实际上，两个算法各跑了一遍。但是，他刚check in的时候，客户数据其实还不够大，而一个月后，客户的数据量暴增，我们的索引进程经常内存耗尽死掉。我调试了几次都没发现原因（数据量大测试也很麻烦），仔细看了代码后才发现他做的蠢事儿。这个错误非常明显，如果我们在他check in的时候，做code review是一定可以发现的。 还有一次是，让他来写一个文件下载功能。写好了以后简单测试都没有问题。过了一个月，有一天我们的lighttpd经常出问题，莫名其妙的php进程就占用了大量内存，甚至造成lighttpd无法响应。但是重起服务后，又没有任何问题了。出现问题的周期不固定，后来分析日志也很困难，出现问题的时候，有很多web行为，也很难看出有什么明显的入侵，或者反常访问。后来我怀疑是日志下载程序造成的，打开代码一看原来是他为了图省事儿调用file_get_contents函数来获取文件内容，下载小文件，小日志无所谓，用户下载几百兆的日志的时候，而且用多线程下载的时候，一下子就把服务器的内存耗尽了。这个问题很好解决，而且事先如果做了code review也是一定可以发现的。 所以我很后悔没有坚持拉刘涛跟我们一起创业，至少我们那个项目因为有了好的code review，能节省大量为解决各种程序bug耗费的时间。 刘涛很少写blog，最近才开始真的写一些，那天他刚写了一篇《一言难尽话PHP，兼谈我的编程经历》，我们公司的一个项目的负责人，一位非常牛的大牛，就跟我说要我帮忙把刘涛挖过来，因为这文章一看就知道刘涛是极少数真的懂PHP的人。 有刘涛这样直爽，勤奋和执着的朋友，或者说同道，时刻都提醒我不能对项目掉以轻心，要对质量有所追求，不要放弃自己观点，是我的第一盏明灯。 待续》》]]></description>
			<content:encoded><![CDATA[<p>我把我的职业生涯回忆文章定名为《<a href="http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story/">在路上</a>》，是因为最近我有些感悟，开始不那么彷徨：人生是一段旅程，大多理想也许无法达到，但无所谓，只要还在路上，我们就可以继续追寻，这种努力的追寻有时候比结果更重要，有时候能产生比你想要的结果更好的结果。</p>
<p>其实我不并像很多人以为的那么乐观，我对我们的国家，我们的社会，我们的个人发展，总体的看法一直都是很悲观的，以至于这些认识讲出来都可能会违反我国法律。但是，最近在大问题上，我越来越不彷徨，我可以不管自己的内心多么悲观，多么苦闷，都积极的去面对这个世界，作出自己的努力。有些人对此有巨大作用，堪比照亮我漫漫前路的明灯，他们是刘涛，李志文，叶劲峰，周筠，刘江，李笑来，我会一一撰文介绍一下他们。</p>
<p>一、直爽，勤奋，执着的刘涛</p>
<p>twitter id:<a href="http://twitter.com/liut">@liut</a><br />
blog:<a href="http://liut.cc/blog/">http://liut.cc/blog/</a></p>
<p>刘涛是我的一个老朋友。最早知道他是很久以前了，那次我跟<a href="http://en.virushuo.com/">火炬</a>讨论一个非常复杂的MySql问题，我们都束手无策。他跟我说要是刘涛在就好了，他说刘涛钻研一个东西就会钻研的很深，刘涛可以解决他遇到的所有的MySql的问题。说这句话的时候，刘涛还只是一个网管，兼MySql DBA。</p>
<p>过了几年，刘涛在一个公司做程序员。Donew5周年聚会，我、火炬和刘涛都应约参加。那次就是周鸿祎的第一次提出“谁的屁股都不干净，出来混都是要还的”，那时候，我和刘涛都坐在会场的一角。</p>
<p>刘涛问我，tiny，这个人这么无耻，你觉得应该不应该骂？</p>
<p>我说应该。</p>
<p>他立刻站起来，大喊了一句“周鸿祎，你给我滚下来”</p>
<p>全场皆惊，一片混乱，周鸿祎的回应大概是说，骂我的有本事上来说之类。</p>
<p>我就被刘涛吓了一跳，虽然之前火炬也跟我讲过刘涛的性格很直爽。此事，记录在我多年前写的Blog《<a href="http://blog.donews.com/tinyfool/archive/2005/04/23/347504.aspx">参加Donews五周年聚会之爽与不爽</a>》之中。那时我就非常佩服刘涛了，真是太直爽。</p>
<p>后来，我们创业曾考虑拉刘涛出来，但那时他所在的公司貌似很好，所以作罢。</p>
<p>后来，我老婆（@<a href="http://twitter.com/yatounini">yatounini</a>）生完孩子以后重新出来上班，刘涛和我另外一个朋友大鱼儿所在的公司也正在招人。我就跟刘涛说，希望让我老婆过去，跟他们学习学习。刘涛还是很直率的说，你老婆水平要是不行我们可不要啊。</p>
<p>其实那时候，我老婆的水平确实还很一般，我想让她过去主要目的也是希望她可以在一个比较靠谱的团队里面锻炼锻炼，提高一下水平，有刘涛和大鱼儿在的团队我百分百放心。</p>
<p>后来，因为我老婆的技术不行，编程习惯不好，刘涛有几次告诉我可能不想要她了。直到后来他和大鱼发现，我老婆做事情的时候往往还是很认真，也肯于学习，虽然底子差了一点，但是后来还是有很大进步的，我老婆才在那个公司真的立了足。</p>
<p>而因为刘涛的苛刻，我老婆也经常跟我抱怨刘涛要求太高了，甚至几次被气哭。</p>
<p>但是最后，我老婆还是理解了刘涛的苦心，从她自己的成长看到了刘涛的苛刻带来的诸多好处。</p>
<p>刘涛在项目中总是追求精益求精，对每个人check in的代码都会review，看到错误和不好的代码，都要求重做，或者他亲自改掉。因为他的严格，他们的项目才有了可靠的质量，也因为他的严格，我老婆的技术水平也有了很大的进步。</p>
<p>对比起来，我就很欠缺对完美追求的执着，也因为嫌麻烦不去做code review。在这个问题上实际上是有惨痛的教训的。我们做搜索产品的时候，有一个程序员水平虽然还可以，但是做事情很马虎。有很多次都出现了，他写一个代码花了一个星期，然后check in到我们的主线以后，后来，引发了很严重的事故，然后我和火炬花几个小时，甚至几天的时间调试才发现是他的bug。这些事故，很多都严重的影响了客户对我们服务的信任程度（不过幸亏我们的态度很诚恳，尽量及时解决问题，他们都原谅了我们）。</p>
<p>有一次是，我们的构建索引的老代码（我写的）因为省事儿用了Dom解析Xml，随着数据增长，内存耗费很严重。于是我要求他写一个Sax的解析程序，他自己没有搞定，在我做了demo后，指导后，终于做出来了。但是他把新的Sax实现加上去以后，居然没有去掉Dom实现。实际上，两个算法各跑了一遍。但是，他刚check in的时候，客户数据其实还不够大，而一个月后，客户的数据量暴增，我们的索引进程经常内存耗尽死掉。我调试了几次都没发现原因（数据量大测试也很麻烦），仔细看了代码后才发现他做的蠢事儿。这个错误非常明显，如果我们在他check in的时候，做code review是一定可以发现的。</p>
<p>还有一次是，让他来写一个文件下载功能。写好了以后简单测试都没有问题。过了一个月，有一天我们的lighttpd经常出问题，莫名其妙的php进程就占用了大量内存，甚至造成lighttpd无法响应。但是重起服务后，又没有任何问题了。出现问题的周期不固定，后来分析日志也很困难，出现问题的时候，有很多web行为，也很难看出有什么明显的入侵，或者反常访问。后来我怀疑是日志下载程序造成的，打开代码一看原来是他为了图省事儿调用file_get_contents函数来获取文件内容，下载小文件，小日志无所谓，用户下载几百兆的日志的时候，而且用多线程下载的时候，一下子就把服务器的内存耗尽了。这个问题很好解决，而且事先如果做了code review也是一定可以发现的。</p>
<p>所以我很后悔没有坚持拉刘涛跟我们一起创业，至少我们那个项目因为有了好的code review，能节省大量为解决各种程序bug耗费的时间。</p>
<p>刘涛很少写blog，最近才开始真的写一些，那天他刚写了一篇《<a href="http://liut.cc/blog/2010/04/all-about-php.html">一言难尽话PHP，兼谈我的编程经历</a>》，我们公司的一个项目的负责人，一位非常牛的大牛，就跟我说要我帮忙把刘涛挖过来，因为这文章一看就知道刘涛是极少数真的懂PHP的人。</p>
<p>有刘涛这样直爽，勤奋和执着的朋友，或者说同道，时刻都提醒我不能对项目掉以轻心，要对质量有所追求，不要放弃自己观点，是我的第一盏明灯。</p>
<p>待续》》</p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/05/long-night-walker-light/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>在路上—Tinyfool的程序员生涯（职业生涯篇一）</title>
		<link>http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story-2/</link>
		<comments>http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story-2/#comments</comments>
		<pubDate>Wed, 12 May 2010 19:16:27 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[在路上]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[成长]]></category>
		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=238</guid>
		<description><![CDATA[书接上文《在路上—Tinyfool的程序员生涯（大学篇）》。 在学校最后的日子 前文提到，大三那年我差点被学校开除。那次我的父母也被学校召唤了去，那对他们来说是一次耻辱的旅行。 在我们机械系的办公室，他们听到的我们系的老师们给他们讲述我是怎么样一个不上进的垃圾，如何拖了整个机械系的后腿。于是他们对我已经出离失望了，所以没有一点点愤怒，只是失望。 不过，在他们拉着垂头丧气的我去学校门口饭馆吃饭的时候，路遇了很多跟我差不多大或者比我还大的学生，对我很客气的说，郝老师好。这是因为，就在不久之前，我给学校的最大一个系的学生们做过几场Office的培训，至少有400－500人参加过那个培训。那之后，他们的心情和表情明显有了好转，似乎明白了我一直以来都在想些什么，我有什么样的追求和梦想。 那天晚上他们和我有次长谈，他们说我学机械学不下去也无所谓，只要我以后有自己的饭碗，不管做什么他们都支持。不过大学如果能凑合上就争取凑合上完，毕竟只差1年就毕业了。之后，他们找了一个对我们学校来说很牛的关系，在加上我们系里面个把还算喜欢我的老师的配合，我顺利留了下来，没有被开除。 那年假期，他们还拉着我去了鞍山西道（注一），带我见了一些招聘程序员的网站，问他们要不要大学没毕业的人之类的。有些乐意招聘没有学历的人，甚至对我还有些兴趣，有的所用的技术我一无所知。那些网站的办公室都有点破烂，我也不懂他们怎么能挣钱，去了那一趟后其实我更加迷惘。不过不知道我当时去看过的公司，有没有现在已经大发了的。 之后就熬到了大学毕业前，最盛大事件的就是所谓的双选，不过我从来没进入过我们学校任何一个双选场次，因为我对未来很迷惘，不知道是该进去表现自己，还是不进去争取不被他们选走。 刘老师曾经问过我对未来有什么想法，我说没想法，那是非常真实的，我真的很迷惘。他知道我没有参加双选后，问我想不想留校做网络中心的老师，还想推荐我去他的一个大款朋友的公司里去，我都未置可否。每天在我都在幻想未来会是什么样子，期望有张明确的路线图掉在我的桌上，如果照着做，一个月就能做出来巨牛无比的网站或者是软件，然后被雅虎或者微软收购，一夜变成大富翁。 最后，我没有选择留校（以我的成绩也许也很艰难，不过如果动用关系也许又不难，谁知道），去他朋友的公司，也没有参加双选，没有任何就业协议。 所以，我成为了学校就业率里面的一个污点，老师们鼓动我们这些污点去成都参加一个大型招聘会，还有些已经签了协议想追求更好机会也一起踏上了征程。那两个星期里，我们每天大早，走到成都的各大高校，吃各种好吃的早点，然后钻进各大招聘会，扔一份简历。期间，我还冒充N个同学，帮他们面试编程方面的工作。但，我自己就投了一两份。那段时间过的很快乐，我喜欢在成都那样的城市里面闲逛，但是也很短暂，最后，我没有任何就业协议的离开学校去做一个老师的项目。而这个项目就在天津，就在我父母的单位，中海油的塘沽分公司，当时叫做渤海石油。 项目还没做完，我就毕业了，收到了邮寄来的毕业证。 项目做完后，我跟老师交接了一下，回到了家里。之后三个月，天天都在上网，聊天，看贴，写程序。三个月后，没有作出什么伟大的程序，也没有雅虎和微软的高管来电话找我。倒是我妈去交电话费带回来三个月900多块钱网费的账单（那时候是01年，我们那边还没有adsl也不能包月），大发雷霆，甚至用扫把打了我一顿，说我不去上班只知道在家里乱花钱。 第一份工作 那天晚上，我再次上网找了一个聊过几次技术问题的天津网友，问了问天津哪里有招聘会。第二天，打印了几份简历，我就去了那个招聘会。我进门口看到一家公司写着找网管，凑过去聊了几句。来招人的是一个很帅的人事经理，懂点技术，他说需要网管，能写程序更好，他们是一个电子厂。我觉得聊得很愉快，留了一份简历，留了家里电话，就离开了招聘会，回家。 到家，我妈告诉我已经来电话说我被录取了。她很高兴，虽然我的工资只有1200，而且要离开塘沽，去天津市区上班。 网管的工作，最痛苦的部分就是经常要趴在别人的桌子下面，去重接那些仅仅是松动的网线，抑或者是把打印机关了再开，开了再关，检查有没有卡纸等等。 我乐意去做这样的工作，一方面是我不知道以我当时的能力经历，能找到什么更好的工作，也不想去尝试；另外一方面，我觉得偶尔劳筋骨也是有好处的，对于我自己的发展是有利的。从01年到03年离开天津前，虽然也做些软件开发，但我从来没有甩掉网管的头衔。 其实就算是这个网管工作，刚刚开始做的时候，我觉得自己也没有足够的能力，怎么做掐水晶头，做网线做电话线，等等，我都是到了公司现跟人学的。网管的工作非常枯燥无味，但是对逻辑分析能力的培养还算是有点用处。我经常要在对某个老机柜完全不了解情况下去解决里面出现的线路问题（连线上的标签都丢光了），要帮助别的工作人员恢复系统和数据，要用一套复杂的流程复位打印机，要用更复杂的流程复位税控、报关等设备，甚至因为我们直接跟国外某大公司业务往来紧密，我还曾经必须多次在国内的病毒中心报告某病毒之前，人工隔离杀死病毒，恢复被病毒干死的防病毒系统等等。 但除此之外，我是相对自由的，可以参加公司的开发工作，参与新产品研制。 那段时间，因为身份比较模糊，我没有主要担负任何产品的设计。不过因为比较爱扯淡，经常作为我们研发部领导的顾问，什么项目都掺活一下。 比较有意思的项目是一个跟手机内部排线插座接口的项目。那时候，手机越做越小，手机前盖后盖之间排线连接的插座也越做越小，而且结合很紧密，打开很费力且容易损坏。所以我们的手机测试仪连接手机上盖下盖的时候，反而不能用原装的插座，需要做方便接触，且对插座完全无损伤的接口。原装插座非常小，但是上面有20-30个触点，传输数据和取电都需要的。我们当时的方案非常的复杂，用一个有机玻璃方块作为底座，上面打上跟触点数目对应的孔，放置上直径是1毫米，甚至更细的弹簧针（注二）产品试制的时候，损坏了很多钻头和弹簧针，最后才成功。所以仅仅就一个简单的接口，即使不考虑试制时物料的浪费，成本也是非常高的。 后来这个接口终于成功了，但是还存在两个问题，就是生产成本很高，而且损坏的太快，寿命不够长。后来我发现，手机前盖后盖的连接插座，是不一样的，一个凸出，一个凹进去，凸出的那端，触点在插座的连接平面上也是存在的。于是我想到了一个很简单的方案，就是按照连接插座的尺寸和触电分布，定制柔性电路板，在电路板上作出一样的触点，然后在柔性电路板下垫一个橡胶垫，把凸起的插座按在电路板上对齐，就会很稳定的接触上。这样就省掉了一半的复杂昂贵接口的成本，凡是凸起的插座都可以用这个方案来解决，而这样的一个柔性电路板，才几块钱的成本。当然如果是凹进去的那一端，就仍旧需要使用昂贵的接口。我提出的那个方案不算完美，不过在很多产品的测试仪上都使用了，在我离开那个厂子的时候，还在一定范围内使用。 当时我立项并一直在做的项目是，我想做一个基于GBA的GPS导航仪。为了这个我学习了GBA开发，翻译了GBA的硬件手册，也认识了很多同样有志于GBA游戏或者应用开发的朋友。有一个哥们叫azhong，他也翻译了同一本手册，我们成为了朋友，经常聊GBA的技术问题。前两天，他通过另外一个朋友知道我来到了盛大，在公司的内部通讯系统里面找到了我，原来他05年就进入了盛大一直干到现在，现在已经非常有成绩了。我们两个人在8年后第一次见面，真是内牛满面。 而这个导航仪项目，我也算初步有成果，我把一个细节很清楚的天津地图扫描到电脑，最后在GBA上面实现了对地图的浏览。GPS芯片和GBA的连接，数据通讯，在硬件组的同事帮助下也搞定了。不过这个项目最后还是没有什么太多结果就结束了。我曾经的梦想是，给GBA加上外置的键盘，做上面的PDA程序，地图程序，等等。 后来，我零星做了一些GBA游戏开发的尝试，也都限于还可以的DEMO而已。那时候，我曾写过一个极简单的DEMO（注三），放了一张很沧桑的大木船的图片，木船移出屏幕后，打出几行字，写着“你的心是不是还想着远航，欢迎加入GBA大航海开发项目，布拉布拉布拉”。就这么一个简单的DEMO，当时吸引了百十号人参与，大家都非常热情，有人写出来了数万字的剧情，然而我，在巨大的群众热情面前，才发觉自己连带一个最小的三四人团队的经验都没有，汗流满面，慢慢的没有任何动作，拖黄了这个项目。上个月，在Twitter上面，我还遇到了当年写了上万字剧情的兄弟，聊起往事，羞愧难当。 后来随着上游厂商的erp化，我们也开始选择购买还是开发erp，后来的结论是买了其中的一个erp。但是公司的工资系统和考勤系统是自己开发，当时我是实际编写者。我从那时开始正式使用Borland C++ Builder，因为它显然比VB强大，而又是C++跟我当时的学习方向比较吻合。这两个系统其实做的都很垃圾，不过在当时我还是很自负的，觉得已经做的不错了。当时我甚至想过“不过话说回来，中小公司的各种软件实在是一个巨大无比的市场，我要是有精力的话，我一定要把现在这个简单的工资计算软件做成一个非常强大的人力资源管理系统，中小公司的钱不挣，天理不容啊！ ”。而且还认认真真的分析了当时公司面临的一些管理问题，有文章为证“公司人事管理一体化工程－前言”。 但是后来也许是因为我这两个平台的开发进度不够快，或者对其他部门的需求满足不够，也或者是其他的一些我不知道的原因，公司最后倾向于自己购买人事工资管理软件，虽然我觉得他们购买的产品并不好，而且太贵。 在此之后，也许是因为这些事情，也许是公司大了需要更复杂的网络管理，公司的人事总监对我的工作范围做了调整，要求我只做网管，不参与任何新产品，考勤软件也交给别人去接手。我要求专职开发，不再做网管，他也以我招聘近来的时候主要任务就是网管而拒绝了，我积愤难平，觉得自己虽然没有做成什么大项目，在各个项目里面还都是起了些作用，而且自己的发展方向也不想被限制在网管上，郁闷的干了几天，离开了这个公司。 在2年半的时间里，我成为了一个还算凑合的网管，了解了一点公司内部网络管理的知识，其实后来的职业生涯里面基本上这些都没有用上。玩了2年左右的GBA开发，后来，我还做了几年，后文会提，不过基本上也跟屠龙之术一样，没有帮我赚到什么钱，也没有作出什么伟大的软件或者游戏。用Borland C++ Builder做了相对复杂的人事管理、工资和考勤的软件，工资管理实际上是我用BCB真正开发的一个真正的程序，真正的有还算复杂的界面逻辑，用上了Sql Server数据库等等。期间为了帮助其他的项目，我还研究过PC摄像头，研究过Windows驱动开发，但都没有任何成果。这些日子也不算完全蹉跎，但是回想起来在技术方面进步很少，在公司里面，我一直是什么都会一点的，那种多面手的形象，但其实又没有什么东西能搞的比较好，相对失败吧。 我当时也有过反思，也许一开始不该去一个小公司（注四），也许应该去一个牛程序员多点的地方，自学找不到方向，很痛苦，进步也很慢。当然，如果你仔细看，你就知道我其实根本没有挑选过公司，只是去了在招聘会上第一个看到的，且收了我的简历的公司。 敬请期待续篇《在路上—Tinyfool的程序员生涯（职业生涯篇二）》 ======================== 注一：基本上可以理解为天津的中关村地区 注二：我以前扯淡机械制造工艺的时候提到过这个针，全部从日本进口，一根就几十元，虽然直径只有1毫米甚至更小的型号，但是是中空，带有弹簧和两边的针的，结构基本上类似于传统的表带两头的弹簧针，我是用显微镜看过不慎折断的这种针的结构的。直径这么小，它的加工工艺是如何的，我曾经跟一些国内不错的机械厂的技术人员聊过，完全无法想象。即使是我们用来给有机玻璃方块打孔，所需要的机床，和钻头，也都是跟我们合作的一个天津大厂的最顶级设备了。 注三：写这个DEMO时，遇到技术问题我还写了一篇Blog，是我技术Blog的第一篇。现在看出写Blog的好处了吧，一转眼就算是7-8年了。 注四：其实厂子也不算小，技术部10来人，办公室人员100来人，工人上千。不过软件开发力量不多，能直接教我的人几乎没有。]]></description>
			<content:encoded><![CDATA[<p>书接上文《<a href="http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story/">在路上—Tinyfool的程序员生涯（大学篇）</a>》。</p>
<p><strong>在学校最后的日子</strong></p>
<p>前文提到，大三那年我差点被学校开除。那次我的父母也被学校召唤了去，那对他们来说是一次耻辱的旅行。</p>
<p>在我们机械系的办公室，他们听到的我们系的老师们给他们讲述我是怎么样一个不上进的垃圾，如何拖了整个机械系的后腿。于是他们对我已经出离失望了，所以没有一点点愤怒，只是失望。</p>
<p>不过，在他们拉着垂头丧气的我去学校门口饭馆吃饭的时候，路遇了很多跟我差不多大或者比我还大的学生，对我很客气的说，郝老师好。这是因为，就在不久之前，我给学校的最大一个系的学生们做过几场Office的培训，至少有400－500人参加过那个培训。那之后，他们的心情和表情明显有了好转，似乎明白了我一直以来都在想些什么，我有什么样的追求和梦想。</p>
<p>那天晚上他们和我有次长谈，他们说我学机械学不下去也无所谓，只要我以后有自己的饭碗，不管做什么他们都支持。不过大学如果能凑合上就争取凑合上完，毕竟只差1年就毕业了。之后，他们找了一个对我们学校来说很牛的关系，在加上我们系里面个把还算喜欢我的老师的配合，我顺利留了下来，没有被开除。</p>
<p>那年假期，他们还拉着我去了鞍山西道（注一），带我见了一些招聘程序员的网站，问他们要不要大学没毕业的人之类的。有些乐意招聘没有学历的人，甚至对我还有些兴趣，有的所用的技术我一无所知。那些网站的办公室都有点破烂，我也不懂他们怎么能挣钱，去了那一趟后其实我更加迷惘。不过不知道我当时去看过的公司，有没有现在已经大发了的。</p>
<p>之后就熬到了大学毕业前，最盛大事件的就是所谓的双选，不过我从来没进入过我们学校任何一个双选场次，因为我对未来很迷惘，不知道是该进去表现自己，还是不进去争取不被他们选走。</p>
<p>刘老师曾经问过我对未来有什么想法，我说没想法，那是非常真实的，我真的很迷惘。他知道我没有参加双选后，问我想不想留校做网络中心的老师，还想推荐我去他的一个大款朋友的公司里去，我都未置可否。每天在我都在幻想未来会是什么样子，期望有张明确的路线图掉在我的桌上，如果照着做，一个月就能做出来巨牛无比的网站或者是软件，然后被雅虎或者微软收购，一夜变成大富翁。</p>
<p>最后，我没有选择留校（以我的成绩也许也很艰难，不过如果动用关系也许又不难，谁知道），去他朋友的公司，也没有参加双选，没有任何就业协议。</p>
<p>所以，我成为了学校就业率里面的一个污点，老师们鼓动我们这些污点去成都参加一个大型招聘会，还有些已经签了协议想追求更好机会也一起踏上了征程。那两个星期里，我们每天大早，走到成都的各大高校，吃各种好吃的早点，然后钻进各大招聘会，扔一份简历。期间，我还冒充N个同学，帮他们面试编程方面的工作。但，我自己就投了一两份。那段时间过的很快乐，我喜欢在成都那样的城市里面闲逛，但是也很短暂，最后，我没有任何就业协议的离开学校去做一个老师的项目。而这个项目就在天津，就在我父母的单位，中海油的塘沽分公司，当时叫做渤海石油。</p>
<p>项目还没做完，我就毕业了，收到了邮寄来的毕业证。</p>
<p>项目做完后，我跟老师交接了一下，回到了家里。之后三个月，天天都在上网，聊天，看贴，写程序。三个月后，没有作出什么伟大的程序，也没有雅虎和微软的高管来电话找我。倒是我妈去交电话费带回来三个月900多块钱网费的账单（那时候是01年，我们那边还没有adsl也不能包月），大发雷霆，甚至用扫把打了我一顿，说我不去上班只知道在家里乱花钱。</p>
<p><strong>第一份工作</strong></p>
<p>那天晚上，我再次上网找了一个聊过几次技术问题的天津网友，问了问天津哪里有招聘会。第二天，打印了几份简历，我就去了那个招聘会。我进门口看到一家公司写着找网管，凑过去聊了几句。来招人的是一个很帅的人事经理，懂点技术，他说需要网管，能写程序更好，他们是一个电子厂。我觉得聊得很愉快，留了一份简历，留了家里电话，就离开了招聘会，回家。</p>
<p>到家，我妈告诉我已经来电话说我被录取了。她很高兴，虽然我的工资只有1200，而且要离开塘沽，去天津市区上班。</p>
<p>网管的工作，最痛苦的部分就是经常要趴在别人的桌子下面，去重接那些仅仅是松动的网线，抑或者是把打印机关了再开，开了再关，检查有没有卡纸等等。</p>
<p>我乐意去做这样的工作，一方面是我不知道以我当时的能力经历，能找到什么更好的工作，也不想去尝试；另外一方面，我觉得偶尔劳筋骨也是有好处的，对于我自己的发展是有利的。从01年到03年离开天津前，虽然也做些软件开发，但我从来没有甩掉网管的头衔。</p>
<p>其实就算是这个网管工作，刚刚开始做的时候，我觉得自己也没有足够的能力，怎么做掐水晶头，做网线做电话线，等等，我都是到了公司现跟人学的。网管的工作非常枯燥无味，但是对逻辑分析能力的培养还算是有点用处。我经常要在对某个老机柜完全不了解情况下去解决里面出现的线路问题（连线上的标签都丢光了），要帮助别的工作人员恢复系统和数据，要用一套复杂的流程复位打印机，要用更复杂的流程复位税控、报关等设备，甚至因为我们直接跟国外某大公司业务往来紧密，我还曾经必须多次在国内的病毒中心报告某病毒之前，人工隔离杀死病毒，恢复被病毒干死的防病毒系统等等。</p>
<p>但除此之外，我是相对自由的，可以参加公司的开发工作，参与新产品研制。</p>
<p>那段时间，因为身份比较模糊，我没有主要担负任何产品的设计。不过因为比较爱扯淡，经常作为我们研发部领导的顾问，什么项目都掺活一下。</p>
<p>比较有意思的项目是一个跟手机内部排线插座接口的项目。那时候，手机越做越小，手机前盖后盖之间排线连接的插座也越做越小，而且结合很紧密，打开很费力且容易损坏。所以我们的手机测试仪连接手机上盖下盖的时候，反而不能用原装的插座，需要做方便接触，且对插座完全无损伤的接口。原装插座非常小，但是上面有20-30个触点，传输数据和取电都需要的。我们当时的方案非常的复杂，用一个有机玻璃方块作为底座，上面打上跟触点数目对应的孔，放置上直径是1毫米，甚至更细的弹簧针（注二）产品试制的时候，损坏了很多钻头和弹簧针，最后才成功。所以仅仅就一个简单的接口，即使不考虑试制时物料的浪费，成本也是非常高的。</p>
<p>后来这个接口终于成功了，但是还存在两个问题，就是生产成本很高，而且损坏的太快，寿命不够长。后来我发现，手机前盖后盖的连接插座，是不一样的，一个凸出，一个凹进去，凸出的那端，触点在插座的连接平面上也是存在的。于是我想到了一个很简单的方案，就是按照连接插座的尺寸和触电分布，定制柔性电路板，在电路板上作出一样的触点，然后在柔性电路板下垫一个橡胶垫，把凸起的插座按在电路板上对齐，就会很稳定的接触上。这样就省掉了一半的复杂昂贵接口的成本，凡是凸起的插座都可以用这个方案来解决，而这样的一个柔性电路板，才几块钱的成本。当然如果是凹进去的那一端，就仍旧需要使用昂贵的接口。我提出的那个方案不算完美，不过在很多产品的测试仪上都使用了，在我离开那个厂子的时候，还在一定范围内使用。</p>
<p>当时我立项并一直在做的项目是，我想做一个基于GBA的GPS导航仪。为了这个我学习了GBA开发，翻译了GBA的硬件手册，也认识了很多同样有志于GBA游戏或者应用开发的朋友。有一个哥们叫azhong，他也翻译了同一本手册，我们成为了朋友，经常聊GBA的技术问题。前两天，他通过另外一个朋友知道我来到了盛大，在公司的内部通讯系统里面找到了我，原来他05年就进入了盛大一直干到现在，现在已经非常有成绩了。我们两个人在8年后第一次见面，真是内牛满面。</p>
<p>而这个导航仪项目，我也算初步有成果，我把一个细节很清楚的天津地图扫描到电脑，最后在GBA上面实现了对地图的浏览。GPS芯片和GBA的连接，数据通讯，在硬件组的同事帮助下也搞定了。不过这个项目最后还是没有什么太多结果就结束了。我曾经的梦想是，给GBA加上外置的键盘，做上面的PDA程序，地图程序，等等。</p>
<p>后来，我零星做了一些GBA游戏开发的尝试，也都限于还可以的DEMO而已。那时候，我曾写过一个极简单的DEMO（注三），放了一张很沧桑的大木船的图片，木船移出屏幕后，打出几行字，写着“你的心是不是还想着远航，欢迎加入GBA大航海开发项目，布拉布拉布拉”。就这么一个简单的DEMO，当时吸引了百十号人参与，大家都非常热情，有人写出来了数万字的剧情，然而我，在巨大的群众热情面前，才发觉自己连带一个最小的三四人团队的经验都没有，汗流满面，慢慢的没有任何动作，拖黄了这个项目。上个月，在Twitter上面，我还遇到了当年写了上万字剧情的兄弟，聊起往事，羞愧难当。</p>
<p>后来随着上游厂商的erp化，我们也开始选择购买还是开发erp，后来的结论是买了其中的一个erp。但是公司的工资系统和考勤系统是自己开发，当时我是实际编写者。我从那时开始正式使用Borland C++ Builder，因为它显然比VB强大，而又是C++跟我当时的学习方向比较吻合。这两个系统其实做的都很垃圾，不过在当时我还是很自负的，觉得已经做的不错了。当时我甚至想过“<a href="http://www.tinydust.net/prog/diary/2003/12/gbacasp-pcivxdgba-gbagpsvb.html">不过话说回来，中小公司的各种软件实在是一个巨大无比的市场，我要是有精力的话，我一定要把现在这个简单的工资计算软件做成一个非常强大的人力资源管理系统，中小公司的钱不挣，天理不容啊！ </a>”。而且还认认真真的分析了当时公司面临的一些管理问题，有文章为证“<a href="http://www.tinydust.net/prog/diary/2004/01/blog-post_02.html">公司人事管理一体化工程－前言</a>”。</p>
<p>但是后来也许是因为我这两个平台的开发进度不够快，或者对其他部门的需求满足不够，也或者是其他的一些我不知道的原因，公司最后倾向于自己购买人事工资管理软件，虽然我觉得他们购买的产品并不好，而且太贵。</p>
<p>在此之后，也许是因为这些事情，也许是公司大了需要更复杂的网络管理，公司的人事总监对我的工作范围做了调整，要求我只做网管，不参与任何新产品，考勤软件也交给别人去接手。我要求专职开发，不再做网管，他也以我招聘近来的时候主要任务就是网管而拒绝了，我积愤难平，觉得自己虽然没有做成什么大项目，在各个项目里面还都是起了些作用，而且自己的发展方向也不想被限制在网管上，郁闷的干了几天，离开了这个公司。</p>
<p>在2年半的时间里，我成为了一个还算凑合的网管，了解了一点公司内部网络管理的知识，其实后来的职业生涯里面基本上这些都没有用上。玩了2年左右的GBA开发，后来，我还做了几年，后文会提，不过基本上也跟屠龙之术一样，没有帮我赚到什么钱，也没有作出什么伟大的软件或者游戏。用Borland C++ Builder做了相对复杂的人事管理、工资和考勤的软件，工资管理实际上是我用BCB真正开发的一个真正的程序，真正的有还算复杂的界面逻辑，用上了Sql Server数据库等等。期间为了帮助其他的项目，我还研究过PC摄像头，研究过Windows驱动开发，但都没有任何成果。这些日子也不算完全蹉跎，但是回想起来在技术方面进步很少，在公司里面，我一直是什么都会一点的，那种多面手的形象，但其实又没有什么东西能搞的比较好，相对失败吧。</p>
<p>我当时也有过反思，也许一开始不该去一个小公司（注四），也许应该去一个牛程序员多点的地方，自学找不到方向，很痛苦，进步也很慢。当然，如果你仔细看，你就知道我其实根本没有挑选过公司，只是去了在招聘会上第一个看到的，且收了我的简历的公司。</p>
<p>敬请期待续篇《在路上—Tinyfool的程序员生涯（职业生涯篇二）》<br />
========================</p>
<p>注一：基本上可以理解为天津的中关村地区</p>
<p>注二：我以前扯淡机械制造工艺的时候提到过这个针，全部从日本进口，一根就几十元，虽然直径只有1毫米甚至更小的型号，但是是中空，带有弹簧和两边的针的，结构基本上类似于传统的表带两头的弹簧针，我是用显微镜看过不慎折断的这种针的结构的。直径这么小，它的加工工艺是如何的，我曾经跟一些国内不错的机械厂的技术人员聊过，完全无法想象。即使是我们用来给有机玻璃方块打孔，所需要的机床，和钻头，也都是跟我们合作的一个天津大厂的最顶级设备了。</p>
<p>注三：写这个DEMO时，遇到技术问题我还写了一篇Blog，是<a href="http://tiny4.org/prog/diary/2003_11_01_tinyfool_diary.html">我技术Blog的第一篇</a>。现在看出写Blog的好处了吧，一转眼就算是7-8年了。</p>
<p>注四：其实厂子也不算小，技术部10来人，办公室人员100来人，工人上千。不过软件开发力量不多，能直接教我的人几乎没有。</p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story-2/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>在路上—Tinyfool的程序员生涯（大学篇）</title>
		<link>http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story/</link>
		<comments>http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story/#comments</comments>
		<pubDate>Thu, 06 May 2010 21:21:09 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[在路上]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[成长]]></category>
		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=204</guid>
		<description><![CDATA[缘起 这两天，有人让我做为一个牛人写点回忆录。 这件事情吊诡在于： 其实我写过回忆录，只是那是很早以前，写在《Tinyfool的开发日记（静态已不更新）》里，叫做《我这10来年（Tinyfool的程序人生）》，写于2004年。以现在的我看来，那是一篇很装屄的东西，跟我写过的大多数东西都一样，刚写好的时候沾沾自喜，几年后再看的时候羞愧难当。 此外，我也不是牛人，虽然随着年纪越来越大，朋友慢慢都变成了牛人，也认识了一些新的牛人朋友，但是我仍旧不是一个牛人，也谈不上成功。 不过，我还是愿意写点东西，原因之一是我有点微观历史情节，总希望自己的东西未来可以给某段历史做个注脚。此外，成功经验我虽然没有，失败教训我是有的，可以分享下，也不算是白失败一下。 题自 几年前，XuYou老师（@mathena）假期回国的时候送了我一本英文原版的《Founders at Work》，他说希望我和Huoju（@ virushuo ）可以学习书里面的伟大的公司的创始人们作出伟大的事业来。说起来惭愧，我连第一节，也就是PayPal创始人的故事都没看完，这可能也是我们的事业并没有伟大起来的原因之一吧。但是这个书名，这种聚一堆大牛来忆苦思甜的模式，我都喜欢得非常。所以，当图灵准备引进姐妹篇《Coders at Work》的时候，我就很自不量力的申请了其中Joshua Bloch访谈的部分的翻译。谁知道，居然申请成功了，翻译的一个月非常痛苦，我当时才迟钝的发现，翻译技术文章是一回事儿，翻译技术大牛的访谈完全是另外一回事儿。 这两天，图灵开始征集这本书的译名，我想到的是《码农在路上—大牛们的程序员生涯》，估计不会被采纳，所以自己先废物利用下，用做此文的标题吧，不过请大家注意，我不是大牛，看此文时千万注意这点，此外，我不是在讲成功经验，我基本上是告诉大家我是怎么一路二把刀下来的，希望大家不要走我的弯路，有些是因为没有人指引，有些是自己执迷，有些是运气不好，有些是愚蠢。 我的成功评价标准 每个人有不同的成功标准，文章既然是我写的，我就从我的角度谈起，我的维度很多，一一考量。 吃方面，我每天想吃肉，想吃菜，想吃巧克力，想吃米饭，甚至想吃大虾，螃蟹，反正是能满足我口味的东西，我都吃的起。偶尔请老婆请朋友吃顿人均50-100的也请得起。那么就算成功了，暂时我对价位更高的食品也没有什么急切的渴求。 穿方面，我没有讲究，衣服裤子舒服就好，鞋子不漏就好，有了老婆以后，这点也很成功，很幸福，总是穿合身的衣服和鞋子。 住方面，我们家在天津有房子，虽然是父母的，但是还算够大，我和老婆还有孩子跟父母一起住，也能住下。不过自从03年离开天津以后，我就没有在那边长期居住过了。03年刚到北京的时候住在公司的宿舍（就是公司在东北旺租的民房，三室住五人那种），后来跟大牛yayv老师（@yayv）同住过一年左右。后来我父母来过北京住过2-3年，直到最近我搬到了上海，老婆也来了，我们两人现在住70多平米的一个两室。说起来，租的房子大多数时候都满足了我所有的需求，唯一的烦人在于这么多年来搬家次数太多，而我一到搬家的时候就会患得患失的，扔东西不舍得，搬东西又懒得搬，经常会痛苦很久。03年到找到老婆前，我曾一度以为自己可能会单身一辈子，所以，从来没有考虑过买房子的问题。同期，我的一些朋友买了房子，有些还住在里面，安顿了很多年，有些最近卖了房子套了很多现（比如huoju）。如果从投资角度来看，我没有投资房产是失败了，于是即使自己的收入虽然一直增长，但是总资产的增长总是大大低于身边朋友的CPI，当然也低于整体社会的CPI。然而这是必然的，我当时觉得会单身，所以不买房也是一个我认为很好的选项。其次，我一直没存下什么钱，当时家里也没有多少能力资助我，所以，即使我穿越时空回到03-05年，对自己大喊“记得买房子啊”也是没用的。当然同理，对我自己大喊“要买百度/google/Apple股票”也不会有任何用处。所以，此项我失败到家，有了老婆孩子，但是还没有房子，不能让她们跟我安定的待在一个地方，总是搬来搬去。 行方面，我现在的主要交通工具是自行车，每天骑着上班骑着下班。偶尔打车，或者蹭huoju和yusheng老师的车。最近几次大雨，我都坚持了骑车来回，有一次连雨衣都没有，浑身湿透；而最近一次，虽然穿了暂新的从迪卡侬买的短款雨衣，但是因为没有雨裤，上半身完全没事，裤子的大腿部分全部湿透。汽车以我的收入来算，还是可以买得起的，尤其是如果以yusheng老师作为榜样的话（他的二手切诺基才两万买的）。但是，我和老婆都没有驾照，我懒得去学，她也不想去。而且在上海，上牌照貌似是很贵的。而且，按照我老婆的消费观念，不买房是不能买车的。所以，这项也只能算失败的。 消费方面，单身汉的时候，我的消费能力还是很强的，买过16M，32M，128M，256M的各色mp3，都是在最贵的时候买的。买过GBA，买过一个Moto手机，6-7个Nokia手机。买过一个iPod Nano，两台台式PC，一台笔记本PC，一个Macbook。有了老婆后，给她买了一个Macbook，两个手机，给自己买过一个Nokia E61i，买过一个Wii，最近买了一个很贵的iMac27，还买了一个iPhone 3G（之前参加TechWeb年会，抽奖抽了一个iPod Touc，要感谢主持人炳叔）。这项难说成功与否，总之，买不起房子的很大原因在这里面，当然最重要是房价一直在飞涨，稍等等不买，然后不发大财就不会再有机会了。因为有了老婆孩子，以后可能要抑制一下这些消费了，不过很难，我最近不是买了iMac27么？之前还买了个佳能的450D，虽然我顶住诱惑，什么镜头都不买，只用标头。 技术方面，我的技术路线一直都很摇摆，从高中算起，94年到现在15年多，我换了无数的技术，最近比较关注Mac/iPhone/iPad平台。没有一个技术钻研到了足够的深度，也没有作出任何被广泛使用的程序。所以只能说很失败。 挣钱方面，我刚毕业的时候工资是1200，后来一直在涨，目前为止还没有在职工资下降，或者换了工作，工资下降的情况。但是，CPI在一直飞涨，虽然一般生活也算是越来越好，不过房子完全没可能买起。工作快10年，从来没在一个即将上市的公司待过，也就没有得到过期权套现之类的好处。外包程序没做过几个，收益总体也很少。自己创业的公司也没有被收购的，也没有被VC的，也没有上市的，所以，基本上还是很失败的。 所以，总体来说，我的工作生涯10年，还算是挺失败的；写程序15年，也挺失败的。 我的程序员生涯（大学篇） 高一（94年）正式接触电脑的时候，学习的是GWBASIC，在闭塞的环境里，不知道有PASCAL也不知道C/C++。当时天津计算机奥赛选拔，我参加的时候，没有BASIC的题目只有PASCAL，我一个关键字没没见过，胡乱答完了题目，而且得了第一。哦，不是，那是逗你们的，如果是大牛的回忆录有可能，我的不会有那么牛屄的，很简单，我根本没有名次。高三临毕业的时候家里给我买了电脑，那时候看到的最亲切的就是Visual Basic 3.0，因为它也是Basic，因为它可以很简单拖拖拽拽，加上点代码就可以写出个程序，当然最重要的是它有中文的帮助，学习起来比较简单。当时，同时买的盗版盘里面，还有Delphi2.0，虽然看着更酷，我也很喜欢，但是我实在是没有学过PASCAL，总是用不惯Delphi。 高中三年，我都和一个同学一起看一本叫《Borland C++ 3.0中文手册》的巨厚无比的书，然而我真正看到Borland C++ 3.0的时候，已经是在大学了（97年）。 整个大学里，我主要是在用Visual Basic写程序，自觉是Visual Basic绝顶高手。那时候，有位师兄叫李阳东（他现在在支付宝做架构师），天天说我用Visual Basic不长进，应该学习Visual C++，我当时不明就里，因为他最爱看的书是《深入浅出MFC》，我被彻底弄糊涂了，这东西到底是Visual C++呢？还是MFC呢？用VC写过几次程序，不习惯里面的很多概念，MVC啊，序列化啊等等，最后也没有真正碰过。不过因为Visual Basic有诸多限制，而且我喜欢看手册，所以大学期间我是吧Win32API手册看了无数遍的，算是把Win32API的逻辑搞得比较清楚了吧。也许我一直学不进去Visual C++原因就在于它的手册无法让我学会它吧。 大学的时候，比较有意思的是，有一次我用Visual Basic写了一个程序，图标跟Visual Basic开发环境完全一样，然后有一个随机数来选择，有1/3的概率会弹出一个对话框说，“警告：微软正版检查程序发现，您正在使用的Visual Basic是盗版，一切法律责任自负”；2/3的几率是执行我改过名字的真正的开发环境的可执行文件。然后，我把这个东西安装到另外一个也用Visual Basic的师兄机器上，他真的被我骗了，很正经的分析这个软件是怎么检查出来盗版的，还大惊小怪的跟我们每个人说。其实我们那时候还没有接入互联网，局域网也玩的不熟（我参加学校的一个计算机知识比赛的，因为不知道同轴电缆的T型头叫什么而令我们机械系惜败的，而那次比赛后我倒是挺有名，因为机械系三个参赛人员，只有我说话…），那时候其实微软也没有激活之类的机制。 去信息中心混之前，中间有一个阶段我非常痴迷Borland C++ 3.0，那时候，世界上很多著名的东西都是用它写的。Borland最早提供的DOS下的图形库很差，有人写文章说明怎么用320&#215;200的256模式画图，那时候多激动啊。现在的年轻人可能无法理解，DOS时代巨多流行的游戏都是这个分辨率下的，知道怎么在这个模式下画图就等于知道怎么做游戏了。于是我在那个模式下重复发明了很多轮子，自己的画线函数，方块函数等等，但是就是没做出来游戏。后来，又有了DOS下VESA显卡的驱动方法，每个人就更激动了，你的DOS程序也可以像Windows那个样子了，每个人都在写自己的窗口库。最有名的是UCSDK，我当时自己也在写，从头研究，研究一个方块的四个边框和背景的颜色差异，怎么作出Windows的按钮的效果。我当时写了一个仿Windows界面的画板的程序，为了保存文件，我还去找BMP和PCX的文件格式说明，那时候找点资料好难啊。所以那时候CSDN出的《程序员大本营》光盘大家都非常喜欢，觉得是无价之宝一样的东西。 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>缘起</strong></p>
<p>这两天，有人让我做为一个牛人写点回忆录。</p>
<p>这件事情吊诡在于：</p>
<blockquote>
<ol>
<li>其实我写过回忆录，只是那是很早以前，写在《<a href="http://tiny4.org/prog/diary/diary.htm">Tinyfool的开发日记（静态已不更新）</a>》里，叫做《<a href="http://tiny4.org/prog/diary/2004/10/10tinyfool.html">我这10来年（Tinyfool的程序人生）</a>》，写于2004年。以现在的我看来，那是一篇很装屄的东西，跟我写过的大多数东西都一样，刚写好的时候沾沾自喜，几年后再看的时候羞愧难当。</li>
<li>此外，我也不是牛人，虽然随着年纪越来越大，朋友慢慢都变成了牛人，也认识了一些新的牛人朋友，但是我仍旧不是一个牛人，也谈不上成功。</li>
</ol>
</blockquote>
<p>不过，我还是愿意写点东西，原因之一是我有点微观历史情节，总希望自己的东西未来可以给某段历史做个注脚。此外，成功经验我虽然没有，失败教训我是有的，可以分享下，也不算是白失败一下。</p>
<p><strong>题自</strong></p>
<p>几年前，XuYou老师（@<a href="http://twitter.com/mathena">mathena</a>）假期回国的时候送了我一本英文原版的《Founders at Work》，他说希望我和<a href="http://en.virushuo.com/">Huoju</a>（@<a href="http://twitter.com/virushuo"> virushuo </a>）可以学习书里面的伟大的公司的创始人们作出伟大的事业来。说起来惭愧，我连第一节，也就是PayPal创始人的故事都没看完，这可能也是我们的事业并没有伟大起来的原因之一吧。但是这个书名，这种聚一堆大牛来忆苦思甜的模式，我都喜欢得非常。所以，当图灵准备引进姐妹篇《Coders at Work》的时候，我就很自不量力的申请了其中Joshua Bloch访谈的部分的翻译。谁知道，居然申请成功了，翻译的一个月非常痛苦，我当时才迟钝的发现，翻译技术文章是一回事儿，翻译技术大牛的访谈完全是另外一回事儿。</p>
<p>这两天，图灵开始征集这本书的译名，我想到的是《码农在路上—大牛们的程序员生涯》，估计不会被采纳，所以自己先废物利用下，用做此文的标题吧，不过请大家注意，我不是大牛，看此文时千万注意这点，此外，我不是在讲成功经验，我基本上是告诉大家我是怎么一路二把刀下来的，希望大家不要走我的弯路，有些是因为没有人指引，有些是自己执迷，有些是运气不好，有些是愚蠢。</p>
<p><strong>我的成功评价标准</strong></p>
<p>每个人有不同的成功标准，文章既然是我写的，我就从我的角度谈起，我的维度很多，一一考量。</p>
<p>吃方面，我每天想吃肉，想吃菜，想吃巧克力，想吃米饭，甚至想吃大虾，螃蟹，反正是能满足我口味的东西，我都吃的起。偶尔请老婆请朋友吃顿人均50-100的也请得起。那么就算成功了，暂时我对价位更高的食品也没有什么急切的渴求。</p>
<p>穿方面，我没有讲究，衣服裤子舒服就好，鞋子不漏就好，有了老婆以后，这点也很成功，很幸福，总是穿合身的衣服和鞋子。</p>
<p>住方面，我们家在天津有房子，虽然是父母的，但是还算够大，我和老婆还有孩子跟父母一起住，也能住下。不过自从03年离开天津以后，我就没有在那边长期居住过了。03年刚到北京的时候住在公司的宿舍（就是公司在东北旺租的民房，三室住五人那种），后来跟大牛yayv老师（@<a href="http://twitter.com/yayv">yayv</a>）同住过一年左右。后来我父母来过北京住过2-3年，直到最近我搬到了上海，老婆也来了，我们两人现在住70多平米的一个两室。说起来，租的房子大多数时候都满足了我所有的需求，唯一的烦人在于这么多年来搬家次数太多，而我一到搬家的时候就会患得患失的，扔东西不舍得，搬东西又懒得搬，经常会痛苦很久。03年到找到老婆前，我曾一度以为自己可能会单身一辈子，所以，从来没有考虑过买房子的问题。同期，我的一些朋友买了房子，有些还住在里面，安顿了很多年，有些最近卖了房子套了很多现（比如huoju）。如果从投资角度来看，我没有投资房产是失败了，于是即使自己的收入虽然一直增长，但是总资产的增长总是大大低于身边朋友的CPI，当然也低于整体社会的CPI。然而这是必然的，我当时觉得会单身，所以不买房也是一个我认为很好的选项。其次，我一直没存下什么钱，当时家里也没有多少能力资助我，所以，即使我穿越时空回到03-05年，对自己大喊“记得买房子啊”也是没用的。当然同理，对我自己大喊“要买百度/google/Apple股票”也不会有任何用处。所以，此项我失败到家，有了老婆孩子，但是还没有房子，不能让她们跟我安定的待在一个地方，总是搬来搬去。</p>
<p>行方面，我现在的主要交通工具是自行车，每天骑着上班骑着下班。偶尔打车，或者蹭huoju和yusheng老师的车。最近几次大雨，我都坚持了骑车来回，有一次连雨衣都没有，浑身湿透；而最近一次，虽然穿了暂新的从迪卡侬买的短款雨衣，但是因为没有雨裤，上半身完全没事，裤子的大腿部分全部湿透。汽车以我的收入来算，还是可以买得起的，尤其是如果以yusheng老师作为榜样的话（他的二手切诺基才两万买的）。但是，我和老婆都没有驾照，我懒得去学，她也不想去。而且在上海，上牌照貌似是很贵的。而且，按照我老婆的消费观念，不买房是不能买车的。所以，这项也只能算失败的。</p>
<p>消费方面，单身汉的时候，我的消费能力还是很强的，买过16M，32M，128M，256M的各色mp3，都是在最贵的时候买的。买过GBA，买过一个Moto手机，6-7个Nokia手机。买过一个iPod Nano，两台台式PC，一台笔记本PC，一个Macbook。有了老婆后，给她买了一个Macbook，两个手机，给自己买过一个Nokia E61i，买过一个Wii，最近买了一个很贵的iMac27，还买了一个iPhone 3G（之前参加TechWeb年会，抽奖抽了一个iPod Touc，要感谢主持人炳叔）。这项难说成功与否，总之，买不起房子的很大原因在这里面，当然最重要是房价一直在飞涨，稍等等不买，然后不发大财就不会再有机会了。因为有了老婆孩子，以后可能要抑制一下这些消费了，不过很难，我最近不是买了iMac27么？之前还买了个佳能的450D，虽然我顶住诱惑，什么镜头都不买，只用标头。</p>
<p>技术方面，我的技术路线一直都很摇摆，从高中算起，94年到现在15年多，我换了无数的技术，最近比较关注Mac/iPhone/iPad平台。没有一个技术钻研到了足够的深度，也没有作出任何被广泛使用的程序。所以只能说很失败。</p>
<p>挣钱方面，我刚毕业的时候工资是1200，后来一直在涨，目前为止还没有在职工资下降，或者换了工作，工资下降的情况。但是，CPI在一直飞涨，虽然一般生活也算是越来越好，不过房子完全没可能买起。工作快10年，从来没在一个即将上市的公司待过，也就没有得到过期权套现之类的好处。外包程序没做过几个，收益总体也很少。自己创业的公司也没有被收购的，也没有被VC的，也没有上市的，所以，基本上还是很失败的。</p>
<p>所以，总体来说，我的工作生涯10年，还算是挺失败的；写程序15年，也挺失败的。</p>
<p><strong>我的程序员生涯（大学篇）</strong></p>
<p>高一（94年）正式接触电脑的时候，学习的是GWBASIC，在闭塞的环境里，不知道有PASCAL也不知道C/C++。当时天津计算机奥赛选拔，我参加的时候，没有BASIC的题目只有PASCAL，我一个关键字没没见过，胡乱答完了题目，而且得了第一。哦，不是，那是逗你们的，如果是大牛的回忆录有可能，我的不会有那么牛屄的，很简单，我根本没有名次。高三临毕业的时候家里给我买了电脑，那时候看到的最亲切的就是Visual Basic 3.0，因为它也是Basic，因为它可以很简单拖拖拽拽，加上点代码就可以写出个程序，当然最重要的是它有中文的帮助，学习起来比较简单。当时，同时买的盗版盘里面，还有Delphi2.0，虽然看着更酷，我也很喜欢，但是我实在是没有学过PASCAL，总是用不惯Delphi。 </p>
<p>高中三年，我都和一个同学一起看一本叫《Borland C++ 3.0中文手册》的巨厚无比的书，然而我真正看到Borland C++ 3.0的时候，已经是在大学了（97年）。</p>
<p>整个大学里，我主要是在用Visual Basic写程序，自觉是Visual Basic绝顶高手。那时候，有位师兄叫李阳东（他现在在支付宝做架构师），天天说我用Visual Basic不长进，应该学习Visual C++，我当时不明就里，因为他最爱看的书是《深入浅出MFC》，我被彻底弄糊涂了，这东西到底是Visual C++呢？还是MFC呢？用VC写过几次程序，不习惯里面的很多概念，MVC啊，序列化啊等等，最后也没有真正碰过。不过因为Visual Basic有诸多限制，而且我喜欢看手册，所以大学期间我是吧Win32API手册看了无数遍的，算是把Win32API的逻辑搞得比较清楚了吧。也许我一直学不进去Visual C++原因就在于它的手册无法让我学会它吧。</p>
<p>大学的时候，比较有意思的是，有一次我用Visual Basic写了一个程序，图标跟Visual Basic开发环境完全一样，然后有一个随机数来选择，有1/3的概率会弹出一个对话框说，“警告：微软正版检查程序发现，您正在使用的Visual Basic是盗版，一切法律责任自负”；2/3的几率是执行我改过名字的真正的开发环境的可执行文件。然后，我把这个东西安装到另外一个也用Visual Basic的师兄机器上，他真的被我骗了，很正经的分析这个软件是怎么检查出来盗版的，还大惊小怪的跟我们每个人说。其实我们那时候还没有接入互联网，局域网也玩的不熟（我参加学校的一个计算机知识比赛的，因为不知道同轴电缆的T型头叫什么而令我们机械系惜败的，而那次比赛后我倒是挺有名，因为机械系三个参赛人员，只有我说话…），那时候其实微软也没有激活之类的机制。</p>
<p>去信息中心混之前，中间有一个阶段我非常痴迷Borland C++ 3.0，那时候，世界上很多著名的东西都是用它写的。Borland最早提供的DOS下的图形库很差，有人写文章说明怎么用320&#215;200的256模式画图，那时候多激动啊。现在的年轻人可能无法理解，DOS时代巨多流行的游戏都是这个分辨率下的，知道怎么在这个模式下画图就等于知道怎么做游戏了。于是我在那个模式下重复发明了很多轮子，自己的画线函数，方块函数等等，但是就是没做出来游戏。后来，又有了DOS下VESA显卡的驱动方法，每个人就更激动了，你的DOS程序也可以像Windows那个样子了，每个人都在写自己的窗口库。最有名的是UCSDK，我当时自己也在写，从头研究，研究一个方块的四个边框和背景的颜色差异，怎么作出Windows的按钮的效果。我当时写了一个仿Windows界面的画板的程序，为了保存文件，我还去找BMP和PCX的文件格式说明，那时候找点资料好难啊。所以那时候CSDN出的《程序员大本营》光盘大家都非常喜欢，觉得是无价之宝一样的东西。</p>
<p>现在想那时候真是愚蠢，很多同学没见过Win95（学校机房默认都是DOS，当然很流行自己裁减Win95，然后用最少的磁盘带到学校机房，安装上去，玩上面的记事本和画图程序。我们学校最高记录是三张软盘搞定。很多同学，2年后，学校机房大面积换代以后才真的用过Win95），在学校痴迷DOS下模仿实现窗口效果，我高三毕业前有了电脑就见了Win95，我也痴迷在DOS下模仿实现窗口。那时候每个人都以为自己可以写个Windows出来，那下面有多少底层服务，多少内核代码，多少图形界面代码，多少人月，我们都天真的漠视，甚至想都没想过。那时候，我们国家整个软件行业都以为软件强国梦就在眼前，觉得UCDOS/Super DOS远胜微软的PDOS，觉得WPS在，微软的Word就没戏。</p>
<p>98-99年左右，我们有个师兄给化工系做网站（他现在是腾讯的高层），得到了一个拨号上网的帐号，启了我的互联网的蒙，那时候第一次知道了Google，ICQ，OICQ（现在的QQ），163等等。</p>
<p>于是我就开始学习php3和Asp，貌似是先学php3的，那时候拓展名默认还是php3。但是因为我有Visual Basic的基础，我更喜欢Asp一些。当时还学习了一点Flash，那时候也是Flash的早期版本，4.0好像是。那时候学校搞了一个网站设计比赛。我就用Flash画了一个城墙，找了一个矢量的鸟，网页一打开鸟会从一头飞到另外一头，然后，城门左边有个告示，大概说我这是个什么什么网站，好像是叫微尘网城之类的（我很喜欢微尘这个词，大学的时候装屄的方式就是什么什么都叫微尘，当然没有几个人看到了能想到这个词源自佛教中一粒微尘中也有三千大千世界的无限装屄的境界，直到后来出现了个青岛微尘），城门右边是一个登陆框，输入帐号密码后，进入后面一个界面，是一个简单的论坛的样子。实话说，做的还是挺好看的。</p>
<p>不过可悲的是，那时候都是用台式机，我用软盘带着我的网站去参赛的时候，学校的机器Flash版本比我的机器的低，貌似是3.0。动画效果都在，样子也基本对，但是输入框之类的都看不到，大概好像是Flash 3.0还不支持那些输入控件。我演示的很失败，本来很灰心，不过下面有个和蔼的略胖的男老师说，兼容性有问题没事儿，你就说说你要实现的效果就好了。于是我人工跳转到了后面的论坛，把我所有的设计都讲了一下。</p>
<p>最后得了一个最佳技术奖，因为除了我以外，所有的参赛作品都是纯页面，虽然有的还真的算好看。那个男老师是信息中心的主任刘老师，他甚至想让我拿整体第一，因为在他眼中，只有我那个能叫网站，其他的都是网页。不过其他老师都不同意，所以给我专门单开了最佳技术奖。比赛后，他找我聊天，让我参观信息中心，问我有没有兴趣搞学生网站。那时候，我们已经知道四川的一些学生网站，比如成电的一个网站（当时暴有名，现在记不得叫什么了，离开学校就没再关注了），川大的望江楼等等。</p>
<p>于是在大学的后三年左右，我就一直泡在信息中心的一个办公室里面，24小时有网络，带领了几个同学搞起来了一个学生网站我心飞扬（曾经也是教育网排得上号的不错的学生网站，唉），我甚至经常逃课，一天到晚泡在里面，甚至晚上不回宿舍等等。</p>
<p>那是一段非常野蛮的成长，非常快意，也非常迷惘，我也没真的学会太多技术。因为完全没有人管束，自由自在的想学什么学什么，学过3DMax，当时想做变形金刚的动画，……没做出来。当时学校没有学生邮件系统，我又搞不懂Exchange Sever，当时老师们考虑过一个邮件软件，不过性能貌似不好，名字我已经记不得了。而当时Win2k默认带有一个Smtp服务，可以接收邮件。我就用Visual Basic写了一个pop3服务，可以把Smtp服务收下来的信通过pop3收走。整个程序是跑通了的，不过那时候我连多线程都不懂呢（毕竟Visual Basic当时不支持，我又没有玩Visual C++），所以程序是基于事件模型的，同时只能有一个人收信，其他人只能等待服务处理完另外一个人。学校最后当然没用我这个方案，当然我也没有真的那么提案过，只是想想而已。</p>
<p>那时候，我们的网站提供了校内新闻，电子书（刘老师用离线浏览器抓下来，用sed处理的。几年前，我用类似方法帮朋友做过垃圾站），mp3下载，论坛等等。除了论坛用了ubb，其他都是自己开发的程序。我们有3-4个人做程序，一个美工，一个外联。外联的这位美女现在在某卖电脑的世界五百强公司做客服方面的工作，当年，我对她可寄以厚望，以为她在那家五百强至少可以做到亚太区销售总监之类的呢。我们做mp3下载的时候，一度没有新歌的mp3来源，她单枪匹马的在逛街之余让当地最大的一家音像店，同意免费给我们提供所有新歌的CD，而我们在下载页面给他们做点小文字链广告就成了。那时候，国内网站靠广告能盈利应该还不多，我觉得她当时简直就是个商业天才，可惜现在只作客服方面的工作了。</p>
<p>当时我们还提供免费空间服务，为了解决免费空间和mp3下载的空间问题，老师还把一台100G硬盘的sun5000服务器的管理权限给了我。那是多么巨牛无比的机器啊，它待的屋子二十四小时有空调吹着，而我们学生宿舍到了我毕业那年才有的风扇。可惜那时候我几乎一点Linux/Unix的经验都没有，就把一堆mp3上传到了sun5000了事儿，真是暴殄天物。</p>
<p><strong>我的学业</strong></p>
<p>我小时候对一切机械都感兴趣，据我父母称我2-3岁就把家里缝纫机给拆坏了，我完全不记的，我记忆中，拆掉的闹钟，收音机就不计其数了。上学对物理、化学、最感兴趣，后来对电学开始感兴趣，再到后来喜欢上计算机，一切实体的东西都不感兴趣了，就喜欢那个屏幕和背后的逻辑。</p>
<p>从小学到高中，我都还可以算做成绩优秀的好孩子，中考的成绩，如果不计算体育和政治的话，我可以排到全校第一。曾有不少老师对我寄予厚望，不过我高中后面一年实在是太逍遥，高考下来自己的估的分数连专科都没有过。不过好在下来了一看还在本科线内，填志愿也完全懵懂，那时候我爸带我找了个明白人去问，人家问我喜欢什么。我说计算机，他说计算机和英语以后是工具，人人都要用的，还是报点实在的专业好。于是最后报了机械系，选了西南石油，因为我家是石油系统的。当然也怨不得人家，现在不了解，反正我上大学的年代，报考计算机类专业的分数要求都是很高，我的分数报考计算机专业的话，绝无可能录取。</p>
<p>上了大学，一开始还好，我上高数课前半年，如鱼得水，发现凭着高中的底子，一点不听讲，中期就考了第三名。然而这是大悲剧的开始，后半年我也不好好听讲，经常旷课，最后完全没有弄明白微积分。最后，补考了。这一门没有学好的结果是，所有需要微积分基础的课程，比如公式里面有微积分符号的课程，我几乎都要补考。大三那年，貌似累计了11门补考。学校本来都要开除我了，后来家里找了很硬的关系疏通，我才得以混到毕业。</p>
<p>整个大学生涯，就是革命史曾经考过优，工程化学是优以外，其他课程大多都是刚刚及格，或者还不及格。</p>
<p>我倒不是多悔恨那么多的旷课，我很悔恨没有学好高数，令我没有机会学好物理，工程力学等等我本来是很有兴趣的学科。</p>
<p>下篇《<a href="http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story-2/">在路上—Tinyfool的程序员生涯（职业生涯篇一）</a>》。</p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/05/coder-on-the-road-tinyfool-story/feed/</wfw:commentRss>
		<slash:comments>70</slash:comments>
		</item>
	</channel>
</rss>

