极客邦连麦百位牛人观后实录
从书上学·在事中练·与高人聊!心力!
极客邦访谈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、精益创业。
从吴架的访谈中,我个人体会到技术和管理的认知提升的重要性,是需要一点一滴逐步沉淀的。不管是做基础架构还是业务,在大的方向和整体目标没有偏差的前提下,还是要关注怎么做,而不是纠结于做什么。