{"id":13471548,"url":"https://github.com/s4kibs4mi/java-developer-roadmap","last_synced_at":"2025-05-13T22:03:08.595Z","repository":{"id":37391007,"uuid":"182950817","full_name":"s4kibs4mi/java-developer-roadmap","owner":"s4kibs4mi","description":"Roadmap to becoming a Java developer in 2025","archived":false,"fork":false,"pushed_at":"2025-01-05T06:49:46.000Z","size":4941,"stargazers_count":4094,"open_issues_count":0,"forks_count":546,"subscribers_count":110,"default_branch":"main","last_synced_at":"2025-04-12T13:47:01.279Z","etag":null,"topics":["guidelines","java","jee","roadmap","software-architecture","software-development","software-engineering","spring-boot"],"latest_commit_sha":null,"homepage":"https://www.buymeacoffee.com/sakib.ninja/java-backend-developer-roadmap","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s4kibs4mi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-23T06:42:13.000Z","updated_at":"2025-04-11T03:14:36.000Z","dependencies_parsed_at":"2023-12-17T21:27:18.390Z","dependency_job_id":"a80a027e-240d-42c9-979c-5fcf2f076544","html_url":"https://github.com/s4kibs4mi/java-developer-roadmap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s4kibs4mi%2Fjava-developer-roadmap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s4kibs4mi%2Fjava-developer-roadmap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s4kibs4mi%2Fjava-developer-roadmap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s4kibs4mi%2Fjava-developer-roadmap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s4kibs4mi","download_url":"https://codeload.github.com/s4kibs4mi/java-developer-roadmap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251336400,"owners_count":21573189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["guidelines","java","jee","roadmap","software-architecture","software-development","software-engineering","spring-boot"],"created_at":"2024-07-31T16:00:46.503Z","updated_at":"2025-04-28T15:21:32.532Z","avatar_url":"https://github.com/s4kibs4mi.png","language":"Java","funding_links":[],"categories":["Java","Programming Languages","Language","Resources","资源","Programming Language"],"sub_categories":["Related Awesome Lists","Awesome Lists","相关的真棒列表"],"readme":"# Java Developer Roadmap\n\n\u003e Roadmap to becoming a [Java](https://g.co/kgs/bzeRda) developer in 2025:\n\nBelow you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn to\nbecome a Java developer. I made this chart as a tip for everyone who asks me, \"What should I learn next as a Java\ndeveloper?\"\n\n[中文版](./i18n/zh-CN/ReadMe-zh-CN.md)\n\n## Disclaimer\n\n\u003e The purpose of this roadmap is to give you an idea about the landscape. The road map will guide you if you are\n\u003e confused about what to learn next, rather than encouraging you to pick what is hip and trendy. You should grow some\n\u003e understanding of why one tool would be better suited for some cases than the other and remember hip and trendy does\n\u003e not\n\u003e always mean best suited for the job\n\n## Give a Star! :star:\n\nIf you like or are using this project to learn or start your solution, please give it a star. Thanks!\n\n## Roadmap\n\n![Roadmap](java-developer-roadmap.png)\n\n## Resources\n\n1. Prerequisites\n\n    - [Java](https://www.java.com/en/download/)\n    - [Gradle](https://gradle.org/)\n      or [Maven](https://maven.apache.org/)\n    - [SQL](https://www.w3schools.com/sql/default.asp)\n\n2. General Development Skills\n\n    - Learn GIT, create a few repositories on GitHub, share your code with other people\n    - Know HTTP(S) protocol, request methods (GET, POST, PUT, PATCH, DELETE, OPTIONS)\n    - Don't be afraid of using Google, [Power Searching with Google](http://www.powersearchingwithGoogle.com/)\n    - Read a few books about algorithms and data structures\n    - Learn about implementation of a basic Authentication\n    - Solid principles, etc\n\n3. CLI Tools\n    1. [args4j](http://args4j.kohsuke.org/)\n    2. [JCommander](http://jcommander.org/)\n    3. [airline](https://github.com/airlift/airline)\n\n4. Web Frameworks + Routers\n\n    1. [Spring](https://spring.io/)\n    2. [Play Framework](https://www.playframework.com/)\n    3. [Spark](http://sparkjava.com/)\n    4. [dropwizard](https://www.dropwizard.io/en/stable/)\n    5. [nanohttpd](https://github.com/NanoHttpd/nanohttpd)\n    6. [Vertx](https://vertx.io/)\n\n5. Databases\n\n    1. Relational\n        1. [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-2017)\n        2. [PostgreSQL](https://www.postgresql.org/)\n        3. [MariaDB](https://mariadb.org/)\n        4. [MySQL](https://www.mysql.com/)\n        5. [Oracle](https://www.oracle.com/database/)\n    2. Cloud Databases\n        - [CosmosDB](https://docs.microsoft.com/en-us/azure/cosmos-db)\n        - [DynamoDB](https://aws.amazon.com/dynamodb/)\n    3. Search Engines\n        - [ElasticSearch](https://www.elastic.co/)\n        - [Opensearch](https://opensearch.org/)\n        - [Algolia](https://www.algolia.com/)\n    4. NoSQL\n        - [MongoDB](https://www.monJavadb.com/)\n        - [Redis](https://redis.io/)\n        - [Apache Cassandra](http://cassandra.apache.org/)\n        - [Clickhouse](https://clickhouse.com/)\n        - [InfluxDB](https://www.influxdata.com/)\n        - [CouchDB](http://couchdb.apache.org/)\n\n6. ORMs\n\n    1. [Hibernate](https://hibernate.org/)\n    2. [Ebean](https://ebean.io/)\n\n7. Caching\n\n    1. [Caffeine](https://github.com/ben-manes/caffeine)\n    2. [EHCache](http://www.ehcache.org/)\n    3. [Cache2k](https://cache2k.org/)\n    4. Distributed Cache\n        1. [Java-Redis](https://github.com/xetorthio/jedis)\n        2. [Java-Memcached](https://redislabs.com/lp/memcached-java/)\n        3. [Infinispan](http://infinispan.org/)\n\n8. Logging\n\n    1. Log Frameworks\n        - [Zap](https://github.com/uber-Java/zap)\n        - [TinyLog](http://www.tinylog.org/)\n        - [log4j](https://logging.apache.org/log4j)\n    2. Log Management System\n        - [ELK Stack](https://www.elastic.co/what-is/elk-stack)\n        - [Sentry.io](http://sentry.io)\n        - [Loggly.com](https://loggly.com)\n        - [Tracer](https://github.com/zalando/tracer)\n\n9. Real-Time Communication\n    1. [Socket.IO](https://socket.io/)\n    2. [atmosphere](https://github.com/Atmosphere/atmosphere)\n    3. [webbit](https://github.com/webbit/webbit)\n\n10. API Clients\n\n    1. REST\n        - [okhttp](https://square.github.io/okhttp/)\n        - [retrofit](https://square.github.io/retrofit/)\n    2. [GraphQL](https://graphql.org/)\n\n11. Good to Know\n\n    - [Beanvalidation](https://beanvalidation.org/)\n    - [bouncycastle](https://www.bouncycastle.org/java.html)\n    - [gson](https://github.com/google/gson)\n    - [Apache Shiro](https://shiro.apache.org/)\n    - [JJWT](https://github.com/jwtk/jjwt)\n    - [RxJava](https://github.com/ReactiveX/RxJava)\n    - [Quarkus](https://quarkus.io/)\n\n12. Testing\n\n    1. Unit, Behavior, Integration, Load Testing\n        - [JUnit](http://junit.org/)\n        - [JMeter](https://jmeter.apache.org/)\n        - [CitrusFramework](https://citrusframework.org/)\n        - [Gatling](https://gatling.io/)\n        - [Tsung](http://tsung.erlang-projects.org/)\n        - [Mockito](https://site.mockito.org/)\n        - [Assertj](https://joel-costigliola.github.io/assertj)\n\n    2. E2E Testing\n        - [Selenium](https://github.com/tebeka/selenium)\n        - [Wiremock](https://wiremock.org/)\n        - [Testcontainers](https://testcontainers.com/)\n\n13. Task Scheduling\n\n    - [Aurora](https://aurora.apache.org/)\n    - [elasticjob](https://github.com/elasticjob/elastic-job-lite)\n    - [Sundial](https://github.com/knowm/Sundial)\n    - [cron-utils](https://github.com/jmrozanec/cron-utils)\n\n14. MicroServices\n\n    1. Message-Broker\n        - [RabbitMQ](https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html)\n        - [Apache Kafka](https://www.npmjs.com/package/kafka-node)\n        - [ActiveMQ](https://github.com/apache/activemq)\n        - [Apache Pulsar](https://pulsar.apache.org/)\n    2. Message-Bus\n        - [mbassador](https://github.com/bennidi/mbassador)\n        - [rmq](https://github.com/xetorthio/rmq)\n    3. Frameworks\n        - [Apollo](https://spotify.github.io/apollo/)\n        - [lagom-framework](https://www.lightbend.com/lagom-framework)\n        - [micronaut](https://micronaut.io/)\n        - [eureka](https://github.com/Netflix/eureka)\n        - [helidon](https://helidon.io/#/)\n        - [armeria](https://github.com/line/armeria)\n    4. RPC\n        - [Protocol Buffers](https://github.com/protocolbuffers/protobuf)\n        - [gRPC-Java](https://github.com/grpc/grpc-java)\n        - [thrift](https://thrift.apache.org/)\n\n15. [Java-Patterns](https://github.com/iluwatar/java-design-patterns)\n\n## Wrap Up\n\nIf you think the roadmap can be improved, please do open a PR with any updates and submit any issues. Also, I will\ncontinue to improve this, so you might want to star this repository to revisit.\n\nIdea from : [Golang Developer Roadmap](https://github.com/Alikhll/golang-developer-roadmap)\n\n## Contribution\n\nThe roadmap is built using [Draw.io](https://www.draw.io/). Project file can be found at `java-developer-roadmap.xml`\nfile. To modify it, open draw.io, click **Open Existing Diagram** and choose `xml` file with project. It will open the\nroadmap for you. Update it, upload and update the images in readme and create a PR (export as png with 400% zoom and\nminify that with [Compressor.io](https://compressor.io/compress)).\n\n- Open a pull request with improvements\n- Discuss ideas in issues\n- Spread the word\n\n## License\n\n[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs4kibs4mi%2Fjava-developer-roadmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs4kibs4mi%2Fjava-developer-roadmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs4kibs4mi%2Fjava-developer-roadmap/lists"}