https://www.raychase.net/2658

    有一点是比较明确的,就是只有经历过各种各样的事情以后,才会知道何谓好坏,才可以树立自己的价值观。总的来说,我在第一家公司学技术成长最快,而第二家公司收到的工程和文化影响更甚。因此从这个角度来说,在做选择的时候,需要考虑给自己接触多样性的机会。短期内未必看得到多大程度的好坏,但是长远价值连城。换言之,不如少看一些心灵鸡汤,少读一些成功学,自己撸起袖子去试试。

    以前我记得我参加过一个职业生涯规划的培训,培训的老师说,每一个人都要有规划,都要把自己的未来妥善地安排好。在当时我还觉得颇有道理,而且我也确实看见目标明确的人更有动力,在需要做决定的时候也非常清楚应该怎样行动;但是,后来我越来越发现,所谓的规划,还是短期内的靠谱,所谓的三年、五年规划,至少对我来说,都是扯淡。三年、五年规划的准确性之低让这件事情失去主要的意义。

    https://www.raychase.net/3196

    首先,为自己工作。 不是为父母,不是为同事,不是为公司,不是为项目,不是为绩效。

    每一家公司都有它的企业文化,人在努力建立自己正确的职业观的时候,总是会或多或少被这样那样的企业文化所影响,严重的可以说,所洗脑。我有点庆幸似乎这个影响并不非常深刻,无所谓对错之分,但是人唯一可以减轻某一种激进的和单一的价值观所造成的影响的方式,就是多走走看看,不同的价值观,不同的文化,在不同的体系里面生活,形成自己的主要观点。

    最后,给自己开阔眼界的机会,很多问题或者说是感受,当事的环境无法感受到,但是也许几周、几月、几年后,回过头来看的时候,有了别样的观点。所谓对错,只有在盖棺论述的时候才最公证。

    要有一个相对舒适的环境,工程师才可以创造最大的价值。

    随着经历的增加,我更加佩服和尊重那些在面对各种困难的情况下,敢于迈出改变那一步的人。

    https://www.raychase.net/1364

    有的能力需要天赋,有的能力需要努力,前者需要先天条件,后者需要后天的主观能动性;但是眼界,这既无法通过天赋获得,也无法通过单纯的努力获得。眼界是和经历体验紧密挂钩的。什么是想要的生活,什么是追求的梦想,不妨不要把话说死,也许经历了不同的事情,会让人不由自主地重新审视自己的价值观,重新思考这些一开始仿佛理所当然的问题。

    就像那些踌躇在异地找工作的朋友,总是有太多顾虑,能不能适应?那里的人会不会排外?新地方的工作好不好找?做的事情有没有意思?其实,又有谁能全部回答这些问题呢?倒不如先行动,去尝试一下新的生活,去习惯一下新的城市。问题慢慢就会有答案,而看法,兴许会改变的。

    我从一个传统电信企业来到了一个互联网企业,既看到了企业文化上巨大的差异,也看到了企业做事和程序员工作、生活的巨大不同。我第一次知道原来程序员的工作是可以不需要加班的,第一次知道很多高质量的项目都是可以不设专职测试人员的,也第一次知道如果有人要混日子,竟然会是那么容易的事。如此种种,在这个网站的很多文章中都有提到,二者相比,有好有坏,言者无罪,我兴许会偏激,但尽力客观,不抱成见。

    面对不同的企业文化,要么尊重、要么容忍、要么改变。如果难以接受,你当然可以选择离开,要的只有一点勇气而已。只顾抱怨的人,给他一个再好的环境,他也做不成什么事情。我的薪水、我的工龄、我的期权、我的人脉、我的职位……人生充满扯淡的选择,顾虑重重的人,要不,你还是继续受折磨吧!

    当然,要是没有一个比较好的状态,我也没有办法完成面试求职这些事情。

    在这过程中,我逐渐深刻地认识到,在拿到的 offer 中,无论我选择谁,我都将面临很大的压力。而每一次跳槽,往往都意味着更多的责任和挑战(如果职业生涯一直是走上坡路的话),这也是无法回避的一个事实。我很想在正式入职前多做准备,但无论怎样,我当前能够持有的最好心态,也只能是小心翼翼,谨慎乐观。

    最后,回到招聘本身。面试是双向的,一个草草了事的招聘几乎意味着一家草草了事的公司。想知道未来的团队氛围是不是适合自己,那么看看是不是和面试的人聊得来;想知道公司的技术实力如何,那就看看招聘过程反映出来的技术怎样;想知道入职以后身边的人会不会优秀而且契合,那就看看来面试你的面试官是不是优秀,招聘是不是严格且谨慎吧。

    在一次的设计讨论会议上大 Z 说对小 s 说,我认为你的方案不如我的好,理由是 xxxxx,于是大 Z 和小 s 来来回回一番争论,刚开始还算可控,但是大 Z 说,“我觉得你缺少扩展性的常识”。有经验的人可能马上意识到,大 Z 的这句话已经从 “对事” 变成了 “对人”,这明显是不对的。于是这句话一冒出来,小 s 马上就不高兴了,再不痛不痒辩论几句以后,没有继续争论下去,显得很失落。
    这个场景看起来是不是很熟悉?哪怕小 s 是更在理的一方,也放弃了继续争论下去的欲望,反而落得自己不爽好几天,每次和大 Z 沟通都会想着当时的场景,甚至觉得大 Z 还会有意无意针对他。有人可能会觉得,那大 Z 会不会事后自我反省,觉得自己过分呢?我想说,大多数情形下,不会的,以大 Z 的性格来说,他冒犯了小 s,他也许意识到了,也许没意识到,可是这样的事情他根本就不会放在心上。回到事情本身,谁的方案更合理很难讲,但这件事情本身伤害到了团队中的成员,影响了团队的氛围。我们可能见到类似的事情到处都是,甚至在某些沟通强烈的地方尤为严重,比如 design meeting 和 code review。
    多数情况下,我们撇开技术本身的因素,谁的发展更好呢?却是大 Z。虽然有少数情况并非如此,但是多数情况下,大 Z 却有着更更为广泛的影响力,而某些情况下争论所显露出来的 backbone 会盖过他在争论和为人上面的 “恶霸” 属性。这也从某种角度说明,为什么到了一定级别的程序员,且不论技术如何,心理承受能力和沟通的技巧,都是有一定造诣的,那些敏感而脆弱的呢,已经挂在晋升的半路上了。

    https://www.raychase.net/5302
    要明确的是,这些业务上的知识,只有少数能够积累下来,积累下来的部分,叫做领域知识。而绝大多数,都没有长期的价值
    在和更年轻的程序员竞争的过程中,老程序员的优势,应当是经验、眼界,而不是体力、反应。这也是为什么不要只写那些纯业务代码的原因,同