“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

极光推送 CTO 黄鑫:技术人要建立自己的知识图谱

  • 2015-10-28
  • 本文字数:3076 字

    阅读完需:约 10 分钟

EGO 是高端技术人聚集和交流的组织,每周我们都会对一位会员进行人物专访,在展示会员风采的同时,也分享会员们对技术、对工作、对人生的感悟,本周,我们邀请到了极光推送 CTO 兼首席科学家黄鑫。

扎实的底层服务是扩张关键

极光推送是一个做第三方云服务的公司,在最开始的时候做的是 JPush,就是通过云服务的方式,为所有的 APP 提供一种推送的能力。现在,我们同时也启动了多款产品,包括聊天、支付、数据分析平台等。

我对公司的规划,是希望有很多横向的服务,这也是为什么在 Push 之外,我们要做 IM、Pay 的原因。这样业务的横长能首先保证公司收益呈线性向上增长,但这种横向扩张的基础是必须要有一个扎实的底层服务,把你所有的业务都串起来,就好比滴滴有滴滴出行,把出租车、快车、专车、代驾等所有数据都整合到一起,彼此之间能相互利用。这种底层平台的能力是一个任何一个开发者服务公司都必备但是却被忽略的素质。

大数据与云结合产生更大价值

当把大数据和云服务结合在一起时,能产生很多不一样的价值,为开发者提供更好的服务。因为云服务汇聚的是各个 APP 开发者,如果我能把所有开发者的信息汇聚成一个大数据,然后把这些大数据分销给不同的开发者,举个特别简单的例子,一个电商 APP,我根据大数据预测出它用户的性别、消费能力等信息,然后把这些信息提供给这个电商 APP,这样它就能据此给它的用户精准推荐商品。这个时候,云服务的能力才是真正发挥到了一个极致的地方。

我觉得这个挑战是现在国内很多云服务都没有做得很好的,并且我认为我可以去把它做得更好,这也是我加入极光推送的原因之一。

总的来说,就是底层一个公共平台做业务整合,上层很多开发者服务来保证业务的横向扩展,最上层是一个大数据平台能够让公司的业务呈一个指数型的上涨,这是我的理解里,所有云服务平台必经的一条路。

理解算法背后的世界观

我比较擅长的领域可能是数据和架构两个方面吧。 大数据方面就是数据挖掘、数据分析等领域,我现在带着极光推送整个的数据团队,需要把握数据团队的技术方向,还需要做很多算法方面的研究。

对于数据挖掘,我经常提到的就是大家在理解一个算法的时候,一定要理解这个算法背后的世界观,一定要明白这个算法是为什么产生的、它解决了什么样的问题。

另外,算法是为产品服务的,所以,你关注到算法的时候,也一定要想清楚,这个算法到底能用到我们什么产品上。另外,算法是会有一个瓶颈的,所以你必须清楚什么时候需要用这个算法了,什么时候这个算法的收益率偏低,需要把它停下来了。要把算法跟商业做更好的结合,这是很多算法工程师非常欠缺的一点。

了解技术变革与技术组合

对于架构,在我看来一定要特别深入地去了解技术本身以及技术所经历过的变革。比如说 Redis,后来推出了 Redis-cluster,大家都知道 Redis-cluster 能解决哪些问题,但当我再问一个深一点的问题,从 Redis 到 Redis-cluster 为什么经历那么久时间,推出这个新版本、做出这个新方案的时候,它有参照哪些相似的技术、有哪些优点和缺点、可能会有什么样问题。你会发现,这个问题几乎可以难倒 95% 以上的人。也就是说其实他们并没有深入地去理解一个技术的变革,这在我看来是一个很大的问题。

另外,当了解了这些技术之后,你还需要能对这些技术做出灵活的组合,因为没有任何一种技术能解决所有的问题,尤其在我们现在的时代,你的业务线非常多、你的数据非常大……所以你一定需要有这种组合技术的能力,能把若干个技术组合到一起去解决问题,这也是架构的时候非常重要的能力,对创业公司尤其如此。

曾经有一个项目,我们发现原来的技术方案不合适,后来升级的时候就用了很多技术的组合,把很多开源组件中我们认为适合的一部分都用到这个项目里,最终它的查询效率提高了将近 100 倍。当然也有以前方案的问题,但是我们还是觉得这种方案的组合其实可以产生非常大的威力。

CTO 的挑战:技术、产品与商业

我现在负责整个技术和产品研发团队的管理。大公司的 CTO 可能更像一个 management,对具体的技术细节,他可能不需要特别了解。但对我们这样不到 200 人的创业团队来说,CTO 需要承担更多的技术职责,除了传统上的管理以及把握公司整体技术前进的方向之外,还必须要完成某些技术的攻坚。比如我会需要跟技术团队一起讨论跨 IDC 要怎么做、某一个算法要如何设计优化、甚至会讨论到某一个页面怎样的体验是最好的等等,这些很细节的层面,也都需要我作为一个 CTO 做一些把控。

当我达到现在这样程度的时候,也会对自己提出更高的挑战,因为创业公司的 CTO 其实在一定程度上决定了这个公司的技术瓶颈和技术高度,是你在引领整个公司的发展,所以你就不能拖后腿。

别人提出一个技术方案的时候,你要能够及时响应,并且能够告诉他这个方案可能会有哪些问题。而当别人没有提出的时候,你需要做的是第一时间提出新的技术方案,并且安排人去做研究和尝试。这些都是对 CTO 更大的挑战。

作为 CTO,50% 的时间做前沿技术学习,30% 的时间做对外交流,20% 的时间做竞品研究,20% 的时间做日常管理,这是我认为比较合理的时间安排,是的,做 CTO 需要花费 120% 的时间在工作上。

另外,在创业公司,尤其是在云服务公司,作为一个 CTO,你还需要去了解公司整个的商业模式。因为你比任何人都了解技术,所以你一定要知道公司以后到底要朝着哪个方向发展,比如说到底是要专注地去做推送,还是要去做数据,还是要做开发者平台,还有如何把握彼此之间的平衡等,这些都需要你去关注。你需要把技术和商业更好的结合起来,这一点可能是我最近一年最大的进步。

也许有的人的目标就是想做一个纯粹的技术专家,但对大部分人来说,你的技术其实是为产品、为商业服务的,这是我觉得很多人需要去做更多的思考、更多地走出去看业界的一点。

建立属于自己的技术知识体系

我的学习模式是,刚开始,我会把一门、两门技术学得非常深、非常透,并且在脑海里形成鲜明的两个知识点。然后我会不停的去接触新技术,但是每接触一个我都会跟之前的这两个技术点做比较、建立起关联,相当于形成三个点,而且这些点之间会不停地连成很多的边,显示着这些技术彼此之间的优势与劣势、相似与区别等,到最后就会在脑子里形成一张图。比如说 Python 支持这样的一个语法,我会想那其他的语言有没有也支持这样的语法的,其他的语言不支持的时候,它到底是怎么实现这个问题的。这样你就会对比起来了,而且你会发现,你加的点越多,你对之前的东西理解得越深。

所以说技术在很大程度上是相通的,这也是我特别喜欢计算机的一个原因,就是需要你不停的去学习,然后就会觉得你学的东西原来越来越有趣。

这是我觉得非常重要的一个能力,尤其现在全栈工程师非常火,但是我面试的时候却发现,很多人他的知识面很广,但无论是他们技术的深入度还是技术点之间建立起的联系都是不够的。比如他说我会 Java、Python 还会 C++,但当我问它们三个之间有什么区别、共性、面对具体项目怎么选择的时候,可能他就没法很好的回答,只能说出一些很浅显的东西。 在我看来,一个人不努力反而没那么可怕,因为当他遇到感兴趣的事情时,我相信也许他就会自己努力起来了。最可怕的是一个人其实很努力,但是他从来不思考,我身边就有这样的人,他读了很多的书,可能有上百本技术相关的书,但是你会发现,他看完就看完了,不去想这些书背后的东西,也不去深入思考这些书能产生的价值,这是我觉得非常致命的一点。

关于 EGO

EGO 里有很多不同公司的技术专家、技术高管等,我希望能了解到更多公司的发展模式,它们曾走过的路、在技术架构上的变迁等,也就是技术人员要走出去,看其他人是怎么做的,这是我对 EGO 非常大的期待。

2015-10-28 20:384246

评论

发布
暂无评论
发现更多内容

ByteHouse:基于ClickHouse 的实时计算能力升级

字节跳动数据平台

大数据 云原生 flink 消费 kafka Clickhouse 企业号 3 月 PK 榜

中国全屋智能市场将达万亿级,仅3.5%住宅渗透率拥有巨大潜力

Geek_2d6073

初学后端,如何做好表结构设计?

王中阳Go

Go golang 数据库 表结构 golang 面试

GaussDB(DWS)运维:导致SQL执行不下推的改写方案

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

腾讯大神耗时三年,立足实际开发的巅峰之作,详解高并发程序设计

做梦都在改BUG

Java 程序设计 高并发

不可错过!Arm 、Intel 及阿里云等资深技术专家现场解读系统安全

OpenAnolis小助手

系统安全 Meetup 龙蜥社区 sig 机密计算

adobe安装提示错误“Error:SyntaxError:JSON Parse error:Unexpected EOF”

互联网搬砖工作者

2022 OpenHarmony年度运营报告

OpenHarmony开发者

OpenHarmony

软件工程高效学 | 软件的内涵与危机

TiAmo

软件工程 软件开发

面试被怼:技术更新这么快,你还不懂响应式微服务就out了

做梦都在改BUG

Java spring 微服务 响应式

2023中国儿童防敏市场发展洞察

易观分析

医疗 防敏 儿童

百度CTO王海峰:全栈AI技术加持,打造新一代大语言模型文心一言

飞桨PaddlePaddle

Flink 在中泰证券的实践与应用

Apache Flink

大数据 flink 实时计算

百度文库接入文心一言,国内首个生成式AI文档服务即将上线

Geek_2d6073

pytest学习和使用3-对比unittest和pytest脚本在pycharm中运行的方式

Python 自动化测试 pytest

NFTScan 与 DeBox 达成合作,双方在 NFT 社交数据层面展开合作

NFT Research

NFT

金三银四互联网大厂精选1160道Java面试题答案整理(2023最新版)

架构师之道

编程 程序员 java面试

使用流水线插件实现持续集成、持续部署

北京好雨科技有限公司

Kubernetes CI/CD rainbond

镜舟:打造行业顶级国产OLAP数据库

镜舟科技

终于有人把Java面试高分Guide总结得如此系统,堪称傻瓜式笔记总结

采菊东篱下

java面试

好用的Java开发工具:IntelliJ IDEA 2022v2022.3.3汉化激活版

真大的脸盆

Java Mac Mac 软件 Java 开发

软件测试/测试开发丨接口测试必备技能-常见接口协议解析

测试人

软件测试 自动化测试 测试开发

跟着字节AB工具DataTester,5步开启一个实验

字节跳动数据平台

大数据 云服务 AB testing实战 ab测试 企业号 3 月 PK 榜

龙蜥自动化平台 SysOM 2.1 热补丁中心介绍 | 第 74 期

OpenAnolis小助手

直播 系统运维 龙蜥大讲堂 SysOM 补丁

面试官:try-catch放在循环体内还是循环体外,哪种效率更高?

做梦都在改BUG

Git客户端工具:SourceTree中文激活版

真大的脸盆

git Mac Mac 软件 Git客户端

pytest学习和使用4-pytest和Unittest中setup、teardown等方法详解和使用(最全)

Python 自动化测试 unittest 测试框架 pytest

CloudCanal 落地 StarRocks 数据迁移同步的实践与思考

StarRocks

数据库

苹果M1芯片的Mac怎么关闭SIP?M1 mac关闭Sip方法教程!

互联网搬砖工作者

测试人社区技术沙龙——计算机视觉在App兼容性测试中的实践

测试人

软件测试 测试开发 测试开发自动化测试

【分享】为什么我设计的PCB很少出错?

华秋PCB

工具 测试 电路 PCB PCB设计

极光推送CTO黄鑫:技术人要建立自己的知识图谱_语言 & 开发_陈园园_InfoQ精选文章