A collection of open source projects suitable for Java novices-learn programming on GitHub

A collection of open source projects suitable for Java novices-learn programming on GitHub

Author: HelloGitHub-- old Xun

Which programming language has the largest share of the Internet today? It's Java ! In the past two years, I have heard that Java is going to be bad, and it is going downhill. Yes, Java is indeed going downhill, and the future is really hard to say, but the lean camel is bigger than the horse. In the next three to five years, I believe that Java will still be the big brother in the industry! Have you all fallen into the same dilemma that you don t know what Java can do, just like when I just finished learning the basic syntax of Java? Java console can only feel in System.out.printlnprint the dogs and cats ah, father and son?

Do not! In the open source world, there are countless Java projects waiting for you to discover and explore. Let us follow this article to see which open source projects are there?

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

Here is HelloGitHub's "Open Source Projects for Novices on GitHub" series, with a total of 5 articles:

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

This issue is Java. I hope this article will allow you to find a Java open source project on GitHub that is suitable for you to learn. This learning can be regarded as a game, all the way to the monsters and upgrades until the clearance, I gradually designed three stages: bronze -> silver -> gold . Why only go to gold? Because the road to becoming a real big cow is very long, I believe the road after gold. You will definitely have your own ideas, go your own way boldly and become that dazzling "diamond"!

1. Bronze

All beginnings are hard

1.1 Happy bird

As the beginning of the whole article, I chose a relatively easy and fun project, hoping to arouse your interest in programming! The author only used the Java standard library to restore the "Angry Birds" that was once popular on mobile phones. First cloneafter downloading the source code, you can java -jar FlappyBird.jarrun directly, you can also run in the source code GameApp:mainto start the entire game method. By studying this project, you can learn:

  • Use some tools in the standard library, such as collection, playing sound effects, loading pictures
  • How to use multiple files to split different logic into different classes, and collaborate with each other to build the state of the entire game
  • Application of some design patterns, such as singleton, object pool

GitHub address: github.com/kingyuluk/F...

1.2 The Java Bible

Gorky once said: "Books are the ladder of human progress." Countless books have been born in the long river of history, and the computer field is no exception, and "Think in Java" is the book I want to focus on. The first impression this book gave me is: all! It covers everything from the most basic data types to the object-oriented later to the advanced topics of generic reflection. I was reading the fourth edition of the physical book before, and now the good news is that the fifth edition is here! And in the form of open source. After a little trouble with the previous small projects, everyone has a little programming experience. It's time to consolidate the theoretical knowledge. As the saying goes: "If the foundation is not strong, the ground will shake and the mountains will shake." Reading this book at this stage will definitely give you a different feeling. I even recommend that you go back to this classic book at every stage, and you will have a new understanding every time.

1.3 A picture is worth a thousand words

If you think the "Bible" just now is a bit heavy, you might as well take a look at this project, which ranges from Java basics to standard library JVM to Spring to various commonly used middleware Redis, Zookeeper, etc. Each part uses a mind map to sort out the various knowledge points, 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 check every knowledge point at your own pace and learning progress.

GitHub address: github.com/huangliangy...

2. silver

Persistence is victory

2.1 Spring is here

Most of Java in production is based on server-side development, so there is a Java framework that must not be avoided in the server-side field is Spring. I believe you must have heard this name. The Spring framework is now basically an industrial standard for the Java server. No company I have worked for does not use it. Since Spring has been developed, its engineering complexity has also been greatly improved. , Various encapsulation and abstraction, it becomes very difficult to understand the principle, but you don't need to be too scared, because just to complete the functional development and general use, you don't need to know the principle of Spring. In order to further improve the development experience, the Spring team launched the Spring Boot framework. You can think that Spring Boot encapsulates the original Spring MVC and has a built-in Tomcat container, nothing more. Finally, if you are a new learner, it is recommended to start directly from 2.0.

Regarding Spring Boot, I recommend a project here:

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, etc., there is an example of a corresponding folder.

At this stage, it is recommended to study according to the following route:

  • Starting an empty Spring Boot project from scratch, you can learn the minimal configuration of Spring Boot and how to declare a RESTful Controller and return simple data
  • The Spring Boot and Java persistence framework (e.g. Mybatis-Plus) to string together, change search operation by simple deletions REST interface (page need not be completely, or only necessary to a Postman curlcan)
  • Use FreeMarker or Thymeleaf other template engine, write a simple page (it can be some simple input boxes, buttons, no need to consider the style), and then string together the previous addition, deletion, modification, and check operations, and render the result to the template engine Browser.

After completing this stage, I believe you have a concept of the front-end and back-end interactions in the enterprise and the basic use of the framework. Then, based on this, try to do some small functions, such as login, registration, and so on.

2.2 Life is hard to be confused

Java itself has been criticized the most for its verbose syntax. Hutool is a simple and easy-to-use third-party Java class library, which contains a large number of tool class static methods, which encapsulate the original complex calls. And its source code itself is also an excellent open source project worth learning. By learning it, you can understand how an excellent lib project is organized and standardize the code. I also hope that readers can have a proud open source project in the future.

3. Gold

the Rainbow comes after the storm

3.1 Be NB, don't be NewBee

If you insist until now, you need a complete project experience comparable to a production environment, and this open source project is just enough. The reasons for recommending this project are as follows:

  1. The volume of the project is much larger, not only the back-end code, but also a complete set of front-end pages, Awesome!
  2. The basic functions of the mall are already available: homepage, login, browse products, shopping carts, place orders, etc. There is even a background management function, Awesome!

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

Preview address: mall.newbee.ltd

3.2 Path to Godhood

Previously, they were all projects that were biased towards practice. When you get here, you should slow down and set out in a higher-level direction. As the saying goes, "knowing what is happening, but also knowing why." With the help of practice, learning theory will not be so boring, and also because of theory, practice has a better foundation.

This online book contains many advanced topics in the Java ecosystem, such as high concurrency, distribution, caching, high availability, microservices, etc. A question elicits the reader's thoughts, allowing the reader to follow the author's ideas step by step from asking questions, analyzing the problem to finally solving the problem.

3.3 Go your own way, let others talk about it

The little bird before, did you know if it hit your heart? I have it anyway. When I first started to learn Java, I also played some small games, such as minesweeper, snake eater, tank battle, etc. At that time, I didn t know that there was GitHub, otherwise these projects would be able to meet with you. I wrote blindly at the time, and I didn t feel strong about programming, but the feeling of recreating some childhood memories by myself is very good, if you If you also want to write small games in Java, you might as well take a look at the following project.

Some simple game demos have been built in the project. You can get started quickly through learning. The framework can also easily package the game into a single executable file. Come and try!

At last

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

If you are a college student or graduate student who love programming, open source, and like to discuss and learn technology-related content, then come to HelloGitHub's open source club for college students! Your programming journey has just begun. HG wants to accompany you for a while . Add: HelloGitHub (remarks: school and professional).

Discover more Java open source projects