除了傍富婆,程序员还有哪些实现快速涨薪的方法?

有很多人说程序员想要涨薪最简单的一个办法就是跳槽,可事实上又哪有那么简单,如果说傍富婆仅仅是“伤身”的话,那么不断的跳槽就真的是跳一次少一次了。

跳槽是涨薪快,但是,正常来说跳槽一次薪资只能涨20-30%,按30%算,需要跳3次才能翻倍,一年跳一次,需要3年;两年跳一次,需要6年。

有人说跳到大厂能涨的多,ok,假设跳到大厂能涨50%,那也需要跳两次。同时大厂又会介意你频繁跳槽,频繁跳槽压根儿就没有面试机会,比如jd明确要求,拒绝不满两年就跳槽的人选。

所以,跳槽这条路要慎重。

比跳槽更靠谱的一条路就是在公司内部升职加薪,职位明显提升的时候,薪资会有一个比较大的涨幅。

那么问题来了,程序员怎么能快速升职呢?

答案就是:让自己成为一个优秀的程序员

普通程序员和优秀程序员有什么区别呢?用下面两个程序员的对比来看一下:

小W:普通程序员

小L:优秀程序员

1. 代码质量的区别

在 Bug 管理平台上,小W的 Bug 是一片一片的。有许多 Bug 的原因是代码中方法计算返回的结果出现了错误,可引发这些错误的输入值既不是极端值,也没出现古怪的边界条件,全是正常的业务参数。

这说明了什么?说明小W他偷懒不写单元测试,甚至有的都自己没去测试,等着别人帮他测。

而小L的代码则非常健壮,Bug 平台里,小L的代码 Bug 非常少。如果去看项目的 Git,发现小L的单元测试代码非常的多,甚至远远超出了工程代码。

2. 开发速度的区别

从项目管理平台上,可以看到大家的开发时间统计。相似的一个需求,小L需要的时间是小W的一半。

比如,上次项目需要新接两个第三方渠道,小W和小L一人搞一个接口,参数相似,流程相似,小L花了 3 天,小W花了 5、6 天。

而且,后期接口出现变化,每次小W都要改个两三天,而小L只需要半天一天。

究其原因,就是小W每次写代码特别不优雅,不灵活,有点变更就需要大改,并且还经常改出 Bug。

而小L从来都是把方案想透彻了才开始写,还不断的重构代码,最终的代码又灵活又优雅,有需求变更了,特别省事的就可以改好。

3. 思维严谨的区别

有一次,小W写公众平台的一个对外接口,写完了拿出去测试,结果闹了个大笑话。他写的对外接口,连个验证签名也没有。这事儿幸亏在内部测试的时候,被查了出来。不然直接放出去,整个团队的专业性都要受到质疑。

而小L同样写一个接口,不仅考虑到了验证签名问题,他还考虑到了参数需要加一个时间戳,保证签名不会被重复利用的问题。

4. 团队合作的区别

打开他们项目的 Git,就看公共工具类,小W一行都没有提交过。然后,随意打开一部分代码,那么多可以共用的代码,小W从来没有想过提出来形成工具去方便别人。只管着自己的那摊子事儿,写完完事儿。什么代码风格、复用、团队合作全部扔在了一边儿。

小L不一样,不但会主动写一些工具类,有时候还会弄出一些小框架,减少别人的开发量。

5. 对业务理解的区别

需求会上,小W基本就没认真参与过,也很少去和产品经理主动沟通分析需求。当开始写代码了,小W要么实现出现偏差,要么就出现了遗漏。

有个权限管理的需求,本来是小W负责。

结果是,这个功能,权限配置甚至连个后台都没有,业务都没地方配置权限。就这样,小W还非说功能实现完了,还和产品们争吵了起来。最后结果就是被啪啪打脸,人家产品的原型图和需求文档说的很明白,而且还连续开了好几次需求分析会,大家都理解了,就小W出现了问题。

而小L则是非常重视业务需求,会写出一些文档,并勾画出设计实现去拉产品核对。如果出现了疑难问题,会同时叫上产品、运营开碰头会,并确保大家形成共识后,开始执行。

小W失败的权限管理开发,小L接手了。他画了角色和权限的关系图,然后全部和产品一一过了一遍。确认后,发邮件形成共识,然后开发。一切顺利。

6. 工作态度的区别

要知道,产品虽然经常惹技术讨厌,但是,大家都是普通人,自然也有想不到的地方。一般来说,小L和产品配合,产品想不到的地方,小L都会积极去沟通,查漏补缺。但是,到小W这里,事情往往推不下去。

曾经有个功能,产品的需求是想在商户信息出现变动的时候,能通知到公司其他部门的系统。要通知到其他系统,就得先对接公司统一的公共消息系统。

这事儿,小W直接给产品说“对接很麻烦,对方不配合”。虽然有时候跨部门配合是有难度,但是也不能因为这理由就把事情一直拖着。一直到别人来问进度,才发现根本没做。

把事儿交给小L后,人家第一时间去和产品解释了原因和面临的问题,然后开会协调了一个新的上线时间,把对接公共消息系统的工作量也进行了排期。

再往后,小L又把工位临时搬到负责公共消息系统的团队那里,在那里就地开发。此事妥善解决。

7. 解决问题能力的区别

同属一个技术团队,小W遇到难题,就去钻牛角尖,一个技术难题,能抠一周,结果别的工作也全部耽误了。

曾经,小W遇到过一个输出数据无序的问题,然后,他当时调试,怎么也找不到问题所在。就这个,墨迹了一周,后来是小L主动问他咋回事,才知道他遇到的问题。团队里几个人一起帮他排查了问题,两个小时解决。而他手头的工作却已经耽误了一周。

而小L则是遇到技术问题,首先是自己努力去解决。如果发现自己解决不了,又要进度延误的风险,他会立即积极求助,问团队高手,问技术领导,总之想办法尽快解决,好进入到工作的下一步。

8. 技术为王

以上的话都是一些个人心态以及工作细节上的一些分享,但作为一个程序员,其实最终都是要回归上技术上的,也就是说要不断的坚持学习,提升技术。如果没有扎实的技术,那么再谈以上种种就太虚了。

至此,我自己做为一名Android开发者,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术有所提升的朋友!

  • 架构师筑基必备技能

目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO

架构师筑基必备技能

  • 设计思想解读开源框架

随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。

所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。

知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计

设计思想解读开源框架

  • 360°全方位性能调优

在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。

另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。

1、设计思想与代码质量优化

2、程序性能优化

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据储存优化
  • APK大小优化

3、开发效率优化

  • 分布式版本控制系统Git
  • 自动化构建系统Gradle

4、项目实战

  • 启动速度
  • 流畅度
  • 抖音在APK包大小资源优化的实践
  • 优酷响应式布局技术全解析
  • 网络优化
  • 手机淘宝双十一性能优化项目揭秘
  • 高德APP全链路源码依赖分析
  • 彻底干掉OOM的实战经验分享
  • 微信Android终端内存优化实践

360°全方位性能调优

  • Android框架体系架构

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析

Android框架体系架构

  • NDK模块开发(音视频系列)

NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。

在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。

本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

NDK模块开发

  • Flutter学习进阶

2019 年无疑是 Flutter 技术如火如荼发展的一年。

每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。

本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

Flutter学习

  • 微信小程序开发

微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

微信小程序开发

  • Android相关源码解读
    只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

Android相关源码解读
Android相关源码解读部分内容

由于篇幅原因,以上完整学习笔记pdf如有需要,可以 点赞+评论 支持下我,然后点击这里免费自取

最后再说一个能收入翻倍或者是暴富的路:

有机会拿一些公司的股票或者期权

前一两年字节跳动程序员,年仅 28 岁的郭宇财务自由,宣布退休的消息在网上火了一把。

关于股票、期权随便说两点:

第一、现在互联网行业给股票、期权的公司不算少见,提前储备点知识,万一以后谈 offer 的时候出现这些字眼,你也不至于啥也不懂。

第二、觉得自己现在还很菜,公司的股票、期权都是给核心员工的,轮不到自己。现在菜又怎样,谁不是由菜变强的,现在没有股票、期权,不代表以后也拿不到。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
包络检波算法是一种用于提取调制信号包络的方法,它可以广泛应用于信号处理、通信、声音处理等领域。在C语言中,实现包络检波算法可以采用以下步骤: 1. 对输入的信号进行带通滤波,以去除高频噪声和低频漂移。 2. 对带通滤波后的信号进行绝对值运算,得到信号的幅度包络。 3. 对幅度包络信号进行低通滤波,以平滑信号并去除高频噪声。 4. 输出低通滤波后的幅度包络信号作为结果。 以下是一个简单的C语言代码示例,实现了包络检波算法: ``` #define SAMPLE_RATE 48000 // 采样率 #define FREQ_CARRIER 2000 // 载波频率 #define FREQ_MODULATION 500 // 调制频率 #define BUFFER_SIZE 1024 // 缓冲区大小 float carrier_signal[BUFFER_SIZE]; float modulating_signal[BUFFER_SIZE]; float envelope_signal[BUFFER_SIZE]; void bandpass_filter(float* input, float* output, float f1, float f2) { // 实现带通滤波 // ... } void lowpass_filter(float* input, float* output, float f) { // 实现低通滤波 // ... } void envelope_detector(float* input, float* output) { // 实现包络检波算法 float temp[BUFFER_SIZE]; for (int i = 0; i < BUFFER_SIZE; i++) { temp[i] = fabs(input[i]); // 取绝对值 } lowpass_filter(temp, output, FREQ_MODULATION); // 低通滤波 } int main() { // 生成测试数据 for (int i = 0; i < BUFFER_SIZE; i++) { carrier_signal[i] = sin(2 * M_PI * FREQ_CARRIER * i / SAMPLE_RATE); modulating_signal[i] = sin(2 * M_PI * FREQ_MODULATION * i / SAMPLE_RATE); } // 进行带通滤波 float temp1[BUFFER_SIZE], temp2[BUFFER_SIZE]; bandpass_filter(carrier_signal, temp1, FREQ_CARRIER - FREQ_MODULATION, FREQ_CARRIER + FREQ_MODULATION); bandpass_filter(modulating_signal, temp2, FREQ_CARRIER - FREQ_MODULATION, FREQ_CARRIER + FREQ_MODULATION); // 进行幅度调制 float modulated_signal[BUFFER_SIZE]; for (int i = 0; i < BUFFER_SIZE; i++) { modulated_signal[i] = (1 + temp2[i]) * temp1[i]; } // 进行包络检波 envelope_detector(modulated_signal, envelope_signal); return 0; }
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值