今天上班最后一天,写一篇工作和生活的感想,算是年终总结吧。
其实2016早完啦,不过我在2016年连续换了两次工作,没想到回成都后过程这么曲折,先自我介绍下14年毕业后去了广东惠州TCL做Android电视开发,一直持续到今年3月份;到成都后第一家是同学介绍的去了一家创业型的电商公司,刚好半年到9月份公司做不下去了,不得不另外换工作;然后十月份来了现在这家公司,做明星粉丝互动的一个平台,这一年感觉到移动互联网的寒冬,android方面的还真心不是那么好找,而且每次换工作都有一个适应的过程,确实是因为做的东西差别有点大。
我参加了蛮多的面试,总结下来还是怪自己技术水平不够,基础知识掌握不牢靠,所以这段时间算比较空闲,趁项目空闲下来好好补习一下。 顺便梳理一下个人觉得比较好的学习路线:
1、初级android开发阶段,会使用android studio进行开发并知道断点调试等各种小工具,熟悉并会使用android的各种原生的控件,包括谷歌新出的5.0以后的recycleVeiw,Toolbar,Drawerlayout等等之流,熟悉四大组件的使用过程及周期,特别是activity和service和这两者的绑定,网络方面呢至少需要熟悉一个开源框架的使用,比如xutils3.0、okhttp、volley等,其实用法都可能差距不大,但你至少得会一个吧。
2、中级android 开发阶段,这个时候要求可能就要多一些了,基本上常见的开发手段你都要会了塞,UI方面会自义定view,自定义viewgroup,会使用组合动画实现一些特定的UI效果;会MVP架构、面向接口,让你的应用分层效果更明显,会解决一些歌内存溢出的问题,比如强引用导致的,静态常量导致的等等;会socket编程、TCP协议,这个比HTTP底层一点,我们常用的HTTP协议和开源网络框架OKHTTP等实际上就是封装的socket,那我们为什么要会socket呢,因为有的场景可能需要我们自己写长连接,比如在软件里加入聊天功能,加入直播大漠,我们如果不想导入第三方的IM,就需要自己来管理sokect长连接,这个时候service,多线程,io方面的基础知识就显得很重要了,因为会组合起来使用,但确实维护socket连接是一个麻烦的过程,比如添加心跳包和处理io中信息的分包和粘包问题;在网络框架方面的,一般我们都会根据自己的需求来进行二次封装一次,提高开发效率,我看了下OKGO还封装的不错,是一个基于okhttp的二次封装,而在数据交互方面,一般用json,但必须考虑到数据的安全性,熟悉常见的对称和非非对称加密算法AES,MD5等;图片处理方面,除了会使用开源项目如volley,picasso,imageloader等,我们还应该自己去实现一个类似imageloader的图片加载框架,或者去研究开源的imageloader,这样我们才能知道别人的内部原理,并不是我们写一行代码就加载了图片那么简单, 还有一部分业务逻辑的我们也应该多接触:包括支付宝、微信支付,多平台分享接入,友盟统计等接入。
3、高级android开发阶段,这个阶段我们开发就不仅仅局限于能把东西做出来,我们还需要为什么要用某个框架或某个技术实现某个功能,它有哪些好处和哪些局限性,对项目的倾入性强不强等,如何搭建项目架构对以后的版本迭代方便,降低耦合性,提高app性能,有时还要去处理一些比较偏门的问题等等,这个阶段我目前还没达到,还在中级苦苦填坑,所以就说了些比较虚的
离成为一位大牛的路还很遥远,但我相信坚持很重要,量变才会引起质变,希望自己在新的2017年技术更上一层楼!
我相信:在职场,如果技术过硬,是不愁找不到工作的;在生活,多思考,善于发现,说不定哪天机遇就从天而降。
最后,给自己打个广告,第一版应用:http://www.wandoujia.com/apps/com.yanyu.mio