华为Android面试真题解析,附赠课程+题库

背景

经常有网友在知乎问答提两个问题:“现在学习移动开发还有前景吗?””开发还有什么可以研究的?“。网友回复:“现在还学移动开发?如同49年加入国军!”其实这两个问题对应着同一个现象,无论是准备入行或刚刚入行,还是比较资深的开发者,对于移动开发职业的未来,都有一些迷茫、一些焦虑。为什么会这样?

近年来,以深度学习为代表的核心算法突破,计算机计算能力的提升以及移动互联和云计算技术的发展,AI技术的发展开始切实影响到人们的生活。现阶段,人工智能技术已经运用在智能安防、智能交通、金融服务业、医疗行业、工业以及移动互联网等众多领域,并在各行业中引发一场大变革。

两年前,众多企业家在乌镇讨论如何适应移动互联网,而今天移动互联网时代已经结束了。有关数据预测显示,2017年中国移动互联网用户增速在3.5%左右,2018年降到不足3%。而在2013年,这个数字是将近15%,移动互联网人口红利带来的增长已见顶。

所以这里的结束不是说不用手机上网了,而是移动互联网市场进入相对平稳的阶段,互联网人口渗透率超过50%,这个风口已经没有可能出现独角兽。

学会深入思考,总结沉淀

我想说的第一条就是要学会深入思考,总结沉淀,这是我觉得最重要也是最有意义的一件事。

‌先来说深入思考。在程序员这个圈子里,常能听到一些言论:我这个工作一点技术含量都没有,每天就CRUD,再写写if-else,这TM能让我学到什么东西?

抛开一部分调侃和戏谑的论调不谈,这可能确实是一部分同学的真实想法,至少曾经的我,就这么认为过。

后来随着工作经验的积累,加上和一些高level的同学交流探讨之后,我发现这个想法其实是非常错误的。之所以出现没什么可学的这样的看法,基本上是思维懒惰的结果。

任何一件看起来很不起眼的小事,只要进行深入思考,稍微纵向挖深或者横向拓宽一下,都是足以让人沉溺的知识海洋。

‌举一个例子。某次有个同学跟我说,这周有个服务OOM了,查了一周发现有个地方defer写的有问题,改了几行代码上线修复了,周报都没法写。

可能大家也遇到过这样的场景,还算是有一定的代表性。其实就查bug这件事来说,是一个发现问题,排查问题,解决问题的过程,包含了触发、定位、复现、根因、修复、复盘等诸多步骤。

花了一周来做这件事,一定有不断尝试与纠错的过程,这里面其实就有很多思考的空间。比如说定位,如何缩小范围的?走了哪些弯路?用了哪些分析工具?

**比如说根因,**可以研究的点起码有linux的OOM,k8s的OOM,go的内存管理,defer机制,函数闭包的原理等等。如果这些真的都不涉及,仍然花了一周时间做这件事,那复盘应该会有很多思考,提出来几十个WHY没问题吧…

**‌再来说下总结沉淀。**这个我觉得也是大多数程序员比较欠缺的地方,只顾埋头干活,可以把一件事做的很好。但是几乎从来不做抽象总结,以至于工作好几年了,所掌握的知识还是零星的几点,不成体系,不仅容易遗忘,而且造成自己视野比较窄,看问题比较局限。

**适时地做一些总结沉淀是很重要的,这是一个从术到道的过程,会让自己看问题的角度更广,层次更高。**遇到同类型的问题,可以按照总结好的方法论,系统化、层次化地推进和解决。

‌还是举一个例子。做后台服务,今天优化了1G内存,明天优化了50%的读写耗时,是不是可以做一下性能优化的总结?

比如说在应用层,可以管理服务对接的应用方,梳理他们访问的合理性;在架构层,可以做缓存、预处理、读写分离、异步、并行等等;在代码层,可以做的事情更多了,资源池化、对象复用、无锁化设计、大key拆分、延迟处理、编码压缩、gc调优还有各种语言相关的高性能实践…

等下次再遇到需要性能优化的场景,一整套思路立马就能套用过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值