在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

极光推送 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:385034

评论

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

阿里大佬 推荐的 “ Spring Cloud Alibaba项目文档 ” 正式发布

冉然学Java

Java 微服务 Spring Cloud Alibaba

连流量染色都没有,你说要搞微服务?

得物技术

架构 微服务 云原生

STM32入门开发 制作红外线遥控器(智能居家-万能遥控器)

DS小龙哥

8月月更

测试开发【Mock 平台】09 开发:项目管理(五)搜索、删除和Table优化

MegaQi

测试平台开发教程 8月月更

属实不赖!Alibaba开源GitHub星标114K微服务架构全彩进阶手册

冉然学Java

Java 阿里巴巴 开源 微服务 微服务架构

用Rust编写的Linux内核GPU驱动程序,或将到来

非凸科技

Linux gpu rust 编程语言

最常见的 10种网络安全攻击类型

郑州埃文科技

网络安全 IP地址 网络攻击

35岁程序员危机,有何破解之法?

博文视点Broadview

DAPP和APP有哪些区别?多链跨链NFT铸造挖矿dapp系统开发技术原理分析

开发微hkkf5566

一文详解特权访问管理(PAM)

SEAL安全

安全 访问权限 访问管理 特权访问

一对一直播系统源码——多人语音聊天室

开源直播系统源码

直播系统源码 语音直播系统 一对一直播视频源码 一对一语音直播

为什么电商云产品需要 Assisted Service Module (ASM) 模块的支持

汪子熙

typescript 电商 SAP 8月月更 Storefront

人手一套的K8S命令集合,它来了!

wljslmz

云计算 Kubernetes 容器 8月月更

一文搞懂│mysql 中的备份恢复、分区分表、主从复制、读写分离

已注销

MySQL 高并发 经验分享 签约计划第三季 8月月更

基于RocksDB实现高可靠、低时延的MQTT数据持久化

EMQ映云科技

物联网 mqtt RocksDB emqx 8月月更

《亲密关系》:如何保持良好的亲密关系?

郭明

读书笔记

SpringBoot 日志的各种使用姿势,你真的用对了吗?

程序知音

Java spring 程序员 springboot 后端技术

增强分析在百度统计的实践

百度Geek说

数据库

Groovy语境下的Map

FunTester

Kotlin协程解析系列(上):协程调度与挂起

vivo互联网技术

kotlin 协程

寻找OpenHarmony「锦鲤」|万元豪礼+技术干货全是你的!

OpenHarmony开发者

OpenHarmony

多原则等于无原则,微服务识别方法究竟该怎么选?

老坛架构

架构 微服务

以合规交易释放数据“红利”,合合信息旗下启信宝签约福建大数据交易所首批数商

合合技术团队

数据 峰会

DBPack 数据库限流熔断功能发布说明

峨嵋闲散人

分布式事务 云原生 分库分表 dbmesh Database Mesh

为什么不做APP而要做小程序

源字节1号

小程序开发

《数字经济全景白皮书》银行业数字普惠金融发展与优化策略分析 发布

易观分析

金融 数字经济全景白皮书 易观分析

SSM框架整合(Spring+SpringMVC+Mybatis)

开源 SSM框架 8月月更

如果让我设计一套,TPS百万级API网关!

小傅哥

Java 微服务 小傅哥 分布式架构 网关

Java 泛型 T,E,K,V,,傻傻分不清?

TimeFriends

8月月更

开源 | WLock:高可用分布式锁设计实践

开源 分布式 分布式锁

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