分类
职业

改变你的环境,或者选择适合你的环境——聊聊“被”管理

群里有同学在抱怨,大意是:领导技术还没自己好;团队瞎搞领导也不管;老板不懂技术,天天催着赶活儿,不给 code review 等内训的时间;感受不到成长;等等。

坦率地说,年轻的我也有这种想法,而且很重(可惜我 2011 年之前的博客遗失了,不然可以翻出来给大家晒晒)。不过随着年龄愈大,尤其是参与创业的这些年,学会站在不同角度看问题,换用不同的思维模式之后,我的想法变了。

年轻的时候,我非常喜欢《倚天屠龙记》开篇何足道挑战少林寺那一段:一位猛人,来到不可一世的少林寺,打遍少林无敌手,少林寺高层一筹莫展。突然出现一位不在编的僧人,把他锤跑了。

换成现实世界,就是:我在公司是个普普通通的开发人员,除了前后桌,根本没人知道我是谁。突然有一天公司遇到重大技术难题,无人可解。这个时候我潇洒的戴上假发,上去把问题解决了。老板痛哭流涕,把前任总监就地免职,任命我为新的 CTO。

然则这并不会真的发生。现实世界里,不管你再看不起你公司(下面简称贵司)和你公司的技术,它会被一项技术拖死的可能性也微乎其微。它能够活着,多半靠的是你眼里不咋样的老板所赐。

决定你在公司地位的,大部分时间也不是技术能力。你的技术领导,可能来得比你早,刚好排到这个位置。虽然他技术不如你(只是可能),但是对于公司来说,够用了。老板不懂技术,不可能把他挪走把你放上去。

至于其它能力,比如情商、沟通能力、业务理解能力,其实也都和技术差不多。有优先级之分,但是都没有一票赞成/否决权。

所以选公司、选团队的时候,要先看行业、商业模式,这种赛道型的内容。比如我厂,做的是非常高端的 2B 软件,属于“有的公司自己搞不定,要花钱请外面的高人来搞定”这种需求。所以对技术的要求就很高,相应的,技术人员的天花板就很高。

如果你喜欢技术,就最好来这种公司,因为你的技术可以很容易的折现,并且上不封顶(理论上……)

相反,如果你不是特别喜欢技术,写代码更多是为了谋生,只是恰巧选择了程序员这份工作。那就应该选择一个模式相对基础,公司比较稳定,技术在其中主要做支持的公司。比如我的第一家公司 201——IT 资讯门户,对技术的要求是网页能打开,不要挂。主要挣钱手段是养编辑写文章,养销售卖广告。

在这种公司里你可以每年进步一点点,但工作稳定有保障。如果你有技术梦想,来到 201,然后发现领导的技术不如你,要求老板换你上。那不行,是你不对,你没有理解公司的商业模式。


总结一下,就是:尽量找到合适你的公司。老板不傻,领导不笨,大多数时候只是你们不合适。

分类
远程工作

远程工作需要的特质:愿意负责

本来想写“愿意背锅”的,后来想想还是不要那么标题党了。

前些天跟朋友聊天,聊到我厂的日常工作。他问我:“你们怎么解决人员互相不熟悉的协作问题的?Tower还是IM?”

我厂日常主要用 IM,包括文字或语音或共享桌面,但这并不是他要的答案。这位朋友是位产品经理,曾经多次向我抱怨说他们公司的前端太不给力,这不会做那不能做,他们产品设计,到最终实现总是大打折扣,产品人员不得不仔细核对每一项细节,并不断跟前端讨价还价,才能有所保障。

所以夏虫不可以语冰,从他的角度,很难理解我厂(全职远程)日常怎么才做能保证效率。

所以我回答:“IM 和文档。还有就是不要甩锅。其实我觉得,协同问题70%来自甩锅。”

“责任分清是不是甩锅?”他又问。

其实对于创业公司而言,最可怕的情况就是,没有大公司的命,得了大公司的病。在做出足够宽足够深的护城河之前,先琢磨怎么厘清责任;大家惦记的不是怎么把事情做好,而是出了问题不是我的责任。

对于远程创业公司来说,这个问题更加致命,因为这样要浪费非常多的沟通成本。所以我如实说出我的想法:“要看具体操作,很可能是。这里的问题在于,分清责任后,是只把自己的责任摘出来做,还是连带督促另一个人;就是分清责任之后,是选择做执行人,还是PM+执行人。”

“团队是合作关系还是里面存在管理关系?”

“合作,基本不存在管理。”

“督促另一个人时,对方如果不愿意怎么办?”

“说明那个人不适合在远程团队里。如果远程团队不能形成互相督促互相配合的氛围,工作效率多半是不够的。”

这两个问题其实是一个意思:你说督促就督促了?别人不听怎么办?其实回顾我的从业经验,大部分互联网公司都没有那么明确的上下级概念,也很少有人会去挑战督促者。大部分情况是,大家都不愿意出头(特有国情),但是有人出头,只要不犯傻,大家多半还是愿意接受领导的。

“挺好。”他最后总结道。

总结

远程工作,对每个参与者的要求都更高,除了能完成日常工作,更友好的合作精神,更主动的参与精神也非常重要。

希望这段对话对大家有帮助。

分类
远程工作

如何加入一家全职远程的公司

自从我厂开启招聘之后,陆续收到一些简历。除去一些明显不靠谱的,也有不少同学的简历看起来很好,但明显只是为“远程”而来,满脑子都惦记着远程之后坐在海边一边打望比基尼美女,一边啜饮鲜榨果汁,一边写代码的生活。却没有想过自己能给公司带来什么。

没错,我也曾这么幻想着,加入了我厂。加入之后的工作生活虽然称不上幻灭,但绝对和预期不同。所以今天,我决定写点什么,让大家了解全职远程的真实状态,同时理解远程的需求,以便更好的抉择今后的职业道路。

以下的内容不仅包含远程,还有“小型创业公司”。我还没见过中型或更大的“全员远程”公司,所以姑且认为这种组织形式和大多数老板的管理水平,暂时无法负担更大规模的协作吧。

分类
远程工作

远程工作一年半,聊聊远程的问题

2017年8月,我加入现在 OpenResty Inc.,开始我职场生涯第一次全职远程的工作。如今,一年半时间过去,我发现远程工作并不如我之前想象的那样美好,还有很多问题是我一开始没想到的,这里记录一下。

分类
职业

我的知识变现 2018:再见

2017年的时候我开始尝试知识变现,然后花了大约一年的时间,发现自己其实并不适合这个领域。当然最重要仍然是经济问题:要达到我当时的生活水平,我需要投入远远不止一年的时间,而我家庭情况不允许这样做。

2017年下半年,我幸运地找到了一份全职工作,然后开始慢慢告别知识变现 。

2018 年年初做计划时,我仍给自己定下一些计划,包括每天在 SegmentFault 上回答一个问题。但没能坚持下来。因为很多问题并不值得回答,很多人也不会问问题。我每天在寻找合适回答的问题上都要花费很多时间。

我后来总结,很多人其实并不适合从事开发工作。并非每个人都喜欢学习、愿意改变习惯、提升工作能力。很多人只想把这个事情当成一个工作,因为看起来,软件开发既轻松,收入又高——“总不能进工厂吧”他们说。这些人的目标是勉强满足老板/客户的需求,他们的理想是“不用工作”。

问问题的时候,他们只想知道某某某问题的解决方案是什么,他们并不关心前因后果,也不想理清自己的思路。即使问题非常愚蠢,即使你的答案已经非常接近他们要的方案,他们也无所谓。

这让我非常不爽,因为跟我的理想差异巨大。我喜欢写代码,想把程序员作为终身职业。我喜欢研究写代码的技巧,通过学习我能获得非常大的成就感。我也很乐意分享这些知识和技能。然而作为非专业培训人士,我很难超出自己的体验做分享,也就很难提供给他们合适的知识产品。

所以我后来也开始慢慢转变态度。早先只要有人问问题,我都知无不言,言无不尽,做一个最好的引路人。接着我发现这样做并不好,除了浪费自己的时间,其实客观上也在浪费那些“不合适的人”的时间。所以我现在倾向于,如果我认为一个人不适合学习编程,我就早早的拒绝他(昨天就有一个人被我怼出群了……)。

好吧,所以总结一下我的知识变现 2018:再见,知识变现。

分类
公司

Welcome to Navlang

过去两天,我厂在杭州召开了 OpenResty Con 2018,很多 OpenResty 的社区的小伙伴分享了很多使用 OpenResty 的心得。春哥也分享了 OpenResty(包括商业公司 OpenResty Inc)接下来的计划和未来的方向。说实话我已经很长时间不参会也不关心会了,因为很多会营养太少,商业太过。不过我不得不说,我厂的会干货真的多。

回到主题,我也趁机搞了一个闪电演讲,介绍我厂的小语言之一——Navlang。遗憾的是,准备的不算充分,时间也比较短,所以介绍的不够清楚,导致好几个同学来问细节。

既然已经公开我以后也会分享一些实现细节和心得。感兴趣的同学可以先看 Slide:

开发这个语言的时候,我不太适应 Perl,也不太适应在春哥的要求下写代码,所以表现并不理想。如果有机会我还是希望能继续贡献 feature。

另外,受到 Navlang 的启发,我觉得可以搞一个 TechLang,用编程的方式录制视频教程。将来有机会搞一下。 

分类
远程工作

理想的远程办公咖啡厅

昨天 @Easy 老师发了一条微博

之前问过一个问题:「在共克时艰和消费降级的大背景下,有哪些行业和生意会逆流而上呢?


昨天和墨多扯淡,他说搞一个「面向美元市场」但是「研发在国内」、「销售完全依靠网络」而且可以「远程办公」的「商业SaaS/APP」是最符合「时代的进程」的。

因为:

① 收入直接是美金,扛贬值,无管制。

② 经济如果下行,国内成本会进一步降低。

③ 一线城市房租房价高涨,远程办公可以吸收足够优秀的同学去二三线城市。

④ SaaS/APP 不好搞的话,其实外包也行,但要做好外语沟通和客服。还可能需要一个外语好的产品经理


我问他为啥不搞一个,他说懒

我不太看好这个想法。原因如下:

  1. 想要做的正规,必须给国内的工作人员发工资,上社保。当然可以大家协商发多少人民币,多少美元,不过维持家庭开支钱不会少,多半整个工资都发掉了。
  2. 发币的话,我是信不过……
  3. 远程工作并不适合所有人,有些人(比如前文中的小弟)可能在办公室里能发挥100%的战斗力,回到家连一半都做不到
  4. 说了半天都跟项目无关,其实项目本身也有很大风险

如果让我说,最合适的项目是做远程办公咖啡厅,类似 3W 咖啡或者车库咖啡之类。遗憾的是,这两家我都没去过,不知道里面办公是什么体验。不过我去过贝塔咖啡,咖啡部跟一般咖啡厅一样,并不舒服。结合我两年的远程经验,说一说理想的远程办公咖啡厅吧:

  1. 桌椅高度要合适。
  2. 可以租用显示器,借用笔记本支架。
  3. 可以租小柜子存放私人物品,不用太大,游泳池那种小的就行,放个充电宝、随手带的小物件之类。
  4. 咖啡符合一般品质,电信能达到星巴克品质。
  5. 交通方便,不需要营业太久。

我觉得价格可以在星巴克基础上上浮二三成(咖啡30+,饮品40+),这样我也愿意接受。其实大部分需求共享工位都能满足,但是利用率太低,而且咖啡厅嘛,听起来 B 格高一些。

分类
远程工作

远程办公的环境选择

两年远程工作经验,给楼上各位分享一下固定工位的好处:

  1. 稳定性,受环境影响小。图书馆位置很紧张,尤其暑假;咖啡馆适合写代码的位置并不多,比如没有插头,比如桌椅不合适,比如旁边有人在连吃鸡;家里全是噪音源,老妈老婆孩子狗。
  2. 可以放显示器。这个其实很重要,笔记本的位置很低,使用时处于低头状态,脖子非自然弯曲,久而久之强直性颈椎病,手脚麻痹。不是耸人听闻,我现在已经不敢久用笔记本,大大减少了在咖啡厅的时间。 

坏处:

  1. 费用高。广州工位租金普遍在 1200/月以上,最便宜的方圆 E 时光 600/月,一年下来 7200,可以买 iPhone 了。
  2. 利用率低。远程工作不考勤,随时可工作。我厂老板在美国,早上起来第一件事就是翻聊天记录,很可能接下来就开工,弄完到午饭时间了,一上午没去;天气热,不想走路,不去;停车费贵,不去;老婆 /朋友 /老妈 /孩子要去某个地方,当司机,不去……一年下来一半时间都空置。
  3. 网络不好。共享空间共享宽带,均下来每个人都是小水管,我经常开手机热点,不然太影响效率。
  4. 冷气不足。相对于商业空间默认 24、25 度的配置,共享办公几乎不会低于 26,女性多的地方经常 27、28 度,热死个人。

我已经退掉了租的工位,准备还是自我调整:

  1. 工作集中在上午和下午 5 点前完成,基本和孩子上幼儿园时间重合
  2. 跟家里沟通我需要独立的工作环境,他们也渐渐知道怎么配合了
  3. 中午出去觅食,顺便在咖啡厅坐几个小时,充分利用免费停车的时间

V2原帖:成都有没有自由职业的同事想一起租个办公室啊?

分类
公司

记第一次怼厂长

最近做 N 项目,被厂长批评好几次效率低,终于忍不住在周会上怼了厂长。记录一下,将来说不定还会怼,或被怼。

1. 我不会 Perl,Perl 也比我想象的难学

我会三门语言:JavaScript、ActionScript、PHP。我学它们的时候并没有投入太多时间,所以我这次也是用差不多的态度对待 Perl,结果完全不一样。Perl 是一种非常灵活的语言,我觉得它有些过于灵活。它里面很多 $.$_ 这样的东西,用起来很爽,不懂的时候看起来就火葬场了。

所以我花了比想象中更多的时间去学习 Perl。这一点算我的问题,我对此没有异议。

2. N 项目交给我时架构很初级

也许和厂长想的不同,在我看来,N 项目交给我们时,就是一个原型,架构非常简单非常难看,我最多给它打30分——厂长可能觉得有60分吧。所以本来就不会 Perl 的我面对这样一个极差的架构就更头痛了。它的架构差表现在:

  1. N 项目是典型的面条形代码,从头到尾一个逻辑写完,4k行
  2. 由 Perl 和 JS 两种语言混编构成,缩进完全混乱,变量乱插
  3. 任何一个功能,都要在 4K 代码中找到若干处修改,没有指导文档,没有设计模式

所以开发它会遭遇很多计划之外的问题。

3. Code Style

在混乱的架构下,厂长对 Code Style 的要求也非常严苛,他会一一挑出来少空行的地方少空格的地方要求修改。

这对我来说本不成问题,我当然同意我们应该遵守同样的语法规范,但是,我接手时的 Code Style 就已经混乱不堪。作为一名老程序员,我第一件事就是学习他的规范,每当我遇到换行、空格犹豫不决的时候,就会去找类似的代码,然后照着他的代码写。结果提交后被多次指责没有遵守规范。这叫好比,生活委员来查寝,然后指责你们寝室脏乱差,要扣精神文明分,继而影响评优,然后你去他寝室一看一样脏乱差的一比。

另外,无论再小心,笔误也是难免的。所以 Code Style 这种东西理应交给 Lint 工具来做,这样,交付给新人的代码,新人完成的代码,都能保证遵守规范。而不是像现在一样,每天早上起床看 review comments,一堆换行空格的问题,满满的负能量。


其实还有对前端的认识问题,下次再怼吧。

分类
公司

密码保护:我司的现状

这是一篇受密码保护的文章,您需要提供访问密码: