从书上学·在事中练·与高人聊!心力!

极客邦访谈100位牛人,通过直播方式为程序员提供知识服务,从技术、架构、业务、管理、思想等多方面来给正在路上的技术人提供一些参考,解答一些疑惑。现将听取的部分大牛的讲话内容记录下来,以此来总结反思自己。

张雪峰

2005年至2011年,张雪峰曾在微软任职超过5年,之后为携程国际事业部CTO。2015年3月,受时任饿了么联合创始人兼产品负责人汪渊的邀请,张雪峰正式加入饿了么担任首席技术官。2020年8月,张雪峰刚刚调任阿里巴巴本地生活服务公司CEO助理一职。

今天的访谈由于个人是带着耳机在路上听的,聊的内容也有些宽泛,所以也没有get到一些自己关注的点,于是就找了一下极客时间关于张老师的一些介绍和专栏信息,后面会附上链接。

整体的访谈对话上来看,张老师是一个比较谦虚、直白、“负面性”的人,看问题的level也比较高。毕竟在饿了么搭建并领导上千号的技术团队,承载饿了么日均千万级订单量的基础架构。也回答了以下几个问题?

  • 如何看待架构?

    他认为后端架构层面的东西,没有标准化好坏之分,关键是要在实践中去检验它是否合理。

  • 技术驱动业务?

    国内大部分公司不要想着技术来驱动业务,还达不到那样的level,除了google等这样的公司。优先做小而美的业务,做的深入了再说,要有核心竞争力和差异化,然后才是广度。不要一上来就要蕴量一个颠覆性的产品,超越微信、抖音之类的。

  • 国内和国外程序员差异?

    单从工程师文化来看,国内的人其实更加适合,只是过去大环境所导致的。现在已经越来越向好的方向发展,不一定非要去硅谷才能发展,谈到了像左耳朵耗子、黄东旭等大佬的成功经历。

  • 研发效能问题?

    张老师提到,还是要看最终的结果以及业务价值等。而不是想着如何提高效率,来提升业绩,比如一些规模在50人以内的公司。当时在饿了么,技术的团队为了检验产品提出的需求有效性,跟踪上线后的效果,最终也没有一个相对合理的衡量标准,特别是过了业务增长期了,如何迭代产品特性,后来也是不了了之了。

最后,张老师给出建议,追寻自己的内心,抓住自己的兴趣点深入下去就可以了。

参考链接:

周志明

周志明老师,就职于华为从事架构师、研发管理等工作,个人详情查看领英链接或个人网站,很多人认识他的应该是通过《深入理解Java虚拟机》这本书。本次连麦讨论的内容主要围绕参与者在线上提出的内容展开,以下记录整理部分个人比较关注的内容。

  • Java在云原生下的趋势?

    过去Java提到一次编译多次运行,也就是跨平台特性是相对于C/C++这样的语言来说的,依赖底层操作系统、芯片架构等。然而,现如今K8s作为一个云操作系统,通过调度Pod方式运行多个实例,天生已经做到了屏蔽底层硬件或操作系统。反而,Java的运行环境所要求的包变得更加重,某种程度来说这也使得像Go\Rust等后端语言变得更加兴起。

    因此,未来10年,随着微服务、云原生、云计算的发展,新的云原生语言可能会有更好的市场。也就出现了两个方向代表:一个是JVM系:Java/Scala,另一个是云原生系:Go/Rust。

  • 如何看待ToC和ToB发展趋势?

    国外互联网时代的发展,出现了Google这样的ToC公司(当然也有ToB),同时也出现了Oracle这样的ToB的公司。反观国内互联网的发展ToC领域,也出现了很多头部公司。但是ToB领域,还没有看到。此外,像编程语言、基础软件几乎都是国外的。当然,周老师也比较看好国内未来10年的发展,随着国家在人才、经济、调控等政策向ToB企业倾斜,包括信创战略,ToB领域的公司会迎来类似过去10年ToC互联网式的发展。

    此外,做ToB如何和做ToC的互联网一线技术保持同步,周老师认为需要自身主动去寻求沟通,做好技术的交流,形成互补。

  • 怎么理解架构?如何看待业务架构和技术架构?

    过去谈架构,更多是在业务架构、应用架构、数据架构以及技术架构的纬度去讨论,而在当下会基于微服务、云原生的思路来讨论架构。微服务强调全生命周期的管理,而不是过去测试、开发、SRE等细化的分工。

    优秀的业务架构师,大多也是合格的技术架构师。但优秀的技术架构师,就不一定是合格的业务架构师了,贴近业务或许要多走几步,比如像ToB方向。

  • 如何构建知识体系?

    这个问题也可以换个说法,知识不成体系怎么办?广度和深度的平衡?知识体系需要通过知识的积累来构建,而技能更多是用于工作。

    首先,是要构建金字塔基座,也就是广度,比如对计算机领域的关键核心知识的掌握,比如计算机体系架构、操作系统等。其次,是要构建金字塔塔尖,也就是深度,比如分布式领域。

    如何验证知识是否已经成为体系,那就需要讲自己认为掌握的去进行输出,比如博客、演讲,让别人去理解你的阐述,并提出质疑和讨论,在这个过程中去完善自己其实还不太明白的地方,夯实知识体系。

    作为有多年工作经验的人来说,关键是要提高自己接受新知识的加速度。

  • 技术与管理?

    周老师提到AWS的贝索斯的一些理念,认为8-12人的团队是最为健康的团队。对于一个技术团队来说,技术管理者出身技术,同时能带领团队发展是比较和谐的,相比于一个纯管理者来说,有先天的优势,比如技术上的认可、关键问题的指导。

  • 如何看待算法的学习?

    周老师认为算法是一种锻炼逻辑思维的方式,要成为一种习惯或常态化的内容,甚至是茶余饭后的一种消遣,而不是一种负担。

  • 推荐书籍?很经典值得一看!!!

    深入理解计算机系统》、《现代操作系统》、《数据密集型应用系统设计

    凤凰架构》、《智慧的疆界

阅读经典的书籍,广度和深度的平衡,知识体系的构建,技术前沿的把握与思考,内在的兴趣要大于自律的约束,向前辈们学习。

沈剑

沈架老师,08-09年百度工程师,专注于后端即时通信领域。11年到58同城商家平台,做即时通信的平台,从0起步开始后端架构搭建,角色从架构师到负责人,带领团队5-10人。后期,轮岗为各个业务做架构设计。15年转到到家集团的58到家,从刚开始的5个人,到了16-17年团队发展达到了100人,承担整个技术体系建设。公众号:架构师之路。

本次访谈主要以技术管理为主题,我摘录了部分关注的话题内容?

  • 对各个层级管理者的理解?

    一线管理者:腿部力量,要落地。10人以内,也会参与核心架构涉及、代码编写。

    二线管理者(总监):腰部力量,上传下达。4-5个人,下面核心骨干和架构师,关注公司重点方向。

    技术VP:脑部力量。需要下面总监给反馈一线那一侧的情况。来构思一些能力解决一线的问题。比如技术选型,包括运维、开发、测试的熟悉程度,人力成本之类的。

  • 技术和管理的取舍?

    技术管理者,一线和二线是需要懂技术的,需要帮助员工解决问题,但不需要是专家。自己懂得就解决,不懂得就需要协调资源协助解决。新的前沿技术是需要去关注的。绝大部分的精力在团队目标,沟通,规划方面。深入一个技术傍身和带好一个团队还是有很大区别的。

  • 员工做事拖沓如何处理?

    设定清晰的个人和团队的目标,需要结果导向。特殊的情况是需要鼓励员工,价值认同感,但不能长期处于这样。设置合理的OKR,帮助团队成长和提升。如果团队超过7个人,必须要设置一个1。

    10%-20%技术驱动业务,主动去想的。其他大部分时间在交付。技术团队为交付团队负责,如何技术团队评价优?比如固定的时间段内能迭代并交付多少需求,也依赖一些研发效率工具的,收集各个指标,各个团队之间的横向对比。

  • 如何培养人才梯队?

    提拔271中的头部同学,以及他们的意愿。让对方来做自己正在做的事情,比如80%的事情必须要做,可以让对方锻炼尝试去做。

    权威:按照我说的做,最高效,但要能很确信自己的方案;

    支持:帮助协调资源;

    教练:辅导指名一些方向;

    甩手张掌柜:不管不顾,能力达到一定程度;

  • 架构师如何引导新人?

    新人提出方案,可以给出优劣势,引导新人提出自己的想法,提升新人的架构思维;

    如果架构师给出根据我的经验,就这么办来回应的话。员工积极性打压,而架构师本身长期也会思维定势和固化;

    关键问题一定要专家决策而不是管理者决策。

  • 技术成长?

    技术,架构,团队,演讲,写文章。自己认准的事儿会全力以赴。比如,写文章的动因?输出倒逼输入,前期调研、梳理、画图、系统性总结,从而提升了笔者本身。时刻问内心是否喜欢,或帮助他人,做原创,持续做下去。

技术人做到一定阶段,不要纠结于所有技术的全面性,需要把早期所在领域积累好后,要提高技术视野以及架构思维、组织思维的能力,协调组织其他领域的专家来解决不是自己擅长的问题,从而完成整体的目标。同时,技术人也要保持技术的前瞻性和战略,带领好团队做好规划技术和产品,支撑业务,驱动业务向前发展,设置合理的OKR,激发员工,快乐高效工作。

王保平

阿里前端大牛P10,花名玉伯。之前在软件所写.net, c#写cs端软件。08年加入淘宝, 13年时间。08-12: 写代码, 交易项目(至暗时刻, 创新项目失败)。13-18: 做技术产品, 到蚂蚁做可视化, 技术平台, 语雀。19-至今: 管理, 帮助别人成事, 做产品的心态带团队. 早期以事情驱动团队, 越来越大,重新思考. 产品架构\组织结构\团队规划与职责。关键词: 成事能力(包括帮助团队), 要保持谦卑心态。守正出奇: 守住当下,服务好业务,同时投资未来。(比如华为海思)。

本次访谈,主持人基于自己的感悟、听友的提问和玉伯讨论了以下几个问题?

  • 数据可视化? 相关趋势?

    可视化: 数据分析\BI 智能可视化 AIoT canavs(性能) svg(兼容) webAssembly(硬件) webGL

    智能化: 在端侧跑tensorflow, 智能UI(千人千面)

    低代码: 后续成千上万的saas系统的开发问题, 人员开发和平台自动化, 降低开发门槛.

    云原生

  • 低代码和无代码?

    低代码降低saas开发门槛, 一种针对垂直领域(逐渐增多, 小型创业公司在做), 一种是通用的,比如蚂蚁云蝶凤舞等, 对接后端接口生成应用(较少). 更多是给后端开发的人或生态用工使用的, 而针对专业的前端人员, 依旧要采用代码解决专业的问题.

  • 作为前端团队leader需要考虑什么?

    支撑好公司业务, 技术的先进性(5-10年), 团队效能(快乐工作)

    定义OKR, 关注目标. 中期问卷,关注团队人员的满意度. 以事聚人, 因人成事.

  • 在公司太安逸,如何改变?

    需要寻求突破, 优先内部寻找机会.

  • 如何学习?评判人员能力?

    找经典书籍去看, 比如AI, 用python写demo. 或者线上一些课程.

    技术能力, 潜力(学习能力, 成事欲望), 开放度(保持好奇心, 与人沟通)

  • 如何看待新技术?

    主要跟当前工程化工作有关, 能否解决问题.

  • P系列各阶段要求?

    p5-6: 关注技术的深度和广度;

    p7-8: 技术+业务. 将业务问题转化为专业问题去解决, 以及基于技术做好业务架构;

    p9-10: 全局视野, 让别的人1 + 自己的 1 > 2, 形成更大的价值, 关注那个+号整合的能力.

  • 推荐书籍?

    被讨厌的勇气、象与骑象人、思考快与慢

  • 个人签名:因上努力, 果上随缘,自己的做事观?

    努力做好当下的事情。但行好事, 莫问前程。

从玉伯的谈话中,感悟到个人要从自身的因去出发,向内求索,每个阶段做好每个阶段的事情,锻炼自己的心力,寻求自己的突破。

吴其敏

现任平安银行首席架构师·20年互联网老兵,具有eBay、大众点评、携程、平安银行四家公司的从业经历。他认为每换一个家公司,都要通过做事情来证明自己,构架自己的技术影响力,而不是作为领导来命令大家。作为开源的分布式监控系统CAT主要推动者,一直致力于监控领域的能力建设、架构设计和团队管理工作。

本次访谈,主持人基于听友的提问和吴架讨论了以下几个问题?

  • 平安银行的基础架构技术栈?

    中间件部分涉及RPC能力Dubbo、消息队列RocketMQ和Kafka、高速缓存Redis、数据库访问ShardingSphere、数据库MySQL、配置中心Apollo、监控中心CAT、调度和网关等。

    同时,还谈到了对分布式事务的理解。事务强调一种统一性、一致性,分布式事务有一定的应用场景,但并不会在大范围内使用,性能会受到局限。

  • 大数据的前景?

    认为批处理在当下仍然具有一定的应用场景,但更加看好“实时处理”的未来。他认为,对于业务来说有些信息的时效性分钟级相对于秒级,它的价值就会大打折扣。同时,他也比较关注CAT在采集端输出海量数据的能力,从而给各方去做分析处理、可视化展示。

  • 对于当下各种语言如何看待的?

    分为两大类,强类型和弱类型。强类型,比如Java,适合大型系统,但维护成本高。弱类型,比如Python、JavaScript,适合快速迭代小系统。针对Java语言,动态编译、反射、字节码技术,都是非常好的特性,都在CAT中得到了体现。同时,后期也会比较关注Rust语言。

  • 架构师应该具备什么样的能力?对架构的理解?

    解决问题的能力,在多种解决方案中寻找合适的可以解决问题的方案。这里面涉及到的不仅仅是技术层面的,还有管理层面的。要具备在关键节点的攻坚能力,同时要业务协调、团队沟通(一组人的思想碰撞而非单个人的)、分工协作等等。总结两方面:技术+管理。

    没有最好的架构,只有合适的架构。在做架构时,要根据业务、团队、技术、成本等多方面来考量,对于当下来说比较适合的带有时间属性的架构,来解决当下的最本质的痛点问题。当然,有了坚实的架构,后续的实施、维护各个环节都要得到保证。最后,他的架构名言就是“高内聚,低耦合”。

  • 如何学习?推荐哪些书籍?

    谈到学习,首先要打好基础(计算网络、数据结构、分布式系统、数据库等等),看书多看经典的书籍,提升思维,练内功,不要太拘泥于招式本身;其次要学会分享让别人能听懂,这样才能转化为自己的知识;最后是要多动手实践,整理总结。他选人的标准是基础好、有悟性、肯努力。总的来说,要保持对技术好奇心,根据自己的兴趣,选择某些领域,扎根到社区。

    吴架认为要远离哪些凑页数的书,看再多都没有提升。对于他而言,要抓住基础。比如,Java Language and Virtual Machine Specifications精益创业

从吴架的访谈中,我个人体会到技术和管理的认知提升的重要性,是需要一点一滴逐步沉淀的。不管是做基础架构还是业务,在大的方向和整体目标没有偏差的前提下,还是要关注怎么做,而不是纠结于做什么。