实习
大学四年过的很快,不知不觉我就毕业了,利用暑期我找了一份Java实习的工作,我遇到了一个很好的leader,他也很厉害,在他的指导下我学到了不少的知识。
首先我了解到了我参与项目所需要的技术,大部分的技术都不是很熟悉,有些甚至没有听过,发现公司使用的技术都很新,学校所接触的都是最基础的东西,在我学习公司新技术的时候,我发现即使技术再新,只要基础好还是很容易上手的,比如现在有很多的数据库,有些可能没有听说过,但是数据库语句大致是相同的,只要在大学时候学好数据库这门课程,不管用什么数据库,都相对容易掌握,所以基础还是比较重要的。我的leader分配给了我项目中相对简单的一个模块,当我做任务中一个查询的功能时,我觉得查询还是相对简单的,但真正去做的时候我才发现十分复杂,查询需要采用远程调用的方式去实现,因为查询的内容分布在不同的数据库中,需要将多表查询的内容组合起来,SQL语句也十分复杂,根据不同的查询条件将数据展示在前端上,写好的代码用git提交做到统一管理,方便团队合作。通过spring data JPA,我们在管理数据库时可以直接调用方法的接口,在进行多条件查询时,我们可以通过拼SQL的形式进行查询,即使某些查询条件是空的,也不会出错,这样可以避免在编程时出现大量重复的代码,减少了工作量,在后期修改bug时候也节省了不少的时间。之前对数据库中数据以json形式进行存储比较模糊,在实习中,我对json数据的操作熟练了不少,还有许多之前模糊的东西都变得更加清晰了。当查询数据需要很多的sql'语句时,我们调用接口速度就会很慢,就需要去解决查询速度慢的问题。
我很好奇在公司前后端以及测试人员是如何共同完成一个项目的,通过实习解决了我的疑惑。面试之前,我记得我看过一道问int和integer区别的面试题,我很疑惑为什么要问这么基础的问题,在工作工程中我也确实体会到了这个确实很重要,还有equal和==有什么区别,如果不注意,最后就会产生bug。与产品的沟通也很重要,在编程之前一定要多和产品沟通,充分的了解项目的内在逻辑,如果匆忙地就编写程序,等最后发现出现问题,修复将会花费更多地时间。编程序也需要积累经验,没有项目经验的时候编写的程序会出现很多的bug,等参与的项目多了,有了经验,自己在编写时就会注意哪些地方容易出错,自然bug也会少许多。果然在实践中,学到的东西更多,学习的效率也提高了不少。
实习也让我体会到了工作的不易,和上学完全不同,没有任何一份工作是轻松的。确实不能荒废大学的时光,只有学到更多的知识,自己的在工作初期才会轻松一些,今后的路才会好走一些。