如果你已经是一个程序员的话,我想你的回答应该和大多数人是一致的。我们希望我们能更多地独立完成一些事情,也不喜欢像是code review这样繁文缛节的环节,我们自己保证代码的质量就可以了嘛,为什么非常接受别人的审判呢?有的时候一些低级错误会让我们显得很傻,但错误在所难免不是吗?

大佬们没有直接给出观点,但他们给出了一个事实,就是在Google,所有的代码都必须经过code review才允许合并。其实这些问题与其说是强调code review的重要性,不如是拷问一下我们的心态,我们对于与人合作这件事情究竟有多么的包容。

走出洞穴


在一些美剧或者是一些电影当中,往往会被程序员描绘成躲在洞穴里的原始人。他们捣鼓着只有他们自己懂的东西,却突然有一天拿出一款惊艳的产品来改变世界。

比如营销号经常提到的写出Linux系统内核的Linus,还有写出Windows系统的比尔盖茨等等。很多不明就里的程序员也是这么自居的,他们的内心也渴望着能够成为一个这样的原始人。但实际上事实是,世界上几乎没有任何一款被大众所熟知或者是广泛使用的软件或者程序是由一个人写出来的,Linus没有写出Linux系统,他完成的只是系统内核,Guido也没有写出完整的Python。这些营销号传颂的故事都是错的。

渴望独居,希望孤军奋战也许是众多程序员们内心的渴望,但这样其实是不对的,我们不能真住在洞穴里。Ben说由于他们负责的是subversion的开发,subversion就是一款类似于Git的产品,用来做代码版本控制的。他说每年他们接收到最多的反馈就是,你们能不能做一个功能可以把我的一些提交隐藏起来?你们能不能把我的整个repo藏起来,直到我觉得代码已经OK了才显示?你们能不能提供把repo里代码全部清除的功能?因为我觉得之前的代码太蠢了?

要知道写这些反馈的人都是Google的工程师,号称是容纳了全世界最多天才的地方。就这样顶级公司的顶级工程师,居然会觉得自己的代码蠢,也会想要隐藏起来不被他人看见。这其实某种程度上说明了,心态和实力也许并没有什么关系。所谓的强者也可能有弱弱的心态。

bus factor


大佬们没有生硬地告诉我们,不能当原始人,需要走出洞穴与其他人交流,再给一些鸡汤什么的。他们提出了一个非常非常有意思的理论,叫做bus factor,即巴士因子。

这个理论是什么意思呢?想象你在一个开发小组当中,这个小组有一个大牛级的工程师,所有的方案设计以及技术细节他都了如指掌。有一天他上班的时候突然被巴士撞了,再也不能来上班了。请问这个小组会发生什么?也许不会一夜崩塌,但肯定会遭遇巨大的困难。对你而言一定非常痛苦,无数的问题得不到解决。

能够让一个核心程序员离职或者是离开的并不一定是车祸,还有许许多多其他的原因。比如他准备结婚了,生孩子了,中彩票了等等等等。一旦某一个核心程序员因为一些私人的原因离职,团队就陷入混乱,那么说明这个团队的巴士因子很高。即大量的技术依赖都在同一个人身上,相反如果核心的人员离职并不会引起震动和海啸,那么这样的团队的巴士因子就很低,也就是说抗风险能力很强。

那怎么样才能降低团队内部的巴士因子呢?大佬们没有明说,但答案已经就在眼前了,就是要走出洞穴,多多和其他同事交流,彼此做code review,知道对方都在做一些什么。

放下自我


单枪匹马是做不出优秀的产品的,同样单打独斗也不可能成为行业中的大佬。我们向上攀登和成长的过程必然伴随着与他人的交流和互相学习,我们不要惧怕这一点。

Fitz举了Apache开源社区的例子,一群互不相识的工程师聚集在一起,完成了一款伟大的产品。但是在这个过程当中,人是比代码更重要的东西。这些代码不是凭空产生的,突然凭空得来一堆代码并没有任何意义。有意义的是一群工程师的灵感互相碰撞,互相启发,彼此都觉得自己在做一件伟大的事情,彼此都为自己所做的事情为傲,在这个过程当中,大家都放下了自我。

放下自我的英文他用的是drop the ego,ego有自我和自尊的意思。我们放下自我,才可以接纳别人的想法,才可以融入一个集体或者是社区当中,才能为了当下所做的事情骄傲。

不断学习交流


我自己做Android开发已经是接近八年,2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,19年5月份进了字节跳动一直到现在。

字节跳动除了优秀的同事之外,大公司里往往还有丰富的内部文档和资料。同时我在内部看到了很多优秀的文章,也有很多优秀的技术沙龙和分享。现在想起来2年下来,也没有去过几次,文章和资料看得也不算多,现在想想颇为遗憾。别的不说,就拿推荐领域而言,近些年质量不错的论文往往都来源于大公司尤其是国内的大公司,以阿里、华为和头条为主。除了公开的论文,公司内部还有很多技术相关的资料和文档,这些真的可以说是有价无市,非常珍贵。

以下分享一下我近八年抗战Android的具体学习路线及笔记文档,希望能让程序员放下自我,不断学习交流,帮助到有心提升技术的朋友!

以下完整学习笔记PDF,点击这里免费下载获取!

而作为一名Android程序员,如何破局!构建属于自己的一套架构知识体系就显得尤为重要了!

一线互联网大厂Android架构进阶学习路线


  • 架构师筑基语言基础

目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

知识要点:

1、深入理解Java泛型

2、注解深入浅出

3、并发编程

4、数据传输与序列化

5、Java虚拟机原理

6、高效IO

  • 设计思想解读开源框架

随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。

所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。

知识要点:

1、热修复设计

2、插件化框架设计

3、组件化框架设计

4、图片加载框架

5、网络访问框架设计

6、RXJava响应式编程框架设计

  • 360°全方位性能调优

在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。

另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。

知识要点:

1、设计思想与代码质量优化

2、程序性能优化

启动速度与执行效率优化

布局检测与优化

内存优化

耗电优化

网络传输与数据储存优化

APK大小优化

3、开发效率优化

分布式版本控制系统Git

自动化构建系统Gradle

4、项目实战

启动速度

流畅度

抖音在APK包大小资源优化的实践

优酷响应式布局技术全解析

网络优化

手机淘宝双十一性能优化项目揭秘

高德APP全链路源码依赖分析

彻底干掉OOM的实战经验分享

微信Android终端内存优化实践

  • Android框架体系架构

最后

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。

所以,长征路还长,大家还是好好地做个务实的程序员吧。

最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~

CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》

Google大佬自述:天才程序员竟也有不为人知的秘密,还在等机会相关推荐

  1. Google大佬自述:天才程序员竟也有不为人知的秘密,看完真的学到了!

    缘起 最近在YouTube里看了一条谷歌大佬的公开演讲,题目叫做The Myth of the Genius Programmer,翻译过来就是天才程序员的秘密.这篇演讲是两位在谷歌subversio ...

  2. 一个天才程序员的黑帮大佬人生

    有的程序员驱动光明世界,也有程序员成为黑暗疆域主宰. 这就是刚刚被曝光的"保罗哥"事迹. Paul Le Roux (保罗·乐·鲁克斯),一个47岁程序员,1972年生于津巴布韦, ...

  3. 有的程序员驱动光明世界,也有程序员成为了黑暗疆域的主宰!一个天才程序员的黑帮大佬人生

    一个天才程序员的黑帮大佬人生.这就是刚刚被曝光的"保罗哥"事迹. Paul Le Roux (保罗·乐·鲁克斯),一个47岁程序员,1972年生于津巴布韦,码农生涯开始于南非,靠加 ...

  4. 80后天才程序员,Facebook 第一任 CTO,开挂人生到底多变态?

    https://www.toutiao.com/a6695906930474353156/ 今天介绍一位天才程序员--亚当·德安格洛(Adam D'Angelo),他被<财富>杂志誉为&q ...

  5. 80后,天才程序员, Facebook 第一任 CTO,看看开挂的人生到底有多变态?

    今天介绍一位天才程序员--亚当·德安格洛(Adam D'Angelo),他被<财富>杂志誉为"科技界最聪明的人之一",大学去了被誉为"天才"摇篮的加 ...

  6. 与Linus Torvalds“并列”,虚拟化天才程序员法布里斯贝拉

    摘要:谈起阿兰·图灵.高德纳.艾兹赫尔·戴克斯特拉,我们并不陌生,这些振聋发聩名字背后是颠覆了人类生活的现代计算机工业.然而有些人的荣誉却远低于他的贡献,比如Fabrice,过去20年最闪亮和最有影响 ...

  7. 云计算技术背后的那些天才程序员:KVM之父Avi Kivity

    摘要:KVM以其精简的架构,清晰的定位获得Linux社区多数开发人员的支持并快速被合并入主干,从而成为x86全虚拟化技术的一颗新星,其提出者Avi Kivity对于计算机体系架构和Linux内核有深入 ...

  8. 云计算技术背后的天才程序员:Open VSwitch鼻祖Martin Casado

    摘要:Martin Casado被称为软件定义网络之父,OpenFlow的发明人.Nicira的创始人.硅谷最炙手可热的"40 under 40"之一,另外,他提交的虚拟交换机Op ...

  9. 不朽传奇-云计算技术背后的那些天才程序员:Qemu的作者法布里斯贝拉

    作者:Liu Guo Hui,OpenStack中国社区,转载请注明出处 众所周知,虚拟化技术是构建云基础架构不可或缺的关键技术之一,而在众多虚拟化技术实现当中,KVM(Kernel Virtual ...

最新文章

  1. 编写一个方法,找出两个数字中最大的那一个。不得使用if-else或其他比较运算符。...
  2. 在js中加html_在HTML文档中嵌入JavaScript的四种方法
  3. CAShapeLayer + UIBezierPath
  4. 锐捷交换机清除mac-address-table(mac地址表)
  5. 9b9t服务器显示连接超时,Fabric-sdk-go实例化链码连接7053端口等待超时
  6. 23个机器学习项目,助你成为人工智能大咖
  7. springCloud五大组件--Eureka
  8. 【Level 08】U06 Good Feeling L1 End-of-season game
  9. 马云的妻子张瑛有多优秀?
  10. 在线IP地址查询工具
  11. java深度解析mp3文件
  12. 第4章 基本TCP套接口编程
  13. linux机顶盒线刷教程,机顶盒刷机教程 机顶盒刷机步骤详解与注意事项
  14. HTML header 标签的用法
  15. Android保存图片到系统图库并通知系统相册刷新
  16. android app 按键精灵,安卓按键精灵的,关闭app程序问题!
  17. 利用duplicity与金山快盘 for UbuntuKylin 实现文件云备份
  18. 基于matlab 宗晓萍,宗晓萍 - 河北大学 - 电子信息工程学院
  19. P3647 [APIO2014]连珠线
  20. 基于微信小程序房屋出租民宿预定app设计

热门文章

  1. 网络入侵检测论文阅读1
  2. 音频(五)——性能指标
  3. 进入MySQL的两种方法
  4. 电脑里的计算机无法打字,计算机无法在计算机上打字的原因是什么[解决方案]...
  5. 【CentOS7】Clamav病毒库的安装与部署
  6. PHP message:filesize(): stat failed for 错误
  7. 【机器学习实验二】决策树(Decision Tree)及其在图像识别任务上的应用
  8. ABBYY Mac中如何实现PDF到Excel的快速转换
  9. 图像分类和图像检测介绍
  10. spark提交python程序_pyspark:带有spark提交的jars依赖