Author: HelloGitHub — Lao Xun

What is the largest programming language on the Internet today? Is a Java! I’ve been hearing for two years that Java is dying and in decline. It is true that Java is on the decline, and things are uncertain in the future, but a camel is bigger than a horse. In the next three or five years, I believe Java will still be the “big brother” in the industry! Have you ever been stuck wondering what Java can do like I was when I first learned basic Java syntax? Think Java can only be printed in console system.out.println cat, dog, dad and son?

No! There are countless Java projects waiting to be discovered in the open source world. Let’s take a look at some of the open source projects in this article.

Interest is the best teacher, HelloGitHub is to help you find the fun of programming.

Here are five articles in HelloGitHub’s Open Source Projects for Beginners on GitHub series:

  1. C + + article
  2. Python article
  3. Go article
  4. Java article
  5. JavaScript article

This is a Java article. I hope this article will help you find a suitable Java open source project on GitHub. This learning can be regarded as a game, all the way to beat monsters and upgrade until the end of the game, I design three stages step by step: bronze -> silver -> gold. Why only gold? Because the road to become a real bull is very long, I believe in the road after gold. You can have oneself idea certainly, bold walk oneself way, become that bright “diamond”!

A, bronze

All things are difficult before they are easy

1.1 Happy Birds

To start this article, I’ve chosen a fun and easy project to get you interested in programming! The author only used the Java standard library to restore, once on the mobile phone popular “angry Birds”. Clone the source code, you can run it directly through the Java-jar flappybird. jar, or you can run the GameApp:main method in the source code to start the whole game. Through the program you will learn:

  • Use tools from the standard library, such as collections, playing sound effects, and loading images
  • How do you take advantage of multiple files, split different logic into different classes, and collaborate with each other to build the state of the entire game
  • Some applications of design patterns, such as singletons, object pools

GitHub address: github.com/kingyuluk/F…

1.2 Java bible

Gorky once said: “books are the ladder of human progress”. In the long river of history, there have been numerous works, the computer field is no exception, and “Think in Java” is a book I want to focus on the introduction, this book gives me the first impression is: all! It covers everything from the most basic data types to the advanced topics of object-oriented and generic reflection. I was reading the fourth edition of the physical book, and now the good news is that the fifth edition is here! And in open source form. After the small project before the small fight, we also have a little programming feeling, it is time to consolidate the theoretical knowledge, as the saying goes: “the foundation is not strong, the earth shakes.” Reading this book at this stage will definitely give you a different feeling, and I even recommend that you go back to this classic book at each stage and learn something new each time.

  • Project address: github.com/LingCoder/O…
  • Online reading: lingcoder. Making. IO/OnJava8 / # / s…

A picture is worth a thousand words

If you think the bible is a bit heavy, take a look at this project, which goes from The Java foundation to the standard library JVM to Spring to various common middleware Redis, Zookeeper, etc. Each part uses a mind map to sort out each knowledge point, which can not only have a general understanding of the knowledge to be learned, but also facilitate the consolidation and review of the learned knowledge after learning. It can be said that the conscience is not good. You can look at every knowledge point at your own pace.

GitHub address: github.com/huangliangy…

Second, the silver

Persistence is victory

Spring is coming

Java is mostly server-side development in production, and one of the most important Java frameworks in the server-side world is Spring. I’m sure you must have heard of this name. The Spring framework is now basically an industrial-level standard for Java servers, and no company I have ever worked for has used it. Since the development of Spring, its engineering complexity has greatly increased, and various packages and abstractions make it very difficult to understand the principle. But you don’t need to be too scared, because you don’t need to know how Spring works just for functional development and general use. To further enhance the development experience, the Spring team introduced the Spring Boot framework. You can think of Spring Boot as a container that encapsulates the original Spring MVC with a Built-in Tomcat, but nothing more. Finally, if you are new, it is recommended to start from 2.0 directly.

I recommend one project for Spring Boot:

Github.com/yizhiwazi/s…

There are many useful fragments built into the project, from the simplest Hello World to how to integrate Mybatis, or how to cross domains, and how to send mail, and so on. There is an example of a corresponding folder.

The following route is recommended for this stage:

  • Start an empty Spring Boot project from zero to learn about the minimum configuration of Spring Boot and how to declare a RESTFUL Controller and return simple data
  • Spring Boot and Java persistence layer framework (such as Mybatis-Plus) are connected, through the REST interface for simple add, delete, change and check operations (can not need a page at all, just a Postman orcurl)
  • Use a FreeMarker or Thymeleaf template engine, write a simple page (simple input fields, buttons, no styling at all), string together all the previous additions, subtraction, changes, and reviews, and render the results to the browser through the template engine.

After completing this phase, you should have an idea of front – and back-end interaction and the basic use of the framework in your enterprise. And then based on that, you can try to do little things like log in, register, etc.

2.2 Life is about being confused

Java itself is often criticized for its verbose syntax. Hutool is an easy-to-use three-party Java class library that contains a large number of tool class static methods and encapsulates complex calls. The source code itself is an excellent open source project to learn about. It will give you a good idea of how a good Lib project is organized and regulated, and hopefully you will have an open source project to be proud of.

  • Project address: github.com/looly/hutoo…
  • Official website: www.hutool.cn

Three, gold

No rain, no rainbow

3.1 Do NB instead of NewBee

You need a complete project experience comparable to that of a production environment, and this open source project fits the bill for the following reasons:

  1. The size of the project is much larger, not just the back-end code, but the whole front-end page. Awesome!
  2. The store already has the basics: a front page, login, browse, shopping cart, place orders, and even a background admin function, Awesome!

GitHub address: github.com/newbee-ltd/…

Preview address: mall.newbee.ltd

3.2 The road to God

Before, it was a practical project. Now, it is time to slow down and move to a higher level. Just as the saying goes, “Know what is, but also know why.” With the help of practice, learning theory will not be so boring, and also because of theory, practice has a better foundation.

  • Project address: github.com/doocs/advan…
  • Read online: doocs.github. IO /advanced-ja…

This online book covers many advanced topics in the Java ecosystem, such as high concurrency, distribution, caching, high availability, microservices, and more. A question elicits the reader’s thinking, and let the reader follow the author’s thinking step by step from raising the question, analyzing the problem to the final solution of the problem.

Follow your own course, and let others talk

The bird before, I wonder if it hit your heart? Anyway, I have. When I started learning Java, I also played some small games, such as minesweeper, Snake, tank battle and so on. I didn’t know about GitHub at that time, or these projects would have been introduced to everyone. At that time, I was also writing in the dark, so I didn’t have a strong sense of programming, but it was great to recreate some of my childhood memories by hand. If you want to write small games in Java, check out this project.

  • Project address: github.com/AlmasB/FXGL…
  • Website address: almasb. Making. IO/FXGLGames

There are already some built-in demos of simple games that you can learn to play quickly, and the framework can easily package games into a single executable file, so give it a try!

The last

HelloGitHub wants to make more people fall in love with programming and open source, and has been trying to find out how to help more people.

If you are an undergraduate or graduate student who loves programming, open source, and enjoys discussing and learning about technology, then come to HelloGitHub open Source Club for College Students! You’ve just started your programming journey and HG wants to accompany you along the way. Add: HelloGitHub (note: school and major).

Discover more Java open source projects