任玉刚,百度公司Android资深工程师,《Android开发艺术探索》作者,热爱分享和开源,常年活跃在CSDN和Github。除此之外,他还是CSDN博客专家,2014十大博客之星。从一名菜鸟演变为资深工程师,在他看来,也有自己的辛酸历程,尽管他已成为一名资深工程师,但他仍然不敢自称为“高手”,因为技术是无止境的,对技术应该抱有一颗敬畏的心理。
  
  任玉刚,百度公司Android资深工程师
  
  CSDN:请先自我介绍下,目前的工作领域以及公司。
  任玉刚:大家好,我是任玉刚(微博),是一名Android程序员,目前我在百度公司参与百度手机卫士的开发工作。我时常活跃在CSDN和Github上面。
  
  CSDN:从最初的Android菜鸟到如今的Android高手,这一路走来你有哪些辛酸历程?给你最大的感悟是什么?
  
  任玉刚:虽然我在Android开发技术领域有了一些自己的理解,但是仍然不敢自称为“高手”,因为技术是无止境的,我们对技术应该抱有一颗敬畏的心理。
  目前我从事Android开发工作已经有3年了,和大多数Android开发者一样,我也是一步一步过来的。尤其是我12年刚接触Android开发时,由于缺乏专业的指导,整个学习过程基本上都是以摸索为主,这个阶段就会感觉进步很慢,甚至有时候还会犯一些比较低级的错误,比如曾经用View去post一个runnable,然后在run方法中做耗时的操作。这种摸索的学习方式在一年后有了改善,毕竟摸爬滚打了一年,我也渐渐有了自己的学习方式和心得体会,就这样持续努力地学习着,到目前为止可以算是对Android应用开发有了一个不错的理解吧。
  如果问我这三年的学习生涯中最大的感悟是什么,那我想说:“应该是学习路线和技术书籍的缺乏吧“。为什么这么说呢?
  
  首先说学习路线。Android开发给人的感觉是门槛很低,因此有不少人会说Android很简单,实际上Android开发即简单也不简单。简单是因为它入门快、上手简单,不简单是因为Android的知识点比较琐碎,如何从琐碎的知识点中理解Android的本质并形成一个完整的知识体系,这是不简单的。相信不少开发者会有这种感觉,那就是觉得Android的好多知识点自己都懂,但是又不是特别懂,这点在面试中体现地比较明显,“我做应用开发完全没问题,但是大公司的技术面试却很容易失败”这种感觉相信很多人都会有,这就是碎片化的知识未形成一个完整的体系的表现。如何对Android建立全面的理解?这需要一种有效的学习方式,在学习过程中需要知道哪些知识点需要深挖、哪些知识点需要融会贯通、哪些知识点了解即可。有关Android学习路线这是一个深入的话题,并且有可能没有最佳的学习路线,因人而异。我结合自己在Android应用层的学习过程,描述了一个适合我自己的学习路线,大家可以适当参考下:http://blog.csdn.net/singwhatiwanna/article/details/49560409。
  然后说一下技术书籍。如果大家看了上面的那篇Android学习路线,就会发现那上面提到的很多知识点都有一定的难度,并且也没有相应的书籍去专门介绍这些知识点,我曾经翻遍了图书馆的Android书籍,也没有找到一本书有讲述View的滑动冲突这方面的内容。所幸的是国内的Android技术圈比较活跃,网络上会有一些比较不错的技术文章可以供开发者提高Android开发水平,但美中不足的是,不少技术文章都比较零散并且也没有那么全面。这个时候一本好的技术书籍,它的作用无非是巨大的。
  
  CSDN:为何想到写《Android开发艺术探索》这本书?契机是什么?
  任玉刚:相信很多人已经阅读过《Android开发艺术探索》并且也很理解我写这本书的初衷,因为我在前言中做了详细的描述。我在前面有提到,国内的Android开发者在提高的过程中缺乏合适的学习路线和技术书籍,主要是市面上入门书籍太多了,但是我们不否认入门书籍为Android技术普及所做的巨大贡献,然而仅仅通过入门书籍的确无法进一步提高开发者的技术水平。为了让Android开发者更好地提升自己的技术,于是我写了这本书,读过书的朋友都知道,书中很多知识点都是新颖的、网络上无法搜索到的。
  从内容上来说,《Android开发艺术探索》是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。书中从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层开发过程,融会贯通,介绍一些比较深入的知识点;第三,介绍一些核心技术和Android的性能优化思想。可以看到,书中通篇几乎没有入门知识,更加侧重于Android知识的体系化和系统工作机制的分析,通过这本书的学习可以极大地提高开发者的Android技术水平,从而更加高效地成为高级开发者。
  有很多读者和我反馈,说这本书适合面试,很多公司的一些看起来很难的面试问题书中都有提及。但是我写这本书的目的不是为了让大家更好地面试,而是更好地提高技术从而成为高级工程师。

CSDN:写这本书期间有没有遇到过困难,又是如何克服的?
  任玉刚:写书的过程是艰辛的,遇到最大的困难就是难以坚持。由于白天需要上班,晚上有时候还有加班,因此写书的时间就只有周末和每天晚上下班后了。大概书写到第4章的时候,有时候写着写着就会突然觉得好难受,压力好大的感觉,但是想到这本书对广大Android开发者的意义,想到我写这本书的初衷,我就会觉得这件事必须坚持下来,很多时候我们缺乏的就是坚持。回想起写书的过程的确很辛苦,但是书出版后我收到了很多读者对我的反馈,其中最多的反馈就是类似于“谢谢你写了这本书,让我很多知识点都豁然开朗”这种了,我很欣慰,总算心愿得以完成。可能有人说,写书是为了赚钱,这个了解的人都知道,通过写技术书籍来赚钱其实是不划算的。就我来说,写这本书的目的是为了更好地提高Android开发者的技术水平,同时传播我的技术,我是一个热爱开源、热爱分享的Android程序员。

CSDN:在你看来,Android开发者在学习过程中最棘手的问题是什么?
  任玉刚:其实棘手的问题有很多,这里列举几个,比如自定义View、滑动冲突、IPC、源码阅读等等,Android开发者都深有体会,自定义View算是一个比较难的话题了,滑动冲突就更不用说了,很多开发者都搞不清楚如何处理滑动冲突。IPC的话主要是指AIDL和Binder相关的一些东西,这个在Android开发中真的很重要,至于源码阅读这个就更难了,很多人估计会觉得无从下手,其实这些都是可以理解的,因为它的确有难度,但是它们都是可以克服的。
  自定义View和滑动冲突其实归根结底就是View相关的东西,把诸如View的滑动、事件分发以及View的底层工作原理搞懂,自定义View和滑动冲突就可以很好地解决了。
  这里再说一下源码阅读的事。首先要学会下载源码,推荐的下载方式是从Google的源中把整个aosp的mirror都下载回来(大约80G,需翻墙),然后想看哪个版本就checkout哪个版本,还可以体验下编译源码的过程,这个事情看起来复杂,其实做起来很简单,大家可以尝试下。源码下载回来后,就可以阅读了,怎么阅读呢?给两个建议,第一:不要纠结太多的代码细节,第二:选择一个自己感兴趣的入口看下去。很多人一上去看源码就纠结代码细节,Android源码是非常复杂的,纠结细节只会让自己望而却步,纠结多了就“走火入魔”了。因此看源码前期主要以整体流程为主,尽量把系统的工作机制搞懂。为什么要选择一个入口看下去呢?因为Android源码很庞大,从哪里开始呢?我的建议是找一个自己感兴趣的入口,比如Activity的启动过程,从startActivity方法看下去,直到底层的AMS。
  再强调下,阅读Android源码是一个合格的Android工程师必须要掌握的技能,不阅读源码是不可能理解系统的工作原理的,不理解工作原理就无法真正地提升技术水平。

CSDN:日程工作中你会通过哪些方式提升自己的技能?
  任玉刚:在Android开发的学习过程中,我主要通过如下几种方式来学习:
  在公司进行产品开发;阅读Android源码和Android官方文档;在CSDN写技术博客对知识进行总结和分享;关注Github中优秀的开源项目并提交自己的项目;在公司内部做技术分享;阅读相关技术书籍;业余时间持续学习。

CSDN:你认为作为一名高级工程师应具备哪些职责?如何向高级开发者进行演变?有哪些学习方法吗?
  任玉刚:高级工程师首先要对Android应用层的理论体系有一个全面的理解,然后对Android Framework层也要有一定的了解,这2个方面都是Android层面的。除此之外,高级工程师还要有一定的技术架构能力,包括架构设计、代码规范、性能平衡等,还有很重要的一点,那就是高级工程师要能够指导初中级开发人员。
  高级工程师是一个逐渐积累的结果,一个开发人员从初级工程师通过不断地自我学习和自我提高,当技术能力和项目经验都提升到一定程度后,也就达到了高级工程师的状态了。至于学习方法,因人而异,但是也不会相差太大,可以参见上一个问题中我对Android学习方式的描述。

CSDN:你在CSDN上的博客访问量挺高的,现在还会经常写博客吗?除了Android方面,你还会关注哪些领域?你用的比较多的语言有哪些?为什么?
  任玉刚:我现在还是会坚持写博客,只是频率上较之前低了不少,我最近的一些博客主要侧重对Android学习路线的探讨,因为我觉得很多开发者需要找到自己适合的学习方式,因此我愿意把我自己对Android学习过程的理解分享出来给他们参考。
  我现在的学习内容已经不仅仅局限于Android了,我目前开始关注iOS和HTML5的开发,包括最近很火的React-Native我也会去看,此外最近也在关注架构设计相关的东西。但是对于我来说,Android开发肯定是我主要关注的,iOS和HTML5我应该不会去深入地研究。其实这个话题涉及到深度和广度的问题,对于我来说,我倾向于先广度、再深度、最后再广度。比如在学校时可以多学一点技术来扩展广度,工作后肯定要专注于深度,当对一门技术达到一定深度后,可能又需要加强下广度来扩展自己的思维方式。

从菜鸟到资深工程师的进阶之路-任玉刚专访相关推荐

  1. 从菜鸟到资深工程师的进阶之路

    专访任玉刚:从菜鸟到资深工程师的进阶之路 发表于2015-12-22 08:25| 11131次阅读| 来源CSDN| 31 条评论| 作者夏夏 专访iOSAndroid任玉刚开发者CSDN博客 al ...

  2. 从菜鸟到Android资深工程师的进阶之路

    http://blog.csdn.net/mary_ml/article/details/50539521 http://blog.csdn.net/mary_ml/article/details/5 ...

  3. 525、Java工程师的进阶之路 -【 RocketMQ (二)】 2022.01.06

    目录 1. RocketMQ 设计目的 1.1. 发布/订阅 1.2. 消息优先级 1.3. 消息顺序 1.4. 消息过滤 1.5. 消息持久化 1.6. 消息可靠性 1.7. 消息实时性 1.8. ...

  4. 前端工程师的进阶之路

    背景 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧: 如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧: 如果你是四五年的前端开发高手,没有难题能难得住你的 ...

  5. 测试自动化平台 | 测试开发工程师的进阶之路

    https://mp.weixin.qq.com/s/WU5h8FW6BT5YZtlsSuCIcw 「摘要」随着近几年国内IT行业高速发展,对测试工程师的要求也越来越高,其作用也越来越重要,但很多测试 ...

  6. IC模拟版图工程师高薪进阶之路,三年实现年薪30w+

    模拟版图是模拟IC设计岗位的一种,随着国内半导体行业的不断发展,岗位的需求也越来越多.而每个芯片最终能够付诸于生产都离不开模拟版图设计师的功劳,所以目前芯片产业对于这类人才需求越来越大. 什么是模拟版 ...

  7. 区块链技术培训—从技术小白到年薪百万区块链工程师的进阶之路

    近期,百度.小米.京东.360.联想等行业巨头纷纷开出高薪招聘区块链开发,甚至有公司开出了500万的年薪在找区块链工程师. 喂,正在埋头苦干.默默搬砖的你,有没有想过自己有一天也可以过上年薪百万的日子 ...

  8. Java经典入门教程!java工程师的进阶之路

    1. 前言 大家都知道,Postman是一个非常受欢迎的API接口调试工具,提供有Chrome扩展插件版和独立的APP,不过它的很多高级功能都需要付费才能使用. 如果你连Postman都还没有用过,不 ...

  9. ATE工程师的进阶之路(LabVIEW方向)

    本文写给基于LabVIEW软件的ATE工程师,希望对你的职业发展方向带来帮助. 1.LabVIEW编程水平的三个层次. 第一层:会使用LabVIEW的各类控件写简单的,无结构而言的程序. (入门级) ...

  10. 面对数字化转型 一个微软软件工程师的进阶之路

    伴随着企业的数字化转型,微软也经历了一场暴风骤雨般的变革:作为这场变革的亲历者,闫伟这个90年出生的小伙子,就像是这场变革的一个缩影. 作为微软大中华区创新技术合作事业部的一名软件工程师,闫伟是部门里 ...

最新文章

  1. 记录服务器连接jupyter notebook过程
  2. C++:MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart...
  3. 开课吧python学费-开课吧成为CNCC中国计算机大会唯一教育合作伙伴
  4. 最大公共子串提取“模式”
  5. 学习HTML-Beautify.js
  6. 信用经济中的经济因素
  7. lesson5 元组
  8. 浙江省高校计算机等级考试三级考什么容易,浙江省高校计算机等级考试大纲(三级)(3)...
  9. MIS 740: Software Concepts Use different GUI components i
  10. ofo在北京上线有桩模式,违规最高罚20元
  11. 职场中怎么看待上级“发火”的问题?
  12. springboot上传文件到resources_SpringBoot进行文件上传(一)
  13. 图像分类数据集(Fashion-MNIST)
  14. SHELL脚本学习指南--学习心得20110924
  15. echarts同时带有颜色和光圈的中国地图
  16. QQ游戏连连看外挂(VC)
  17. R语言使用t.test函数执行t检验获取总体平均值的置信区间(默认输出结果包括95%置信水平的置信区间)
  18. DAHnbsp;CEO:华尔街金融公司比区…
  19. 如何打造短期爆发式增长的爆款文章
  20. 工程师“魔改” AirPods Pro 接口,苹果“妥协”将成大势所趋?

热门文章

  1. 深度linux系统老版本,Deepin Linux15.7下载
  2. unity物理引擎详解
  3. viper12a电源电路图_采用VIPer12A的开关电源电路分析(图)
  4. 惊艳!阿里巴巴最新发布Java系统架构师+开发应用面试突击宝典
  5. html5制作人物动作,骨骼动画制作新利器:快速制作动作人物动画,省时简单!...
  6. 复盘:图像饱和度计算公式和图像信噪(PSNR)比计算公式
  7. 【系统安全学习5】PGP加密
  8. (可再看)深度学习学习笔记(1)
  9. 之前安装过Multisim14,再次安装失败的解决方法
  10. 富士施乐m115b怎么连接电脑_富士施乐 Fuji Xerox DocuPrint M118w/M118z打印机无线连接设置详解...