日课Flag

立个Flag,每日看一遍强化

每日

  1. 每日读书至少30分钟
  2. 每日考虑自己所爱的人不低于10分钟
  3. 每日和同事谈话不低于15分钟
  4. 每日游戏时间不高于15分钟
  5. 每日研究公司经营不低于30分钟(含资金、新项目、投资方向)
  6. 每日研究产品方向不低于30分钟
  7. 每日坚持写工作日志

 

每周

  1. 每日研究个兴趣爱好至少30分钟,目前兴趣未定(诗词、书法、钓鱼)
  2. 每周社交不低于12个小时,含电话时间。
  3. 每周锻炼不低于2次,总时长至少2小时

 

长期

  1. 减少吸烟
  2. 基本断酒

新产品感言

搞了好几年了,昨天晚上写了几段话,本来打算放网站上;

心中有千言万语,但是似乎内容太多了,不适合放在网站上,又舍不得自己的文字,于是先存放在这里。

C4J的前世

利用前期的一些项目中的技术积累,我们在2012年4月完成了Cobub Razor的第一个版本;于7月底在CSDN组织的一个活动上正式发布了Cobub 0.1,并且宣布将其开源。

让我们惊奇的是,来咨询的人特别多,短短一个月内,下载量就达到了2K。从此我们称自己的产品为“开源版友盟”。怀着让数据得到更好利用并且最大限度保护最终用户隐私的初心,我们不断迭代Cobub产品一直到Cobub 0.8。

在2016年底Cobub Razor的开源项目在全球部署超过6000台服务器,支持中、英、德、日等多种语言。目前在github上有1000+ Star,400+ Fork。

相关历史记录请参见Cobub@github

商业化和大数据

从2014年开始,我们很幸运遇到了一些大型客户。他们同样出于保护用户隐私和更好利用数据的目的,主动联系了我们;请我们给他们提供技术支持、定制化开发、咨询服务等。客户们为我们提供了足够的资金支持让我们可以更专心于我们的产品。

感谢这些在我们资金困难时给我们强大支持的客户们;没有他们我们的项目将无法进行下去。我们需要感谢的客户包括:中国民生银行、银联商务、中国电信广东基地、一号店、聚美优品等等。

在服务上述客户的过程中,我们开发了Cobub的大数据版本并成功应用在很多客户那里。典型的如民生银行,Cobub大数据版支持了民生银行60多个APP、10多个网站,每天处理超过600GB的数据;广东电信基地每天处理超过2TB的数据…

客户们提出了很多改进意见、新的技术要求及业务要求。在这个过程中我们不断更新产品,为客户提供更多、更优质的服务;例如我们已经发展出自己的私有化DMP系统、针对特定行业的业务解决方案等。

C4J的征程

时间进入2018年,我们不光构建了成体系的大数据分析平台,而且针对不同的行业客户构建了业务解决方案,甚至我们还提供延展的营销服务。利用所积累的技术能力和业务认知,我们启动了C4J的项目。C4J是Cobub For Java的缩写。

在过去几年的客户服务中,我们体会到随着互联网和移动互联网的发展,客户需要统一的全渠道用户分析平台,而非单一聚焦于小程序或者APP又或H5;我们同时意识到,大数据平台高昂的实施成本阻碍了很多客户在互联网运营和营销上走得更远。

解决上述两个问题就是C4J的初心;而Cobub让数据得到更好利用并且最大限度保护最终用户隐私的初心一直伴随着我们前进,从未改变。

在2019年,C4J带着我们的美好愿望,努力为更多的客户提供低成本、私有化的全渠道用户分析平台。

在北京参加销售组织培训的额外感受

这次我在北京参加了一个培训,主要是针对销售组织的培训。有些深刻感受,不仅是针对销售组织,我认为每个组织都一样,跟大家说一下我的感受。

1. 现代企业间竞争越来越大,竞争是公司全部团队的竞争,必须构建全公司整体的竞争力。我们公司内部目前的团队leader有责任构建强有力的团队,在这个群里的每个人,包括我都应该把这个当做一个最重要的KPI,这个KPI达到了其他的目标才能达到,否则都是镜中花水中月。
2. 竞争不仅在加大,也在加快。我们不仅要快,还要细致。
3. 针对上述1和2,如何构建强有力团队是需要大量细致工作的。比如产品打磨、销售打法打磨、每个人的责任心提高、绩效等等。团队负责人有恒心,有毅力才能把这些工作做好。
4. 至于如何构建团队这样的方法,其实并无新奇之处。无非是在恒心、毅力下的持续改进。

与各位共勉

四川茂县滑雪之旅

2019春节随太太回成都过年,初三早上由双流出发,驾车2个半小时仅170公里到达茂县县城。

在宾馆安顿好后出门吃饭,顺着岷江步行,风景甚是优美,河水清澈,远处雪山伴着彩霞,路边蜡梅开得甚欢,清香伴随我们一路过了名为凤仪桥的吊桥,桥上望去,羌族风格的建筑也挺有意思。

岷江一路向东

饭后再散步回来,吊桥上亮起了俗艳的彩灯,新月下远处被彩灯描画出的羌族寨子变得更好看了。

这个家伙着急回宾馆打CodeForce比赛

2月8日一早我们驾车上了山顶的滑雪场,名为九顶山。滑雪出乎意料的好玩,也让我明白了为什么有女性可以赤裸着滑雪。只是我们的技术太初级,学习得也慢,远不如儿子和外甥女滑得好。

下午二点我们就离开了滑雪场,路上在羌族农家吃了顿简餐。

滑雪让我发现自己和儿子的体力是多么的差,锻炼身体是我2019的目标之一吧。

川西北方向我之前从未来过,此次时间也仅有一天,希以后可以来多走几日。

微信被封

2019.1.24早上起床发现微信被封。

对于我来说微信已经成为我工作的一部分,于是开始各种申诉,不成,解绑,重建网络社会关系。

这让我更担忧了。其实我的观念一直偏保守,算得上一个温和派。居然也要封。

就微信和腾讯自身来说,是一个如此立了牌坊的婊子:号称不读取用户聊天记录,那是如何能够实现这样的梦幻逻辑呢?

气愤不过,给了客服两个差评,算是泄愤

融资的故事

创业这么多年,有很多的故事。这些故事在我的记忆里有的远有的近。

有时,忘记的事情又会从记忆的角落里冷不丁地冒出来,当它们冒出来的时候竟然如此清晰地被我的思维还原,不带一丁点的朦胧。让愚钝的我意识到当时的对错;也让我的人生阅历多了一点儿还原。

我们在2013-2015年多次尝试融资,其实当时对于融资的意义也不太真正理解。其中离融资最近的一次是蒋涛介绍了一个女孩叫Nancy。说她是女孩是因为她比我小些,应该是个80后吧。Nancy在圈中有很好的人脉。她人看起来阳光、可爱,但是又有我所不及的老练。这次融资如此清晰起来,是因为我突然想起了为什么会不了了之。

现在的我猜想当时Nancy并不是特别看好我们,但因有蒋涛的推荐也应该觉得是个可能的选项。而且Nancy告诉我既然友盟被收购,那么还会有其他公司会做类似的收购。

于是Nancy密集的带我见了几个人,一个是红杉资本的曹毅,另一个是麦顿资本。曹毅对Nancy说:这个人看起来不错;麦顿的人很简单的聊了一下就决定跟。我猜想Nancy为了规避风险所以才拉了几方拼这个项目,也有可能她个人并没有那么多钱。在见这些人的过程中,Nancy对我也不是太尊重,虽然并没有引起我的不快。

而不了了之的原因是那晚Nancy打车顺道送我到北土城的汉庭酒店。Nancy在车上告诉我会先给我一个Term Sheet。我心知如此地接近融资,非常地激动。同时也非常纠结于要不要告诉Nancy公司的财务情况:公司欠我个人一些钱。在内心纠结了半天,我决定告诉她,因为我觉得我应该表现出足够的坦诚。于是下车之前我告诉了她,但这并不是一个好时机。于是她和我说的最后一句话是:

我给你的钱是让你用来还债的吗?

机会就这样溜走了。

研发的精神所在(3)- 努力拓宽眼界

今天写的这篇文章正值我们公司若干个项目交付的关键时刻,有些好消息也有坏消息;各位同事近期为了项目交付都非常努力,在外出差、加班都很多;但我还是请诸君加油努力,跨过这些坎,我们会变得更强大,梅花香自苦寒来、宝剑锋自磨砺出,在实战中练出自己的卓越技能,练出强大心脏,练出卓越效率的团队,练出我们的美好未来!

我猜想很多人会对我上一篇文章所提到的宽广的知识面的速成感兴趣,那确实对研发人员有很强的吸引力。我今天就谈谈如何在知识面方面速成。

什么叫“速成”?“速成”是个比较的概念,既然有速成肯定也有“慢成”。相对于某一领域的“专家”而言,知识面的宽广度是可以速成的;但是这个速成也不是一蹴而就的,可不能以为在三个月以内就可以达到很宽广的知识面。

那如何“速成”呢?别忘记上篇所提到的“好奇心”,如果你没有这个好奇心作为基础的精神内核,你肯定不会速成;所以我建议没有好奇心的研发可以换个职业。

除了好奇心,速成的最重要的方法是多看,多看看其他的系统。比如今天接触了一个供应商做OCR的,把他们材料拿过来看看,琢磨一下,OCR大概是怎么实现的;明天在客户那里听说了一个新技术,记在心里,有空的时候上网了解一下,下次在别人那里吹吹牛逼也开心呀;只要有心,身边到处都是可以了解的东西。比如我们银行客户的柜面系统、园区的收费系统、中午吃饭时候的收银系统、收快递的时候看看快递小哥的手持终端;网上的资料现在也非常的丰富,而且上网也很方便。

如何快速把握一个系统的大概,最重要的技能是思考方法,其实就是黑盒的方法,说的高大上一点是系统化思考的方法,自顶向下的思考方法。其实做研发的人有个毛病,真的是毛病,就是思考的时候容易坠入实现的细节。希望各位同事可以正视这个问题。

但是在了解一个系统或是做前期需求的时候,切勿把自己的主要精力放在技术的实现上,也不要管这个系统的技术实现有多难;而应着遵循如下几个步骤去理解系统:

  1. 系统的输入是什么?输出是什么?由此来定义系统的主要功能。
  2. 系统的运行环境是什么?依赖条件是什么?
  3. 接下来要理清系统的分成哪几部分、各自完成什么功能
  4. 系统中的各模块的角色和作用、数据流向
  5. 每一个部分之间如何通信、数据通过什么方式交换,并且如何互相协作。
  6. 主要过程是如何触发的? 我发现这个问题很多人会忽视。
  7. 这时候框图、架构图、状态图等就是非常好的工具。

如果你把上述的若干问题搞明白了,而且这个系统不是你工作要做的也不是你感兴趣的,那就可以不看了;对于拓宽眼界的事情,我的建议就是不求甚解,大概搞明白就好;因为你的主要任务是变成当前工作的专家呀!你当前做的工作就要做到没人比你厉害!这才是最高效率。

而如果上述的系统是你个人工作要做的,那就需要进一步细化、分解,这个过程就是自顶向下的设计过程。而上述的工作是异常重要的,即先概览再breakdown。为什么重要呢?因为软件总会有bug,在复杂系统例如我们的产品这样的系统中,排查问题非常依赖于你对于全局及各部分关系之间的理解;还因为在团队作战中,大家的理解一致了才可以继续协作。可以看见很多专家,可以非常迅速的定位问题,那就是因为他对于自顶向下的东西理解得非常透彻。

这部分说到底就是系统化的思维方法。我始终推荐两本书《系统化思维导论》(作者是个老外,如果没记错叫温伯格);另就是IDEF0 方法(不记得书名,IDEF0是美国国防部的一个方法论,我记得公司有这本书,如果没有网上也有很多资料)。

各位千万不要以为这是很简单的,这种系统化思维的方法是需要你自己有意去训练的。下篇文章我打算讲讲怎么变成某一方面专家。

研发的精神所在(2)- 做技术世界中遨游的孩子

Change is always good. 人类几千年的积累催生着各方面的新理论、新技术、新产品;有人说智能时代的“奇点”即将来临,有人说“奇点”就是现在,也有人持有悲观态度,认为“奇点”还离得很远。甚至有人说机器智能第一将会取代的就是程序员。不管这个“奇点”是什么时候,技术发展的切线斜率越来越大这个事实及趋势是确定的。

研发人员必须接受这个事实和趋势,努力跟上这个时代,努力让自己的技术和能力为人类及社会做贡献,并通过这样的努力让自己的生活更好。这是研发人员的历史使命也是极好的机会,我们不可虚度光阴,不可辜负这样的时代。

研发的核心精神是:保持一份强烈的好奇心!!!是的,这是一个好的研发的最基本素质。各位可以自己掂量一下自己有无这样的好奇心,如果没有,我建议你就不要做研发了。我说的是“强烈”的好奇心,如果不强烈,那也可以回家卖红薯。

要像三岁的孩子,对于新事物有兴趣去探索,学习各种新鲜的技术、不同的实现方式、以及面对不同的人!自己弄不懂的就要把他弄懂,以前没实现的就要把它实现,以前做的不好的琢磨一个方式把它加强、做得更好,相信各位能够感知在千方百计完成一个任务之后的那种兴奋和愉悦感;体会过这种感觉的同学他就会不一样,没体会过的同学要尝试着去体会,如果长时间体会不到那么请转行吧,因为这个工作让你没有快乐,何必做一种没有快乐的工作呢。

做Java的也要看看iOS是怎么回事,做大数据的也要看看前端的JS是怎么回事,新出的各种技术也要有好奇心去看看是个什么东西,实现的原理是什么。不要让自己做青蛙,只管自己头上的那一片天。技术的东西很多是相通的,多看看对自己拓宽知识面非常有帮助,甚至对自己目前的方向的深入理解也有很多帮助。

这样可以极大的拓宽我们的眼界,让我们知晓世界的广大、感受技术的变化,让我们不再做井底之蛙。青蛙看见的一片天是真实的吗?是真实的,但是不是全部的天。但是我们不了解的东西实在是太多了,新技术实在是太多了,我们有那么多精力吗?所以我提供一个学习方法,就是狼吞虎咽、不求甚解。把一本技术书籍的前三章看完就可以把书扔了,做个初步的了解原理;所以公司经常组织技术分享,努力拓宽大家的知识面。因为没有那么多时间啊!在这种方法下,知识的广度可以很快积累,可以速成的。但是这种方法只适用于我们一个新系统的初步准备阶段,只适用于我们作为孩子学走路阶段,还不能独立行走、不能跑。因为你还不是专家,你还不能实现这个系统或者业务,因为专家是需要深度的。

保持好奇心还有一个隐含的意思就是也要做个谦逊的人,我们必须要清楚,未知的东西仍然浩如烟海,我们只是捡贝壳的孩子。是的,我们是孩子,我们好奇且谦逊;我想这是对乔布斯所说的“Stay Hungary, Stay Foolish”的最好注解。

研发的精神所在(1)- Change is always good.

这是我准备写的一系列关于研发精神的文章的第一篇,先在公司内部分发


我要讲讲作为一个研发的精神,讲讲我自己的一点感受。我从学习Basic开始到今天也有近30年的软件开发经验了,做具体的项目也接近20年了。我这30年的感受是什么呢?是技术变化得真快,而且是越来越快!30年前我是用Apple II学习Basic的,80年代末2万多元一台的Apple II的计算能力不如当今一台200块山寨手机的CPU存储和计算能力;现在谁还用Apple II和Basic写代码呢?谁还记得20年前的Fortran是什么呢?谁还知道10多年前Java的CORBA总线?

技术热点的变化也是日新月异,2012年是移动端,2014年是智能硬件,现在是AI,是深度学习,是无人驾驶,明年是什么我不知道,一定会有新技术热点出现。我们公司随着业务规模的扩大,涉及的领域也越来越多,现在大数据的部分内容已经很多了,再加上Java,JS,Android,iOS,数据库等等,近期又涉及到OCR、图像处理和机器学习等内容,我们也会涉及越来越多的技术方向。

 

我非常庆幸自己能够赶上这样的技术飞速发展的时代,我可以亲眼见证技术进步对于人类社会效率的提升,我可以享受到科技带来的更多便利,并且更兴奋的是我也能够参与其中。对于技术人员来说,这是最好的时代!

但是在这样的时代,对于人的要求是越来越高的。如果你不愿意改变,那你会被推着、被迫改变。我举个例子,我的父亲今年74岁了,他70岁的时候要给他买个智能手机,他说太复杂、学不会、不想学、不肯要;结果现在呢?每天玩微信,经常和他孙子视频。连他这样几乎退出社会生活的老头都被影响,被逼着学习新事物,可见科技的力量有多大。老外说Change is always good,我们必须适应这样的节奏,个人才能安身立命,公司才能发展壮大。

在这样的时代,不再是一招鲜吃遍天,就说90年代的Fortran、DELPHI程序员,他们在干什么? 各位研发的同事怎么才能适应这样的时代?我就着我自身的经验写几篇文章给大家一点建议。