最近有位好友问我:日常开发中,都是在做业务需求,如何提升自己的技术呢?因此,本文小黑整理了提升技术的13个建议,小伙伴们,一起加油。
比如,对于Java
程序员来说,要了解Java
语言的基本概念和核心特性,包括面向对象编程、集合框架、异常处理、多线程等等。可以通过阅读Java
的官方文档、教程、参考书籍或在线资源来学习。
如果最基本的基础都不扎实,就不要谈什么提升技术啦。 比如说:
你知道HashMap和ConcurrentHashMap
的区别嘛?
在什么时候使用ConcurrentHashMap
?
操作文件的时候,你知道在finally
块中释放资源嘛?
你知道在哪些场景适合用泛型嘛?
因此,要提升自身技术,首先就是要把基础打扎实。有些小伙伴说,上班没时间学基础呀,其实不是这样的,基础这玩意,每天地铁上下班看看,下班后回到家再看看,周末在家看看,多点写写代码,一般一两个月,你的基础就很好啦。
又有些小伙伴说,如何提升Java基础呢?有哪些教程推荐呢?可以:
阅读Java相关书籍或教程,如Java编程思想、Java核心技术、Java虚拟机、菜鸟教程等
阅读Java博客和社区参与讨论:关注Java领域的博客、论坛和社区,了解最新的技术动态和解决方案,与其他开发者交流。
多实践,多敲代码:在B站找个Java基础视频看,平时多实践、多敲代码
工欲善其事,必先利其器. 所以一位好的程序员,往往编码效率就更高。而提升编码效率,一般要求熟悉并灵活应用工具.比如Eclipse、IntelliJ IDEA、Maven、Navicat
等。熟悉运用这些工具,可以提高开发效率。
我举个例子,比如你熟悉掌握IntelliJ IDEA
的快捷键,三两下就把实体类的setter和getter
方法生成了,而有些的程序员,还在一行一行慢慢敲。
优秀的程序员,之所以优秀,是因为他会总结踩过的坑,避免重蹈覆辙。所以,田螺哥建议你,日常开发中,如果你踩了哪些坑,就需要总结下来.茶余饭后,再温习温习.
比如,你知道:
Redis分布式锁使用,可能会有哪些坑嘛?
线程池使用有哪些坑?
Java日期处理有哪些坑嘛?
Arrays.asList
使用可能有哪些坑?
孔子说,三人行,必有我师。大家平时在看代码的时候,不要总吐槽着项目的烂代码。其实,可以多点关注写得优秀的代码,然后看懂别人为什么这些写,仿造着来写。
当然,一些好的设计文档也是:人家为什么这么设计,好处在哪里,不足又在哪里,如果是你来设计,你如何思考等等。把好的设计,读懂后,记录下来,变成自己的知识.
在日常工作中呢,注意整理一些通用的技术方案。
比如幂等设计、分布式锁如何设计、分布式事务设计、接口优化、限流设计、分库分表设计、深分页问题解决等等。
当然,小黑也建议你,日常开发中,把自己遇到的一些通用设计方案总结下来,熟悉掌握这些通用技术方案。
参与技术讨论和交流,可以有助于你与其他Java开发者分享经验、解决问题和学习新知识。进行技术分享,可以加深自己的理解、建立专业声誉、促进个人成长、为技术社区做贡献等等。
比如你做需求遇到的一些难题,都可以跟有经验的同事、或者技术leader讨论讨论。一些常见的难题,讨论完可以记录下来,然后做技术分享。
作为一名开发工程师,具备主人翁意识并积极攻克项目的难题,是非常重要的。遇到项目中的比较棘手问题时,先不管是谁的问题,我们都要持有主人翁意识,积极主动地找到解决方案并采取行动。
而在找技术解决方案的过程,我们也就成长了。当攻克问题后,你也获得领导的认可,好绩效不远了,一举多得!
日常开发中,几乎大多数程序员都是在进行增删改查。如何如何避免自己成为平凡的增删改查程序员呢。
我觉得可以这样做:平时工作中,思考项目中,有哪些可以提升的效率。包括熟悉开发工具、掌握适当的调试技巧、熟悉常用框架、持续学习和关注技术发展等等。
比如:
好的的debug
调试技巧,可以让你快速找到问题
再比如一个插件easyyapi
可以一键让你快速生成yapi
接口文档,而不用一个一个字段手工敲接口文档。
当然,日常开发中,还有很多可以提升效率的技巧/工具,等待我们去发现。
我们普通程序员,多数都是做业务的。一般工作个五年以上,水平差不了太多。如何避免自己被淘汰呢?我个人建议是,尽量做到熟悉你们做的业务,让自己变得不容易被替代。
一般的系统,多多少少都有些问题。比如接口耗时过长、慢SQL、fullGC频繁等等。
首先需要掌握这些技能,比如如何优化接口,如何优化慢SQL、fullGC如何排查等等。
很多小伙伴说,看过很多计算机相关的书,阅读过很多博客,背了很多八股文,依然做不好一个系统。
我觉得,大家可以多点思考,把平时积累的东西,应用到实际项目中。背八股文不是没用,你可以把它应用到实际开发中的。比如说,你看了一篇文章,表面看起来就是一个常见的八股文知识点,工作中似乎没用到。但是我在工作中,就用到这种类似的异步思想:
比如发起一笔批量转账,但是批量转账处理比较耗时,这时候后端可以先告知前端转账提交成功,等到结果处理完,再通知前端结果即可。
再比如,你看了sql索引的文章,你是不是可以回头看看,你的系统中,那些sql的索引加的是否合理呢?是不是可以思考一下如何优化,对吧。因此,就是要学以致用。
如果你有空余的时间,就建议你看看一些优化框架的源码,比如spring、rockectMq
等等。
对于spring源码的话,可以按模块来呀,比如aop,控制反转,spring事务
等,你先写个demo
,然后debug
跟踪流程,通过调试器逐步跟踪源码执行过程,观察各个方法的调用关系和数据变化。最好是结合电子书一起,如(Spring源码深度解析
这本书一起)
优秀框架的源码,我们可以学习到很多编码思想的,加油。
作为程序员,一定要多打代码,不要偷懒,代码敲多了,你就会了。还有就是,少点偷懒,坚持!努力!养成热爱编程的好习惯。
总之,提升技术需要不断学习、实践、总结和积累经验。