提升技术的13个建议

1. 打好基础,深入学习语言特性

比如,对于Java程序员来说,要了解Java语言的基本概念和核心特性,包括面向对象编程、集合框架、异常处理、多线程等等。可以通过阅读Java的官方文档、教程、参考书籍或在线资源来学习。

如果最基本的基础都不扎实,就不要谈什么提升技术啦。 比如说:

  • 你知道HashMap和ConcurrentHashMap的区别嘛?
  • 在什么时候使用ConcurrentHashMap?操作文件的时候
  • 你知道在finally块中释放资源嘛?
  • 你知道在哪些场景适合用泛型嘛?

因此,要提升自身技术,首先就是要把基础打扎实。 有些小伙伴说,上班没时间学基础呀,其实不是这样的,基础这玩意,每天地铁上下班看看,下班后回到家在看看,周末在家看看,多点写写代码,一般一两个月,你的基础就很好啦。

又有些小伙伴说,如何提升Java基础呢? 可以:

  • 阅读Java相关书籍或教程,如Java编程思想、Java核心技术、Java虚拟机、菜鸟教程等
  • 阅读Java博客和社区参与讨论:关注Java领域的博客、论坛和社区,了解最新的技术动态和解决方案,与其他开发者交流。
  • 多实践,多敲代码:在B站找个Java基础视频看,平时多实践、多敲代码

2. 熟悉掌握常用的开发工具

工欲善其事,必先利其器. 所以一位好的程序员,往往编码效率就更高。而提升编码效率,一般要求熟悉并灵活应用工具.比如Eclipse、IntelliJ IDEA、Maven、Navicat等。熟悉运用这些工具,可以提高开发效率。

我举个例子,比如你熟悉掌握IntelliJ IDEA的快捷键,三两下就把实体类的setter和getter方法生成了,而有些的程序员,还在一行一行慢慢敲。。

3. 日常工作中,总结你踩过的坑

优秀的程序员,之所以优秀,是因为他会总结踩过的坑,避免重蹈覆辙。所以,田螺哥建议你,日常开发中,如果你踩了哪些坑,就需要总结下来.茶余饭后,再温习温习.

比如,你知道:

  • Redis分布式锁使用,可能会有哪些坑嘛?
  • 线程池使用有哪些坑?
  • Java日期处理又又哪些坑嘛?
  • Arrays.asList使用可能有哪些坑?

如果一时间忘记的话,可以看下我以前的这些文章:

  • 细数线程池的10个坑
  • Redis分布式锁的10个坑
  • Java日常开发的21个坑,你踩过几个?
  • 程序员必备:Java日期处理的十个坑

这些都是我工作总结出来的,也希望你们日常开发中,遇到哪些坑,都总结下来哈。

4.工作中,阅读你项目优秀的代码和设计文档

孔子说,三人行,必有我师。大家平时在看代码的时候,不要总吐槽着项目的烂代码。其实,可以多点关注写得优秀的代码,然后看懂别人为什么这些写,仿造着来写。

当然,一些好的设计文档也是:人家为什么这么设计,好处在哪里,不足又在哪里,如果是你来设计,你如何思考等等。把好的设计,读懂后,记录下来,变成自己的知识.

5.日常工作中,总结一些通用的技术方案.

在日常工作中呢,注意整理一些通用的技术方案。

比如幂等设计、分布式锁如何设计、分布式事务设计、接口优化、限流设计、分库分表设计、深分页问题解决等等. 大家可以看下我之前的一些通用方案设计的文章哈:

  • 后端思想篇:设计好接口的36个锦囊!
  • 我们为什么要分库分表?
  • 面试必备:聊聊分布式锁的多种实现!
  • 聊聊幂等设计
  • 实战!聊聊如何解决MySQL深分页问题

当然,田螺哥也建议你,日常开发中,把自己遇到的一些通用设计方案总结下来,熟悉掌握这些通用技术方案。

6.参与技术讨论,积极技术分享

参与技术讨论和交流,可以有助于你与其他Java开发者分享经验、解决问题和学习新知识。进行技术分享,可以加深自己的理解、建立专业声誉、促进个人成长、为技术社区做贡献等等。

比如你做需求遇到的一些难题,都可以跟有经验的同事、或者技术leader讨论讨论。一些常见的难题,讨论完可以记录下来,然后做技术分享

7. 主人翁意识,积极攻克项目的难题

作为一名开发工程师,具备主人翁意识并积极攻克项目的难题,是非常重要的。遇到项目中的比较棘手问题时,先不管是谁的问题,我们都要持有主人翁意识,积极主动地找到解决方案并采取行动。

而在技术找解决方案的过程,我们也就成长了。当攻克问题后,你也获得领导的认可,好绩效不远了,一举多得

8. 思考项目中,哪些可以提升效率

日常开发中,几乎大多数程序员都是在进行增删改查。如何如何避免自己成为平凡的增删改查程序员呢。

我觉得可以这样做:平时工作中,思考项目中,有哪些可以提升的效率。包括熟悉开发工具、掌握适当的调试技巧、熟悉常用框架、持续学习和关注技术发展等等。

比如:

  • 好的的debug调试技巧,可以让你快速找到问题
  • 再比如一个插件easyyapi可以一键让你快速生成yapi接口文档,而不用一个一个字段手工敲接口文档。

当然,日常开发中,还有很多可以提升效率的技巧/工具,等待我们去发现

9. 熟悉你的业务,让自己不容易被替代

我们普通程序员,多数都是做业务的。一般工作个五年以上,水平差不了太多。如何避免自己被淘汰呢?我个人建议是,尽量做到熟悉你们做的业务,让你变得不容易被替代。

10. 多看看你的系统,可能存在哪些问题,如接口耗时、慢SQL等等

一般的系统,多多少少都有些问题。比如接口耗时过长、慢SQL、fullGC频繁等等。

首先需要掌握这些技能,比如如何优化接口,如何优化慢SQl、fullGC如何排查等等。大家可以看下这几篇文章哈:

  • 实战总结!18种接口优化方案的总结
  • 盘点MySQL慢查询的12个原因
  • SQL优化思路+经典案例分析
  • JAVA线上故障排查全家桶
  • 线上服务的FGC问题排查,看这篇就够了!

11. 学以致用,将理论知识应用到实际项目中

很多小伙伴说,看过很多计算机相关的书,阅读过很多博客,背了很多八股文,依然做不好一个系统。

我觉得,大家可以多点思考,把平时积累的东西,应用到实际项目中。背八股文不是没用,你可以把它应用到实际开发中的。比如说,你看了田螺哥的文章,IO模型详解

这个表面看起来就是一个常见的八股文知识点,工作中似乎没用到。但是我在工作中,就用到这种类似的异步思想

比如发起一笔批量转账,但是批量转账处理比较耗时,这时候后端可以先告知前端转账提交成功,等到结果处理完,再通知前端结果即可。

再比如,你看完田螺哥的:MySQL索引15连问,抗住!,你是不是可以回头看看,你的系统中,那些sql的索引加的是否合理呢?是不是可以思考一下如何优化,对吧。因此,就是要学以致用

12. 阅读一些优秀框架的源码,如spring、rockectMq等等

如果你有空余的时间,就建议你看看一些优化框架的源码,比如spring、rockectMq等等。

对于spring源码的话,可以按模块来呀,比如aop,控制反转,spring事务等,你先写个demo,然后debug跟踪流程,通过调试器逐步跟踪源码执行过程,观察各个方法的调用关系和数据变化。最好是结合电子书一起,如(Spring源码深度解析这本书一起)

优秀框架的源码,我们可以学习到很多编码思想的,加油。

13. 多编码,少偷懒,养成编程的好习惯

作为程序员,一定要多打代码,不要偷懒,代码敲多了,你就会了。还有就是,少点偷懒,坚持!努力!养成热爱编程的好习惯

你可能感兴趣的:(java,intellij-idea,maven)