程序员为什么热衷于造轮子,升职加薪吗?

程序员为什么热衷造轮子 “程序员为什么喜欢造轮子”,这是个老生常谈的话题,不过,里面还是有很多道道儿哈 阅读详情

程序员为什么热衷于造轮子,升职加薪吗?

 

一、前言

哪个架构师没造过轮子?

你想过这样一件事吗?是先具备能力再安排职位,还是先安排职位在学习? 什么?走后门,你出去!

就像我们上学考试、跆拳道考段、晋升答辩一样,都是先具备了可胜任上一阶段的能力,才给予相应的职位。所以,架构师造轮子从做程序员时候就开始了,只不过到了架构师阶段可以造出更好的轮子。

鉴于实际业务开发的紧急程度,不会允许你造轮子。但造轮子,几乎是每个程序员突破技术瓶颈的最佳方式。千万不要因为一句,不要重复造轮子的借口,给自己一个不学习的理由!

二、我造过的轮子

我可能是痴迷于造轮子!

了解小傅哥的粉丝可能都知道,我的第一份工作是写了两年的 C#,但为了不放下我写好的 Java,在工作之余就用 Java 语言把我能接触到到的项目,都用 Java 写了一遍,包括;串口打码机服务、中继器对接、PLC数据采集等等。

等到正式进入互联网后,像是为我打开了新的大门,这能接触到的知识太niao性了,盘它!来,看我造过的轮子。

1. RPC 通信组件

  • 文章:手写RPC框架第三章《RPC中间件》
  • 源码:https://github.com/fuzhengwei/itstack-demo-rpc
  • 难度:3星
  • 15年初进互联网,惊讶的发现原来两个工程之间还可以使用RPC通信,以前公司使用的还是http或者webservice,所以这部分知识给我带来了很大的冲击。为了能更明白的了解它,找到了一些git中的源码,像Dubbo、gRPC,进行学习。学着学着,就开始动手自己实现一次,实践的过程学到了大量的知识,包括;结合Spring开发中间件、自定义配置、主定义注解、切面拦截、Netty通信、编解码器、流量整形等等。这些知识也为我后续开发其他中间件,打下了一个很好的基础。

2. 编写JVM虚拟机

  • 文章:用Java实现一个JVM虚拟机
  • 源码:https://github.com/fuzhengwei/itstack-demo-jvm
  • 难度:5星
  • 这是一个用不上的轮子,同时这么干可能有点虎,整整写了一个月,写了几十万行代码,才能运行几个简单的HelloWorld。但,因为我不想听别人吹着一些理论词忽悠了我的编码生涯,也不想看几本不能实操落地的书就感觉学会了。所以,我才愿意投入大量的时间进行实践,虽然我不能完整的编出一个可以用到生产使用的JVM,但我通过这样的学习,了解了JVM的基本功能;搜索和解析class、字节码指令集、运行时数据区、虚拟机栈、栈针、局部变量表、操作数栈、寄存器等,是如何一步步把Java代码跑起来的。

3. 基于SpringBoot的分布式任务中间件

程序员为什么热衷于造轮子,升职加薪吗?

 

  • 文章:开发基于SpringBoot的分布式任务中间件DcsSchedule
  • 源码:https://github.com/fuzhengwei/schedule-spring-boot-starter
  • 难度:3星
  • 这是一个什么轮子呢?简单来说它这功能类似xxl-job,组件要解决的问题是把定时任务,可以分配到不同的机器上去执行,同时它是以 zookeeper 作为注册中心扩展为分布式任务调度系统。接入方式接单易用,统一控制启停、宕机灾备等。并且能自动检测;部署数量、任务总量、成功次数、失败次数、执行耗时等信息。

4. 服务治理中间件

  • 文章:服务治理中间件之统一白名单验证
  • 源码:https://github.com/fuzhengwei/door-spring-boot-starter
  • 难度:3星
  • 服务治理是什么?其实服务治理包括的内容也比较多,例如;从部署层面、管理层面、应用层面、网关层面等等,而这里的服务治理说到的是应用层面,简单来说,例如你有很多个服务系统,每个服务的对外层都需要白名单,那怎么办呢?不太可能每一个系统都重复的开发类似的功能,这样也很难管理。所以我们希望把业务系统中,非业务逻辑的通用性核心功能抽离出来,开发成统一的业务组件,来帮助服务解耦,让业务系统更关心业务流程开发。那么这就是服务治理其中的一个作用。

5. Netty仿桌面版微信

程序员为什么热衷于造轮子,升职加薪吗?

 

  • 文章:Netty+JavaFx实战:仿桌面版微信聊天
  • 源码:https://github.com/fuzhengwei/NaiveChat
  • 难度:4星
  • 本项目是作者小傅哥使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信实现通信核心功能。

6. 还有很多造过的轮子

  1. 数据库分库分表路由中间件
  2. Redis缓存读写引擎中间件
  3. ES + Ibatis结合使用中间件
  4. 全链路业务流程监控

除了,这些造的轮子还有很多,其他的不一一列举了。当然我不只造轮子,还造各种小工具,甚至还包括js写的散列路由计算器。总之,我可能在造轮子的路上越走越远,是因为过于痴迷!

三、造轮子升职加薪吗?

造轮子本身不一定升职加薪,如果你第一次造,也许会被扣薪。

如果是运用到业务系统中的造轮子,不同于CRUD,往往需要了解 Spring 或者 SpringBoot 部分源码,以及动态代理和反射等知识。并且在设计实现上也要考虑的非常全面,否则出了事故就不只是一个系统,而是所有使用你这个轮子的系统都需要随着你升级改造上线。所以,造轮子不一定升职加薪!

但,造轮子可以让个人的技术栈得到很全面的成长,也许还能让你在某个阶段突破现有的技术瓶颈。因为造轮子你需要学习以往别人的轮子、组件的源码、拓展的技术栈以及更加全面的思考。

最后是你造的轮子要能经受起验证,也要能适应业务需求进行拓展,并且这可能还是一份除了你日常业务系统开发外的其他工作。是否能经受起这份考验,也就决定了你能收获多少知识。而这份别人没掌握的知识才是你升职加薪的筹码!也是你能留下的本事和走出去的能力!

四、有人反对你造轮子?

不要重复造轮子、不要重复造轮子、不要重复造轮子

很多时候你是否听到这句话,而把自己内心的小火苗浇灭。其实这句话从某些时候来说不一定是错的,因为一个项目的开发到上线,需要对时间成本、项目质量、可靠度进行评估,谁也不敢贸然使用一个没有验证过的新功能,也不敢让你拿着练手。

当然,有时候我们造的轮子不一定是重复的,可能是创新的。但这个轮子的阶段,不应该是新项目启动时候开始,最起码应该是你在这之前就写过,已经验证过,已经投入生产过,才敢让你造了用。对于当前这次开发,如果非常紧急,那么最好的是求稳,并在这个项目里吸收更多的经验。并总结如果是用了你的轮子,那么这个轮子能支持多久,还需要扩展吗,会不会有问题。

这一切的学习、总结、应用,最终都是可以为你技术栈成长铺路的。不要因别人反对就放弃,也不要倔强的就非要怎样,而且游刃有余的成长和学习。有准备的人,总是会在必要的时候给力!

五、总结

  • 没有一句话能评论造轮子的错和对,即使是已经有了的轮子,那么你以学习为目的呢?你以可以拿出更优的方案为导向呢?所以,想造就造吧,只不过千万要验证再使用!
  • 造轮子能我们学到很多业务系统开发以外的知识,这些知识能拓展你的技术栈,扫描掉一些技术盲区,为你以后的晋升答辩或跳槽面试铺好够到更高薪资的垫脚石。
  • 想造轮子要学会读源码、学会技术迁移、学习数据结构、学习算法、学习设计模式,一定是先提升技术视野了,才能让自己有造轮子的想法,而不是硬造。
保姆级教程:用SSH手动重建黑群晖RAID1阵列,修复‘存储空间损毁’ 本文提供了一份详细的SSH手动重建黑群晖RAID1阵列的教程,帮助用户修复‘存储空间损毁’问题。通过深入解析mdadm软RAID的底层逻辑,从诊断到重建的全过程,确保用户能够掌握黑群晖存储池的修复技术。适用于技术爱好者和系统管理员。 阅读详情

相关推荐

华中科技大学头歌 交通灯系统设计 Lojisim 详细实验报告,实验图,仅供参考

本实验也是参考了许多大神的做法,也是小白一个!有完整实验代码,实验报告,答辩PPT(ppt当时做得仓促,有点拉胯)~ 需要请评论或私QQ:3096524043(有偿~~) 一、数码管驱动 由真值表生成电路 二、四位无符号比较器设计 三、8位无符号比较器设计 四、一位2路选择器设计 五、八位2路选择器设计 六、BCD双向计数器状态机设计 七、BCD双向计数器输出函数设计 ...

FindXY的博客 1万+

造轮子是什么意思_发明简史——轮子(上)

程序员中流行一句话:“不要重复发明轮子。” 意思是说,不要从头去实现一个已经很规范、很成熟的功能或模块。“轮子”在这里是个借喻,指那些已经被广泛应用的基本方法或技术。轮子是人类发明的六种简单机械之一(其他五种分别是:杠杆、斜面、滑轮、楔子和螺旋)。有一种观点认为:轮子是人类的伟大独创,不像飞机等发明,是从自然存在的事物中获得灵感。未必尽然。最早的轮子一定是用于交通运输吗?轮子的关键部件有两个:轮盘...

weixin_39838028的博客 1830

论文理解【LLM-OR】——【OptiMUS】Scalable Optimization Modeling with (MI)LP Solvers and Large Language Models

OptiMUS 把“自然语言→优化建模与求解”从单次生成改造成“结构化问题 + 多智能体协作 + 连接图检索”的模块化流程,并在更长更难的数据集上验证了这种结构化方法相对端到端 prompting 的优

佚失的诗篇 823

造轮子是什么意思_Web 前端工程师为何热衷于造「轮子」?

偶然间看到了这样一个问题:Web 前端工程师为何热衷于造「轮子」?从我的角度来看,这是因为 Web 前端知识更新速度很快,为了不被抛弃,大伙需要不断学习保持竞争力。其实「轮子」更像是一种学习成果,一个探索知识的 Demo,以及一些兴趣的实践。这就有了很多的模仿秀:仿京东,仿天猫,仿各种音乐播放器。一、情景再现就拿自己来说吧,业余造的轮子也不少:1.小程序刚出来那会儿,为了尝鲜,抽时间写了一个抢口令...

weixin_39663933的博客 2844

Quartus II 13.1 出现 ‘‘can‘t find design entity <Filename>‘‘ 问题的解决方法

Quartus II 13.1 出现 ''can't find design entity '' 问题的解决方法

qq_62076686的博客 1万+

Lasso的原理及其与其他特征选择方法的比较进行阐述,然后讨论Lasso优点、缺点以及应用场景,最后给出了代码实例

在机器学习领域中,特征选择(feature selection)是指在模型训练前对数据集进行分析,选择其中有助于预测目标变量或影响模型性能的特征,去除不相关或冗余的特征,提升模型的泛化能力。而Lasso回归是一种很流行的用于特征选择的方法之一。Lasso回归(又称LASSO,least absolute shrinkage and selection operator)是一种线性模型中的特征选择方法。

AI天才研究院 3051

造轮子是什么意思_程序员为什么热衷于造轮子,升职加薪吗?

作者:小傅哥博客: https://bugstack.cn -沉淀、分享、成长,让自己和他人都能有所收获!一、前言哪个架构师没造过轮子?你想过这样一件事吗? 是先具备能力在安排职位,还是先安排职位在学习? 什么?走后门,你出去!就像我们上学考试、跆拳道考段、晋升答辩一样,都是先具备了可胜任上一阶段的能力,才给予相应的职位。所以,架构师造轮子从做程序员时候就开始了,只不过到了架构师阶段可以造出更好的...

weixin_39734048的博客 570

STM实战开发(13):STM32开发:使用光敏电阻检测光照强度

光敏电阻(LDR)是一种电阻值受光照强度影响的半导体材料。当光照强度增大时,光敏电阻的电阻值降低;而当光照强度减小时,电阻值则增大。光敏电阻的电阻变化与入射光的强度之间并不是线性关系,而是呈对数型的变化。LDR通常由硫化镉(CdS)或其他半导体材料构成,材料对不同波长的光有不同的响应特性。一般而言,光照强度越强,光敏电阻的电阻值越低,反之则越高。本文介绍了如何使用STM32与光敏电阻(LDR)结合,进行光照强度检测的实现方法。通过配置STM32的ADC模块,读取光敏电阻的电压信号,并根据电压计算光照强度。

2201_76125393的博客 3018

程序员为什么热衷于造轮子,而不是硬照,升职加薪吗?

一、前言 哪个架构师没造过轮子? 你想过这样一件事吗?是先具备能力在安排职位,还是先安排职位在学习? ????什么?走后门,你出去! 就像我们上学考试、跆拳道考段、晋升答辩一样,都是先具备了可胜任上一阶段的能力,才给予相应的职位。所以,架构师造轮子从做程序员时候就开始了,只不过到了架构师阶段可以造出更好的轮子。 鉴于实际业务开发的紧急程度,不会允许你造轮子。但造轮子,几乎是每个程序员突破技术瓶颈的最佳方式。千万不要因为一句,不要重复造轮子的借口,给自己一个不学习的理由! 二、我造过的轮子 我可能

weixin_45820912的博客 374

PyCharm 2024最新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

PyCharm 2024新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

Code_流苏:在代码中寻诗意,在实践中觅真知 4万+

揭秘大厂 Unity 红点系统设计:别小看右上角那颗小红点,它能把你项目搞崩

本文详细探讨了游戏大厂如何设计高性能红点系统。红点作为提升用户活跃和转化率的重要工具,需要支持多级联动、动态判断和全局一致性。系统采用观察者模式和树形结构,分为数据管理、逻辑判定、订阅通知和UI展示四大模块,通过事件驱动方式实现高效刷新。文章特别强调了解耦设计、配置化管理和性能优化,并提出了热更新、数据分析等高级应用场景。最终指出,优秀的红点系统需要架构标准化、自动化配置和团队紧密协作,是大型游戏项目的关键技术基础。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 377

程序员该造轮子吗,造轮子能升职加薪吗?

持续坚持原创输出,点击蓝字关注我吧作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????目录一、前言二、我造过的轮子1. RPC 通...

python爬虫人工智能大数据 788

论文必备 - YOLO26统计数据集中大、中、小目标数量,附完整代码和详细使用步骤

数据集是由微软开发维护的大型图像数据集。数据集标注类型对应任务包括物体检测、关键点检测、实例分割、stuff分割(没有特定形状的物体),全景分割人体关键点, 人体密度检测等。官网数据规模和样本特点数据规模大:总共包含32.8万张图像)。其中标注过的图像超过 20 万张,拥有 150 万个目标实例,数据量丰富,能够为模型训练提供充足的信息。类别丰富:包含80个目标类别和91个“stuff”类别。目标类别涵盖了日常生活中常见的各种物体,如人、动物、交通工具、生活用品等;stuff。

Limiiiing的博客 266

这36个坏习惯,影响着程序员是否能升职加薪

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路代码湾来源:http://codebay.cn/post/9414.htmlIT行业的科技公司们一直苦苦追寻传说中以一...

java面试笔试 201

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

这6大核心技能,程序员升职加薪的利器

“人如果没有梦想,那和无忧无虑有什么区别”,听起来好像很有道理,但作为当代社畜,日常996,越没钱越想花钱,想无忧无虑奈何生活不易。 经常会有人在后台留言,“想成为一名程序员,最该掌握哪些核心技能,才能被领导赏识,在工作中升职加薪呢?” 对于这个问题,千锋武汉小编斟酌再三,建议大家从以下6个方面入手: 1、吃透一门编程语言 想要成为一名程序员,那么掌握一门编程语言并将它吃透是必须的。虽然有人会说优秀的程序员会不止一门语言,但你只有精通一门编程语言了,学起其他的语言才会容易。 许..

weixin_45820912的博客 373

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

@程序员,你们还在用网上随便找的方法导入导出Excel么,我们给你造了个轮子!!!!!...

程序员的显著特点 有一天跟一位同事跟我闲聊,讨论起过去若干年软件行业的感受,他问了个问题:你觉得一个好的软件工程师最显著的特点是什么? 我想了一会,说:大概是坐得住吧。 某种意义上来说,在互联网技术飞速发展的今天,信息的洪流总是无声无息间把我们掩埋,一不小心,可能就感觉自己似乎已经out了。 当然,信息有良种,也有莠子,有的信息能够让我们收获颇多,但是大部分信息其实都是八卦信息,与大家的...

farway000的博客 206

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

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

别再重复造轮子了!!!

①购买后,请在知识星球APP中,查看【新人必读】星球使用指南,同时,添加【黑马-小智】微信,拉你进入会员群!在自学编程的路上,最大的成本往往不是金钱,而是你宝贵的时间和一次次被消磨的信心。付费,本质上是为被验证过的路径、系统的知识和宝贵的经验买单,是用最小的成本穿越迷雾,直达目的地。A:无论你是在职人员还是在校学生,只要你想学习、想进步,这里都适合你;在这里,黑马名师天团为你实时解惑!👉 遇到一个棘手的Bug,搜遍全网,答案五花八门,却越看越懵;A:加入后,服务周期为1年,让你有足够的时间提升自己;

传智播客的专栏 152

程序员,为什么不建议你写框架

肉眼品世界导读:最近又接手一个无数人望而远之的项目,这个项目核心的东西几乎是一个程序员写出来的,产品经理平时也是望洋兴叹,可是,这个程序员却跑路了读懂中国互联网,读懂商业模式请关注微信...

weixin_45727359的博客 953

腾讯T3亲自讲解!移动开发者升职加薪的8项技能,聪明人已经收藏了!

前言 去年,一条职场潜规则走红网络:不要大声责骂年轻人,他们会立刻辞职的,但是你可以往死里骂那些中年人,尤其是有车有房有娃的那些。 真实感受到程序员的中年危机 在中国,除了从 BAT 出来的牛人,一般经理层到 35 岁,总监层到 40 岁,往后机会真的会少很多了,不是你能不能干的问题,是别人不给机会你干的问题,不要想着什么外国人可以干到 50、60,你就要死磕到底,希望后来者早有打算,不要到最后尴尬的时刻。 华为裁员34岁以上程序员,互联网公司越来越青睐新鲜血液。90后正处在一个尴尬的阶段,前有资深职场老人

clhcowboy的博客 335

面试如何鉴别程序员是资深还是初级?

最近看到一张挺搞笑的图,把程序员等级非常“明确”划分了: 之前也看过调侃程序员发量的段子:初级乌黑亮丽,中级一败涂地,高级锃光瓦亮。 当然,这张图也就呵呵一笑,从某种角度上来说代表了目前程序员加班与焦虑的不同程度吧。真实情况没这么夸张,到专家级别估计也都是在猝死的边缘试探了... 但话说回来,如何鉴别一个程序员是初级还是资深呢?尤其面试时,面试官要怎么看,应聘...

aipythonlearn的博客 766

程序员请改掉影响你升职加薪的36个坏习惯!

原文作者:代码湾 | 编辑:徐刘根出处:http://codebay.cn/post/9414.htmlIT行业的科技公司们一直苦苦追寻传说中以一当十的超级程序员,最新的...

Java后端技术 621

软件开发者升职加薪的 8 项技能

私下里,经常有一些读者问我:“作为一名软件开发者,我应该掌握哪些技能,才能被领导赏识给我呢?”说实话,我心目中很多选项,不少于 20 个,但我斟酌再三,...

fengdu78的博客 337

程序员如何高效学习技术?

如果你在一个小公司,收入一般,发展前景不明,准备大厂的面试就是最好的学习过程。以数据结构和算法为例,大家阅读一下Java的BitSet的源码,里面有大量的移位操作,移位运算掌握的好,看这份源码就没问题。今天给大家介绍一款强大的前端工具啊,JNPF,前后端分离架构,丰富的在线设计体验,强大的代码生成器,让前后端代码一键生成,实现低代码开发,让开发更多关注业务,节省研发成本。它拥有灵活的配置功能,可以让用户轻松的生成行和列,并且通过简单的拖放就可以实现对它的布局的调整,相信这可以大大提高我们的工作效率。

JNPF 专注低代码开发 1373
上一篇: 这个数据库图形化管理工具够强,谁用谁知道
下一篇: 用Springboot&WebScoket再造一个类似微信的聊天小程序(附源码)
爱玛士
博客等级 码龄7年 719粉丝 253原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值