BAT 老兵的经验之谈,成长路上这个道理越早知道越好

STC51单片机串口多字节数据接收的优化策略 本文深入探讨了STC51单片机串口多字节数据接收的优化策略。针对数据丢包、粘包等常见痛点,核心思路是采用“缓冲队列+定时器超时”模式,将实时处理转变为“先收纳,后处理”。文章详细讲解了硬件初始化、中断服务程序优化(快速入队与激活超时裁判)以及主循环的非阻塞设计,并进阶介绍了环形缓冲区实现与错误处理,旨在构建稳定可靠的串口通信系统。 阅读详情

前言

人生就是一个自我投资的过程,关注我,这会是你程序员道路上最好的投资。

“只有知识的积累,而没有深度思考,终究无法完整蜕变。”——《感动中国》年度热心观众,程序员囧辉

 

ROI

ROI,即 Return on Investment,也就是投资回报率(投入产出比),它是一个投资术语。

在我看来,ROI 法则对于我们的工作、学习、生活,同样适用。

本文源于个人过去几年的成长、思考和总结,可能不完美,但是相信会有所帮助。

 

1、ROI 于工作

ROI 对于工作而言,主要体现在:1)绩效晋升;2)技术能力。

 

在工作中,很多程序员的工作模式应该是:做需求 -> 做需求 -> 做需求...,永无止境的做需求。

说实话,这种工作模式的 ROI 是非常低的,因为绝大部分需求都是在已有的框架里进行简单的 CRUD,即使在一些 QPS 几十万上百万的部门也会有很多这样的需求。

这些需求其实无法让你学到太多的东西,天天做这些需求,技术得不到进步,绩效和晋升也和自己彻底无缘,只能成为别人眼中苦逼的 “老黄牛”。

述职答辩时,不知道写什么,感觉自己好像很忙,做了很多需求,但是好像没啥有技术含量的可以写。跳槽时,简历不知道怎么写,都是一些 CRUD,真是头大。

因此,在工作中,我们需要“聪明点”,尽量让自己的工作 ROI 高一点。

 

以下是我自己这几年总结的常见提升工作 ROI 的思路:

1)可以做一些简单的 CRUD 需求,也必然会做一些简单的需求,但是绝对不能一直做简单的需求。可以主动去揽下一些线上问题排查、性能优化的事情,主管可能还会夸你积极。

2)解决问题是让自己技术能力提升最有效的途径,例如:解决线上问题、进行接口的性能优化、进行项目重构等。程序员说到底,就是拼谁的解决问题能力更强,解决问题的过程中会有很多新的认知,能让自己得到很多宝贵的经验。

3)任务排期时,一定要留有 buffer,可以按 0.7 ~ 0.8 来算,例如 8 天的工作量可以排 10 天,这样万一有什么线上问题之类的情况,自己就能从容的应对,而不是自己默默的加班。

4)需求是永远做不完的,你就算每天上24小时的班,需求仍然做不完。所以,请稍微自私一点,不要把自己的所有工作时间都排给做任务,尽量每天能留给自己 0.5~1 个小时的时间自由安排,利用这个时间去提升自己:思考、总结、看优秀技术文章、看源码都是不错的方式。

5)每做完一个任务,不要急着进入下一个任务,一定要进行思考和总结。

  • 对于当前的工作绩效:思考这个任务里面的价值点在哪,产出了什么,提升了多少指标,有哪些是可以在自己之后的述职和晋升答辩里用上的?
  • 对于日后的跳槽:思考有这个任务的复杂点在哪,有没有什么技术点是后面自己跳槽时能写到简历里的,是否有一些点能让面试官觉得很牛逼的?

将自己的思考通过文档记录下来,经过思考和总结下来的内容通常是后面述职答辩时很好的材料,并且有文档记录,也能让主管看到你实实在在的产出,如果你的思考和总结内容足够好,说不定主管会在他自己的报告里使用上你的内容,那你在主管心中的地位一下子就上升了。

6)公司只付你 5 天的薪水,尽量不要在周末加班干活,把这个时间留给自己,有家庭的多陪陪家人,单身的可以看点书提升自己,最重要的,每周进行锻炼,身体是革命的本钱,照顾好自己。

7)解决问题和优化的过程可能很痛苦,有些甚至可能会持续到几个月,但是正是这些让你痛苦的时刻,逼迫着你成为更好的自己。

8)最重要的:多思考,多思考,多思考。程序员在每次迈向一个新的台阶时,必然要经历一个蜕变的过程,当你不断积累知识的同时,只有不断思考,才能让自己完成量变到质变的飞跃。

 

2、ROI 于学习

ROI 对于学习而言,主要体现在:1)面试;2)技术能力。

 

程序员行业目前内卷非常严重,而 Java 后端毫无疑问是 “卷王之王”,需要学的内容太多了,你要每个都去学,说实话不现实。

因此,就像我们以前准备考试一样,我们需要将时间合理的分配,优先准备那些重要的知识。

对于 Java 后端而言,我花三个月学习了 redis,你花三个月学习了 k8s(kubernetes),无论是日常工作,还是面试,毫无疑问肯定是我的 ROI 更高。

选错方向是很多新人容易犯的错,花了几个月,结果学了个寂寞。

 

对于 Java 后端知识体系而言,按当前面试题的重要程度/出现频率而言,我对各知识点的分档如下,越靠前越重要,学习的 ROI 越高:

  • 一档:集合(HashMap、ArrayList)、并发编程(线程池、synchronized、CAS、Lock、AQS、ThreadLocal、volatile)、MySQL(索引、锁)、Redis(缓存、分布式锁、高可用)、JVM(运行时数据区、GC、CMS、G1)
  • 二档:Spring(IoC、AOP)、MQ(Kafka)、Zookeeper(注册中心、分布式锁)、RPC(Dubbo)
  • 三档:MyBatis、设计模式(单例、代理)、算法(剑指offer)、分布式理论(BASE、CAP、2PC、TCC)
  • 四档:TCP、HTTP、Netty、SpringMVC、SpringBoot、Elasticsearch
  • 其他

如果你认为有些知识缺少了,或者觉得分档有问题,欢迎留言和我探讨。

 

同时,干我们这行的,大部分都要花业余时间去学习,但是很多人的学习思路可能不对,导致学习的 ROI 很低。

对于个人在业余时间的学习上,以下是我个人觉得的有利于提升 ROI 的经验:

1)知识的深度和广度都很重要,但是若要选择其中一个进行深造,我会选择深度。我自己也是这么做的,看我博客多的同学也应该能感觉的到,我其实写的知识点不会很多,但是深度基本都是在我能力范围内拉满。

2)深度是你进入大厂很重要的敲门砖,而且当你的深度足够深时,去提升广度你会发现非常容易,因为绝大部分优秀的开源软件其底层的设计思想都是相通的。

3)源码会让你更自信。如果一个知识点你没有深挖到源码,你在对线面试官的时候必然就会不自信,因为你没有亲自看过其“真面目”,面试官多问一句,你心里就虚了。

4)学习源码会让你付出很多,但是同样回报很多,自己亲眼看到“真相”的那种感觉,只能用一个字形容——爽。

5)学习源码的前提是你对这个东西有基础的了解,了解其核心的使用。在学习的过程中,不要硬怼,硬怼效率很低,而且容易出错。多参考已有的文章和书籍,站在巨人的肩膀上,我们才能看的更远。

6)99.9% 的公众号/博客文章都只能让你在某个知识点入门,有小部分能让你和 BAT 面试官对线,但是要达到和 BAT 面试官轻松对线的程度,还是需要自己去挖源码,自己去看真相。

7)看文章不在于多,而在于精。网上好的文章不少,但是水文更多,要学会辨别,文章注重质量而不是数量,一篇好文章的收获是非常可怕的。

8)文章也好、书籍也好,某个知识点看一遍不懂很正常,收藏起来多反复阅读理解,不懂的名词百度搜搜资料帮助理解,这个过程会让你的知识体系像树枝一样不断向外蔓延,这就是成长的过程。

9)尝试使用费曼学习法。我写博客是不赚一分钱的(这你还不关注?喵喵喵~),那我写博客的 ROI 岂不是很低?其实不全然是,如果是,那我不是在打自己的脸。

写博客其实是我落地“费曼学习法”的最终实践,所有你们看到的我发表出来的文章,其背后都可能是我反复看了无数遍文章和源码、无数遍自我提问、无数次的自我总结和思考、无数次的修改,最终才得出来的。

所以,我能很坦然的说,这就是我能力范围内拉满的文章了。

10)加一些优质优质优质的学习交流群,三个臭皮匠赛过诸葛亮,很多你想半天想不懂的问题,可能在别人那就是几秒钟的事。当然,那种只有群主每天定时发公文的群,加再多也没用。

11)有办法结交自己学习领域的大神,就多结交一点,当你不断的成长,到后面你会发现你要学的东西在网上资料很少,很多东西都只能自己硬怼。c++菜鸡的我在看 MySQL 源码时深有感触。

 

我的学习历程

都聊到这了,给大家送个“福利”,简单介绍下我的学习方式,供大家参考。

15.7~17.01:这期间我是完全不学习的,就是一条彻头彻尾的咸鱼,看过我文章的同学也应该知道。

17.02~18.10:如梦初醒,通过面试题和书籍,快速成长,也开始写博客。

18.11~20.09:源码、写博客,将每个知识怼深了,通过写博客落地费曼学习法。

20.09~如今:项目、源码、写博客,换了个业务量很大的部门,努力学习积累中,源码和写博客当然也不能拉下。

可能有同学会问我难道不看别人的公众号/博客文章吗?

说老实话,虽然我自己写公众号,但是其实我自己很少主动看别人的公众号文章,因为要找到一篇好文章太难了。

我看别人文章的情况,大多是在我学习一个知识点时,我会去参考一些其他人的源码分析文章,来辅助自己的理解。

另外,就是也会看一些公司内网的文章,大公司内网的博客技术分享质量都比较高,所以不会有水文的烦恼,基本上或多或少能收获点东西。

 

ROI 于我

所以,其实理论上从 17.02 算起,我的学习历程也就 4 年多而已。

这期间的学习为我带来了多少回报了,最直观的方式就是看年薪,我在 20 年跳槽的时候的年薪比 17.02 当时年薪已经增长超过 5 倍。

而如果以 20 年跳槽的时间点来算,其实就过了 3.5 年。而入职新公司以来,我最薄弱的项目也在飞速发展中,所以现在我的售价应该另算,哈哈。

就目前的互联网行情而言,我知道自己的薪水提升空间还是很大的,所以也还在努力提升自己。

程序员其实是一个相对比较公平的职业了,你只要坚持努力,多多少少会收到回报。

送给大家一句话:奋斗吧,将来的你一定会感谢现在努力的自己。

 

最后

能多一个朋友,不要多一个敌人,随手就能帮的忙,随口就能说的好话,多做一点,可能会让对方感激很久。

比如我在文章最后求赞,有些人可能会想,求赞狗我才不点,我就要白嫖;而有些人则很 nice,花了几秒钟,点赞收藏留言一气呵成。

可能这随手的一键三连,就让我们成为了朋友,以后他有什么工作或职场的问题,我可以给出一些有用的建议,那这几秒钟的 ROI 是不是就很高了。

《AFSim 2.9中文参考手册》 本栏目将对《AFSim 2.9中文参考手册》进行持续更新,欢迎关注交流!对本文或者AFSIM相关内容感兴趣的朋友,可私心联系作者。《AFSim 2.9中文参考手册》内容概览。 阅读详情

相关推荐

《深入 UFS Explorer:自定义 RAID 配置指南》

UFS Explorer支持以虚拟模式组装任何受支持的RAID配置,以便后续访问其内容或恢复丢失数据。启动RAID构建器;向RAID构建器主内容区域的列表中添加RAID组件;为不可用组件插入占位符(需当前RAID级别支持且软件兼容);调整组件的准确顺序;在“虚拟RAID配置”区域设置RAID参数;以虚拟模式组装阵列各部分。程序主窗口“存储设备导航面板”中打开的任何存储设备(包括驱动器、逻辑卷、磁盘镜像、虚拟磁盘及其他复杂存储设备)均可作为RAID组件。

melonbo的专栏 1398

这一周优快云人都看了些什么?(5.14-5.20)

小伙伴们,大家好! 这一周热榜上又涌现了众多优质文章,热榜小助手为你总结了最精华的文章,这些内容你一定不能错过! 快来一起阅读学习吧~ 热议话题文章 1.在校大学生想当程序员,听老叔这番话,你会少走很多弯路【18年开发经验分享】 作者:退休的龙叔 点赞、评论:271???? 作为有18年开发经验的博主,经常会有大学生粉丝“取经”,关于大家普遍感到迷茫的问题,博主给出了自己的解答。这些问题里面有你的困惑吗? 例如互联网行业真实前景有那么好吗?我现在的情况适合做程序员吗?我适合哪种程序员呢? .

weixin_24938247的博客 3580

数字IC后端项目典型问题之后端实战项目问题记录

数字IC后端培训教程之数字后端实战项目问题debug及解决方案记录

weixin_37584728的博客 1711

原创文章汇总(职场经验分享、自学教程、面试真题解析、技术专题深度解析)

Java 进阶学习、面试真题解析、面试经验分享

程序员囧辉 2万+

Ansys Lumerical 启动时出现 Error: Could not connect to Ansys license server specified at 1055@ 的另一种解决办法

昨天在关闭了中之后 就能正常打开 FDTD 了,结果今天想开启出现了同样的报错:我猜测昨天能启动的原因在于关闭之后要重启电脑,并且在重启之后我第一时间打开 lumerical 测试因此端口没有被占用,今天是在电脑启动之后一段时间才打开所以又遇到了端口占用的问题。

qq_51404184的博客 9540

Qwen2.5-7B大模型实战:从零部署到高效推理全流程解析

本文详细解析了Qwen2.5-7B大模型从零部署到高效推理的全流程。内容涵盖环境准备、模型下载、使用Transformers进行核心对话推理,并深入介绍了vLLM与TGI生产级服务部署、GPTQ/AWQ量化技术以降低显存消耗,以及llama.cpp、Ollama等本地推理方案。旨在帮助开发者快速掌握部署技巧,实现大模型在消费级硬件上的高效运行。

weixin_29061425的博客 490

你适合当程序员吗?程序员必看书籍有哪些?答案都在这里!

小伙伴们大家好,这里是优快云热榜小助手。听说你初来乍到,还没能玩转APP,找到最感兴趣的内容? 这一套热榜攻略送给你,一文看完一周热榜最不能错过的精彩内容! 什么是热榜? 作者们精心创作的原创文章,在获得了读者们的广泛阅读、积极互动之后,就有机会登上热榜。文章登上热榜之后,作者还能收到上榜通知哦~ 在热榜上,能看到小伙伴们最近最关心的话题,无论是薪资还是35岁危机,在这里可以尽情探讨~ 热榜上还有最硬的干货知识、最实用的面试总结等,都在等着你探索哦~ 经常光顾热榜的小伙伴,会收到小助手精选的热

weixin_24938247的博客 1582

【CarMaker实战指南】从零构建环形测试场景与车辆连续仿真

本文详细介绍了如何使用CarMaker软件从零构建环形测试场景与实现车辆连续仿真。通过分步指导搭建闭环道路、连接交叉路口、规划车辆轨迹等核心操作,帮助用户掌握CarMaker的基础应用技巧,并提供了常见问题排查与进阶优化建议,适用于车辆耐久性测试和自动驾驶算法验证等场景。

weixin_29274969的博客 234

面试必问的CAS,你懂了吗?

面试必问的CAS,你懂了吗?

程序员囧辉 15万+

后仿之 SDF优先级和相关概念

综上:在后仿中,工具(vcs)看起来对于negative interconnect的处理如下:a. 查看此negative INTERCONNECT语句所对应的destination cell中是否有PORT语句:b. 如果PORT delay的值大于等于INTERCONNECT的绝对值,就从PORT中消耗掉对应的负值。c. 如果PORT delay不够用,就查看destination cell中是否有IOPATH或DEVICEm有IOPATH或DEVICE,并且够用(任意一种够用就行),就消耗掉。

qq_24434431的博客 1107

BAT007:批量为当前目录下的文件夹添加前缀或后缀

摘要:编写批处理程序,实现批量为当前目录下的文件夹添加前缀或后缀。

qq_31762031的博客 4052

原创文章汇总(职场经验分享、自学教程、面试真题解析、技术专题深度解析)(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!43426)]

2401_84433974的博客 1221

国科大学习资料--模式识别与机器学习(黄庆明)--期末复习题2(含答案)

国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) ...

无名何许人的博客 1万+

全网最硬核 Redis 高频面试题解析(2021年最新版)

Redis 终极面试手册

程序员囧辉 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

史上最详细的 JDK 1.8 HashMap 源码解析

可能是史上最详细的 HashMap 源码解析。

程序员囧辉 12万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

两年Java开发工作经验面试总结

动机: 最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪个知识点今天又问了等等。四月中旬的时候,我就在构思要写一篇面经,主要是想着可能对那些跟我相同处境的人有点帮助,再者就是稍微记录下这为期一个月的面试过程。 本文地址:http://blog....

程序员囧辉 12万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

4 年 Java 经验,阿里网易拼多多面试总结、心得体会

4年经验,面试阿里、拼多多、网易的总结和体会。

程序员囧辉 3万+

排序算法:快速排序

概述 手写排序算法几乎是程序员面试必问的题目,大多数人都会选择写冒泡排序,如果此时你写的是其他改进过的排序算法,相信会让面试官眼前一亮。本文将介绍常见的排序算法中的“快速排序”。 基本思想 快速排序(QuickSort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是: 从要排序的数据中取一个数为“基准数”。 通过一趟排序将要排序的数据...

程序员囧辉 5万+

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 216

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 326

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 147

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 113
上一篇: Spring学习笔记
下一篇: dubbo看这一篇就够了
Carl God
博客等级 码龄7年 1908粉丝 48原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值