如何实现技术的成就感

640?wx_fmt=jpeg

做了多年的技术后,内心深处总有一件事在支撑自己,让我遇到各种困难,能继续向前。细想下来,这或许就是技术人的那份成就感,那么如果要问我什么是成就感,我的答案就是让自己在技术上的不断突破。

技术的突破是需要依赖业务场景的需求和自身刻意的规划学习,二者缺一不可,前者是机会,最直接的实现方式就是加入到一家有潜力或者大公司,在自己工作中实践场景。另外一方面,光有业务场景还远远不够,还需要加强系统的学习与梳理,制定一个不同时间段的发展道路,在好的项目中一展身手。

        接下来谈谈自己过去做过的一些事情,分享一下在系统的学习中,可以做一些什么方面的积累:

01

工程化思维

作为一名工程师,很重要一点就是要搞明白什么技术开发的本质,技术开发是一个工程项目,而工程项目的落地最重要的就是细节控制,也就是代码的品质,比如以下几个方面:

  1. 建立合理的API设计的标准,比如我之前写过的 分布式平台下API 设计浅谈

  2. 完善单元测试体系,包括自动化测试,比如我之前写过的聊聊自动化

  3. 架构设计遵循SOLID原则 or KISS原则,比如我之前写过的如何做高可用的架构设计

  4. 合理的数据结构和算法,持续优化系统性能,比如我之前写过的秒杀系统设计中的数据处理

02

扩充知识广度

工作3-5年后,如果认真工作,相信技术基础已经有一定积累,这个时候,需要主动突破舒适区,不断的去扩大自己的技术视野,做到有广度。

这一步比较难,因为很多同学会被公司的技术和业务牵着走,比如公司当前的业务规模决定了技术上不需要微服务/分布式/高并发,那么很多同学就不会去思考如果规模大了之后,如何利用分布式技术解决该问题。

如何解决这个问题?很重要一点就是,要时刻保持时刻跳出当前层级和环境来思考的习惯。比如在工作中,我们只用了Mysql或者Oracle这样的关系型数据库,那么有没有想过数据达到现在的100倍,到达TB级别的时候该如何快速检索与保存呢?市面上有没有现成的产品可以拿过来使用?

此外,技术的全貌还包括各种技术之间的关系,你用了Dubbo,那么Duboo和Netty是什么关系,为什么我们要用Zookeeper作为注册中心,Dubbo和Spring Cloud之间的比较?如果能在学习新技术的时候,将繁杂的技术关系理顺,才能形成自己的技术拼图。

注意积累,厚积薄发。想要学习能力强,与平时的知识储备是相关的,所以工作中不能遇到问题再现学,而是平时注意学习和积累,然后工作中遇到问题加强学,会发现很快就能掌握。

03

提升技术深度

光有广度是不够的,需要选择某一个或几个方面深入研究下去,构建自己的核心竞争力。

比如,在我们现在的微服务架构下,消息队列是系统中一个及其重要的组件,起到削峰填谷、系统解耦的作用。我们以消费端如何快速获取数据来看思维是如何一步步深入的:

1. 消费端要想及时获取数据,一个思路就是建立一个长连接,那么我们要学会建立长连接的实现方式。

2. 数据通过push还是pull方式给到消费端,我们需要知道这两种方式的利弊

3. 如果消费数据失败,我们需要考虑所有可能的原因,例如是网络原因引起,那么我们的异常处理是什么?

点线结合,两路学习。在工作中遇到问题都是点状的,也就是知识点。为了不影响项目进展,我们吃的是快餐,按照知识点学习,先解决工作中的问题,解决后知识还理解的不是那么透彻,我们需要再把该知识点相关内容进行系统学习, 提升我们的深度。

技术的成就感不会无缘无故的产生,一定是先提升自己,持续加强学习能力,扩宽自己的眼界,学着从全局看待问题,通过一个又一个项目的实践来沉淀的。

描二维码或手动搜索微信公众号【架构栈】:ForestNotes

欢迎转载,带上以下二维码即可

              640?wx_fmt=jpeg

点击阅读原文”,所有【架构栈】近期的架构文章汇总

↓↓↓

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章