安卓开发工程师 一位安卓开发工程师的人生感悟
回首方觉已码3年多,一路走来,酸甜苦辣尝遍,有过激情,有过迷茫,有过牵挂,了无牵挂。先从毕业说起吧:
选择就业方向是很重要的,有很多同学选择自己所学专业,一部分则选择了其他方向。无论选择什么方向,自己必须冷静思考后决定。有人问,到底要不要选择自己的兴趣作为工作?我的建议是尽量选择自己感兴趣的,因为这样你才会有动力,你才会坚定自己的方向。
刚毕业那会儿,迷茫而慌张,记得那时候,出来实习,学习了一个星期的ActionScript3就开始搞项目了,搞的是房地产项目,经常往东莞那边跑,一个人蹲在堂皇的房子角落里吃着快餐看代码,一个笔记本,一个饭盒基本就待上一天,我甚至怀疑自己是不是程序员了,反正那时候,他们都管我叫“詹工”。一个月之后,我思考了一宿,终于还是提出了离职,开始正式的程序员生涯。
做开发,一般会经历激情期-->稍微成熟期-->迷茫期-->奋起进步期-->高手期-->架构大师期-->回归初心。
①视频:做安卓开发,入门的话,推荐先看视频,安卓视频看过不少,我记得张泽华老师的安卓入门视频最让我印象深刻,通俗易懂,让我有兴趣继续开发下去。入门之后,可以选择看一些针对性的视频,比如慕课网里的视频,还是不错的。
②博客:一定要多逛博客、论坛和社区,CSDN、博客园、StackOverflow、Github、简书、掘金、LeetCode(算法巩固必看,有时间的话磨一下你会发现世界原来这么大)、开源中国社区、segmentfault、APKBUS等等,有时间的话,一定要写自己的博客。
③书本:市场上的书本很多,各种各样,我买的书本将近40本,值得推荐的也就几本。首先《Java编程思想》,这是必须看的,无论是搞Java还是Android,不要问我为什么,而且要反复看,至少看5遍,不要求每个字每页都看,但重要的知识点一定要钻,基础还是要打扎实。
安卓进阶推荐《安卓群英传》和《Android开发艺术探索》,这两本进阶必看,如果有条件,还应该看看《安卓源码与设计模式》(好像是这个名字,不知道有没有记错)。
后面,《C Primer Plus》也值得推荐。《算法导论》是一本圣经,一般来说,工作之后,有条件的话,可以稍微看一下,推荐研究生研究,读大学的时候有毅力也可以研究下,这本书我是工作之后才买的,却只看了10几页,就每能研究下去了,身不由己是一个原因,无论大小公司,不会给太多时间你去学习的,你会发现,社会其实复杂很多,Boss只看结果,领导只想着邀功,除了无休止的加班,就是进行思想上的洗脑,在这个浮躁的时代,这其实是一个悲哀,时间没有,做研究的人少了,都是套用API和别人的开源项目,有的人编了一辈子程序,没有自己的思想,也没有理解别人的编程思想,真正成为了代码的“搬运工”。
关于编程语言,感兴趣的话,你可以多学,但你必须精通一门,再去看其他的,比如安卓开发,你必须精通Java、C/ 次之,而其他的Python、go、PHP、H5、JS可量力而行。
然后就是一些比较高级的知识点了:
④Java:多线程、泛型、正则、容器、Http、Socket、注解、反射、23种设计模式,算法(推荐看啊哈磊的)、加密解密、虚拟机。
⑤UI:普通的View动画、属性动画、SVG矢量图、Material Design。
⑥安卓进阶:Binder、AIDL、NDK(FFmpeg视频处理、视频直播、语音变声、LBS、WAV无损音频解码、音频拼接与音频混声、美颜)、HOOK(反射、动态代理,需非常了解安卓实现流程)、安卓增量更新、安卓插件化、MultiDex、冷启动。
⑦熟悉开源项目,熟悉之后研究其源码思想:
A.开发里的MVP模式你得会吧,大型项目你不可能在Activity里做所有操作,这样一个类一两天下来就超过一千行了。
B.网络请求的Okhttp和Retrofit你得会吧,这么火的网络请求框架,了解一下不是坏事。
C.你得掌握RXAndroid(RXJava)吧,这么经典的框架。
D.不解释:ImageLoader、Glide、ViewPagerIndicator、xUtils3、PhotoPicker、AVLoadingIndicatorView、CircleImageView。
⑧常见SDK接入:
微信登录、QQ登录、微信支付、支付宝支付、Bmob、友盟统计、个推、极光推送。
⑨常用工具使用:
SVN、Git、Swagger UI、JIRA、SourceTree、阿里巴巴矢量图。
⑩必须:一定要注册成为应用开发者,发布自己写的应用到应用宝、360应用市场、谷歌应用市场,这是必经之路。
除了精通Java,你要看C 了,看脚本,开始研究安卓源码,即使不从事底层开发,也要在心中有一个安卓蓝图,明白底层的实现流程。你至少也要自己动手,买一部谷歌手机,选择一个版本,编译一次安卓源码,烧录到手机上,途中你可能会遇到一些阻碍,比如天朝的墙等,只要你努力想办法,是可以跨越过去的,成功之后,你会发现,内心是多么兴奋!这就是安卓的吸引力之处,这就是开源的魅力!
小时候常常在晚上仰望星空,多么向往外面的宇宙(现在抬头落你一脸灰),想过当宇航员,逐渐长大,喜欢上文学,又想当个语文老师,直到高中接触电脑,我就知道,以后自己一定是个程序员了。
理想毕竟是理想,到了社会,你就会发现,你被生活捆绑住了,你得拼命赚钱,你得要有车、要买房、各种压力压着你,喘不过气,你很想挣脱这一切,但是你不敢,你怕让家人失望,你怕自己碌碌一生,但其实人生百年孤寂,活得快乐不是最现实的吗?何必在大城市里拼命奔波呢?因为你想过得更好,所以你还是按部就班地来。
赚钱,很少人靠工资能发财,所以得另辟蹊径。你开始炒股,你会发现,你买哪个哪个就跌停,即使你只是买了这么几万块,所以炒股之前一定要做好功课。你想到了域名投资,想着哪一天有个大公司花重金买下你的域名,一夜暴富,于是写一个爬虫,开机器去爬,你会发现,好的域名早已被人占有了,剩下的都是些不怎么值钱的,所以,留下几个对自己有意义的域名建个博客玩玩就好。真正能增加自己收入的,估计自媒体和淘宝闲鱼比较有希望。
要有自己的思想,不要因为加班、忙碌而迷失了自己。我曾经多么有激情,于是一口气开发了好几款自认为对自己有帮助的APP,比如“应用备份”、比如方便下载音乐的“音乐之家”、可以自动更换手机铃声的“铃声自动换”,比如方便调查的“掌上问卷”,也因为曾经被人欺骗,开发了一个“短信轰炸机”去“教训”骗子。还有很多自己还没来得及或还没有足够能力开发出来的有趣应用,比如:
①自动停止播放音乐的应用。有些人喜欢戴着耳机听音乐睡觉,但是如果睡着之后,音乐一直播放的话,会影响我们的听力,能不能有这么一款播放器,侦查到主人睡着之后5分钟即停止播放音乐呢?目前应该还没有,目前的音乐播放器,都是定时停止播放,而让人无语的是,当音乐停止了,可能你还没睡着,或者是睡着很久之后才停止,这都是不理想的。
而如何定义并监听用户睡着?这可能和硬件、传感器有关了,比如监听呼吸频率、心跳、脉搏等等,这需要开发相应的耳机,需要硬件的支持,而我对于硬件基本上是一窍不通,所以搁置了。×
②智能的联系人应用。面对面摇一摇或碰一下手机互换手机号码,这个应该涉及到LBS和手机相关传感器的,我暂时没时间去细究......
③在线一边看视频一边截gif的视频播放APP,目前好像已经有了,爱奇艺好像已经有这个功能,唉,很多想法,还没来得及去实现,就已经被别人实现了。×
④如果侦查到时间是凌晨,那么手机自动切换到静音状态,短信声音为静音,或者说进入震动模式。除非是通讯录里的人打电话进来,或者同一个人多次打电话进来,否则不会响铃,只会震动,防止干扰用户。这个360和联想手机已经实现了,360手机助手有这个功能,联想乐檬手机自带这个模式,打开就可以了。×
⑤语音接电话。比如你在床上睡觉,手机在书桌上,电话来了,喊一句“帮我接通”就自动接电话并打开免提,适合懒人使用,嘿嘿。很可惜,vivo已经实现了。×
⑥特权用户可以看到对方正在输入什么,当然对方可以设置不让其他人看。QQ有一个提示,就是“对方正在输入...”,但是正在输入什么内容呢,只有发送了才能知道。如果QQ有这么一个开关,“聊天时允许其他人查看我正在输入的内容”,打开的时候,那些会员用户,就有特权查看正在编辑的内容,每输入一个字都实时展现在聊天框的上方,直到发送。
嘿嘿,说不定某天QQ就出了一个靛钻,靛钻用户才有权查看。唉,没办法,进不去腾讯,所以这个功能,还是交给腾讯的开发人员吧。×
⑦音轨下载网。我记得上大学的时候,专门有一个网站是下载字幕的,叫射手网,当时就在想,各种语言这么多,要是有个音轨下载的网站也不错啊,比如看香港的电影,我喜欢看原声粤语的,看欧美大片,我也喜欢看原声英语的。可惜对音像这一块不熟悉,后面也选择了安卓开发的道路,就此搁置了,还是交给有能力的人去实现吧。×
⑧管理电脑的APP,这个360快传好像实现了,连接同一个wifi,可以远程遥控笔记本电脑,并查看电脑里的文件,但是好像还不能把手机的东西拷贝到电脑。这个就交给360的开发人员去实现了。×
⑨我最想实现的一款应用:移动分享汇。我个人是比较喜欢听音乐的,于是突发奇想,在坐地铁的时候,能不能让周围的人也能听到我正在听的音乐?当然不是指外放了,这样会引起公愤的,我的想法是这样的:通过这个APP,把我正在听的音乐,以广播的形式播放出去,附近也使用这个应用的人,可以搜索到附近的所有的信号,点击则可以听到我正在听的音乐了,说不定还能找到志趣相投的好友呢。
后面还可以和发射歌曲信号的人聊天,互发文件等等,这个应用,不是挺好的么。我现在是心有余而力不足,有志同道合的朋友,可以一起探讨下哈。
最后,当程序员一定要注意锻炼身体和休息,毕竟生活是根本,不要因为追逐理想而舍本求末!你会认识到一些有趣的伙伴,多爬山、看看电影、和同学朋友们聚会、去看看海、去拍风景照。如此生活才有趣,才能轻松应对人生道路的坎坷。共勉、祝福。