﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-溪流漫话-随笔分类-Other</title><link>http://www.cppblog.com/Streamlet/category/13427.html</link><description>荒废中，求警醒~</description><language>zh-cn</language><lastBuildDate>Sat, 18 Jan 2020 05:40:56 GMT</lastBuildDate><pubDate>Sat, 18 Jan 2020 05:40:56 GMT</pubDate><ttl>60</ttl><item><title>搬家~</title><link>http://www.cppblog.com/Streamlet/archive/2018/10/13/216006.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Sat, 13 Oct 2018 05:19:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2018/10/13/216006.html</guid><description><![CDATA[https://streamlet.github.io/<img src ="http://www.cppblog.com/Streamlet/aggbug/216006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2018-10-13 13:19 <a href="http://www.cppblog.com/Streamlet/archive/2018/10/13/216006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>论让座与道德绑架</title><link>http://www.cppblog.com/Streamlet/archive/2011/03/06/141188.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Sat, 05 Mar 2011 16:12:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2011/03/06/141188.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/141188.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2011/03/06/141188.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/141188.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/141188.html</trackback:ping><description><![CDATA[<p>来句定场语吧：</p> <p>“我也许不同意你让座或者不让座的做法，但我誓死捍卫你选择让与不让的权利。”——伏尔泰&nbsp; （^_^）</p> <p>&nbsp;</p> <p>关于这个话题我早在大二的时候就想说了，奈何周围都是自认为道德高尚的大学生朋友，几乎无法沟通——尽管我现在也不期待看到这篇文章的人会认同我的观点。但是我想，社会总比学校现实一点吧。如果看了这篇文章后你觉得不同意，骂过之后，请两年之后再来看看，那时候也许有不一样的理解。^_^</p> <p>可能有人说，让座是件很自然的事情，觉得人家不方便，就让一下，何必上纲上线呢。是的，我也不想上纲上线。但这位同学说的话只强调了一方面，没有抢点另一方面。完整的说，让座或者不让座都是很自然的事，你觉得人家不方便并且自己也愿意，就让一下，如果不想让，也就不用让，没必要上纲上线的。但是悲哀的是，如此自然的事，被一群道德卫士给上纲上线了。</p> <p>不知道大家有没有碰到这样子的例子，自己本来也没注意周围有没有需要让座的，却被某个站着的人“提醒”一下，某某某不方便，你给TA让个座吧。然后不管你让了，或者是没有让了，那个人可能会指责你没有主动站起来，或者指责你没有到最后也没有站起来。</p> <p>这种人我称之为道德卫士。近几年不乏这样的报道，什么某某人拿一百块钱抽某人脸啦，某某老头一屁股坐到某某超短裙女生腿上啦……被让座的事例不断上演。遗憾的是，舆论的声音，几乎被道德卫士劫持，每个人心中都有一个自己的道德的卫士，就像每个小白和小黑的电脑上都有个360卫士一样，告诉我们自己应该支持哪一方，否则就会有道德风险。</p> <p>道德卫士的出现，让这个本不该上纲上线的东西，变成必须要去面对的了。有些迫于道德压力的人，坐公交车的时候就时时刻刻警惕周围是否有老人上来了，是否有人刷了“老人卡”了。像我这样洒脱，一路睡觉或者闭目养神的也有，不过不多。</p> <p>天涯上有篇帖子，LZ论证了“让座是不道德的行为”（<a title="http://www.tianya.cn/publicforum/content/free/1/1967922.shtml" href="http://www.tianya.cn/publicforum/content/free/1/1967922.shtml" target="_blank">http://www.tianya.cn/publicforum/content/free/1/1967922.shtml</a>）。对于这个论点，我不太同意，我认为让座还是道德的行为，是高尚品德的体现。但是看看这样的文章有助于我们解放思想，只有解放思想了，我们才能进一步讨论。全文摘录如下：</p> <p><font color="#9bbb59">今天跟读大一的表弟一起坐公交，中途上来一个老太太，他马上站起来让座，<br>接着就得意地谴责我没有让座，</font></p> <p><font color="#9bbb59">我问：为什么要让座？<br>他说：不让座是不道德的。<br>我问：什么是道德，谁说过让座就是一种道德的行为？<br>他说：你虽然读完了研究生，但是你道德大大的坏。<br>我说：你根本就不知道什么叫道德，让座其实根本就不值得提倡。<br>因为让座根本就是一种不道德的行为。论证如下：</font></p> <p><font color="#9bbb59">一、什么是道德。</font></p> <p><font color="#9bbb59">道德是一种人与人之间的行为规范和资源分配方式。<br>跟道德相应的概念有：礼仪、法制、权力。<br>我们说，孔融让梨是一种有道德的行为。<br>这种行为体现的行为规范是爱护亲人，<br>体现的资源分配方式是先满足亲人的需要。<br>亲人之间有亲缘关系，互相最为亲近，联系最为密切，<br>当遇到困难或者不测之时，亲人最能提供必要的援助<br>因此，爱护亲人，可以保障自己有良好的社会动员能力<br>并可以廉价地动员这种社会资源满足自己的需要。<br>比如儿子孝顺父亲，父亲辛勤劳作供儿子读大学，<br>儿子考上大学有一份好工作回报父亲，<br>这就是道德提倡的。是有道德的表现。</font></p> <p><font color="#9bbb59">二、何为有道德，何为无道德</font></p> <p><font color="#9bbb59">有道德的行为规范，符合人性；儿子孝顺父母，这符合人性的需求。<br>有道德的资源分配方式，能使资源达到最优分配。<br>我们说，爱国家、爱民族是有道德的，因为国家民族是个人生存之本，<br>如果背叛祖国和人民，必将遭到万众唾骂，<br>不但是因为不符合人性，还因为，这是一种十分不合理的资源分配。<br>国家耗费军队、土地、制度、安定等各种资源为每个子民享用<br>但是这个子民却背弃而去，使国家的资源消耗没得到应有回报<br>甚至成为自己的敌人。因此，这是对资源的严重浪费和破坏，是不道德的。</font></p> <p><font color="#9bbb59">三、道德与法律、礼仪、经济之关系</font></p> <p><font color="#9bbb59">礼仪是道德的表现形式之一，法律是最低限度的道德，道德的实施，<br>应当符合经济学原理。<br>违法的行为，必定是法律制定之时违反道德的行为。<br>违反经济规律的行为，必定是一种不好的道德，是有待改良的道德<br>女子死了丈夫不得再嫁，这在古代是一种有道德的行为<br>但是现在却不是什么有道德的行为，因为不符合人性<br>也不符合经济学规律。女子再嫁，可以使下一代得到更好的抚养和教育<br>可以重新建立一个以家庭为基础的基本经济单位，这显然优于守寡<br>只要是违法的行为，则必定是违反道德的行为<br>有人认为，很多法律规定得不合理，违法不一定违反道德<br>这种看法是错误的。法律既然被如此制定，那么就表明统治阶级认可的最低限度的道德如此<br>嫖娼是一种违法行为，因此，嫖娼行为是不道德的<br>有人认为嫖娼符合人性，符合经济学规律，不违反社会道德，但是它是违法的，因此，它是不道德的。所有违法行为，都是不道德的行为。</font></p> <p><font color="#9bbb59">四、让座是一种不道德的行为</font></p> <p><font color="#9bbb59">1、让座不符合人性。除了身体有某种缺陷比如长痔疮之类的人之外，一般人都是希望在公交车上有座位的，可见坐座位符合人性。基本的人性，一般认为六种，包括安全、吃、住、性、舒适、社交。公交上站着容易被盗，而且汽车有紧急情况时，危险度更高，因此，坐着比之站着，更符合人对于安全的需求。而让座，则是将基本需求无偿让渡给一个陌生人，正相当于丛飞自己孩子不闻不问却到处去助学。</font></p> <p><font color="#9bbb59">2、让座不符合经济学规律。张五常认为让座符合经济学规律，他说，公交车上的座位是一种资源，自己此时将座位让给老弱妇幼，是为了在未来，自己老弱病残之时，别人也会将座位让给自己，因此这是一种长远的投资行为。这种说法近乎搞笑。几乎等于说，你把钱扔在地上，别人就捡到钱了，因此，有朝一日别人也会把钱扔在地上，你就也可以捡钱了。这是可笑的，也是说不通的。你让座这种投资行为，不可能产生什么预期的利益，它根本就是无利可图的。</font></p> <p><font color="#9bbb59">自己无利可图不一定就不道德，你把垃圾扔在垃圾箱里你无利可图。你不能认为这不道德，因为从大面积的社会效果来考察，你仍是有利可图的。你把垃圾仍在垃圾桶而不是路上，对于整个社会来说，你降低了公共服务成本，使公共服务将有机会更多从其他方面回报与你。因此，垃圾扔垃圾箱，符合经济规律，也是有道德的行为。</font></p> <p><font color="#9bbb59">但是让座，对于整个社会的资源分配来说，都是一种浪费。因为让座不符合公平原则，先到着不能先占。也不符合效率原则，最有效率的资源分配方式显然是先到者先得，如果先上车的不能坐座位，后上车的却可以凭借强权或者武力夺权先前的座位，那这就是没有效率的分配，而且也不公正。</font></p> <p><font color="#9bbb59">综上所述，让座是一种不道德的行为。</font></p> <p>文中的弟弟何尝不是被从小培养起来的花儿一样的我们呢？不错，我们都曾有过这样的时期，持过这样的观点。但是你是否愿意跳出那个被精心设计的道德枷锁，回到现实生活中来呢？这里声明下，我绝对不是阴谋论者，我只是个实证主义者，和个人主义者。</p> <p>文中的“让座不符合人性”和“让座不符合经济学规律”我非常认同。对此我有以下补充：</p> <p>1、有人可能认为将座位无偿让给一个陌生人是没什么大不了的。“看他们摇摇晃晃挺不容易的”，“小伙子年轻力壮么，站一下就站一下”，等等。请问，他们摇摇晃晃不同意，我们就容易了么？小伙子就都年轻力壮么？小伙子站一下就那么轻松吗？无疑，说这样的话的人，可能自认为站一下是无所谓的，座位不是他的“基本需求”，无关核心利益，所以无偿让渡给一个陌生人是没什么大不了的。当然，你可以这样认为。但是，你绝对没有权利要求别人也这样认为，不是所有人都对座位无所谓的。即便是所有人都“应该”对座位无所谓，为什么老人们就不应该对座位无所谓了呢？更何况，你能想象某些像我一样的傻逼，可能等了两班车，看没座位不上，往前走了两三站走到始发站去搞个位置，座位就是我此刻苦苦追求的核心利益，你还认为放弃这样辛苦得来的座位是无所谓的吗？</p> <p>2、为了自己以后老了有人给自己让座，说得好像很有道理，很换位思考。这也是现在很多人的论据。正如文中说的，这种做法和不随地丢垃圾是两回事，根本不具有可比性，也没法预期。何况，亲爱的你，当你老的站不住走不了的时候，你觉得你那时还会要挤公交车吗？</p> <p>当然，你绝对有权利去挤公交车，不论什么时候。只是，你得知道后果：幸运的话你可能碰上个位置，或者碰上有人给你让座，不幸的话，你也许只能站着。你需要问下自己有没有能力享受公交服务。如果能，那么，去吧；如果不能，你还是要去（当然你有权利去），说明什么？说明你是傻逼。无论你是不是傻逼，你都不能将“别人会给你让座”当作一个理应发生的事情，当作一个前提。所谓“得之，我幸；不得，我命”。有如此坦然心态，那么，你去吧。如果你是幸运的，请虔诚的感谢上苍或者感谢给你制造这个幸运的人。如果你是不幸的，那就默默承受吧。</p> <p>先到先得，是公交车上很自然的规律，在此规律作用下，那些不适合坐公交车的人就会被淘汰，进而选择更适合他们的交通工具。我赞成、尊重、敬佩那种发自内心的资源的让座行为。但是，当让座被道德卫士绑架后，是什么样的局面呢？那就是有人可以违反最基本的规则了，有人可以指指点点，你不能坐，他不能坐，只有某些人可以坐。这跟我们镇上的某些场合是多么相似！每当某个领域的基本制度被人为破坏以后，这个领域便会出现特权阶级，久而久之，便会形成一种惯性，这个领域的所有人都被绑架了，麻木了，以至于认为是理所应当的。这样，事情会发展到怎样的程度，是无法想象的。</p> <p>回到最简单的层面，让我们遵守最基本的规则，先到先得。偶尔有不适合坐公交车的人跑到公交车了，或许会有人给TA让座，TA回去后可能会反思，我坐公交车自己本来就不方便，还害得别人要给我让座，多不好意思啊，下次没事尽量少坐坐；或者没人给TA让座，让TA尝到了代价，下次也会三思而后行。抑或，这次尝到让座的甜头的不适合坐公交车的人，下次可能还是回去坐公交车，但可能没那么幸运了。如此，在自然规律的作用下，不适合坐公交车的人将始终维持在一个较低的水平，将会和公交车能够提供的座位以及让座数量达到动态平衡，一切很和谐，道德卫士也就失去了赖以生存的土壤了。</p> <p>说到这里，我不禁要问问，是谁在怂恿那些不适合坐公交车的人去坐公交车？别的城市不说吧，就说杭州。70岁以上的老人都可以有老人卡，可以免费坐车。这里且不追究为什么一些看上去不太老的人都有老人卡，姑且认为他们都是70岁以上的。我不知道这是在鼓励什么。老人们既然享受了政策优惠，难道还要打破基本公交规律，来享受“制度优惠”吗？</p> <p>还有一个帖子，说得比较激烈，他在解释什么是道德。</p> <p><font color="#9bbb59">面对公德沦丧的现实，你谈个狗屁的道德，有么？在哪呢？</font></p> <p><font color="#9bbb59">什么是道德你弄懂没有？听胡爷给你普及一下这个小学知识：</font></p> <p><font color="#9bbb59">道德，由公德和私德构成。公德占道德九成以上的比例。什么是公德呢？它不是仅指你在公共汽车上给别人让座。公德，主要指的是政府及其工作人员的行为操守，这东西，是用来建立政府公信力的。这部份内容，又占公德的九层以上。</font></p> <p><font color="#9bbb59">现在我问你：政府及官员的公德在哪里？——这部分沦丧，造成了公德整体的沦丧，也就是说，你一辈子不随地吐痰并给孕妇让了一百万次座位所积累起来的善，都不足以抵消任何一次、仅仅一次“依法”暴力拆迁的罪恶；甚至都不足以抵消任何一次随时发生的城管“依法没收”下层民众一筐感鸭蛋的罪恶。</font></p> <p><font color="#9bbb59">公德的沦丧，直接造成了整个道德的沦丧。——不是么？MD，这边你抢老子的咸鸭蛋，那边却要求老子助人为乐？老子没有半夜出去抢劫就算厚道了，你大爷的。</font></p> <p><font color="#9bbb59">别总装火星来客，好像你多天使似的。呸。</font></p> <p>（<a title="http://www.tianya.cn/publicforum/content/no01/1/415843.shtml" href="http://www.tianya.cn/publicforum/content/no01/1/415843.shtml" target="_blank">http://www.tianya.cn/publicforum/content/no01/1/415843.shtml</a>）</p> <p>我且不论他的解释对还是错，只是想说，我们是多么渺小。穷则独善其身吧。如果你要兼济天下，作道德卫士，那么请不要伤害别人。</p> <p>说说我自己吧，我偶尔也会让个座，那是为了什么呢？不错，为了道德优越感，为了由此带来的身心愉悦。当有道德卫士在旁边提醒或者指责我的时候，我发现让我让座的唯一收获都被他们劫持了，我又有什么理由去让座呢？</p> <p>很简单的道理：我可以选择做高尚的人，我也可以选择做不高尚（但至少无害）的人，但是没有人可以逼我做高尚的人。有人甚至打出了“为了尊重生命，拒绝让座”的标语。我认为这才是我们这个时代所需要的，所要反思的，而不是相反的内容。只有这样，我们的道德体系才能得以纠正，不至于在错误的道路上渐行渐远。</p> <p>我又要引用了（<a title="http://hs.hongdou.gxnews.com.cn/viewthread-5062512.html" href="http://hs.hongdou.gxnews.com.cn/viewthread-5062512.html" target="_blank">http://hs.hongdou.gxnews.com.cn/viewthread-5062512.html</a>）：</p> <p><font color="#9bbb59">“我希望有一天，我们能堂堂正正地上公交车，把乘坐公交车当做一段放松的时间，可以欣赏街景，可以打个盹，可以听音乐……不必时时警惕是否周围有需要主动让座的人，遇到有人请求让座也不必像上课做小动作被老师点名般惶恐不安，想让就让，不想让就不让。而且没必要说明原因，为了个座位就要公布难言之隐，难道非要和《唐伯虎点秋香》般比一比谁比谁惨？</font></p> <p><font color="#9bbb59">让座不是必须的，不是义务，必须自愿，只有这样，受助者才会懂得感谢，让座者才不会觉得自己是被迫的，公交车上的互帮互助才会蔚然成风！”</font><br></p> <p><font color="#9bbb59"></font>&nbsp;</p> <p><font color="#9bbb59">“好多孕妇和老人，明明快生产了，还是老人太老了，身体不好，少几条钱，得空坐的士了。</font></p> <p><font color="#9bbb59">公交车经常急刹的，好危险的，万一碰伤了，谁人付得起责任？</font></p> <p><font color="#9bbb59">我的朋友一般我都建议，除非实在是经济不好，或者条件限制，一般要求大肚婆和老人家或者病人坐部的士去，反正你要不经常坐的，特事特办。明白吗？</font></p> <p><font color="#9bbb59">这就是文明和道德。比如桂林那些地方，几百人上一部车，站都站不了，等下还要让老人和其他病人小孩，我不得罪的说，司机吃毛的，明明超载，还放那些人上来，有时候，我就不坐，等几班或者出多点钱坐的士。摩的。”</font></p> <p>我也希望有一天，我老了，老到走也走不动，我跑去乘一下公交车，没有老人卡，真碰上有人让座，我抚须而笑：“你的好意爷心领了。爷只是来重温挤公交车的感觉的。”</p> <p>==========</p> <p>最后加篇引用，这个LZ道理说得比我明白：<a title="http://forum.enorth.com.cn/postsShowAction.do?threadId=2931744&amp;page=1" href="http://forum.enorth.com.cn/postsShowAction.do?threadId=2931744&amp;page=1" target="_blank">http://forum.enorth.com.cn/postsShowAction.do?threadId=2931744&amp;page=1</a></p><img src ="http://www.cppblog.com/Streamlet/aggbug/141188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2011-03-06 00:12 <a href="http://www.cppblog.com/Streamlet/archive/2011/03/06/141188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2009-2010小结（五）离职始末</title><link>http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Wed, 26 Jan 2011 15:03:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/139381.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html#Feedback</comments><slash:comments>33</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/139381.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/139381.html</trackback:ping><description><![CDATA[<p>目录：</p> <p><a href="http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html">2009-2010小结（一）毕业前夕</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html">2009-2010小结（二）初入职场</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html">2009-2010小结（三）加班考验</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html">2009-2010小结（四）抑郁重重</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html">2009-2010小结（五）离职始末</a></p> <p>导致我产生离职的念头的导火索是8月份与H的一件事。当时某项目的build脚本是我写的，H决定要搬到build server，便让D去配置。D当然要来拷我的脚本，也问过我要怎么用。由于上build server这件事H根本没有知会我，所以我也懒得关心，问什么答什么而已。可是后来要出版本了，却让我去操作build server。build server 账号却不给我开一个，叫我用他的。我以为临时叫我操作下的，第一二次我就用他的，D说怎么操作我就怎么操作。可是后来三番五次叫我操作——这任务的owner变成是我了。于是我先擅自直接向管理员申请了一个账号（邮件有cc给H），然后重新整理了下D的脚本。期间出过几次版本。很多天后的某个上午，我由于没多少事，又去看build脚本，发现了一个问题，先前从build server出来的所有版本都没有数字签名。原因是我没有在install shield里填上数字证书，因为install shield会很傻逼地在工程文件里存一个绝对路径。我用了些脚本命令去签那些文件。这个命令需要证书文件已导入本机。D把这些搬到build server上后，因为证书没有导入到build server，所以签名一直失败。于是我换了个命令参数，改为不需要导入证书就可以签的，然后报告给H，告诉他有问题并且已经修复了，昨天的版本要不要重新出。H根本没有意识到是他擅自让D搬我的脚本而不告诉我最后又让我操作造成的，以为是我手中出的bug，以为得理了，以前所未有的强势，要求我把数字证书填到install shield里去。我说install shield会保存绝对路径，这会让svn上的东西变成 build server only 或者 my machine only 的，另一个人要在本地搞就很麻烦。H说他觉得这不是问题，坚持要改。最后没办法，好，我改！反观H自己也在参与的那个项目，他让D处理的编译脚本（D是很听话一点也不拿主意的），那个目录结构，除了打开vs solution知道可以编译外，之后的installer是怎么出来的，除了H没人知道。甚至D也搞不太清楚，经常问H。</p> <p>这一次让我出离愤怒，前面搞些不给我账号的小动作也就算了，居然要把东西改得更差，这样的追求让我忍无可忍。当晚回去我就找招聘信息。招聘信息之前半年也不是没看过，但确实只是看看而已。那天，我是真正用心在看。过了两天，我给一个W公司的HR信箱发了简历。按下发送的那一刻，突然感到无比的心虚，像是做了亏心事，像是已经背叛了跨国公司……</p> <p>W公司的反应比较慢，面试流程也拖得好长。9月初被通知一面，过两周被通知二面，又过一周被通知HR面。最后算是拿到了口头offer，可是工资不给力，甚至税前比跨国公司还低（税后比跨国公司高一点点）。我很想当着HR面义正言辞的拒掉，可是想想这也是个机会，先琢磨几天吧，再加上HR姐姐居然是我的老乡，不忍心这样对待她。</p> <p>十一回家的时候，刚好有一天在A公司工作的C姐来我家找我爸妈有点事。我妈问她是不是可以推荐下我，她说可以的，我问她是干什么的，她说当HR。我说那还推荐啥，你给我直接过了呗。她说她管的是销售的招聘。后来就随便聊了下，她留下Email，叫我想好了发简历给她，但千万别搞得她逼我跳槽的样子。后来我回去跟她说确实是有跳槽动机的，只是W这边我还要考虑，再加上前一阵子请假有点多了，不好又请，迟几个月吧，或者半年以后。</p> <p>W这边的offer我还真不忍心拒掉，反复考虑了半个月，最后觉得money还是王道，不给钱意味着不认可，还是拒了。</p> <p>这里我要特别感谢一下<a href="http://www.cppblog.com/lingjingqiu/" target="_blank">@空明流转</a>，他主动询问并为我分析简历。让我有史以来第一次意识到了自己的简历是多么的傻逼，也让我知道在现状下怎样把简历写得更牛逼。于是我静下心来改简历，并给他review。虽说还是被他不满意，但也毕竟没有之前那样子菜了，再加上我毕竟水平有限，再写也写不到哪里去。也是他让我意识到了W公司之前给出的薪水是符合我的简历的——2009年应届毕业生的薪资水平。他还分享了一些面试经常问的点，也让我意识到不需要真正去用过也能回答出那些问题。</p> <p>正在我打算潜心修炼半年的时候，十月底C姐给我打了个电话，说她们开发有个职位正要招人，叫我赶紧给她简历。我所说还没准备好，但也不好拒绝，便把简历给了她，是修改过的版本。又想到之前空明说看我博客觉得我还可以的话，把本博客地址也写进了简历。</p> <p>经过一个简单的电话面试之后，11月3号，收到通知4号面试。当天下午快下班的时候，我们跨国公司出了一件让所有人震惊的事，由于iPad造成的上网本市场的消沉，那些OEM厂商的出货量明显下降，导致我们跨国公司的产品销量也低了，加上失去了一个很大的OEM的长期订单，公司做出了一个艰难的决定：裁员。米国总部之前已经裁了4个高管，TP那边从120多人变成100人左右，HZ这边从100人左右变成80左右。一种无形的压抑在同事间传播。当天晚上我都差点咽不下饭，不敢相信这些人明天就会消失了。虽说大多数都不熟，但毕竟是身边的人啊，什么时候轮到熟人呢，什么时候轮到我呢。。。后来了解到，这些人的离职原由还是被写成“主动辞职”，同时给予了N+1补偿，心里也好过了点。</p> <p>第二天去A公司面试。昨天问他们需要半天还是一天，他们说半天，结果我只请了半天家。上午给了一张卷子做，做完了一面，面完午饭，被告知如果顺利，会一直面下去（那还昨天还说半天就够了？）。中午吃完饭，等二面的时候我给C姐打了个电话，说今天在面试，C正好在HZ，不过正在吃饭，说等等过来。还没有等到C，二面面试官就来了。正要进去，C打电话说到了。只好跟面试官说等一下，跑去跟C汇报了下上午的情况。C在公司的样子在跟在我家的样子（作风）挺不一样的，鼓励了几句，又像是出于礼貌的样子，跟面试官打了个招呼。（我不知道这个招呼有没有起什么作用。后来问他，他义正言辞地说没有。最好没有，呵呵。）等三面的时候 H 打了个电话，说TP有人找我，问一些业务问题，并问我什么时候回去。我说可能要迟点。三面是一个职务稍高的人，纯粹聊天，聊聊为什么辞职，原来公司大概做什么的，过来后想做什么等等。期间H又打了个电话问些业务上的问题，并以“现在方便吗？”开头。等我接完电话回去，面试官说他这边没别的问题了。囧。四面是HR面，等我搞完回到跨国公司，都快4点了。前台MM逮住我让我补假。</p> <p>11月5日，CEO M从米国赶来跟我们开大会，目的是解释这次裁员并说明以后前进的方向。HZ讲完后他还要去SH，去TP，一站一站过去。M的演讲水平说实话不咋的，这一点我和H的观点比较一致。从会上，没有让我们看到希望，也没有什么能够真正鼓舞人心的话。期间接到了A公司的电话，说面试已过，接下去要怎么怎么。这时我突然很后悔，前天的裁员怎么没把我裁掉！我要被裁啊！可以申请被裁么？！</p> <p>已近年关，辞职是件不容易的事。为了快乐点，哥决定放弃那些身外之物了——不出意外的话，这要至少工作半年才能从工资差额中弥补回来。至于期权神马的，倒是不在意了，都裁员了，能不能生存还是个问题，暂时不用想着上市的美梦了。正式跟H提离职之前，某天下班后我以个人名义找L1谈了谈。她问我决定了吗，还是有回旋余地。我说大概已经决定了，如果有余地，只在现在，明天以后绝无余地。我跟她说了遭遇的种种不幸。一开始她也有劝解味道的说H的好话，后来听得多了，便默默地听了。关于离职，L1说从朋友角度，觉得去A是个不错的选择；从公司管理者角度，还是希望我能留下来。只是她也没法给出足够的理由。她又说试试申请转岗（之前8、9月份公司内部有一次转岗机会），我说当时申请了，不过后来没声音了（后来H说是他没同意）。她说愿不愿意去她部门做PHP，我不愿意。我说要是前面那个项目一直在她手下，可能也就没这么多事了，至少不是现在。L1最后强调的一点是，叫我想清楚到底是为什么而走，是H，是公司，是你自己，或者是别的什么？这些因素在换了个公司之后会不会再出现？如果还是可能出现，那么你可能还要再思考一下。我很感谢这样清醒的提示。不过这个问题我也想不明白，就当赌一把了。在跨国公司的近两年，L1不仅担当了我的启蒙老师，还在平时工作中知无不言言无不尽，无处不散发着她的理念。很幸运有这样的一个人关心、指导着我，在此再感谢她一下。</p> <p>第二天，我便找H谈话，说明了事由。H表现的一点也不惊讶，叹一口气：“哎，公司的状况我也不满意。”都不用我说，已经为我想好理由了，可以与人解释了。又说：“我想我给你的promotion还是蛮多的。”我说这个我也知道，谢谢你。他想了想：“要不你可以找A提下加薪。”A是HZ这边的前总监现总经理。我说我又不是嫌钱少……最后他又说：“那你说，怎样能留你？”我说，不知道，不过我既然提了，就已经做好准备了。生硬的挽留环节到此结束，接下来便简单讨论了下工作大概怎么交接，就完了。再过一天，我问他有没有跟A和V姐知会过了，他说说过了。当周周五我拿了离职单。</p> <p>后来和V姐有一次谈话，很尴尬地，我竟然在跟她提“我们公司”的时候口误说成了“你们公司”。我真不想这样的。完全不表示我心不再。对不起……</p> <p>交接期有一个新功能还要我做，也是跟网络有关的。我决定趁此机会解决掉之前那个bug，我不能留下这么重大的隐患，那会是以后的骂名。于是发了一封邮件给H，cc给A、TP管此项目H上级，HZ的几个相关主管，以及TP有用到我们升级程序的打过交道的所有人。我说有官方文档说WinInet系列API在Service程序中不被支持，并贴上微软原文，正式建议使用WinHttp，并请求不支持不带SP1的XP。压力之下必有反应，H马上回复了一封，说“We planned to move to WinHttp.”呵呵，不知道什么时候plan了。后面L1跟了一帖问他本来打算什么时候上这一项的，他又不说了。TP的那几个老大表示不支持裸XP是可以接受的，只是需要确保改过之后确实能修复那个bug。改过之后，经过两轮测试，之前出现crash的机器全部正常了，TP老大表示接受。这事儿到这里才算圆满。</p> <p>至于小bug们，伟大的接手者们，这将证实我的存在，也将见证你们的能力，哈哈~！哦不，接手者是H自己，这结果在我的预料之中。</p> <p>&nbsp;</p> <p>关于CppBlog：</p> <p>我是09年9月份来到这里的，当时吸引我在这里注册的直接原因是 <a href="http://www.cppblog.com/vczh/" target="_blank">@vczh</a>。不是因为他做的是什么，是因为当时下载了一份他的代码，里面从最底层到最上层，全部是他自己造的。而自己造出一切设施，完全使用自己的设施来写自己的东西是我长久以来的梦想，只是苦于一直没有榜样。在这里我找到了一个很好的范例和动力。</p> <p>再者，是这里的讨论氛围相当不错，是个质疑都会被达者解惑。这里的达人是真正的达人，有着很多与众不同的思考，窃以为这才是真正的技术。这里与CSDN完全不同。且不说CSDN问问题的人平均水平不怎么样，就是那些号称专家被众星捧月的，也不过是会很多API而已，有自己思考的并不多。就算有，也不会来回我的帖子，我的博文想被专家们看到也难。而在这里，我可以轻易地发在首页，看，本篇文章，以及牢骚满腹的上一篇，我都可以发在首页。这里的讨论没有权威，没有专家，于是显得更纯粹更纯净了。说实话，知道某个人牛逼以后，往往在讨论中就不想与他对立了，这样子不好。我要克服这样的心理。在此要特别感谢 <a href="http://www.cppblog.com/ownwaterloo/" target="_blank">@OwnWaterloo</a>，你的评论让我这儿熠熠生辉（，也感谢其他所有人的评论，只是你们加起来也没他的多，呵呵）。多年以后，要说这里留下了什么，也许不是我的文章，而是大家的评论。只是 <a href="http://www.cppblog.com/ownwaterloo/" target="_blank">@OwnWaterloo</a> 同学，你自己好歹也写点什么呀，这样我们才有更多的机会与你接触，与你碰撞。</p> <p>关于心态：</p> <p>这是我最后要说的。很多人毕业没几年，工作没几年，便老去了。他们不愿意有自己的思考了，不愿意有改进了，不愿意尝试新东西了。而借口往往可能是要成家了，琐事儿多。这也许是事实，但肯定够不成充分理由。这样下去，一到中年，便会失去理想，把希望寄托在下一代身上，于是这一辈子就完了。我想说，请保持一颗年轻的心，保持好奇心，保持求知欲。千万别以为自己“老了”而不能做某些事情了，那只是因为你“懒了颓废了”才不愿意去做。如果有年轻的爸爸妈妈，请你们不要把希望寄托在下一代身上，这说辞看似伟大，实则自私，剥夺了下一辈寻找发展方向的机会。解放孩子们吧。</p> <p>M同学，我一直想让你把博客搬到这边来，就是想让你也年轻起来。你是跨国公司我接触得比较多的人当中还算有想法的人，在公司也许你要掩饰这些想法这没有错，给自己个机会放开讨论吧。你说你不喜欢开发，还说我是你见过的唯一说喜欢编程的程序员，我觉得不像。你现在可能也只能算是会很多API的人，但我觉得你有成为有思想的人的潜质。希望你能看到。</p> <p>关于新的工作：</p> <p>在某年某月某日离开这个岗位之前我不想说太多。我现在挺好，一位正常的主管，一群有那么一点点追求的同事，还有一个不用做过多解释的公司名，这就够了。</p> <p>关于本文：</p> <p>写到现在真是不容易啊，我想说，我做到了！没有太监！谢谢大家！</p><img src ="http://www.cppblog.com/Streamlet/aggbug/139381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2011-01-26 23:03 <a href="http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2009-2010小结（四）抑郁重重</title><link>http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Tue, 25 Jan 2011 14:17:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/139297.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/139297.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/139297.html</trackback:ping><description><![CDATA[<p>目录：</p> <p><a href="http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html">2009-2010小结（一）毕业前夕</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html">2009-2010小结（二）初入职场</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html">2009-2010小结（三）加班考验</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html">2009-2010小结（四）抑郁重重</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html">2009-2010小结（五）离职始末</a></p> <p>在正式转到 H 手下之前，有件小事，不知道这件事有没有对后来起什么影响，但愿是我多虑了。那一次L1出差一周，所带的我这边项目交给H代管。有一次发不知道正式的还是非正式的release notes，H问我，SVN number要不要写的？我理解成他问我先前做法是怎样的，于是顺口回答说：不需要的。H说，你写上吧。我说好。我隐隐突然意识到不对劲，他只是代管一下，怎么会改变一些既定做法？</p> <p>没有预料到之后不久，便有了前文所说的行政上的调整，这个项目也归H了。之后有一次台北的产品经理发需求过来，要添加的一项功能是，在Win7任务栏添加图标。经过一番调研之后我跟他汇报说，这事儿正规途径做不了，微软特意不允许以编程方式添加任务栏图标的；真要做只有hacking方法，blabla。言下之意是想让他拒绝掉这个需求。没想到他居然同意了用hacking手段！这在L1时代是完全不可能发生的，哪怕是一点点没有正规文档给出的方法都不许使用，宁可少点功能。同意归同意，他又不表示立即实施，时不时来问一下你准备如何如何，然后探讨探讨。</p> <p>过一两天，有一次他又跑过来（位置还没换，所以隔得比较远），说，这功能我可不可以让D来做呀？我奇怪了：当然可以啊！（你说了算么）于是他表示要让D来做。那我就扔着，不做，网上东逛逛西看看。又过了一两天，那一天下午他过来让我加班，因为那功能需要做好。我又奇怪了，不说让D来做了么，做没做好，关我毛事啊，怎么又让我加班呢？由于这是第一次他让我加班，我什么也没说。到了晚上，我不管三七二十一，把那个他准备让D做的功能给做了——不是说因此加班么，那我给你搞定不就完事了？不知道他葫芦里卖的什么药。看到SVN提交的邮件以后，他又立马跑过来，带点惊讶地问我，你改了？然后又来看代码，问这问那，最后离开。</p> <p>大家可能猜到了，我的期待彻底破灭，接下来是一段极其抑郁的生活。开始的时候加班是挺少，几乎没有。但是偶尔有的话，不会是那种任务很明确的，但就是让你呆着，好在都不是很晚。</p> <p>关于刚才那个项目，还有另一番进展。不久以后，H突然跑过来跟我说，这个项目也差不多了，剩下的都是些维护工作了，我想把它先转给M（当时是我和M一起维护）和D，再慢慢转给D，把你们两个都空（解脱）出来。我说我手上只有这一件事了，那我干什么？他语焉不详地说了些什么，意思表示得好像是还有别的什么（重要）事情让我干。于是这项目便开始慢慢从我手上溜走。猛然间我感到一阵害怕，我手上都没事了，公司留我做什么？H是不是有什么想法？可是看H平时和和善善的，也很难揣摩他能有什么歹意。</p> <p>接下来给我做的事情，是陆陆续续的好多survey。一开始叫survey一下Windows驱动。我问，公司有这样的项目么？他说有，并举了例子。好，我去survey。过了些天，我看他给的那个例子就是个简单的WinIO驱动，告诉我通讯协议我大概也能抄一个吧。于是我跟他汇报，那个例子基本上看得懂了，接下来要看什么/干什么？他像之前每次跟他汇报时一样，为难地抬起头，使劲想了想，然后叫我去看下文件系统过滤驱动。</p> <p>好，看就看，找些电子书，挑一些可看性比较强的，打印了二三十页下来，慢慢磨。又过了些日子，觉得资料上面说的我大致能理解了，但是由于框架实在是太庞大了，不想去实验，就跑去问，这方面公司到底有什么要做的么？H说他觉得这些技术蛮有用的，以后肯定会用到的，云云。嗯？敢情是想拿我当技术储备？我就是survey帝啊！</p> <p>再后来，让我去survey一下某品牌机自带的一键还原软件。我特意问，我们要做这个的？他说要的。于是我就拿着那个本子折腾来折腾去，耗了个把月吧。到最后实在想不出可以干什么，于是天天格它硬盘，拿着自己写的demo程序还原之。期间H偶尔过来看看，大多数时间不太理。</p> <p>又想到一件事。某个加班的晚上，忘了是为了调试什么，H让我过去看他调。可能由于之前某一次他看到我开着OllyDgb玩（我只是会一些很简单的操作，知道怎么断住MessageBox罢了），他自言自语地嘀咕“那个叫什么名字来着”，然后打开了OllyDbg。他又问我是怎么操作的。我说我是截哪个函数，然后怎么怎么瞎看的。于是看他操作。只见他按键飞快，F8长按，整个屏幕滚下去，过会儿又作不对劲状，重新开始，又是飞快状，不知道他要干什么，于是我忍不住开口了，跟他说，我当时是先这样，然后看什么什么，大概可以得出什么结论。然后他有点儿照做的意思，可是过会儿又是操作飞快，整个屏幕在闪，看不出什么思路。我琢磨着他是不是没怎么用过这玩意儿啊，不会用就别拿出来显啊，拿你拿手的出来嘛。于是我又多话了。后来我也觉得我“提示”得多了，想不说，可是又觉得他是期待我说的样子；想说，又觉得他没叫我插嘴的样子；想走，又觉得他没叫我走的样子。十分尴尬。只好有一搭没一搭地说着。后来H终于怒了：你走！我一愣，怀疑是不是没听清楚，确定好像是真的，于是飞也似地跑了。半个小时以后，H拿了一些巧克力来分给我们，算是了结。之后我再也不敢在他面前提/玩OllyDbg，要玩就玩WinDbg，因为WinDbg我基本上完全不会用。</p> <p>转眼到了年关，H给我的考核还是不错的。据模糊了解，不管是奖金还是涨幅，似乎都在平均水平之上。这里还要感谢下财务的W姐，给双薪的时候把我的实习期也算进去了，多少有点点心理安慰。</p> <p>过年回来后仍是无所事事，3月初H到米国总部去了一趟，更加没事情做。M和D一直做着之前哪个项目的维护工作。H回来后，带来了米国老大们的一些新主意，M和H一个老部下L3以及H自己被H安排来做这件事。大约三月底左右吧，H手上有多出一个项目，是手上将个新项目的升级更新程序。他自己开始搭最初框架，然后扔一点活给我和另一个同事做。没过多久，H又表示要将它丢给我。他说，我们要重视一些设计工作。于是他拿StarUML画了些图，跟我说这个调了那个，那个调了谁。对着代码一看，果然不错，完全事实描述。可是你那些图仅仅表达了你是怎么做的，这怎么够？一点也没看出来为什么要这样设计。当时我第一次看到什么时序图啊，还有点抵制，这点我要做自我批评。虽然图不会看，可是代码还是会看的。不夸张的说，这整个代码一团糟，各种糟糕。一堆单件（一堆全局变量）；业务代码中会充斥着一大段API调用序列（底层API没有封装到一两句话表达业务的程度）；还有那个 WinInet 的返回结果里，case 到 timeout 之类的，老是来个 OnConnectFail()，搞得像个框架，可是正确的情况又直接刷刷刷写下来了，不见什么OnConnectSucceed()，到底哪部分框架那部分是用框架？仅仅一处小小的多线程部分，搞得到处锁。总而言之，一个模块，互相纠缠着的几个类，一层结构。为了搞个运行入口，居然建了个MFC SDI项目，在文件菜单建了一项来进入整个模块。</p> <p>大家可能怀疑我说得太夸张了，这一点我不能举出什么证据。当然，也许牛逼的人喜欢看纠结的代码，这是水平。像我这样的菜鸟只喜欢看简单的代码，除非有必要才增加模块和层次，这才变得复杂一点点。我从那时起开始怀疑技术到底是什么，是不是多会用几个API就是技术达人？</p> <p>好了言归正传，这个项目脱离demo，要变得正式一点，H让我把他整成一个 Windows Service。好，我整，去掉哪个MFC的框，重新建了个 Service 的框架，然后入口放进去。我以为很轻松的一件事。结果，编译不过，一看，有写代码用了MFC的类，CFile啦，CFindFile啦，，，好在总量不是很恐怖。我去跟H说，代码里有一些用到MFC的，Windows Service有没有界面，加上涉及到的一些功能用MFC也不见得多方便，都改为Win32 API吧。H不置可否，大意上说了句，程序里用MFC我觉得蛮常见的，大多数都用的吧。我反驳了句，那也看场合啊，我们现在完全没必要引入MFC这个大依赖么。H没有再说什么。我回头将它们全部改掉，用CreateFile，FindFirstFile……。这边刚改完，H又提交了一部分代码，又是CFindFile，像是刚才什么都没跟他说过似的。日！继续改！</p> <p>接下来两天，一直在考虑这个东西丢给我我能维护多久。思来想去觉得会坚持不住，我非常不愿意一个系统从一开始就是“老系统”。于是给H发了封邮件，说这些代码虽然“有设计”，可是结构化不是很到位，然后给了一张通俗的框图，表示这块干什么那块干什么，这块只知道什么只需要处理什么，那块又如何，而不用大家谁都知道谁。H过来表示“是啊”的感慨，然后又说了一些不着边际的话（也许是着边际的，只不过我没记住），最后什么决定也没做出。接下去几天，我时不时追问他，可不可以动手改，他总是用一些话来搪塞，大概是些——“我觉得…总体是好的，只是，……”，“我觉得OK啊，不过明天的版本先出了”。我在问的同时，也在积极准备着，终于，在某个不得不改的时刻，我把它们全提交上去了。原来的代码仍旧放在那个目录不动，我不敢特意去做删这个动作，太敏感。过了一会儿，大概H看到邮件了，又跑过来问：改了？会不会有什么问题？云云。</p> <p>——这是我在H手下干的最傻逼的事情，没有之一。这件事我跟一些人提过，今天把它完整的写出来，也期待大家批评。我尽我的努力使我的描述尽可能客观，但主观性仍然是不可避免的。关于那个代码是不是真有那么糟糕，是最容易带有主观性的，请大家自行判断吧，我只能说很糟糕。做这件事情之前曾请教过M到底做不做好，M说如果为了项目好就应该做。回想起这一番，我有时候心理阴暗面来了，也会怀疑M那时候是不是阴我。不过M似乎没有阴我的动机，可能在L1手下我比他稍微春风得意一些，但在H手下他明显比我滋润，没必要啊。（M如果看到请别介意哈。）</p> <p>之后挺明显的感到H不愿意管这个项目了，也有点选择性不了解该项目。经常有什么新需求就答应下来，也不考虑现有设计能不能容纳，我过去问他，他又装作不知道的样子，只说这怎样怎样就可以了，是可以做的。我又问那么这个改过之后接下来那些部分可能要改的可能不会改的，我好做应对，他又不知道了。不知道可能是选择性的，但是对于需求的控制他这是发自内心的。因为在他自己也参与的那个项目里，也是不停地改，三天两头改，最后H跟PM闹起来，干脆不理PM了。后来只好请QA MM J姐帮忙中转。所以现在我想，他原来那个一层式结构确实是适合这样折腾的。反观L1带的东西，几乎所有未来一两个月内的新需求，都是不会伤害到现有基本框架的，很多都是落入我们的预测的，往往变成了改个配置项这样简单的事情。曾经沧海难为水啊。当然H也会设配置项，可是设置的时候没有逻辑性，某个选项代表什么没法用一句话概括出来，大多数只能总结为，某个选项打开表示PM某个需求所要求的功能开启。</p> <p>关于H，我想我可以可以写好多好多。</p> <p>H曾经看到我写 CString.Relpace(“{PlaceHolder}”,“XXX”)，问，<strong>为什么不</strong>用 sprintf 呢？我无言以对。<br>H看到我开着IE，会问，你<strong>为什么不</strong>用Firefox？我无言以对。<br>H看到我开着IE，会问，你<strong>为什么不</strong>用Chrome？我无言以对。<br>H看到我开着IE，叹了口气，你就是个微软迷……我，我作委屈状。<br>H看到我在Word里打公式，会问你<strong>为什么不</strong>用Mathtype？我无言以对。<br>H看到我写注册表，会问，你<strong>为什么不</strong>写ini文件？我不知道我写ini了他会不会问我为什么不写注册表。<br>……<br>从此讨厌“为什么不”的问法。</p> <p>自从我改了H的代码之后，H就经常的说我的程序都是同步的，没法即时退出。限于水平问题，当时没一下子理解。好在是个服务程序，业务上也需要持续不断跑，只有关机或者关闭服务的时候停止就可以了。这时候我安全退出和系统来强制结束的表面效果没多少差异。等我明白这个问题之后，在9月份的第二版本中，我把这个问题全部改掉了，不留一丝同步的影子，H之后便没说什么了。只是第二版的上线，由于对TP提供API等等，需要H对外公布。而H处于对此不管事状态，加上别的项目也比较紧，一直没上，直到我离职，也只是内部release，没有出正式版。</p> <p>自从改了H的代码之后，H就不太让我碰C++的东西了，有一次H曾让我去survey FileFox 插件。当时看了两天，写了个 Hello word 级别的插件，然后报告survey结束，有什么正式需求。结果让继续survey，并被问有没有做这个方向的兴趣，有的话可以和Linux端的人一起做那方面的项目。我或委婉或直接地表示不要写js，不要为mozilla的野心服务，不看好FireFox平台，我要继续玩C++。过了些日子，被要求二选一，FireFox插件，或者Windows下的可能涉及D3D的另一个项目。我断然选择了后者。这个项目一开始也是在H手上的，可是不知为什么后来突然被L2拿去了。L2派手下T来做，因为我那时已经为此survey了一些时候了，便让T和我一起做。这时候才感到L2的好啊。除了加班，对于L2我真的挑剔不出什么了——据说L2现在也会安排周任务了。我想多花些时间在L2的项目上，H又说他这边的更新程序任务重，那边的优先级低，有一次主动为我向那个项目告假2周，导致后来我进度上落后于T，其实这边也就是几个顽固bug而已。</p> <p>其中一个bug是crash，各种表现。最后查出是crash在InternetOpenUrl的函数里。摸索了一段时间后，发现使用过 SH 系列 API 后，在某些机器上就会 100% crash，为此当时还在这里发了一篇文章。把 SH 去掉之后，现象平息了一阵子。后来，随着测试的深入，又报了。这下可没办法了。H自己也没办法。再很后来很后来，我找到了一篇微软的文章，说 WinInet 不支持在 Service 里使用，并建议转用 WinHttp。至于为什么用WinInet，这里又有一段故事。很早的时候，在我刚进去不久的时候，当时那个项目也有网络交互，当时年少无知的我找了一段例子，是socket的。（那个作者还写了这么一句注释：//If it works, it is written by masterz, otherwise I don't know who write it.）我用它搞了个支持 Http Get 和 Http Post 的小玩意儿。后来项目转到H手上的时候，H看了说，你<strong>为什么不</strong>用WinInet呢？你的不能支持跳转，不能支持https，并给了一堆WinInet函数名。（可是他为什么不指导我完善它呢？）我说我当初并不知道WinInet的存在，并问他改吗。他说不用改了。所以后来他把升级更新程序的网络下载模块丢给我的时候，我就用WinInet了。好，回到现在，我发了封邮件给H，说WinInet在Service中不被支持，这可能是crash的原因，建议使用WinHttp，并告知WinHttp在没有打SP1的XP里不支持。他回复说他觉得“OK”，但是他认为需要支持不带SP1的XP。这相当于被变相打回了。但是他有没有因此宣布此bug可以不修复，之后的日日夜夜，J总是因为这个bug的各种表现来找我。</p> <p>H自己手上那个项目据说忙得很，他和M、L3甚至忙到天天加班，却从不要我加班，也不让我参与。有时候碰上几个界面的，M说ATL写界面不方便，H就叫我写个网页，M在外面套个IE控件，这才零星有我一点点事。有一次我跟V姐抱怨了几句，说在H手下被边缘化了，什么都没我的事。V说怎么会啊，H每次说起你都说你挺不错的，他很喜欢你的。（是吗？）也不知道V有没有帮忙传达过什么，第二天H就让我加班，找的理由是我写的界面跟他们也是有关系的，要发版本，要确保没问题。我就做着网上随便逛逛，最后跟他们一起回去。之后每次加班H都要叫上我了，大部分时间事情都不是很多，我就当放松下，大家一起玩玩，再蹭顿晚饭了。其实到了这时，由于长期无事，倒是有点期待加班了，之前对于加班的憎恨也不知不觉地化解了。我细细地观察了H的加班，其实跟L2的加班是一模一样的，都是没有明确的下班目标，都是由于临近发版本，都是由于更早的时候没有做好任务安排以至于到了快发版本了才发现时间不够。</p> <p>我手上那个升级程序的项目，H几乎没怎么管过，搞得我每天都不知道做什么。我只知道大约几个月后要发布。至于周任务、月任务，都是没有的。有一次H可能真的被他那边的事情纠缠地搞不清楚了，终于召集他手下所有人，把接下去几天的任务说了下，并且也说了这件事谁做那件事谁做。他是画在白板上的，我们都没抄下来，结束的时候拿手机拍了下。我满以为他会发邮件再通知一遍的，哪知道神马也没有。我不知道他开那个会干嘛来着，也许不是为了明确我们的任务，只是为了用我们所有人的力量为他整理思路而已。</p> <p>长期的空闲状态让我压抑，并且效率明显降低。同样一件事，现在的我比两年前的我肯定完成得慢很多。我开始担心自己的前途问题。我现在写的所有关于H的，都是在空闲的时候反反复复回忆过的、思考过的，我很惊讶我尽然花了这么多精力去思考那么多事，也惊讶尽然有那么多事让我久久不能忘怀。我总结了H的一些特点：</p> <ol> <li>不看邮件。往往发给他的邮件了，过了大半天跑过来问，告诉他邮件里写了，回答我没看。  <li>不看文档。每次看他打开WORD文档，就滚得老快，像很熟悉似的，但找不着要找的内容。  <li>喜欢在谈业务的时候说技术名词。（例：本来说升级程序连接上服务器了应该查询什么信息，会被描述成：我们会发一个TCP包，……）  <li>喜欢在谈上层业务的时候时时刻刻问底层实现。（例：跟他说“连上服务器了，然后怎么怎么”，会被打断问：是一次TCP连接吗？）  <li>喜欢在谈上层技术的时候问下层实现。（例：明明我们用的全是HTTP层次的API，非得每次说TCP包）  <li>以为只有技术问题。（例：明明某些bug只是我们这样定义，QA认为应该那样定义，只是定义问题，争论不下去找他，他会先问我，“你这样做有什么困难？”）  <li>没有逻辑。（例：有一次好像企图让某应用程序包含升级程序，想让被包含着的升级程序又包含该应用程序。）  <li>没有业务概念。跟他讲话没法跟他概括出功能名词，提“某某功能”。如果要提某某功能，只能把这功能的全部API调用序列罗列一遍，他才能精确明白我在说什么。同样，他会用某些技术词汇来描述某某功能，我也听不懂。甚至不知道什么意思自造词，如：“我记得XP的是支持System Level的MUI的，Vista开始才支持Application Level的MUI的。”从来没有明白过这两个Level是什么意思，虽然我知道MUI在XP和Vista里有区别。  <li>没有设计理念，虽然会画UML，忠实表达他代码是怎么写的。  <li>不会拒绝需求，也不会预测需求以利于提前设计。  <li>不主动向上请示。遇到我不好决定的事情，去问他，他也不好决定，也不问上级，也不做个有预测性的决定，任由我不知所措。  <li>开会经常闲扯，每次被他打断好多次，不局限于部门内的会议里。让人不能专心。可能他认为这是制造轻松氛围的方式。  <li>怕给别的部门造成任务。所以不管某些内容应不应该放在我们这边做，经常认为需要自己做，以为让别人做是态度不端正，“事情总是要做的”。那个升级程序的第二版，之所以要设计API，就是为了不要包含各种应用程序的复杂需求，但TP同事说下载失败了，他就来问我，你有没有做重试啊。我说当然没有啊，我只是给出了一种机制让他知道是成功还是失败了，要不要重试、用怎样的重试策略，明显应该他来么。见我坚决，他又装着很抱歉的样子，跟TP同事说我们重试没有做，你们那边方不方便做一下……  <li>怕别人给自己造成任务。Test case 评审的时候，见J列了好几屏的case，他就抱怨说，你们搞得也太细了吧，这么多条，能测完么？那一次QA老大A义正言辞的说：这些需求，这些功能，本来需要这么多case来保证；这些都是我们分内的事，不管多还是少，只要是我们该做的，我们就要做。听得我暗暗感动了一番，自此以后总是在心里默默地钦佩他。  <li>不给别人发言机会。就算自己业务不熟，也抢别人话，结果传达的总是有偏差。听他沟通以及与他沟通都是很辛苦的，不知道在谈业务还是在谈技术，反正一会儿这个一会儿那个，很具有跳跃性。有一次他让某同学做主题演讲，分享前阶段survey的内容，结果人家放了PPT开讲，他在下面的补充占了80%的时间，上面那个倒像是主持人了。  <li>最重要的一点，不花心思好好安排别人的任务，总是专心写代码，与民争活。</li></ol> <p>刚到他手下的时候，我总觉得不对劲，我前前后后跟他谈过好多次（当然后来死心了不找他谈话了）。有一次他说“我可能对于自己作为RD还是作为Leader，身份上没有区分清楚”，仅这一点，既然自知，何必占这个位置呢？不是每个人都能管人的，这要影响到别人的职业生涯，还要影响到公司的人员流失问题，后果非常严重啊。他的组，从09年中手下十多号人，到现在的三四个人。有点点想法的人，要么去别的公司了，要么去别的部门了。我想他没有好好思考过。倒是给离开的人编好了冠冕堂皇的理由，以便与人解释。</p> <p>用一个已经离职的同事的话说，XX项目，从需求、技术、搭框架、写代码，H都能一个人搞定，要我们干什么。<br>另一个同事说：H是个全才，但他不会做Leader。</p> <p>我想，H要是一个和我平级的同事，除了对他没有设计理念这一点不看好以外，我应该也会蛮崇敬他的吧，毕竟人家会用这么多API呢。</p> <p>H还说，对于项目，我必须亲手搭个框架写写代码，才能知道水有多深。可是，你要亲手体验水有多深又是何必呢，让手下人告诉你水有多深不也一样么？</p> <p>今年六月份，公司有一次计划外的加薪，H对我还是很给力的；年中的奖金也不少。另有一次我生病了，H叫了另一个有车的同事一起把我送回住处，还帮烧了开水，嘘寒问暖一番后才离开。还有当初是H让我第一次通过了一面，从而拿到人生第一个offer……可以说，除了具体工作上，H对我真的还是非常不错的，他也曾几次和J诉说：我觉得我对他还是不错的啊。也许我不该对他有那么多看法。可是，每次有不同意见，你为什么老是以“我觉得你对我有意见”强制结束讨论并且不问具体“意见”呢？</p> <p>我记得CppBlog里有一位貌似从事管理的朋友发了一些文章，说要如何如何管理，并要如何永不重用某些手下。我一对照，某些情节和H的做法非常相似，于是在评论里比较激烈的回复了他，希望他的手下好运。</p> <p>本篇就写了两个晚上了，就到这里吧，字里行间可能充满了怨怼，如果影响您心情了，小弟这厢给您赔礼了。下一篇将谈谈离职始末。关于我对H的种种，我知道也是充满了偏见的，如果有做得/想得不对的，希望大家多些批评，多多纠正。</p> <p>----------华丽的分割线，如果以后又想起H其人其事忍不住想添加，就加在后面----------</p> <p>2009年3月，公司要搞QT培训，H部门，也就是我所在的部门出人的。但是H压根儿没跟我说有这回事。后来别的组的人都在各自老大的通知下知道了，我是本组的却不知道。H从米国回来后问我有没有去听啊，我说没有。我不知道他为什么认为我已经知道了这个消息了。搞得好像我没兴趣似的。不过这培训我确实可能没兴趣，演讲者一般只是介绍API使用，鲜有自己的思考。关键在于H通知不到位。</p><img src ="http://www.cppblog.com/Streamlet/aggbug/139297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2011-01-25 22:17 <a href="http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2009-2010小结（三）加班考验</title><link>http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Thu, 20 Jan 2011 15:36:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/138985.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/138985.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/138985.html</trackback:ping><description><![CDATA[<p>目录：</p> <p><a href="http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html">2009-2010小结（一）毕业前夕</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html">2009-2010小结（二）初入职场</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html">2009-2010小结（三）加班考验</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html">2009-2010小结（四）抑郁重重</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html">2009-2010小结（五）离职始末</a></p> <p>紧接着到了2009年4月份。公司空降了一位主管（称L2吧）。说是空降，其实也不完全是。据史料记载，在跨国公司存在以前，他与现在公司的一些中高层曾经是同事，后来历史推演时，他被留在了老公司。干了几年休息了一年以后，现在他又到这边来了。可是对于我来说，与空降无异。我心里很是紧张，刚刚才熟悉一个主管，又要熟悉另一个陌生的人。</p> <p>L2开始慢慢接手原来L1兼管着的Windows端的活。一两周的相处之后，发现L2的做事风格和L1完全不同。当时对我来说最不适应的是时间管理。L2总是在下午5点以后来跟我说要做什么事什么事。有时候会问晚上有事情么，我确实没事情的，老实回答了，他会说那我们来看一下某某问题。而整个白天，有时候几乎无所事事。L2自己是个精力相当旺盛的人，也很喜欢加班，几乎天天加班。有时候到了晚上9点左右，他会让我们“早点回去”，而自己可能还呆着。尽管我很佩服他的精力，可是每当在晚上听到“早点回去”的话，一种无形的怒火便油然而生。</p> <p>我彻底地感到耻辱。我想我一个堂堂正规大学毕业生，虽说不上怎么厉害，但还是自认为可以好好完成任务的。你怎么可以让我加班？还三天两头加？还有事没事的加？对了那时我还有我的毕设呢，根本没法开动。我陷入了沮丧之中。为此我找L1诉过一回苦，说到伤心处，眼里竟然也会渗出一些晶莹的东西。</p> <p>毕设不紧不慢地进行着。导师让我们每两三周碰头一次。之前交给我的数据库设计等工作我在一开始就呈上去了，经过讨论修改之后差不多定下来了。导师告知大家做的过程中如果有数据库修改要跟我讨论过才可以改，并且让我如果有问题可以召集大家开小会——这让我备受压力。我极力推荐使用 SVN 管理和共享所有资料，被采纳了。于是我平时也经常看看他们做了什么。除了个别比较认真的在不断地尝试、不断地更新、不断地改进外，其他人基本上没怎么动。我也稍就微动动，保持着比最勤快的人不勤快，比其他人都勤快的位置。但是大家平均下来，每人一个页面还不到。逻辑层代码那一块几乎没有别人在动。每次我们碰头的时候导师总是一种失望的眼神看着我们。到了5月底，只剩最后一周了，我终于不得不请假回来了。那时几乎是公司最忙的时候。</p> <p>那一周也是我们最忙的时候。所有人都在做毕设——当然白天也还是操作的多。我们组有一两个因为之前特别认真，也懂了不少；还有两个也是有些编程基础；当然也还有人完全不会的，其中有一个人自始至终啥事也没干。时下大家做的都还是一些临散的页面，能直接用的只有两三张。于是回来的那个晚上我让大家先暂停一天，然后安排第二天晚上再碰一次面。然后花了一夜把站点后台的各个功能入口，以及有关用户使用方式的玩意儿先整了出来，把现在已有的页面放到该放的位置。第二天再碰头讨论具体的整个使用流程，以及各种疑问，把全局性的东西让大家都达成共识。接下来三四天大多数人也都比之前认真地做了自己的部分，到最后一天还有人有没有完成的，就只能剥夺其开发权利让其他人顶上了，也算马马虎虎凑成一整个玩意儿了。当然出自每个人之手的界面看上去还是不能完全统一。介于我负责的那一块自己也没太快搞定，想想算了，就这样吧。最后答辩的时候，我们的会议管理系统看上去其实还是像模像样的。结果当然是皆大欢喜，不管大家实质上做没做过啥。只是导师不无遗憾的说，应该可以做得更好的。我知道我让他失望了。</p> <p>毕设搞定之后，我又回到了公司。想不到赶上了一个更激烈的时期，跨国公司有史以来加班最严重的一阵子。6月12号左右的三天，公司搬家，本来是放假的，因为赶版本，我们十几号人却被要求在某公寓里集体加班。那三天基本上是每晚上到2点以后。我比较撑不住，或者可能“假装”撑不住，困了就直接到卧室一头砸下去，等第二天被叫醒。要是凌晨2点以前下班了，那就第二天早上睡到11点多去，直接拿盒饭。反正加班么，调休少几个小时就少几个小时。哥真的累了。L2怎么看我已经不重要了。</p> <p>接下来回学校的机会不多了。每次回去都像客人一样，心里真不是滋味。此时我才发觉，这么早去实习是多么的傻逼。同学们都在升华感情，我却浪费了人生唯一的大学毕业时期。当初请假的时候，L1和V都问过我，毕设一周之后要不要继续请假几天，我都很敬业地说不用了。我这一生已经没办法找回这样的时光了，只求后人不要犯我同样的错误，如果他确实认为这是个错误的话。直到现在，但凡知道有应届生要提前出来实习，只要搭得上话的，我都劝之好好考虑。</p> <p>毕业证书搞定之后，我终于可以拿100%的工资了。前面一些月，我用一些血汗钱买了新的主板，CPU，显卡，凑成了一台新主机的主要部分。终于用上了独显，真是享受，虽然月光的季节总是让我时不时地感慨些许。7月份确实没之前那么疯狂了，但是L2还是三天两头下午临下班布置任务。这让我很烦恼，偶尔也问V：什么条件下可以换部门啊？答曰，入职满一年。我接着说，那我不是起码要加班加一年了？因为V之前跟我说公司不推崇加班的，这时候V会面露小尴尬，也跟我说过不好意思之类的。实际状况也是不怎么加班的——这在三月份确实是，在L1的部门现在也是，在其他部门基本上也是是的多。</p> <p>大约9月份的时候，一进去就开始做、5月中旬彻底完成的那个小玩意儿又要出新版本了，还是L1带。作为那个项目的始作俑者，我又被划归了L1。这让我相当庆幸。可是好景不长，由于一些组织架构上的变动，H要来带那个项目，L1又纯粹带自己的服务端部门了。H是我的一面面试官，面试感觉相当好。后来也有若干次接触，感觉他是所学甚广，无所不通。这自然让同样所知甚杂的我有点佩服。在L2的带领和影响下全员加班的日子里，H也是时有公开抱怨的——嗯，价值观还算相近。加上H对我的知遇之恩吧，我很是欣然地接受了这个安排——虽然我基本上没有拒绝的选择。</p> <p>终于摆脱L2了，终于不用TMD加班了！哦耶~！我怀着梦幻的期待，是无法按捺的情怀……</p> <p>[未完待续]</p><img src ="http://www.cppblog.com/Streamlet/aggbug/138985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2011-01-20 23:36 <a href="http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2009-2010小结（二）初入职场</title><link>http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Mon, 17 Jan 2011 15:29:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/138699.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/138699.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/138699.html</trackback:ping><description><![CDATA[<p>目录：</p> <p><a href="http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html">2009-2010小结（一）毕业前夕</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html">2009-2010小结（二）初入职场</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html">2009-2010小结（三）加班考验</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html">2009-2010小结（四）抑郁重重</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html">2009-2010小结（五）离职始末</a></p> <p>2009年3月2日，是我上班的第一天。不过这时候还不叫正式工作，称为实习。公司方面说因为毕业证没拿到无法签订劳动合同。我要承受的代价就是50%工资。不过对于当时还没有尝过亲手赚钱的滋味的我来说，50%也已经相当丰厚了，至少这个学期吃饭问题可以自己解决了。</p> <p>上班第一天，考研成绩出来了，我跟预料的一样，没考上：</p> <p><a href="http://www.cppblog.com/images/cppblog_com/Streamlet/Windows-Live-Writer/2009-2010_13C13/B1E9144DD8637DFA_163_0_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="B1E9144DD8637DFA_163_0" border="0" alt="B1E9144DD8637DFA_163_0" src="http://www.cppblog.com/images/cppblog_com/Streamlet/Windows-Live-Writer/2009-2010_13C13/B1E9144DD8637DFA_163_0_thumb.jpg" width="604" height="331"></a></p> <p>唯一可以得瑟的是，政治果然靠觉悟啊，我比参加了好些时日培训班的同学们也少不了几分；其余的不堪入目，就不多说了，丢脸，还复习过三天呢，没复习过还可以说说。</p> <p>我们公司虽小，但两岸三地有好些分公司呢，再加上米国总部的 CxO 们，活生生一个跨国公司。在跨国公司的好处非常明显，常用书面英语不熟练都不可能。在真实的 Email 里头彪英文的感觉有时候还是蛮爽的。比较有意思的是，跟台北的同事们在MSN交流的时候，他们有时候说英文，我就纳闷了，你丫不是会说中文吗？于是回个中文，还是简体的。人家继续英文，我就继续淡定的国语伺候。当然，为了寻欢作乐，经常情况也会反过来。感觉米国的同事以及台北的同事用英文的时候，基本上不太考虑太多小语法的，看多了以后，自己写邮件的时候也就大胆了，差不多意思了就敢乱发了，还CC一大票人。现在一个多月没写了，有时候突然想写句英文，明显憋不出来了。</p> <p>跨国公司的HR姐姐很亲切，暂时称为V姐吧。特别是打电话的时候，从电话那头听她的声音真是一种享受。不过在电话这头听她给别人打电话，就不是那么唯美了，稍微显得嗲了点。难道经过电路传输，语音会得到稀释吗？从2008年末开始接触，一直到现在，V姐一直给人无微不至的感觉。都说HR不可信，可是可信不可信又有什么重要呢？我有一个观点，特别想跟怀疑论者、阴谋论者分享，不管别人自认为是否对你好，只要那个人所做的事在你看来都对你好的，或者至少不坏，那么TA就是对你好的，即便人家的本意是想对你使坏。何谓好？何为坏？都是主观感受而已，我们生活在一个充满着主观意味的世界里，我们需要凭我们的感知能力去观察世界。于是，存在即被感知，是直观的和易于理解的，所谓的客观，才是人们杜撰出来的概念。从这个意义上来说，如果我们相信世界是美好的，世界就会比预期的美好得多。所以我认为我向来的不以最坏的恶意来揣摩他人的理念是行得通的。呃，扯远了。（批判我可以，不希望看到有人以“孩子，你还年轻”的态度来批判。）</p> <p>我在跨国公司的第一任主管是L1姐，一个年轻的妈妈，在她身上洋溢着母爱。有时候晚上加班，听她给没几岁的孩子解释不能回去的理由，以及那种认真劲儿、那种语气，就能感知到她是沉浸在怎样的幸福中。不过L1在工作上的态度还是蛮严肃认真的。在上班的第二个星期，我就参与了实际项目，而且是个新小项目。这种机会蛮难得的。在L1的指导和要求下，我觉得我那时起才开始有了一点点设计理念。为了得到她的肯定，我会尽量将代码组织得漂亮点。之后不久我又被安排同时参与另一个项目的维护工作。看过现有代码，才感觉到大家写的代码原来是这样的糟糕。不太客气地说，80%以上的代码是没有经过好好组织的，90%以上的代码的书写是不工整的，以至于当时在手的那个新项目看上去爽多了。大概那时侯起，我觉察到老项目与新项目的截然不同的面貌，心里带上了一些疑问：是否老项目一开始也是很漂亮的呢？是否漂亮的新项目过些时日也会变得面目不堪呢？</p> <p>L1一直带给我的很大帮助是，当我面对复杂的逻辑不知道如何下手时，她总是能够迅速给出一套简单、明了的方案，简单到当时的我也能立刻理解。从她的或详或简的解释中，能得到很多关于软件设计上的种种“规则”，这些规则，我所见过的好些多年开发者也不一定能够总结出来，不一定能够很好地遵守，甚至不一定觉察到。</p> <p>有件不幸的事，L1安排我做项目的安装程序，也就是最后一道工序。当时我求知欲很强，多做点事最好，欣然应允。到后来才发现，发布版本的日子通常会加班，加班的时候我是最没事做的，经常是打酱油到10点，然后干几分钟活，最后帮忙测试。最夸张的一次是，被告知要修一个很紧要的bug，周六晚上赶去通宵加班，修bug本身不是我的事情，我是去等他们修好后打个包而已。所以一开始是没事干的，最多帮忙调试，看看什么问题。后来困了，就趴在桌子上睡觉，直到被叫起，已经第二天5、6点了，被告知修好了，然后打包，测试走人。虽然我大半个晚上在睡觉，人家在干活，可是通宵的味道并不好受。我也不喜欢没事做的加班。</p> <p>说起加班，不得不再说几句。到目前为止，我都认为L1是跨国公司里对项目进度控制的最好的一个主管，时间观念很强。在我忘记或者即将忘记时间的时候，总是能得到善意提醒。所以她带的项目极少加班，需求也被整理的有条不紊，每周都知道要干什么，每天都直到要干什么，即使加班，也知道因何事而加，知道做完什么以后就能离开。</p> <p>虽然属于实习，但是3月份是我这份工作中过的最开心的一段日子，也是成长蛮快的一段日子。在这里要衷心的谢谢L1在那段时期以及日后的很多日子里给予的指点、帮助，以及关心。</p> <p>[未完待续]</p><img src ="http://www.cppblog.com/Streamlet/aggbug/138699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2011-01-17 23:29 <a href="http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2009-2010小结（一）毕业前夕</title><link>http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Sat, 15 Jan 2011 16:42:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/138589.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/138589.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/138589.html</trackback:ping><description><![CDATA[<p>目录：</p> <p><a href="http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html">2009-2010小结（一）毕业前夕</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/17/138699.html">2009-2010小结（二）初入职场</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/20/138985.html">2009-2010小结（三）加班考验</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/25/139297.html">2009-2010小结（四）抑郁重重</a><br><a href="http://www.cppblog.com/Streamlet/archive/2011/01/26/139381.html">2009-2010小结（五）离职始末</a></p> <p>前一阵子看到好些人都发小结了，长的有10年的，短的有1年的，洋洋洒洒，淋漓尽致，各显神通，看得好不畅快，其中也不乏值得回味的、让人深思的东西。哥觉得哥不是那样子牛逼的人，所以就不凑那个热闹了^_^ 不过，总结还是要的，有总结才有进步，在这个寻常的夜晚，哥来个迟到的总结。</p> <p>就从找工作说起吧。2008年秋季，对应的是我的应届生招聘的时期。9月底，各大IT公司就纷纷来开宣讲会了。最开始的是淘宝，可是那时候哥还沉浸在开学的喜悦中，完全不知道，错过了。然后才开始诚惶诚恐地收集这些信息。接下来支付宝啊，百度啊，腾讯啊，阿里阿，网易啊，接踵而至，一直持续到10月底才告一段落。遗憾的是，哥是个菜逼+傻逼，基本上都是在一面或者更早挂掉。分享几个事例证明我的傻逼：</p> <p>1、去支付宝面试的路上，接到个电话，赶紧问：是支付宝吗？对方回答，我是百度的。没听清，继续问：是支付宝吗？答：是百度……<br>2、有个测试岗位，面试官问：你对测试有什么了解？很自信地回答：基本上没什么了解。</p> <p>一线公司就这样全部错过了。现在还保留的一些记忆是，百度的面试官很耐心，但老是问些听也没听过的破算法；腾讯的面试官说话语速很快，面试也很快，大概10几分钟搞定，也不知道说错什么了导致被这么快否定，哥称之为“闪电面”；阿里的那期试卷出得相当烂，很多题目重复，还不止一次，还是错的，直接做不下去，一定要狠狠鄙视。</p> <p>10月中以后，大大小小的听过没听过的公司基本上都来了。也去过几场现场招聘的，发放了一些简历。其中有一个公司比较叼，忘了叫什么名字的。到摊位上问，你们是做哪方面的？结果那人说：你坐下来自我介绍一下。继续问：你们做哪方面的我都不知道，我怎么知道适不适合啊？那人语重心长的说，你一个劲地问做什么的，无非是技术啊业务啊，这些有那么重要么？你就没有信心介绍一下自己么？直接无语，站起来走人。同行的一同学觉得这个方式对口，就去自我介绍了。</p> <p>还面了2家小公司，一个是在百脑汇附近的，可能跟金融有点关系。招聘会上我已经注意到了那个人，特别认真，说话也比较中肯，后来面试也是那个人。笔试的试卷比较靠谱，做得很顺利。当然不是说我做得顺利才说它靠谱，这点客观性哥还是有的。他们很看重数学的样子，可能觉得我数学系出身，应该可以吧。所以面试的时候叫了个数学系的人来面我数学，问一些求导啊，概率啊之类的，晕死。分析方面的浅显问题，还算马马虎虎能搞定，其他的就。。。后来我直接说，不要问我概率啊统计啊，数理统计我可是考了50分的。那哥们不好意思的走了。他们还要看成绩单！哥给他一份真实的成绩单，让他直接苦笑数声！晒下当年的成绩吧：</p> <p><a href="http://www.cppblog.com/images/cppblog_com/Streamlet/Windows-Live-Writer/e6e36d823f78_14D15/%E6%88%90%E7%BB%A9%E5%8D%95_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="成绩单" border="0" alt="成绩单" src="http://www.cppblog.com/images/cppblog_com/Streamlet/Windows-Live-Writer/e6e36d823f78_14D15/%E6%88%90%E7%BB%A9%E5%8D%95_thumb.png" width="604" height="502"></a></p> <p>最后的结果是备胎，他们要等前面的人回应。不过他们这么看重成绩单以及数学，让哥当时也想好了，总之哥冲着编程去的，不是冲着金融去的。</p> <p>另外一家，就是后来给了我第一份工作的那一家。面试在玉泉附近的百合花酒店。说实话，这次是我那一阵子最舒心的一次面试，好歹也看我简历上写了什么，也算是问了些简历上涉及的东西。早上一面，当天下午二面。之前我还没有经历过二面，于是打电话给HR姐姐问二面面的是技术还是谈别的，被告知面技术。结果被谈人生谈理想了。其中他说公司主要业务应该算是做Linix的，如果让你做Linux，有什么想法？我回想了一下，前不久我好像问过百度GG类似的问题（大概说我担心Linux经验不足会影响工作blabla），于是就把他的回答有一句没一句的给复述了一遍。结尾比较尴尬，对方一个劲的问还有问题没，我想来想去前前后后想了解的都问完了，这可怎么办，正在这时，外面催了一下，于是看了看表，说，下面还有好几个人吧，我就问到这里吧。。。逃离。。。</p> <p>到此为止一个offer也没拿到，着手准备考研了。分析了一下，政治是靠觉悟的，背书没用；英语是靠人品的，背单词我才不干；数学考的应该没平时学的深，难度上问题不大，可是那些很实用的计算技巧数学系的人反而是一无所知的，需要复习；计算机是人家的专业课我的业余课，除了C/C++/数据结构，其他的也要复习。于是准备了数学和计算机的参考书，准备好好复习。第一天，呆图书馆整天，不错；第二天，坚持；第三天；继续坚持。第四天，外出有点事，结果接到了电话，是那家公司给了offer。这下哥可是欣喜若狂啊，马上打电话向室友啊谁啊宣布。手拿一把offer的牛人请不要笑，我等从未见过offer的土人，当时就是很兴奋的，很歇斯底里的，很神经质的。。。</p> <p>找工作真是太累了，这边跑那边跑，找信息，琢磨简历，还要等待。。。真是让人心力憔悴。于是决定告一段落，不要找工作了，三方神马的全部签了。至于考研？那当然要考的，钱都交了。复习？算了吧。。彪悍的考生是不需要复习的。</p> <p>那个寒假过的还是蛮舒心的，后事已定，无忧无虑。只是HR打了一次电话，问什么时候能去实习。新学期开始，又打了一次电话。真是的，本来就说好3月份的，还差大半个月，急什么呢。我为我毕设的选择感到骄傲，那可是数学系带毕设的老师中唯一一个做计算机相关的啊！我们要做的是使用ASP.Net做一个学术会议管理系统。在毕设之前，我就咨询了下带课导师，把之前写的ASP的、ASP.Net的破系统发给他鉴定，所以在毕设团队的地位哥还是蛮高的。有一件比较为难的事情是，倒数第二学期的小毕设，每个人都要上台讲课的，有个同学，还是我隔壁寝室的哥们，是后来选的，老师不知道讲给他安排什么主题了，最后让他讲下我之前发给他的一个博客系统。这。。。害得我好几次小心翼翼的问老师，这可以么？真的可以么？</p> <p>我把租房、搬东西这类事情都搞定后，3月2日正式去实习了。（天色已暗，欲知后事如何，且听下回分解。）</p><img src ="http://www.cppblog.com/Streamlet/aggbug/138589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2011-01-16 00:42 <a href="http://www.cppblog.com/Streamlet/archive/2011/01/16/138589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天有个想法：当耦合很多的时候&amp;hellip;&amp;hellip;</title><link>http://www.cppblog.com/Streamlet/archive/2010/09/17/126812.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Thu, 16 Sep 2010 17:48:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2010/09/17/126812.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/126812.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2010/09/17/126812.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/126812.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/126812.html</trackback:ping><description><![CDATA[<p>当耦合很多、多到无法解的时候，人们便将其整理一番，用文档记下来，称之为“协议”、“规范”或者“标准”，供后人学习参考。后人在看这些文档化的耦合的时候，便不怎么容易觉得那是耦合。。。</p> <p>反过来讲，如今的“协议”“标准”所涉及到的内容，其实都是耦合聚集的地方……</p> <p>不成熟的想法。欢迎板砖。</p><img src ="http://www.cppblog.com/Streamlet/aggbug/126812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2010-09-17 01:48 <a href="http://www.cppblog.com/Streamlet/archive/2010/09/17/126812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>七律一首，咏程序员</title><link>http://www.cppblog.com/Streamlet/archive/2010/08/18/123853.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Wed, 18 Aug 2010 09:25:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2010/08/18/123853.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/123853.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2010/08/18/123853.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/123853.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/123853.html</trackback:ping><description><![CDATA[<p>十载寒窗一岁终，<br>莘莘学子事匆匆。<br>千封简历千封信，<br>业界新来代码翁。<br>从此心中惟代码，<br>天天夜夜调试中。<br>几番辛苦今朝至，<br>多少青春昨日风！</p>
<p>（我sb了，中间两联要对仗的，两年没写搞忘了）</p><img src ="http://www.cppblog.com/Streamlet/aggbug/123853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2010-08-18 17:25 <a href="http://www.cppblog.com/Streamlet/archive/2010/08/18/123853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bash: git-upload-pack: command not found，被这个折磨得不行了</title><link>http://www.cppblog.com/Streamlet/archive/2010/04/11/112223.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Sun, 11 Apr 2010 04:17:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2010/04/11/112223.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/112223.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2010/04/11/112223.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/112223.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/112223.html</trackback:ping><description><![CDATA[<p>很奇怪的问题。在 Bluehost 上的虚拟主机，装了 svn，git，一直用的好好的。最近不知什么时候开始，每次都连不了，svn 是直接连接不上，git是这个样子：</p> <p><font color="#0000ff">git.exe clone -v&nbsp; "git+ssh://***@***.***/home/***/***/***/***/***" "C:\Users\***\Desktop\***" </font> <p><font color="#0000ff">bash: git-upload-pack: command not found<br>Initialized empty Git repository in C:/Users/***/Desktop/***/.git/<br>fatal: The remote end hung up unexpectedly</font>  <p>服务端：</p> <p><font color="#0000ff">***@***.*** [~]# git --version<br>git version 1.7.0.4<br>***@***.*** [~]# ~/bin/git --version<br>git version 1.7.0.4<br>***@***.*** [~]# echo $PATH<br>/home/***/bin:/ramdisk/bin:/usr/sec/bin:/usr/local/jdk/bin:/ramdisk/bin:/usr/sec/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin</font>  <p>.bashrc 内容：  <p><font color="#0000ff"># .bashrc </font> <p><font color="#0000ff"># User specific aliases and functions </font> <p><font color="#0000ff"># Source global definitions<br>if [ -f /etc/bashrc ]; then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . /etc/bashrc<br>fi </font> <p><font color="#0000ff"># User specific environment and startup programs </font> <p><font color="#0000ff">PATH=$HOME/bin:$PATH </font> <p><font color="#0000ff">export PATH</font>  <p>最近有过的操作就是装了 python 2.5.4、MySQLdb、jonpy。.bashrc 中的 PATH 原来是 $PATH:$HOME/bin 的，后来为了优先使用 python 2.5.4 而不是系统本来就装好的 2.4.3 换了个次序而已。现在把次序换回来也没用。  <p>找了两天了没找到答案，这里有没有达人救救偶呀！  <p><font color="#ff0000"><strong>补充：</strong></font>  <p>连接的时候，在 PuTTy 中填上命令 env &gt;&gt; aaaaaa，然后检查该文件内容为  <p>TERM=xterm<br>SHELL=/bin/bash<br>SSH_CLIENT=115.195.169.69 56261 22<br>SSH_TTY=/dev/pts/1<br>USER=***<br>MAIL=/var/mail/***<br><font color="#ff8000">PATH=/usr/bin:/bin</font><br>PWD=/home/***<br>SHLVL=1<br>HOME=/home/***<br>LOGNAME=***<br>SSH_CONNECTION=xxx.xxx.xxx.xxx xxx xxx.xxx.xxx.xxx xxx<br>_=/usr/bin/env</p> <p>其中的 PATH 比交互式登录时显示的少很多，不知道要怎么搞？</p> <p>==========</p> <p>昨天问了他们的技术支持，似乎是他们升级OpenSSH后出现的问题，已提交他们修复。</p><img src ="http://www.cppblog.com/Streamlet/aggbug/112223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2010-04-11 12:17 <a href="http://www.cppblog.com/Streamlet/archive/2010/04/11/112223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用了基于 MIT 协议的源代码，需要在软件&amp;ldquo;关于&amp;rdquo;、Readme 中抄一遍版权声明吗？</title><link>http://www.cppblog.com/Streamlet/archive/2010/03/31/111185.html</link><dc:creator>溪流</dc:creator><author>溪流</author><pubDate>Wed, 31 Mar 2010 09:23:00 GMT</pubDate><guid>http://www.cppblog.com/Streamlet/archive/2010/03/31/111185.html</guid><wfw:comment>http://www.cppblog.com/Streamlet/comments/111185.html</wfw:comment><comments>http://www.cppblog.com/Streamlet/archive/2010/03/31/111185.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cppblog.com/Streamlet/comments/commentRss/111185.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Streamlet/services/trackbacks/111185.html</trackback:ping><description><![CDATA[<p>如题。</p> <p>没有界面、不带任何文档的软件怎么办？</p><img src ="http://www.cppblog.com/Streamlet/aggbug/111185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Streamlet/" target="_blank">溪流</a> 2010-03-31 17:23 <a href="http://www.cppblog.com/Streamlet/archive/2010/03/31/111185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>