在外包公司从 Java 后端干到安卓开发,你醒醒吧!,阿里大师推荐的这份 Java 开发必读书单
先是工作内容的问题。
当初他应聘的岗位是后端开发,可现实却是他既要写后端,也要写客户端。本着做的多做的广可以学到更多的原则,他并不是非常在意这个问题,边做边学,渐渐地也上了手。
其次是工作量的问题。
有时候为了赶项目进度,技术主管给手下的员工下了死命令:必须在某个截止日期前完成任务。
为此,他同几个和他一样新来的同事加班加点地干活,甚至买了只折叠床放在办公室,有几次他通宵,敲代码敲到睁不开眼睛,就展开折叠床凑合几个小时,天亮后继续开工。
技术主管看到他的卖力,在工作群中表扬了他,并许诺项目结束后会给他调休。
好不容易熬到了项目收尾,小 A 整个人瘦了一圈,他兴冲冲地向主管提调休的事,主管跟他打起马虎眼:“你看,新项目又来了,等这个项目结束给你一起休!”等下一个项目结束,他从主管那里得到了同样的回答,他对调休的事死了心。
最令他不能忍的是工资的事。
他为公司如此卖力,为的不就是每个月底公司打到银行卡上的那笔数字吗?
我出力,你出钱,好买好卖。
可他出了力,轮到公司出钱的时候却非常勉强。工资总是不能按时发放,月底拖到下个月初,月初再拖到月底,一拖再拖。
他和同事轮番去找 HR 兼财务,她也是一脸无奈加忧伤,“老板说项目资金还未结清,我的工资和你们一样没发呢!”
有次在一起吃午饭的时候,HR 小姐姐偷偷告诉他说老板在市中心有两套房,开着宝马 X6。这样的人不缺钱,体会不到他们如果两个月没领到薪水就没钱交房租甚至没钱吃饭的苦痛。
[](
)现状分析
如果你目前还年轻,但高不成低不就,只有外包 offer,那请往下看。
多年的工作,接触过不少有外包背景的同事。可以确定的是,但凡有点职业理想的程序员,都对外包行业敬而远之。
不完全是因为它前途晦暗,更多是来自职业心理上的抗拒。程序员圈还是很看出身的,一般的外包人员,在有品牌独立项目的内行人眼里,就是 low 人一等,堪比野鸡。
但我们也不能因此把它贬得一无是处,凡事都有其两面性。
外包对于非计机系、培训转行、自学编程的程序员,可谓是最不坏的跳板。
一、放得很低阶的门槛,让教育背景、专业背景不够看的新人,有入行的机会。
二、丰富的业务场景,帮助新人快速地完成基础开发经验的积累,熟悉主流项目的全流程。
三、大厂镀金,一些自我包装精良的中小外包公司,常能接到诸如「微软」「腾讯」「阿里」「华为」的大单。虽然是外包,但往后写在简历上,至少是一流大厂的名号,比那些三四流的小公司项目经验强不知强多少个量级。
而且顶级互联网公司,就那么几家,80%的
程序员简历上都是些名不见经传的公司。所以到头来,跟大多数人比,程序员的核心竞争力还是看谁的项目经验牛逼点。
再者,据做过微软外包的朋友透露,大厂对外包项目的合同条款极其苛刻,阶段性验收出点问题,都要扣款的。所以他常常被其高标准整得焦头烂额,通宵达旦,但每次完整交付项目后,都感觉自身技术水准有了质的飞跃。
之前我就提到过这个问题,在现在这个阶段,公司之间的技术鸿沟已经非常明显,开发者身在其中,也因为自身学习能力,环境,项目等等的差别,技术上的差距越拉越大,造成了工作几年之后的两级分化,并且这种差距的拉开不是靠自己的努力就能弥补的。在前段时间面试了一个在某一线手机厂商做 App 的同学,985 出身,工作 3 年,目前也是公司的核心骨干,跟我说了他做的很多 UI 上的优化和重构工作。他们的 App 团队大概是 4,5 个人,看的出来他已经在力所能及的范围内努力做到最好,可惜,受限于团队规模,支持力度和技术储备,他的天花板来的太快,做的不够深入,技术能力也不够全面。
那面对这种情况,作为开发者,我们能做的是什么?最基本的,脱离舒适区,不停磨练自己的技术。举我自己的例子,刚进公司的时候我主要做的是 UI,平时搞一些页面上的优化,解决一些小 BUG 和 ANR,做的还算不错;因为之前做的不错,也因为方向变化,大半年之后我开始切换到做视频下载,后来又开始做视频播放,一年半多时间里跟我的导师把空间播放器和下载器推倒了重做,到现在各项指标都很不错。刚开始切换的时候很痛苦,音视频领域入门有一定门槛,项目压力非常大,之前又完全没有接触过。那段时间不知道多少次 15 楼南区半夜和假日只剩我跟我导师两个人在公司加班,可现在想想也确实是成长最快的时候。这块做的差不多了,今年又开始做编解码,继续在音视频这块深挖下去。所以就是这样,技术不行就深挖技术,觉得环境束缚了你就尽快跳槽,保持自己足够的竞争力。或许一次跳槽还没有办法改变什么,但这是一个量变产生质变的过程,一份不断向上的简历也能为你敲开很多公司的大门。
我在一线互联网企业工作近十年,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在 IT 学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的 Android 性能优化、音视频开发、NDK 技术、组件化插件化热修复、常见源码分析等学习路线分享出来。
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在 Android 开发道路上学习和发展~
[](
)应用层开发
Android 原生开发,需要重点关注的依然主要是各种性能优化,启动速度,耗电量,流畅度,网络优化再到大厂项目实战,这些都是作为一名优秀 Android 开发具备的基本素养。
启动速度
流畅度
抖音在 APK 包大小资源优化的实践
优酷响应式布局技术全解析
网络优化
手机淘宝双十一性能优化项目揭秘
高德 APP 全链路源码依赖分析
彻底干掉 OOM 的实战经验分享
微信 Android 终端内存优化实践
以上资源均免费分享给大家,内容均放在了开源项目:**[【Github】](
)**,大家可以自行获取。
[](
)音视频开发
幸运的是我们生活在一个好时代,科技在这几十年得到了迅猛的发展。在疫情肆虐的当下,我们可以通过音视频会议进行远程办公;我们还有在线教育系统,对于大多数学生来说,完全可以在家进行在线学习。
从某个角度看,这次疫情虽然导致很多行业处于崩溃边缘,但也催生了新的行业发展,其中音视频会议和在线教育就是因疫而起的行业。在疫情短时间内难以结束的情况下,音视频会议和在线教育的重要性马上体现了出来,新的沟通方式和教育方式被越来越多的人所认知,所接纳。
甚至我们可以判定,在线教育行业和音视频会议行业会在今年崛起,并在未来十年得到迅猛发展。
[](
)如何学习音视频开发
[](
)一,初级入门篇:
一 绘制图片
1. ImageView 绘制图片
2. SurfaceView 绘制图片
3. 自定义 View 绘制图片
二、AudioRecord API 详解
三、使用 AudioRecord 实现录音,并生成 wav
创建一个 AudioRecord 对象
初始化一个 buffer
开始录音
创建一个数据流,一边从 AudioRecord 中读取声音数据到初始化的 buffer,一边将 buffer 中数据导入数据流。
关闭数据流
停止录音
四、用 AudioTrack 播放 PCM 音频
1.AudioTrack 基本使用
MODE_STATIC 模式
MODE_STREAM 模式
2.AudioTrack 详解
音频流的类型
Buffer 分配和 Frame 的概念
AudioTrack 构造过程
3. AudioTrack 与 MediaPlayer 的对比
区别
联系
SoundPool
五、使用 Camera API 采集视频数据
1.预览 Camera 数据
2.取到 NV21 的数据回调
六、使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
1.MediaExtractor API 介绍
2.MediaMuxer API 介绍
3.使用情境
七. MediaCodec API 详解
1.MediaCodec 介绍
2.MediaCodec API 说明
3.MediaCodec 流控
流控基本概念
Android 硬编码流控
Android 流控策略选择
由于文章篇幅受限,剩余内容过多,文中插图有限,下文只能截图目录展示:
[](
)二,中级进阶篇:
Android OpenGL ES 开发(一): OpenGL ES 介绍
Android OpenGL ES 开发(二): OpenGL ES 环境搭建
Android OpenGL ES 开发(三): OpenGL ES 定义形状
Android OpenGL ES 开发(四): OpenGL ES 绘制形状
Android OpenGL ES 开发(五): OpenGL ES 使用投影和相机视图
评论