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


做者:小傅哥
博客:https://bugstack.cn - 原创系列专题文章html

沉淀、分享、成长,让本身和他人都能有所收获!😄

1、前言

哪一个架构师没造过轮子?git

你想过这样一件事吗?是先具有能力在安排职位,仍是先安排职位在学习? 🤬什么?走后门,你出去! 程序员

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

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

2、我造过的轮子

我多是痴迷于造轮子! 面试

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

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

1. RPC 通讯组件

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

2. 编写JVM虚拟机

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

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

4. 服务治理中间件

  • 文章:服务治理中间件之统一白名单验证-%E6%9C%8D%E5%8A%A1%E6%B2%BB%E7%90%86%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%B9%8B%E7%BB%9F%E4%B8%80%E7%99%BD%E5%90%8D%E5%8D%95%E9%AA%8C%E8%AF%81.html)
  • 源码:https://github.com/fuzhengwei/door-spring-boot-starter
  • 难度:⭐⭐⭐
  • 服务治理是什么?其实服务治理包括的内容也比较多,例如;从部署层面、管理层面、应用层面、网关层面等等,而这里的服务治理说到的是应用层面,简单来讲,例如你有不少个服务系统,每一个服务的对外层都须要白名单,那怎么办呢?不太可能每个系统都重复的开发相似的功能,这样也很难管理。因此咱们但愿把业务系统中,非业务逻辑的通用性核心功能抽离出来,开发成统一的业务组件,来帮助服务解耦,让业务系统更关心业务流程开发。那么这就是服务治理其中的一个做用。

5. Netty仿桌面版微信

6. 还有不少造过的轮子

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

除了,这些造的轮子还有不少,其余的不一一列举了。固然我不仅造轮子,还造各类小工具,甚至还包括js写的散列路由计算器。总之,我可能在造轮子的路上越走越远,是由于过于痴迷🧐!sql

3、造轮子升职加薪吗?

造轮子自己不必定升职加薪,若是你第一次造,也许会被扣薪。数据库

若是是运用到业务系统中的造轮子,不一样于CRUD,每每须要了解 Spring 或者 SpringBoot 部分源码,以及动态代理和反射等知识。而且在设计实现上也要考虑的很是全面,不然出了事故就不仅是一个系统,而是全部使用你这个轮子的系统都须要随着你升级改造上线。因此,造轮子不必定升职加薪!

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

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

4、有人反对你造轮子?

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

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

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

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

5、总结

  • 没有一句话能评论造轮子的错和对,即便是已经有了的轮子,那么你以学习为目的呢?你以能够拿出更优的方案为导向呢?因此,想造就造吧,只不过千万要验证在使用!
  • 造轮子能咱们学到不少业务系统开发之外的知识,这些知识能拓展你的技术栈,扫描掉一些技术盲区,为你之后的晋升答辩或跳槽面试铺好够到更高薪资的垫脚石。
  • 想造轮子要学会读源码、学会技术迁移、学习数据结构、学习算法、学习设计模式,必定是先提高技术视野了,才能让本身有造轮子的想法,而不是硬造。

6、系列推荐

相关文章
相关标签/搜索