博客の启程

一年Java的工作经历

     --第一次试着写博客,想回顾下自己一年工作的收获,思考,和不足


回看研究生阶段:

基础:会简单的Java语法,然后就是有学习各种方向上的理论知识

经验:做过一点工控类型的项目,基本上是基于百度拿来即用的原则,做完整个项目的

总结:黑一点的小白

Java后端入职的前6个月(经历)

入职时的感受:

    入职的后才发现,读书时期学习的东西和工作上的不是不太一样,是基本上不一样,现在明白了很多面试的时候为什么会问你转岗,面的Java可能会问你转C++,也可能问你转数据分析等,委婉点说,你现在有一定的学习能力,你的基础在工作后忽略不计,所以你有无限的可能...之前在实验室里做的东西杂而不精,所以刚入职的时候是一脸懵逼,很多现在觉得很简单不过的操作,当时做好都特别费时间,那段时间第一次体会到了工作上的焦虑,不过能怎么办呢,不能一口吃成个胖子,又委婉点说,心存畏惧,却勇往直前...

最开始的6个月:

    加入的部门,整个体系已经非常成熟了,所以做的第一件事就是熟悉系统的代码和业务逻辑,我的leader先让我梳理一个内部人员使用的系统,待我熟悉了之后就开始让我试着做一些工作,因为之前有一些Java基础,所以看大部分还是能看懂的,但是有两点当时很困扰我,第一点就是框架的问题,当时没有学习过SSM框架,所以对一些注入,配置文件,crud写的位置等都很费解,比如之前都是new一个对象然后调用方法,现在都是通过注入的方式;第二点就是设计模式,因为从一个代码入口处到代码详细逻辑的地方,是一直跳来跳去的,为什么不把大部分逻辑写在一个类里,而是分别封装在不同类里,这两点是我当时梳理系统费时间的主要原因。

    因为我接触的系统已经比较成熟了,所以开始时大部分的工作就是梳理系统和仿写,比如在一个工厂模式下,已经存在了很多资方,代码规则也很成熟,这时新接入一个资方,那么大部分都可以按照之前的逻辑写。当时完成一个功能给我的感受,就是我的眼前有一片迷宫,而我要做的,就是准确在规定迷宫的一处的苹果树上摘一个苹果,然后顺利走出来。也就是说我的工作内容很简单,怎么准确了解整个系统前后逻辑,保证我的功能能顺利接入整个系统是我的难点。

    于是开始了我框架的自学《Spring 5 高级编程》,在学这本书前,我先看了一些搭建框架的博客,能搭建一个基于SSM的框架的项目,但其实搭完也没什么印象,基本就是按照步骤走,所以才想着看看详细点的书,《Spring 5 高级编程》这本书介绍的也很全面,有不懂的地方可以结合博客学习,主要学习了依赖注入,切面和事务管理,但因为我的底子确实薄弱,就这样硬啃了两周也是云里雾里的,但唯一有进步的是,至少能看懂项目中类的注入是怎么使用,学习认识了一些注解,也能区分什么时候要创建对象,什么时候需要注入对象,至少能保证我能正常工作,梳理系统的效率也比之前提高了不少。

    这6个月,因为在成熟的体系上添砖加瓦,所以感觉技术方面的提升不大,但还是熟悉了很多工作中需要用到的工具,之前用的版本控制是SVN,进了公司才慢慢学会了git的使用,虽然平时有clone一些github的项目,但没有普遍地去学习了解(好奇心求知欲不够强吧,是我技术水平不高原因之一);学会了更多的Linux命令行,方便查看日志;学会了Jenkins自动部署;学会了一些方便的编辑器和插件的使用;学会配置和使用xxl-job;巩固了Java基础和了解了一些框架的使用。其实现在看来,当时学习这些工具的使用,命令行的使用,觉得困难,只是因为不熟悉这种工作方式,这些工具还有很多,不可能全部了解,但是在习惯了这种有好的新鲜事物来临时,我能快速学习基础的使用并完成相应任务时,我觉得这是我的一个进步点,面对新鲜的东西,不再抗拒,乐于去尝试了解,走出舒适圈(其实也是工作所迫,不进步就凉了)。

    在稍稍适应了工作节奏后,就迎来了我的第一次出差,还记得当时是一位同事带我一起去的,主要工作,就是配合联调,当面沟通效率高,但感觉什么都不懂就去了,去了之后就做笔记,把同事所有的操作过程记下来,做成脚本,因为下一次,就是我一个人去了...第二次去是一周以后了,去的前一天晚上,在同事事无巨细的讲解下,记录下了整个联调步骤,当时感觉就是稳的一逼,结果第二天去自己操作时,发现对接的人也是新来的,除了当天联调的内容,还要面对各种业务上的问题,因为对其他业务上的逻辑不熟,我还都要从代码中找逻辑,导致进度大幅度下降,然后一遇到bug,就要卡半天,完全不是我想的剧本,就像你看了孤影的李信,然后又最近出了李信一念神魔的皮肤,你感觉你能行了,结果战绩0-8,当时就这种感觉。当时早上10点去的,晚饭没吃一直干到了快12点,还是没搞定,就...延期上线了,太真实了。不过还是要经历过这么一次,因为有了这次的铺垫,自己做了深刻的总结,考虑的方面也全面了很多,第二次的单独出差,半天就搞定了,提前上线。总之,这6个月就是一个缓慢的适应过程,在学习上有点没有方向,学习的知识也没学透彻,掌握的很多技能都很浅显,根基不稳又不知道怎么提升。

Java后端入职的后6个月(经历)

    经过了6个月的试用期,本已习惯了这种生活节奏和工作节奏,这时却猝不及防地被分配到了新项目组,和以前成熟的工作体系不同,这次,是要从0做起,而这6个月,也是我觉得自己技术提升最大的时候。

    去新项目的时候是12月底,然后就是从12月底开始,到除夕前,都是10 10 6的工作节奏,当时突然觉得,这才是互联网公司嘛,不秃怎么变强。最开始还是写接口,大部分还是crud,后来自己有负责一部分内容后,就开始暴露了很多问题出来,开始最多的问题就是空指针,而导致空指针的,就是我的思考模式的问题,我不能清楚知道数据在实际中的场景,还有代码编写时我也不知道是不是规范的,这里的不规范大多指代码的逻辑,我发现我写代码时,喜欢避重就轻,有问题直接解决问题,而不是思考是什么导致了问题,没有思考会不会有其他原因会导致问题,只是单纯地能解决就行,但后来我发现我的leader每次思考的角度都和我不一样,还有其他同事在分享会时切入技术点的角度也不一样,他们会从全局出发,以最适合项目发展的方向去发展,而不是只是说怎么好解决问题就怎么来,再后来项目里引入了SonarLint,我自己学习了设计模式Head.First.design.patterns,并且在写代码时不断仿写,看自己的思路和别人的区别,逐渐知道了什么时候需要注意哪些点,也逐渐知道了最开始的那些封装调用的设计原理,最后项目于3月左右上线了。

    上线后生活又逐步恢复,开始了一周双休,所以也有时间学些自己想看的东西了,比如在工作期间,有使用到了线程池,于是就工具书式学习了《Java多线程与并发》,想在Java学习上进阶,又学习了《深入理解Java虚拟机第四版》的自动内存管理和虚拟机执行子系统,公司迁项目为docker部署,又开始自己学习docker和k8s(现在也就能部署,能看容器日志和能安装k8s),有了粗浅的了解。看网上很多大佬说前期看《Thinking in java》有很大帮助,于是最近又开始学习基础和思想,其实在这些学习的过程中我觉得即使我看得仔细,也做了笔记,但是也只是当时能够理解,但如果自己不常用,时间过几天就忘了,看一遍完全没用,只能说这些学习的内容变成了我的记忆碎片,等下一次用到时,能有一种熟悉感,并且再次学习时能效率高一些。目前给我的感觉就是我能完成普通的开发任务,但还远远不够,自己学习了很多,但又感觉什么都没学到,思考...

思考:我是要成为架构师的男人

实践是检验真理的唯一标准

    看书看一遍,效果不大,多看几遍,针对某一本还行,多了的话又没有时间,因为感受到了从0开始做项目后带来的提升,所以想找找什么适合自己做的事,在公司任务不紧的情况下能锻炼自己,在github上能拥有自己的开源项目。

学而不思则罔,思而不学则殆

    每周周末自己在家,回顾一周的工作和学习内容,做一点总结,所以我来写博客了

生于忧患,死于安乐

    每个行业都是青春饭,大浪淘沙,不进则退                                              

 

                                                                                                  --never never give up like a fire

  

posted @ 2020-07-17 16:59  pmingup9012  阅读(37)  评论(0编辑  收藏  举报