
Java
在找到
Java开发工作之前与之后,对于从事
Java后端开发的理解和实践方式,有着天壤之别。更进一步来讲,工作之后对
Java后端开发这份工作的理解,直接关联着程序员发展的
天花板。在找到
Java后端开发工作之前,受学习项目和学习环境的局限,对
Java开发往往存在如下认识。其一,学习
Java就是学习
Java核心部分(例如集合、异常或者多线程等)的语法,像是字符串如何使用,多线程对象怎样创建以及如何运作。其二,再深入一点,会学习整合数据库功能的Web开发技术,当下比较流行的是
Spring Boot,在这方面学习的最高程度也就是跑通一个
Spring Boot + Mybatis +
MySQL的学习项目。许多想要学得更深入一些的
同学,还会去跑通多个不同类型的项目,比如电商、外卖或者
物流项目等。其三,之后可能就会开始毫无目的地钻研技术,例如去学习Nacos等微服务组件、Redis或者Kafka等组件,再去学习
linux方面的技能,但在这方面学习的极限仅仅是会使用语法,比如生硬地引入一些Nacos或者Sentinel语法,在数据库并发量不大的情况下使用Redis,这是因为学习项目无法模拟真实项目的场景。其四,在跑通学习项目的基础上,很多
同学可能就会去学习一些和找工作无关的技能,例如去学习前端技术、微机原理、编译原理、操作系统等技能,或者又去钻研算法,但这些和找工作并没有直接的联系。或者可以这么说,在找到真正的
Java工作之前,学习的目的在于证明自己具备商业项目经验,而非学习一些工作之后会被推翻的技能。更进一步而言,如果仅仅指望着跑通学习项目,或者一味地学习
Java核心语法和API,这不但对找工作毫无帮助,而且会让自己迷失学习的方向。再次强调,在找到工作之前,学习
Java的目的是为了证明自己有商业项目经验,从而顺利找到工作。关于这一点我有很多文章阐述,在此就不展开细说了。然而在真正从事
Java后端开发工作之后,就会发觉,实际的工作方式和工作所涉及的内容,与之前想象的并不相同。大多数拥有3年开发经验的
Java开发人员,日常所做的工作其实是,抄袭现有的业务代码然后加以修改,完成基于增删改查的业务,另外引入一些日志、事务等方面的内容,同时解决一些线上的问题。