本人首先想说的是,一般提升Java技术的方式是,在跑通人家基础上理解流程和代码,即提升技能是靠抄,而不是凭空去写。讲得再明确些,想通过自己写代码提升的,往往甚至都未必能入行。
为什么得靠跑通+理解的方式去提升,而不是凭空写的方式去提升,本人有专门的文章解释,甚至大家还能看到具体用“跑通+理解”方式去提升的方法。
怎么吃透一个java项目?下文就具体说说,哪些java代码能帮助程序员提升技术,以及能提升到什么程度。
1 跑通Java核心部分的代码,只能说知道个皮毛,甚至连找工作的门槛都没到。
比如跑通个集合,多线程,或者是带界面的游戏,或者是界面+JDBC的xx业务系统,这些只能证明会java,哪怕是跑通10个20个只是带界面的游戏,甚至连初学者的门槛都没达到。
2 跑通个spring boot(或ssm或其它web框架)框架,能针对单表做增删改查的业务,这至少达到了找工作的门槛。
对于初学者来说,找工作最好是需要能证明有项目经验,而如果当能用spring boot连数据库做增删改查,那么就能证明自己做个单个业务模块,再扩展下数量,真能证明自己做过项目了。
在做会spring boot连数据库做增删改查的基础上如何写简历和找工作,大家可以看我如下的文章。
老胡聊Java:23年,在Java行情一般的情况下,说说通过自学找java工作的操作要点3 对3年内项目经验的java开发来说,提升技术不是靠写功能,而是靠排查解决实际问题。
一方面是靠看日志分析日志,分析异常点的位置以及解决方法,另一方面可以逐步提升解决问题的难度,比如一开始是语法异常,再后面是数据库异常,再可以是性能调优方面的异常,再升级一下就可以是部署或者是组件使用方面的异常。
4 再要提升一般就得通过使用组件了。
Java程序员的发展方向是架构,架构技能一般是通过使用组件开始学,比如一开始是用redis,kafka等组件,或者是nacos等微服务方面的组件。
所以java程序员在找到工作后,固然可以通过写业务代码来熟练技能,但要提升的话,一定是两个方向,第一刚才已经讲过,是排查解决实际问题,另一个方向就是先去从api层面用redis或nacos等组件,然后再去排查组件层面的业务问题。
但是一般小公司项目能给出的技术实践上限是使用组件的api,后面更值钱技术的实践机会,可能要中大厂才能给予了。
5 会用(分布式或微服务)组件意味着java程序员开始向架构师升级,升级过程中一定得从运维和部署的角度去搭建组件的环境,或者是解决组件层面的问题。
比如一般开发是会用redis,初级架构是能排查redis的实际问题,或者是能搭建redis单机版或集群,而redis层面的任何问题,比如是性能问题或各种异常,其它人搞不定,高级架构或公司顶梁柱级别的架构,一定得能通过看日志,debug(redis或其它组件)的底层源码来解决。
也就是说,做熟增删改查业务的java程序员如果要提升,得实践组件配置部署,组件使用,以及排查组件问题的相关技能。
6 再往上就是搭建轮子的大牛级别程序员了,比如开发个seata组件,或者开发个skywalking组件。
而在提升过程中,写业务功能的代码,确实有帮助,但第一帮助有限,第二只能帮忙提升到java开发的熟练工(一般是高级开发),再要往上提升,一般得先去得到相关技术的实践机会,否则如果没实践机会,哪怕自己看资料,或者去买资料看,效果不大。
顺带说下,java高级开发提升到架构,一般是个门槛,原因是不少公司没法提供架构级技术的项目实践机会,而提供架构级技术实践机会的公司,在招架构师时,一般都要求有架构实践经验。
对应的方法一般是,先通过准备面试,在技术不到位的前提下拿到项目实践机会,然后再到项目里去提升,相关做法本人也有文章。
小公司程序员自学是否能达到大厂程序员的技术水平?虽然说,实践出真知,但在具体操作起来,如果一直做重复劳动,那么提升毕竟会有上限,比如做熟增删改查只能帮忙提升到熟练工,而本文列出的一些提升渠道和方法,应该可以帮到大家。
写到这里,本人再从反面来讲讲,java方面写哪些代码,或者看哪些技能点,对提升的帮助不大。
1 java是做web后端开发的,所以用java实现界面方面的代码,比如做游戏,或者写UI等桌面程序,运行这部分的代码基本没什么用。
2 通讯相关的socket代码,看了效果不大,多线程相关的代码,如果没使用场景也别看,当下高并发多线程这块,基本上是用组件,而不是自己用多线程对象实现。
3 除非是要解决实际问题,那么可以通过debug底层源码的方式熟悉spring boot, java core, redis或其它组件的底层代码,否则别去看底层源码。底层源码除了能帮助解决实际问题外,另外一个唯一的价值,就是结合项目应用说辞用在面试上。
4 除非有用到,否则别去细看算法源码,而且当下大多数java项目是做应用,而不是写算法。
最后再啰嗦下,java方面,提升的捷径一般就两个,第一是通过面试找到能给予相关技能(各种技能包含值钱技能)实践机会的项目,第二在项目里,除了要写代码以外,更要多解决实际问题。 |