我做JAVA也有几年了。 因为我一直很懒,所以一直没有成为高手。 我只是一个普通的程序员。 我已经潜水很长时间了。 我很想和新人分享我从新手到老手的成长经历,也增加我的存在感。 ,应该不比曝光照片差。
首先,刚开始学习语法的时候,一定要学习如何操作对象,操作if和for,操作list set map,然后是线程、IO和jdbc。 如果您暂时不明白其余部分,可以稍后在需要时学习。
这个阶段结束后,你可以写一些可以在控制台打印的小程序,锻炼你的逻辑思维。 说是毕业了,其实只是介绍而已。 如果你想往WEB方向发展,这些基本就够了。
接下来,我们需要学习HTML JSP数据库。 目标是编写第一个动态网站。 可能只是一个登录功能,只能显示个人信息,但这却是非常重要的一步。 你需要了解的是,用户的点击请求在哪里发起、在哪里接收、在哪里处理、在哪里返回,你要了解浏览器和服务器之间的关系和分工,以及, 和。 这是学习WEB开发的初级阶段。 这些都是JAVA诞生以来最原始、最官方的WEB开发技术。 当然,现在的实际项目很少直接使用这些技术。 为了不断提高技术的易用性、开发效率,以及可维护性、可扩展性,无数的开源项目在这些原有技术的基础上进行了封装和改进。 所以现阶段不要盲目乐观跑去找工作或者对实习挑剔。 你会被击中的。
初级阶段完成后,我们开始进入WEB开发的正题。 首先是传说中的三大框架。 需要成为一名熟练的增删改查程序员。 在这个阶段,你还需要明白为什么要使用这三个而不是那些JSP JDBC。 您需要认识到编写 MVC 和三层架构的好处。 现阶段不要轻易质疑三大框架的价值。 一开始你可能会觉得很麻烦,并且有时认为它们是不必要的。 一两年后回头看,你会发现没有这些框架很难工作。 现阶段要避免的心态是,一旦熟练了增删改查,就会认为写程序无非如此,然后把熟练程度填在简历上。 这也是新手面试时被诟病无能的原因之一。 如果你学习得好,你应该能够熟练地编写博客、小型论坛等WEB项目,这意味着你已经达到了就业的基本要求。
接下来没有固定的模式。 你的第一家公司会对你产生很大的影响。 我见过糟糕的公司如何摧毁新人,利用设计糟糕的结构和过时的技术不断拖延新人的成长。 有的员工在这种公司待了好几年,思想已经完全被错误的观点定型了。 他们被困在公司的业务和旧制度里,疲惫不堪。 他们看似能够解决问题,但却无法给公司带来真正的进步,就像一个人用了好几年的砍刀,无论他多么熟练,刀功多么出色,也无法给公司带来真正的进步。用枪打某人。 如果离开这家公司,可能很难在这个行业立足。 我记得有句话说得好,如果一个人用10年的时间重复他前一两年所做的事情,你真正的工作经历其实还是一两年。 烂公司的老员工就是这样。 在第一年,设定一个标准。 你应该能够做的是:
1.学习了一些常用的琐碎技术,比如xml的作用和实际应用,如何操作文件,如何使用日志,如何简化和封装常用的工具类,如日期操作,编码处理,分页模块,等等,这些小事会占用你大量的时间去处理摸索。
2、利用好数据库。 数据库不仅仅是增删改查那么简单。 你要注意事务设置是否合理,是否有可能产生脏数据,是否应该使用乐观锁、悲观锁等等。如果重要数据出了问题,无论是技术上还是业务上都会是一个问题——明智的。 非常麻烦。
3.了解什么是集群,什么是分布式,以及如何向其他系统发送请求并交换数据。
4、如果你也写页面,一定会用,但不一定要很深入。 可以使用而不需要刷新来实现页面操作和AJAX请求。
如果你第一年就能达到这个水平,那你绝对是高于平均水平的。 当我达到这个水平时,我感觉好像所有的网站开发都不可能了。 当然,很快我就发现,自己还差得很远……现阶段,我还是想找一份高薪的工作。 它很难。 只能说我们已经达到温饱线了,不愁吃米油盐了。
在下一阶段,您应该考虑代码的质量。
1、多线程、异步、并发的概念会突然变得非常重要,因为在一个需要性能的系统中,不会允许你把各种琐碎的任务排队去一一去做。 你不能总是编写一些代码,调用方法a,调用方法b,然后调用方法c,然后调用方法d,然后返回。 你开始考虑诸如队列之类的事情。 有了这种东西,你开始感觉你的代码变得更高级了,这和过去的CRUD程序员有很大不同。 但麻烦同时也来了。 你开始遇到线程安全问题,尤其是当你的程序运行在多机环境而不是单机环境时,你会对这些感到头疼。 对于这些问题,Jms技术是一个很有代表性的东西,但是当然它没有ssh那么常用。
2.你会发现数据库性能确实不好。 出于不愿意接受现状,或者追随时尚,你应该学习NoSQL和Redis。 真是令人眼花缭乱。 没关系。 尝试使用它,可以大大缓解MySQL等关系型数据库的压力。
3、由于公司的某些业务需求,可能会深入研究某个特定的技术领域,比如全文检索技术,比如工作流jbpm,比如权限系统、单点登录等,或者某些方面的算法业务领域。 研究,这些都是你的优点。
4.你开始发现你的代码非常混乱。 时间长了你就无法理解了。 有大量重复且难以重用的代码,您不想维护它们,而且它充满了错误。 所以你需要开始关注设计模式,合理转变你的编码习惯,不再受刻板的SSH和MVC三层架构的束缚。
5、信息和各种信息是你进步的动力。 你很少会遇到必须请别人解决的问题。 如果这个阶段你还在问别人,你的技术生涯很快就会结束。
这个阶段,如果你的沟通和自我推销能力不是太差,你的收入就会达到白领水平,至少接近白领水平。
我想大多数程序员工作多年后都能达到这个水平。 有的只需要两年,有的则需要五六年。 一些在这个阶段落后的人,是因为天赋和思维的限制。 有的是因为对技术缺乏热情,有的是因为工作内容的限制。 到了中年,我已经无法与年轻人竞争,已经被淘汰了。 我只能无奈地转行,嘲笑自己是失败者和程序员。
这是一个非常重要的年龄。 你能不能继续进步,30岁以后能不能继续从事技术工作,在公司能不能独立,我觉得就看你能不能超越这个阶段。 前面提到的烂公司里工作了几年的项目经理连这个水平都没有达到……
接下来就是一个全新的阶段。
1.你必须阅读优秀开源项目的源代码。 你必须了解一些你当时不懂的基础知识。 你开始理解java的本质了。 您可以编写一些低级代码。 有时候你会觉得你的封装比一些开源工具更好用,更好用。
2、WEB的难点和焦点始终在于性能和负载能力。 现在网络的发展引起了数据量和运算密度的极大增加,但是硬件方面却没有相应的进步。 你要尽量更好的利用更多的协同工作,从WEB端到服务器端再到数据库,一切都需要集群化、分布式。 需要合理控制数据流向,掌握网站大量机器的平衡情况,找出性能瓶颈。 稳定性和安全瓶颈、硬件故障和第三方技术错误将被视为例行公事,并在您的系统和代码中仔细考虑。
3、我开始觉得这个计划极其重要。 一位将军的无能会耗尽一支军队,而且这种情况还会继续发生。 一个糟糕的设计或者一个糟糕的计划会让一群优秀程序员的工作成果大打折扣。 你需要关注架构知识,不再满足于SSH三层架构。 领域驱动设计、面向事件开发、敏捷开发等一系列思想可以在关键时刻决定你的项目的生死。 现阶段,还没有可供您复制的标准示例。 你只知道想法和原理,但在实践中你需要不断尝试。 和改进。
4、多关注各种杂七杂八的开源技术。 其中一些您以前可能遇到过,与通信、集成开发环境和架构有关。 你应该能够讲一下每个领域的一些主流技术。 虽然你可能只是听说过、了解过这项技术,但在关键时刻你要知道如何选择这项技术并快速掌握它。 您还会考虑尝试其他语言。 这并不是说切换到 C++、C# 之类的。 这与JAVA程序员无关。 我说的是运行在JVM上的语言,比如scala和scala。 让我们第一次来认识一下他们。 这时候你就会觉得java真的老了。 但当你回到一个综合性的大型项目时,你会感觉Java积累的整个系统技术是那么的完整,就像一个工业标准一样。
如果你能好好练习这个阶段,你就可以成为一个中小型公司的项目经理甚至技术总监。
不知不觉写了这么多。 以上就是我个人眼中JAVA EE的大致发展路线。 本文并不全面。 实际的个人成长路线可能会因为工作内容的不同而有很大差异。 有些人有偏见。 在底层研究上,有的人偏向于业务需求设计,有的人则带有浓重的行业色彩。 除了技术之外,还有很多知识也很重要。 做JAVA没有一帆风顺的路,但是一个对技术感兴趣的人到了这个地步,依然会热衷于开发,想要写出好的项目。 纯粹为了谋生而工作的程序员不可能走到这一步。
我暂时阻止它。 希望以上内容能够帮助J8的新人了解自己未来将要面临的大致情况,同时抱着打击孩子们幼小的心灵的邪恶心态按下发布按钮。
小编推荐学习Java的学习裙【邀请码】【云智】。 无论你是专家还是新手,想转行还是想投身行业,都可以来了解一下,一起进步,一起学习! 裙子里面有开发工具,分享了很多有用的信息和技术资料!