如果您是一名Java开发人员并且对技术充满热情,那么您可以遵循以下十个步骤,这些步骤可以使您成为杰出的Java开发人员。
对于Java开发人员来说,必须具备对面向对象编程的深刻理解。如果没有OOPS的坚实基础,就无法实现像Java这样的面向对象编程语言的美感。如果您不太了解OOPS是什么,即使您使用的是OOP语言,您仍可能以程序方式进行编码。仅研究OO原则定义无济于事。我们应该知道如何将这些原则应用于以OO方式设计解决方案。因此,应该具备对象建模,继承,多态,设计模式等方面的强大知识。
For a Java developer, having a strong understanding of object-oriented programming is a must. Without having a strong foundation on OOPS, one can't realize the beauty of an object-oriented programming language like Java. If you don't have a good idea of what OOPS is, even though you are using the OOP language, you may be still coding in a procedural way. Just studying OO principle definitions won't help much. We should know how to apply those principles in designing a solution in an OO way. So, one should have a strong knowledge of object modeling, inheritance, polymorphism, design patterns, etc.
掌握核心API
如果您不了解语言结构和核心API,那么无论您在理论知识方面有多强大,都无关紧要。对于Java,人们应该具有非常强大的核心API实践经验,例如java.lang.*I/O,异常,集合,泛型,线程,JDBC等。在构建Web应用程序时,无论您是哪个框架使用,了解servlet和JSP的概念也是至关重要的 - 这是必须的。
It doesn't matter how strong you are in terms of theoretical knowledge if you don't know the language constructs and core APIs. In the case of Java, one should have very strong hands-on experience with core APIs like java.lang.*, I/O, exceptions, collections, generics, threads, JDBC, etc. When it comes to building web applications, no matter which framework you are using, it's also crucial that you understand concepts around servlets and JSPs — this is a must.
在理论上谈论它们时,事情看起来更简单。我们可以在理论上非常容易地解决问题。但是,当我们开始实施我们的方法时,我们可以认识到问题的深度。您将了解语言限制,或在编码时设计最佳实践。所以继续编码。
Things look simpler when talking about them theoretically. We can give a solution to a problem very easily in theory. But we can realize the depth of the problem when we start implementing our approach. You will come to know the language limitations, or design best practices while coding. So keep coding.
我们并不孤单。有很多人在研究我们正在开发的相同技术。虽然在框架上进行简单的概念验证可能不会给您带来真正的挑战,但当您开始在实际项目中使用它时,您将面临奇怪的问题,并且在其官方文档中找不到任何解决方案。在开始研究新技术时,最好的第一件事就是订阅相关的技术论坛。无论您遇到什么问题,世界上其他人都可能已经面对并找到了解决方案。如果你能回答其他论坛用户提出的问题,那真的很棒。
We are not alone. There are lots of people working on the same technologies that we are working on. While doing a simple proof of concept on a framework may not give you real challenges, when you start using it on real projects, you will face weird issues and won't find any solution in their official documentation. When starting to work on new technology, the best and first thing to do is subscribe to relevant technology forums. Whatever the issue you are facing, someone else in the world might have already faced it and found the solution. And it would be really really great if you could answer the questions asked through other forum users.
正如我已经说过的,你并不孤单。全世界有成千上万的热心技术狂热者在博客上发表他们对技术的见解。您还可以从其他博客和开发人员那里获得有关相同技术的宝贵观点。有些人可能会发现特定的框架特征非常有用,而其他人可能会发现这些特征是愚蠢而毫无意义的,给出了他自己为什么会这样认为的原因。因此,您可以看到使用这些工具的其他开发人员的好与坏。通过查看其他博客获得价值的另一种方法是回复/评论您的意见和问题的帖子。
As I already told, you are not alone. There are thousands of enthusiastic technology freaks around the world blogging their insights on technology. You can also gain valuable perspectives on the same technology from other blogs and developers. Some may find specific framework features to be exceptionally useful, while other's might find those features stupid and pointless, giving his own reasons of why he felt like that. So you can see both the good and the bad from other developers using those tools.Another way to gain value from looking at other blogs is to respond/comment on posts with your opinions and questions.
一个优秀的开发人员将学习如何使用框架。但是如果你想成为一名优秀的开发人员,你应该研究各种成功的流行框架的源代码,在这些框架中你可以看到框架的内部工作机制以及最佳实践。当以更有效的方式使用框架时,它将有助于大量使用。
A good developer will learn how to use a framework. But if you want to be an outstanding developer, you should study the source code of various successful, popular frameworks where you can see the internal working mechanism of the framework as well as best practices. It will help a lot in using when using frameworks in a more effective way.
在开源软件开发趋势方面,它们正在大幅增长。当你对如何使用特定框架有了一个好主意时,它就有可能变得过时,因为一些新的框架会出现在具有超级功能的图片中。然后,您尝试使用当前框架解决的问题可能已经通过具有单行配置的新框架更容易解决。因此,请密切关注图片中的内容以及发生的情况。
In terms of open-source software development trends, they are growing tremendously. By the time you get a good idea on how to use a specific framework, it risks becoming obsolete as some new framework comes into the picture with super-set of features. Then, the problem you are trying to solve with your current framework may be already solved more easily by the new framework with a single line of configuration. So, keep an eye on what's coming in the picture, and what's going out.
随着时间的推移,您可能需要反复写入/复制粘贴相同的代码/配置。保持这些类型的配置片段像log4.properties,JDBC配置等和公用事业等 StringUtils, ReflectionUtils, DBUtils 会更有帮助。我知道,它本身不会让你成为杰出的开发者。但是想象一下,一些联合开发人员会要求你帮助从一组对象中获取一个属性的值列表,然后你就可以使用你的 ReflectionUtil 并在几分钟内给出解决方案:这将使你很出色。
Over time, you may need to write/copy-paste the same piece of code/configuration again and again. Keeping those kind of configuration snippets like log4.properties, JDBC configuration, etc. and utilities like StringUtils, ReflectionUtils, DBUtils will be more helpful. I know it, itself, won't make you an outstanding developer. But just imagine some co-developer asks you to help in fetching the list of values of a property from a collection of objects, and then you just used your ReflectionUtil and gave the solution in a few minutes: That will make you outstanding.
熟悉Agile,SCRUM,XP,Waterfall等各种方法。如今,选择开发方法取决于客户端。一些客户更喜欢敏捷,一些客户对瀑布模型感到满意。因此对各种方法有所了解将是一个真正的优势。
Be familiar with various kinds of methodologies like Agile, SCRUM, XP, Waterfall, etc. Nowadays, choosing the development methodology depends on the client. Some clients prefer Agile and some clients are happy with the Waterfall model. So having an idea on various methodologies would be a real plus.
在日常工作中,您可以学习新的更好的做事方式,以及最佳实践,建筑理念等。记录这些想法,发布博客,和/或在整个社区中分享。想象一下,你解决了在做一个简单的POC时发生的一个奇怪的问题并且你在博客上发表了这个问题。也许世界其他地方的开发人员在生产部署的应用程序上面临同样的问题。想想该解决方案对该开发人员的价值。所以,博客你的想法,他们可能有一天对他人或你自己有帮助!
在日常工作中,您可以学习新的更好的做事方式,以及最佳实践,建筑理念等。记录这些想法,发布博客,和/或在整个社区中分享。想象一下,你解决了在做一个简单的POC时发生的一个奇怪的问题并且你在博客上发表了这个问题。也许世界其他地方的开发人员在生产部署的应用程序上面临同样的问题。想想该解决方案对该开发人员的价值。所以,博客你的想法,他们可能有一天对他人或你自己有帮助!