工作2年还是只会增删改查,Java程序员如何进阶?
做JAVA开发的三年一个坎,你应该庆幸你还有一年的时间可以用来提升,让自己不要后悔!
不过话说回来,在平时的工作中其实90%的工作量都是增删改查,或者是对增删改查的改进,那些所谓的高并发,多线程,高可用系统,分布式系统,负载均衡,缓存,数据库读写分离,分库分表等等全部都是围绕增删改查来做改进的!
比如说缓存是因为数据库的读写压力大的时候,为增加读写效率而引进的,使用缓存的内存读写代替了数据库的硬盘读写!
比如说数据库的读写分离或者分库分表都是在单点数据库的压力过大,性能低的时候引入的无论架构怎么设计都是为了得到更好的读写效率!
再比如说,高可用,分布式都为了避免单点服务出现异常,导致读写服务不可用,从而引入的集群部署或者分布式部署!
由此可见,增删改查是我们最核心的功能,只不过我们引入了其他的架构,完善我们的功能,让我们的增删改查更加的快速!
在实际的开发过程中,要多思考系统的瓶颈在哪?增删改查的压力在哪?怎么改进?不要网上搜一堆乱七八糟的,觉得很屌的东西,学完之后发现他根本不知道是做什么的,一切的开发围绕我们的业务来展开,然后才是增强体验性,搭建快速稳定的架构!
那我们应该怎么来进阶呢?
1,大局观:不要只是盯着自己开发的功能,要知道整个系统的整个架构是什么?使用什么技术?服务之间怎么通信?整个服务的性能怎么优化?全面的来考虑,不然晋升的肯定不会是你!
2,不要一心扑在公司的工作上,要有自己的时间去学习最新的技术,去拓宽自己的知识,明白别的公司用的是什么?主流开发技术开发是什么?
3,一定要多总结,不管是平时的工作中或者学习中都能学到很多有用的东西,要把它转化成demo记录在自己的技术文档里面,方便以后自己查阅和使用!不是做过就算了,一定要记录下来!
我晚上加班的时候,除非有急事,不然都学习自己的!然后才能感觉自己有很大的提升!我自己记录了很多做过的,学过的JAVA相关技术,以后会一直分享,需要的话请关注!
对一个已经两三年的Java程序员来说,如果主要工作还是增删改查,这是相当痛苦的一件事情。互联网行业是一个发展快、变化快的行业,身处这个变化莫测的行业,总让人感觉既兴奋又不安。
在Java程序员的职业生涯中,如何才能不断提升自己的核心竞争力,实现自身技术能力进阶,也一直是一个大家都比较关心的话题。下面简单罗列了Java程序员学习进阶的几个方向,供大家参考。
编程基本功:数据结构和算法
1.数据结构相关的哈希表、链表、二叉树等等
2.常见的算法有哪些?至少下图的算法我认为应该要掌握。
比如:HashMap如何扩容,重点就是考底层数据结构。
编程基本功:Java编程
这些都算是编程基本功底:多线程、JVM、并发容器、并发类、NIO等。
Web开发
其实web开发这个领域,如果你要掌握好了,发展也非常不错的。
比如:现在的H5、小程序等,对于掌握前端技术的开发人员,竞争力也是杠杠的。
当然作为后端开发人员,多掌握点前端的技术,那也是必须的。
数据库
重点就看图了,这里涉及的技术还是蛮多的,mysql、oracle、nosql相关的mongodb,以及如今大家都熟知的分库分表、读写分离等技术。
这些都是大家熟知的,我补充点设计相关的:数据库设计范式、索引、事务、数据库相关的慢查询、长事务。
这些也算是数据库技术的编程功底。
研发相关的框架工具
Java程序员对于下图应该都是比较熟悉的,这些框架与工具都是经常使用。
架构设计
谈到设计,就不得不提到项目中的概要设计和详细设计,这就会涉及到UML。
除此之外,整个项目的设计,这个时候考验你的架构设计能力。
这里的架构设计,包含的系列非常多,特别是Redis、应用程序拆分、拆分后涉及到的RPC微服务等技术,以及后端数据库的拆分技术,以及拆分后的分布式集群部署。
分布式会涉及到:分布式锁、全局唯一ID的生成、分布式Session…这里还有蛮多的,其实大部分我在【BAT架构技术专题合集】中都分享过了,回复【架构】,即可领取。
结束语
要知道,再成功的大佬也是从第一行代码开始的,增删改查是修炼成神必经之路,该走的阶段还是要走,但在走的过程中多看、多学、多思考、多实践,在自己不同的发展时期,找到属于你的立足点,只有站稳了这个立足点,你才可以更好的开始延伸自己别的领域。
程序工作,大多始于增删改查,重复的小事做漂亮,同时扩展自己的技术边际;
职业生涯中的转机,源于坚持不懈找方法、寻求改变,主动出击争取机会;
欲速则不达,循序渐进成长,不同时期,有不同的成长阶段。
俗话说:师傅领进门,修行靠个人,想要技术进阶,需要自己持之以恒,付出100%的努力。提前做好准备,机会总是青睐有准备的人,程序人生,学无止境,共勉~
看到这个问题,我快速回想了自己这十多年的程序员经历,感觉我所有工作的实质好像都是在做增删查改;但哪些是在提升工作能力,哪些是在做重复性的工作,以及怎样应对,我谈谈自己的看法。
增删查改,也要分场景看
举个例子,开发一个商城页面,展示销售量最高的十件商品。
当页面一分钟访问量只有100次的时候,我们可以执行100次select top 10;但是当一分钟访问量有100万次的时候,这还会是一个简单的查询么?
我在上一家单位的时候,所做系统的业务很简单,就是把一批数据,按照模板,加工成待发送的短信、电邮,基本上没有特别难的地方。
但是数据量很大,基本上每天都会处理生成几千万条数据,那时候公司还都是IOE的架构,只有单台Oracle支撑;也就是在这段时间,我练就了一身数据库优化的本领;但是想象一下,如果数据量再增加10倍呢?如果数据量再增加100倍呢?
毫无难度的增删查改,建议赶紧跳出安逸状态
如果每天做的都是毫无难度的增删查改(没有复杂业务,系统也没有多大的压力),建议还是早些跳出这个安逸的状态,就算你对现在的工作环境很满意;因为说不定到什么时候,你就会摸到职业发展的天花板,甚至会面临失业的危机。
还是上一家公司的这个项目,我在这个项目工作第三年的时候,基本上把能做的都做完了,优化基本上也到极限了,最后半年的工作状态是:需求来了,做一下设计,然后让其他同事开发;我朝九晚五,上班有大把的空间时间;还好我利用这些时间去学习,看流行的技术框架,后来跳槽,工资上升了一大截。
如果你正处于这种工作状态,我建议:
一定要清楚地认识到:作为程序员,只做简单的增删查改,是很危险的;
考虑一下能否把项目做得更好,是否可以负责更多的工作;
多学习一些流行的技术,并考虑能否应用到工作中(眼界很重要);
跳槽,寻求更大的平台,很多时候,程序员的成长都是被逼出来的。
不要享受安逸!
最后,敬大家一碗鸡汤:你现在的生活水平,是你三年前的工作状态决定的;而你现在的努力程度,会决定你三年后的生活;软件开发是个逆水行舟,不进则退的行业,既然选择了这个行业,那么就要努力地“敲”下去。
希望我的回答,能够帮助到你!我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
如何用php实现增删改查?
== php也有连接数据库的三方库的,跟java一样,或者 有高级框架可以引用的,如果会了php的基本语法的话,我觉得不应该会提出这个问题!虽然我没有给出具体的答案,因为我不是搞php的。(笑哭.jpg)但是头条为啥要给我退这个问答呢!!!
毕业应届生,进公司维护一个java老项目,天天改新需求,这样对以后找工作有帮助吗?
谢谢邀请!
作为一名IT行业的从业者,同时也出版过Java编程书籍,所以我来回答一下这个问题。
首先,在软件开发领域,尤其是应用级开发领域,改需求是一种常态,即使开发互联网领域的产品,也需要不断的迭代。随着大数据、云计算的发展,软件需求几乎每天都要进行调整,不少大型互联网企业甚至有多个不同的开发团队同时向多个不同方向进行产品迭代,以便于能够及时把握住用户的各种最新需求。所以,程序员在面对需求更改的时候,一定要有充足的思想准备。
由于Java语言已经有了多年的应用历史,所以目前有大量的历史项目都是基于Java语言编写的,随着技术的不断发展,这些历史项目如果想进一步延长生命周期,必然需要进行一定的修改,所以目前在Java传统项目的基础上进行开发也是比较常见的现象。
虽然是从事历史遗留项目的开发,但是由于Java语言目前依然是IT行业内最为流行的编程语言之一,所以对于开发经验并不丰富的应届毕业生来说,也能够积累一定的开发经验,毕竟实际的开发项目能够获得更快速的成长,同时也能够积累一定的行业经验,可以说是一举两得的事情。
对于应届毕业生来说,要想不断提升自身的职场竞争力,需要做好三方面的事情,首先是不断丰富自身的知识结构,重点在于能够紧跟技术发展趋势;其次是能够通过自主学习完成某个细分方向的突破,这通常需要一个扎实的基础学科基础,比如数学;最后是积累丰富的实践经验。所以,在工作的初期通过修改遗留项目也能够积累一定的开发经验。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!
还没有评论,来说两句吧...