毕业应届生,进公司维护一个java老项目,天天改新需求,这样对以后找工作有帮助吗?

Jun日记


作为一名IT行业的从业者,同时也出版过Java编程书籍,所以我来回答一下这个问题。

首先,在软件开发领域,尤其是应用级开发领域,改需求是一种常态,即使开发互联网领域的产品,也需要不断的迭代。随着大数据、云计算的发展,软件需求几乎每天都要进行调整,不少大型互联网企业甚至有多个不同的开发团队同时向多个不同方向进行产品迭代,以便于能够及时把握住用户的各种最新需求。所以,程序员在面对需求更改的时候,一定要有充足的思想准备。

由于Java语言已经有了多年的应用历史,所以目前有大量的历史项目都是基于Java语言编写的,随着技术的不断发展,这些历史项目如果想进一步延长生命周期,必然需要进行一定的修改,所以目前在Java传统项目的基础上进行开发也是比较常见的现象。

虽然是从事历史遗留项目的开发,但是由于Java语言目前依然是IT行业内最为流行的编程语言之一,所以对于开发经验并不丰富的应届毕业生来说,也能够积累一定的开发经验,毕竟实际的开发项目能够获得更快速的成长,同时也能够积累一定的行业经验,可以说是一举两得的事情。

对于应届毕业生来说,要想不断提升自身的职场竞争力,需要做好三方面的事情,首先是不断丰富自身的知识结构,重点在于能够紧跟技术发展趋势;其次是能够通过自主学习完成某个细分方向的突破,这通常需要一个扎实的基础学科基础,比如数学;最后是积累丰富的实践经验。所以,在工作的初期通过修改遗留项目也能够积累一定的开发经验。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!


IT人刘俊明


我也是一个java后端开发,工作了几年,也是从应届慢慢一路走过来的,说一下我的感想。

我记得刚开始的时候我是到了上海一家公司实习,因为刚出校门,在学校学习的东西在企业可能就用不上了,然后公司安排了我们三个月的培训,培训的内容涉及到了数据库,plsql,前端后端的基础,最重要的一点是公司自己研发的框架,这个有的小伙伴就学习了一周就被公司派去做项目了,这种框架都是底层封装的很厉害,只需要按照特定的步骤就能开发出客户需要的功能,业务层面更重要一点,所以只需要会sql,就能搞定日常开发,所以如果一直搞这个几年,我觉得出去都不好找工作,所以当时我们都不愿意去这个部门搞公司的新框架。如果进了公司,平常都不怎么敲代码,业务功能更强一点的话,我觉得这个还是别去了,因为这样的话,对于应届生成长会很慢,以后找一份技术开发都有点困难。

然后我运气比较好,第一个项目公司就派我去做java开发的工作,当然我那时候啥也不会,我也不知道去项目组干什么,在项目组两个月我基本上都是用模板写导入,导出,写一些页面,因为是实习生,所以就只是参与一些比较小的功能点,但是我已经很开心了,通过这个项目我知道开发是怎么回事了,知道大家是怎么协作开发项目,管理项目了,知道冲突怎么解决了,比我在学校里看着理论强太多了。

后面我又到了另一个项目组,是维护一个ssh老的项目,在老的项目上增加新的功能,这个项目我竟然做了8个月,当然在这个项目上我也学到了很多,不光是我的思维开发,碰到了客户的需求从哪里去想怎么做,还有数据库建表模型,遇到问题去服务器里面看日志,这些都是在项目上学会的。

当我实习完,我感觉公司里接的都是一些管理项目,我觉得再做下去我的技术也不会提升,所以我果断离职了,然后找了一家互联网的公司。

所以我觉得刚毕业的应届生维护老的项目也能学习很多,整个开发的完整过程,锻炼自己的业务逻辑,对数据库的理解,看错误日志都可以从这个项目中了解,平时不忙的时候还可以把自己的基础打牢固,好多知识都是自己去自学的,现在网上信息那么全,想要了解什么知识都是可以去自学的,当你觉得你在这个项目上学不到什么知识的话那就可以跳槽了。


前行中的那抹阳光


我和作者的经历一模一样,毕业那时就进了一家中小型公司,公司的项目都已经成型了,跟我一起进去的几个小伙都是维护旧项目,最多客户说加需求才会有新功能写,不然都是修修改改bug,美化界面。

但是我觉得我在维护旧项目能学到很多,比如说阅读别人的代码,是对自己的一种成长,从中可以看出代码的质量,提醒自己不能和他们写的一样,会经常遇到空指针的报错,各种小问题,学会排查问题,学的最多的是,优化别人的代码,我从一个3000+行的jsp优化,封装。

上面这些都是我实习时期的工作和收获


龙川本地资讯


这个看你所谓的Java老项目指的是你这个项目的架构太老了还是仅仅因为是上批人留下的旧项目,但架构还是当前主流。

如果你说的是项目的架构老了,那可以肯定的说对以后找工作没有什么好处。现在技术发展这么快,一不小心就会被落下,虽然不说要走在技术前列,但至少要跟上主流。我面试的过程中,经常碰到一些程序员在上家只是维护老项目,他们接触的架构太老,好一点的还知道Struts,更倒霉的有些进的是大公司,维护的是十几年前的项目,架构还是用的公司自已封装的,甚至连SpringMVC都没用过,更别说Springboot等等了。这些人换工作的理由基本都有一条感觉技术上落伍了,想要接触下新的架构。尤其是应届就进公司维护老架构,完全没有新技术的工作经验,对以后的发展很不利。

另一种情况,如果这个项目的架构还属于当前的主流,只不过是之前已经完成了,你现在只是维护,那可以说对你是一个很好的机会。静下心来,认真去学习这个项目,先从整体上把握整个架构,请求进来一步步怎么走的,每一步都用到了哪些配置、哪些技术,然后再掌握细节,可能这个地方用到了锁,那个地方用了多线程,等等。在有成型的项目参考的情况下,学东西特别有效果,千万不要忙时只顾写代码,闲时只会撩妹子。


五四疯哥


应届毕业生,刚进公司维护老项目,天天改新需求,个人觉得对以后找工作是很不利的,具体从正反俩面进行剖析。


好处:

  1. 工作压力不会很大,程序员很多情况下的加班都是面临项目上线或者无穷无尽的需求,老项目一般都运行很长时间了,即使有需求也不会很多,所以相对而言是很轻松的。
  2. 老项目属于比较成熟的产品,可以从中学到系统架构,以及一些功能的实现逻辑,自己再依葫芦画瓢,相对从零开始更容易上手。

坏处:

  1. 老系统用的技术比较老旧,很多新技术就难以在工作中学到,长此以往,会与外面的新技术脱节,桎梏自身发展。
  2. 老系统维护可能会存在很多疑难杂症,代码可能会写的比较复杂,你再去排查问题的时候很难屡清楚代码逻辑,排查问题存在一定的困难。
  3. 维护的人都是领导认为能力一般的人,长期做维护很难在领导面前有所表现,会影响自己的前途。
  4. 上面已经说了,做维护压力不会很大,而生于忧患死于安乐,程序员需要趁着年轻多学习,不然等你老了想熬夜身体也不允许了。

毕业,是从学生到工作者角色的转换,这个时候比的不再仅仅是学习的能力,而是社交、自学、自律等各方面,第一份工作的选择很重要,一定要慎重,如果是我,一定不会选择维护,可以选一些小企业,压力会稍微大一点,但是确实能学到东西,至于大企业,等你羽翼丰满了,再进去养老也不迟。

以上为个人观点,欢迎在评论中发表自己不同的观点,喜欢的加个关注,谢谢。


架构师的成长史


有的,因为最起码是“天天改新需求”。要知道很多应届毕业生刚刚进入公司的时候很可能连接触代码的机会都没有,都还在测试和写文档中对业务进行熟悉。当然,做测试和写文档也有很大学问,但是对于一个程序员来说,对代码的熟悉程度永远是最重要的。


再说一说“老项目”,其实我觉得对于毕业生而言,老项目反而比新项目更有价值。一个优秀的老项目里头,有太多的宝贝可供你来挖掘。修改老项目的过程中,无疑需要你阅读大量的代码,对于一个优秀的程序员,阅读代码的能力和编写代码的能力同样重要。

除开锻炼代码阅读能力,你还可以学习到优秀的代码风格、成熟的系统架构、完整的业务流程、实用的外部框架、文件组织结构等等。


但是,毕业生在学习的过程中一定要具备分辨好坏的能力,这一点对于毕业生来说可能很难,那就需要通过阅读其他优秀的开源项目来培养。在许多不成熟的公司,毕业生被很多不好的代码带偏,养成错误的编码习惯。


同时,作为一个应届毕业生,不应该只在工作中学习,还需要在业余时间大量补充知识。如果有一天你在工作中已经不能再有新的收获,那就是你迈向下一个台阶的时候了。


不会编汇编


个人认为,这是很正常的现象,维护老项目,做新需求,对工作经验的积累也是有帮助的;但同时可能会对你的发展有一定的影响,我来详细地谈谈自己的看法。

在大部分的公司,一个项目的生命周期,都是以年为单位计算的,短一些的两三年,长一些的十来年(我见过最老的项目已经运行二十年了);如果是传统行业的公司,一个项目运行五年以上再被迭代替换掉,是很正常的现象,说句不好听的就是:“哪有那么多新项目让你参加。”

先说说好处吧:

要想维护好老项目,很关键的一点就是要了解业务,很多程序员只看中技术,而忽视业务,这种看法是不对的。

熟悉业务就需要了解行业领域的运转逻辑和流程,需要知道行业是如何发展起来的,现状是什么样子,未来趋势将会是怎样;用什么技术,有哪些解决方案。如果你只会敲代码,那你就是可以被替代的,因为现在会敲代码的程序员太多了,除非你技术超群,能达到大师的水平,但公司在招聘程序员的时候,更多的是看你做了哪些项目,是否能够用手中的技术解决某方面的业务问题。

现在很多IT公司喊“科技驱动、技术驱动”,但实际上,大多数时候都是被业务逼着前进,就比如阿里的飞天系统、中台战略架构,也不都是淘宝用户逼出来的。

坏处当然也是有的:

  • 首先,维护老项目,也分侧重业务还是业务和技术兼顾,这要看公司的性质。比如我就职于一家金融公司的IT部门,校招进来的开发岗位,大多数还是以业务为主(很多时候开发都依靠外包),这些同学进公司几年下来,技术方面进步是非常有限的;在这方面,互联网大厂做的就非常好,对于校招的同学,公司都有成熟的培训制度,有些公司会一对一地安排“老师傅”带新人,而且新人的主要工作就是敲代码。所以,如果你在一个偏业务的公司,就要自己更努力一些,去提升编程能力。


  • 另外,“老项目”要看有多老了,需要分析一下项目组的技术栈都有哪些,近期是否引入过新的技术。如果项目用到的框架还都是五年前十年前的,而且长期保持不变,这时候就要小心了,你可能身处在一个毫无活力的项目。因为你是“新人”,第一年技术方面还能有所提高,后面的工作可能对你技术的提高毫无帮助。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。


会点代码的大叔


路过答题。

这个问题其实真的值得好好思考。很多IT圈的朋友遇到过这样的问题,被安排到公司的一个老项目上,成天维护旧代码,学不到新东西,需求还总变,到底对以后有没有帮助?

其实,有时候还真不能通过辞职来解决问题,为什么呢?这是因为辞职虽然可以解一时之痛,但并不是上策,你从一家公司跳到另一家公司,如果不出意外,很可能依然是平级跳槽,即使在工资上稍微有些增长,但如果新公司的项目比原来的还坑那你是不是叫天天不应,叫地地不灵?

我们在职业生涯中,如何面对这种看似巨坑的Java项目?我的答案是,积极面对。

积极面对的意思是深入挖掘项目需求和实现之间的关系。

一个Java项目不论好坏,其背后的需求价值是值得肯定的。这样的价值在市场上也是值得肯定的。那么我们感觉老项目没有前途,只是我们自己由于认知的片面性导致对项目的错误认识。

我认为应该做的就是深入理解需求和实现之前的关系,挖掘需求是为了在所处行业中找到立足点,而挖掘技术实现是为了能够增强自身核心竞争力。

在深入理解需求和实现之后,我的建议是进行重构和调整,重构的意思并不是重新写一遍代码,而是让代码的健壮性更强,后期维护的项目,需要更强的健壮性来支撑,这样才能跑的更久。

需求的改变并没有什么关系,而我们应该视需求的更改为一种常态,不变的需求才是不对的。以这样的心态去面对老项目,新需求就不会那么痛苦。

让自己放平心态,才能学到知识,否则,就算你辞职辞职再辞职也不过是从一个坑跳入另一个坑。辞职是一种回避,治标不治本如果想真正有所成长,必须在一个坑中拼命的站起来。

以上,就是我的个人观点,希望对你有所帮助。


高级Bug调查员


怎么说呢,以前我没有进公司的时候,总以为进了公司之后可以学到很多的东西,但是进了公司之后就发现我错了。能不能学到东西,其实完全在于自己。当然进公司之后,能够实际参与到项目中,对于开发流程的了解以及实际工作内容还是有帮助的。

作为应届生,进入公司维护一个java老项目,怎么说呢,其实也是一件很正常的事情,我觉得其实帮助也是挺大的。作为程序员的第一个能力就是学会看源代码。让你维护一个老项目,你可以好好地看看别人写的代码,学习其中的精华,避免掉一些不好的地方。当然了,前提是你要有一定的分析代码的能力,知道什么是好的代码,什么是坏的代码。作为应届生吧,缺少的就是项目经验,也没有真正的接触过实际的项目源代码。这是,你可以从看代码开始学起,学习一个需求从controller层,到service层,在dao层,是个怎么的过程,了解这个套路吧,对你今后正式加入项目组还是很有帮助的。

其次,要想以后跳槽找到更好的工作,这个完全要靠自己下班之后的时间。你如果好好利用下班之后的时间,有针对性的学习,不断地提高自己的能力,之后的跳槽到更高薪资的岗位上是完全没有问题的。

总之,一句话,一切都得靠自己。努力总会有收获的。加油吧!


每天学点java


作为一名Java开发人员,其实我刚进公司做开发的时候大体情况和您类似。

面对这种情况,其实更多的需要的是我们自身态度、行动方面的改进,毕业应届生,本身就是职场小白,代表着无任何开发经验、项目经验、工作经验,这种情况下,项目组长更多的可能考虑的是让应届生逐渐去熟悉工作环境并且适应这种节奏。同时安排的工作更多的是开发维护为主。

首先维护一个Java老项目,难度其实说难不难,说不难也难,主要是看遇到什么问题。端口阻塞、CPU彪升、gc问题对刚入职场的人来说可能较难,但是一些新需求、小型需求的开发,更多的是逻辑的编写,这部分其实很简单,毕竟老项目中有很多的类似代码。天天改新需求其实也是程序员的工作内容。

程序员本身就是在开发需求功能,天天改新需求,可能是与您对接的产品经理的工作做得不够周全,这就需要您与产品经理的协商。

考虑以后的工作,其实这就需要您在完成自身的工作的时候,尽可能的去拓展一些知识面,学习一些新的技术,您现在本身的工作其实除了写逻辑代码应该会接触到一些项目的构建以及框架、代码构建思维等相关的知识,这都是您现在需要去面对、总结、提升自己的方面。

既然您负责老项目的维护,那就您完全有时间把老项目全部吃透。从老项目怎么搭建、到搭建的结构性编码、编码的思维、框架的使用都是您或缺的知识和能力。等您什么时候能单独撸出一个大型项目的时候,您也许就是架构师了。这对您将来跳槽找工作其实是很多帮助的。找工作更多的会询问您参与的项目。根据项目区询问一些具体的开发细节或者开发难题的处理。


纯个人经验,希望对您有所帮助。谢谢!


分享到:


相關文章: