最近要换工作了,所以一直在看面试题。回顾工作一年多时间的积累,感觉简历上还是缺点什么。现在的能力与招聘信息的职位要求还有点差距,比如对 Android 视图的绘制、各种动画等方面掌握不足。有时候适当的反馈有助于自己找到进步的方向,时常浏览招聘网站,看看上面的描述和要求,然后反身自省,制定学习计划,不断修正行为。实践→反馈→修正→实践→反馈→修正……形成良性循环,找准方向,每天进步,这样下去才会成为合格的人才。
我从拉勾网上随便找了个经验要求 1—3 年的 Android 开发的职位要求:
- 计算机或相关专业本科毕业 2 年以上,理论基础扎实;
- 精通 Android 开发,具备良好的软件开发习惯;
- 能流利阅读英文专业文献者优先;
- 有面向智能硬件 Android 开发经验者优先;
- 有较强的学习能力和解决问题的能力;
- 熟悉 Android 各组件生命周期、多线程运作机制,有性能和内存优化经验优先;
- 对 APP 稳定性及优化有深刻的理解;
从上面可以看出,首先是专业的要求——计算机相关的专业。还好我本科读的就是计算机,当时上大学的时候理论基础还不错,对计算机的理论体系基本熟悉,像是数据机构、计算机网络、操作系统等知识。平均 GPA 3.2,不算很优秀,但也说得过去。精通 Android 开发这一点,精通该怎么定义呢?能够独立开发 APP 算不算呢?良好的编码习惯是我一直崇尚的,在公司也经常向其他同事普及。流畅阅读英文文档更是无压力,优秀的、一手的学习资料都是英文版,指望别人翻译那就 out 了,熟练掌握英文是这个时代永不过时的要求。
不久前,谷歌开放了 Android Things,它一套服务于物联网的操作系统,也就是说各种智能硬件都可以使用 Android Things 开发,我相信有了 Android Things 的支持,智能设备会越来越丰富,Android 开发者的前途是光明的!学习能力和解决问题的能力是一名优秀的程序员不可或缺的,既然选择了做程序员,就意味着要不断学习新知识,接收新事物,提高编码的技能,最主要的是提高职场的个人竞争力。Google、GitHub 和 StackOverflow 是解决编程问题的三驾马车,99% 以上的问题都可以通过它们解决。阅读源码是最根本的办法,所谓「 read the fucking source code」。一般水平的开发者对于 Android 基本知识都应该熟练使用,比如四大组件、视图、多线程、网络、数据库等,进阶的部分就是性能优化、APP 稳定性、底层原理等。
在过去的日子里,我觉得自己的计划性不够,浪费了不少时间。本来做的工作就是项目的一部分,过于专注职责内的代码,缺少对项目完整性的认识。而且闲余时间没有充分利用,有点三分钟热度吧,比如坚持写博客啦,参与开源项目啦,做个喜欢的 APP 啦……16年下半年都在忙公司的项目,实现 PM 提出的各种奇怪需求,完成从校园到职场的思维转变。17年上半年开始关注自身成长,逐渐丰富自己的 GitHub 和 Blog,能够坚持下来是不容易,但是我会一直做下去。
有句话说得好:「这是最好的时代,也是最坏的时代」。我们身处互联网高速发展的时代,它彻底改变了我们的生活,促进了社会的发展,推动了人类文明的进程。互联网是一种全新的生产力,每时每刻都在把不可能变成可能。既然选择了 Android 开发,我一定会坚持下去,争取做到猿群中的前 25%,在移动互联网的大浪中披荆斩棘、勇往直前!