大家好,我是一名Facebook的工程师,同时也是《第一行代码——Android》的忠实读者。

虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的《第一行代码——Android》。

事实上,这本书在我面试 Facebook 的时候给我提供了很大的帮助。为此,我专门为这本书写了这样一篇书评,同时也跟大家分享一下我自己的经历。

1. 我是谁?

先来简单介绍一下我自己吧。

2008 年,我进入北京理工大学就读。

2012 年的时候以交换生的身份进入了美国普渡大学攻读硕士。

2015 年毕业,之后加入第一家公司 VMware,在那里工作了近 4 年时间。

今年年初,我参加了 Facebook 的面试,并且顺利地通过成为了一名 Facebook 的软件工程师。

2. 与书结缘

和很多人一样,我最初知道郭霖,是通过他 CSDN 的博客。那时候我还在 VMware 工作,并且刚刚从 Windows UWP 组转到 Android 组。

由于工作内容发生了很大变化,在开发过程中我遇到了很多问题。也许是机缘巧合吧,我在网上搜索 Android 学习资料的时候,正好在 CSDN 上看到了郭霖的技术博客。他的文章写得很有逻辑感,思路清晰,总结得也很好,而且基本都有代码展示,非常实用。

看了郭霖的博客,我连续解决了几个之前不太懂的地方,而且还比较系统地了解了 Android 的知识。可以说郭霖的博客堪称我 Android 学习之路上的“一盏明灯”。

后来得知郭霖要把博客内容整理出版,我就特别期待。《第一行代码——Android》第 2 版出版以后,我第一时间就在国内购买了,并托朋友带了过来,也算是海淘国货了。

3. 助力面试

事实上,《第一行代码——Android》这本书在我面试的时候帮了我的大忙。

美国软件工程师的面试和国内可能不太一样。面试的内容主要分为算法、相关专业知识、系统设计,还有 Behavior Question,俗称 BQ。有的公司可能还会直接让你写一个 App 出来。面试的具体形式是什么样子的,面试官会提前跟你说清楚。

而面试 Facebook 时,我的 Android 主要备考资料就是《第一行代码——Android》,事实证明这本书派上了很大的用场。我是在 2019 年年初开始准备面试的,总共面了 Facebook、LinkedIn、Airbnb 和一家西雅图的初创公司 OfferUp。这几家全部都是美国西海岸的公司,而我从美国东海岸飞过去需要四个半小时的时间。于是,每一次面试的时候,我都在飞机上复习一下前面几章关于 UI 方面的知识,然后到酒店之后再复习一下后面的内容,第二天面试一般都是十点开始。在面试之前,我又会翻开书来随机看一看。可以说《第一行代码——Android》完全成了我的 Android 复习资料。

就我自己的面试经历来说,《第一行代码——Android》覆盖了绝大部分的 Android 面试题目,尤其是 UI 相关的问题,很多都在这本书里面讲到了。但是由于我签了 NDA,所以不能透露具体哪一家公司考了哪些题目。其中 Facebook有一道题目我印象非常深刻,当时我把《第一行代码——Android》中总结的知识点都说了出来,面试官大喜,说这是他面过的所有人当中回答得最好的!

其实,当时我还在亚马逊买了一些美国的流行 Android 教材,比如 Big Nerd Ranch 什么的。美国的教材特点是普遍篇幅很长,动辄 700 多页,甚至上千页。书中有很多细节和截图,非常适合一步一步地跟随学习。但是这样的大部头简直就像是字典一样,看起来非常不方便,对于想要快速入门或者准备面试的人来讲可能并不是一个很好的选择,因为这两种情景都需要在很短的时间里面把知识点总结出来,那么篇幅太长、充满太多细节的书显然不太适合这些场景。

而《第一行代码——Android》是一本有细节同时又高屋建瓴的一本书。在知识点的取舍上面,作者拿捏得恰到好处;在内容章节的安排上,也做得非常科学与合理。这本书在有限的篇幅里讲明白了关于 Android 基本所有必需的知识点,甚至还有业界的 Best Practice,这和美式的图书形成了鲜明的对比。

4. “Android 学习第一书”

《第一行代码——Android》被读者们亲切地称为“Android 学习第一书”,因为它对于新手来说非常友好,内容上由浅入深,语言上通俗易懂。

这本书先讨论了 Android 的整体框架,使读者对整个 Android 的历史还有运行的机制有一个大概的了解。这些内容虽然对开发没有直接的作用,但其实非常重要,对于读者形成一个框架思考模式很有帮助,在以后的学习和实践过程中也可以起到一定的指导作用。

然后讨论了能很快看到反馈的 UI 的知识,提升读者的阅读兴趣。接下来分别对 Android 的四大组件进行了较为深入的讨论。本书特别值得称道的一点是对四大组件的讨论并不是毫无联系地、孤立地去阐述,而是通过 Intent、AndroidManifest 等内容把四大组件串在了一起。另外,每一个章节都有实战的内容,亲自动手实践下会非常有好处。

就连官方内容之外的一些知识点书里也有介绍。这些知识点很多都是业界常用的, 比如 OkHttp、Glide,等等。这些开源库,如果没有相关的开发经验,只是看官方文档,就很难知道为什么要使用它们,在面试的时候就很容易回答不上来。而这本书将所有的这些知识点都结合应用在了实战当中,帮助读者去更好地理解。

当然,限于篇幅的原因,《第一行代码——Android》并不能覆盖到所有的知识点,比如关于 memory leak 等方面的讨论还比较欠缺,所以准备面试的时候还是要单独准备一些常考的知识点。但就概率来讲,能把这本书看完大半,就已经足够应付初级程序员的面试了。

自 Android N 之后,Android 系统本身也进化了不少,开发的方式也有了一些变化,比如现在 Google 已经首推使用 Kotlin 来进行开发了。听说《第一行代码——Android》要推出第 3 版,我也非常期待。同时也希望能够翻译成英文版,卖到美国来,这样子可以让美国的同行们了解一下中国程序员思考问题的方式以及对知识架构的理解。

当然了,纸上得来终觉浅,绝知此事要躬行。在学习本书或者说任何技术类图书的时候,动手总是最重要的。如果仅仅是看了书就想当然地觉得自己学会了的话,就很容易在实践尤其是面试中吃亏,因为在实际的编程过程中总会出现这样那样的小问题,尤其是一些公司面试喜欢直接上手写 App,如果平时没有大量的练习的话,就很难在这样实操型的面试中胜出。

《第一行代码——Android》的代码很有代表性,绝大部分示例都推荐你亲自去实现一遍,如果记不住,就算是上机抄一下代码也是极好的。此外作者郭霖的微信公众号也经常发很多高质量的干货文章,推荐关注。

seanlitow

2019 年 7 月于 Menlo Park

图书推荐:

资深 Android 开发者郭霖力作,

经典畅销,累计重印 23 次。

作者:郭霖 

《第一行代码——Android(第2版)》,最受欢迎的入门书全新升级,将所有知识点都在最新的 Android 系统上进行了重新适配,使用全新的 Android Studio 开发工具代替之前的 Eclipse,并添加了对 Material Design、运行时权限、Gradle、RecyclerView、百分比布局、OkHttp、Lambda 表达式等全新知识点的详细讲解。最后还会带你一起开发一个天气预报程序,并教会你如何将程序发布到应用商店,以及如何在程序中嵌入广告盈利。

☟☟☟ 一键购买“Android开发第一书”

Android学习第一书相关推荐

  1. 第一篇文章------我的Android学习第一天。

    Android开发是基于Java语言的.经过一段时间的努力,加班加点,终于看完了Mars老师的JavaforAndroid视频教程(Mars老师的教程幽默风趣,干货满满,值得反复咀嚼), 从第一次接触 ...

  2. android学习第一天

    2019独角兽企业重金招聘Python工程师标准>>> http://www.runoob.com/wp-content/uploads/2015/06/androidmap.pdf ...

  3. 基于TensorFlow 2.0的中文深度学习开源书来了!GitHub趋势日榜第一,斩获2K+星

    十三 发自 凹非寺  量子位 报道 | 公众号 QbitAI TensorFlow 2.0 发布已有一个半月之久,你会用了吗? 近日,一个叫做深度学习开源书的项目在火了.GitHub趋势日榜排名全球第 ...

  4. 强化学习蘑菇书Easy RL第一章

    强化学习第一章(蘑菇书) 强化学习的概念 之前也学过一点,但是不够系统,想利用这一次机会好好把一些概念理顺清楚. 第一部分肯定是强化学习的概念问题.强化学习(reinforcement learnin ...

  5. Android 学习之《第一行代码》第二版 笔记(二十三)Material Design 实战 —— 卡片式布局

    实现基础: Android 学习之<第一行代码>第二版 笔记(二十二)Material Design 实战 -- 悬浮按钮和可交互提示 卡片式布局 卡片式布局是 Materials Des ...

  6. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  7. python入门视频教程推荐-python入门学习哪个书比较好(python视频教程知乎)

    自学python的学习路线是什么?推荐一些python学习资源 第一段 初级,掌握Python的语法和常用库的使用 这里首先推雪锋在网上的书籍,这是Python2.7的,这本书适合于重头开始一直读完, ...

  8. Android 学习指南(2017版)

    Android 学习指南 不断有新人来询问如何学习Android,很多都是无从下手,没有任何概念.正好好久没写文章了,今天来整理一下Android学习大纲,同时也会附上部分学习资料,主要还是希望大家能 ...

  9. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

最新文章

  1. 《head first java 》读书笔记
  2. 【Android SOAP】基于第三方开源项目ksoap-android
  3. 任正非:进军高端市场的同时,华为要防范未来竞争者从低端崛起
  4. 分布式Session共享解决方案
  5. 【APICloud系列|26】UIScrollPicture 模块(图片轮播)的实现
  6. 如何解决IIS配置报错问题:存储空间不足?
  7. 物联网全面崛起 LED企业大有可为
  8. php如何从获取数据,如何从​​获取值并保存到php的数据库
  9. PostgreSql 常用 ALTER 语句
  10. 使用NekoHtml处理网页(删除Style标签)
  11. Python标准库——turtle库
  12. 源代码HTML5五子棋小游戏web开发
  13. 高速服务器充电桩位置,最全高速服务区充电站汇总,再也不担心过年回家趴半路啦!...
  14. linux mkv转mp4,Linux DVD 转 MP4 – HandBrake – Copy a DVD to MP4 or MKV file
  15. rust相框加载图片代码_vue图片加载与显示默认图片实例代码
  16. 数据结构第一章概论习题及答案
  17. 光纤跳线接口_光纤认证测试——光纤跳线设置基准(一跳线法)
  18. Linux使用nvida-smi查看GPU类型
  19. 微信小程序如何引入直播组件?
  20. Kotlin学习(二十): Kotlin实现流的读取的方案

热门文章

  1. bootstrap3 表单构建器_实例演示:如何构建高可用的微服务架构
  2. 【c语言】蓝桥杯算法训练 大等于n的最小完全平方数
  3. java如何确保单线程_java – 任何单线程程序如何成为有效的多线程程序?
  4. vs2010配置python_VS2010下python3的配置
  5. 五轴编程_HyperMILL五轴编程培训HyperMILL 软件的特点
  6. 在数据库原表中增加字段
  7. 微软推出 AI 开发免费电子书,手把手教你构建智能聊天机器人
  8. weblogic 部署后出现Error 404–Not Found
  9. Mysql中对table的操作问题
  10. 强人工智能基本问题:全局控制与自组织