Home / Java & Spring Boot / What's Next

Lesson 6 of 6

What's Next — Your Developer Journey Continues

Estimated time: 1–1.5 hours

What You Will Learn

  • Appreciate how far you have come since Lesson 1
  • Understand what you can build right now with the skills you have
  • Know what skills to learn next and why each one matters
  • Have a concrete plan for continuing your developer journey

Part 1 — Look How Far You Have Come

Take a moment. Close your eyes if you want to. Think back to the very beginning — the first day you opened Lesson 1. You probably felt nervous. Maybe a little excited. Maybe a lot confused. You might have wondered whether you were "smart enough" to learn to code, or whether programming was only for people with computer science degrees and years of experience. You might have almost talked yourself out of starting.

But you did start. And now, sixteen lessons later, here you are. You did not just "try coding." You learned it. You stuck with it through the moments of frustration, through the error messages that made no sense, through the times when your code refused to work and you had no idea why. And every single time, you figured it out. That persistence is not a small thing. That persistence is what separates people who wish they could code from people who actually can.

Let us walk through your journey together, because it is worth remembering every step.

In Lesson 1, you learned what HTML is. You had never written a single line of code before. You did not know what a "tag" was, what an "element" meant, or why anyone would type angle brackets on purpose. By the end of that lesson, you had built your very first web page. It might have been simple — just some headings and paragraphs — but it was real. You created something from nothing, and a web browser understood your instructions and displayed it on screen. That was the moment you became someone who writes code.

In Lessons 2 through 5, you went deeper. You learned CSS and discovered that you could make your web pages beautiful — changing colors, adjusting spacing, creating layouts that work on phones and desktops alike. You learned about responsive design, flexbox, and how professional websites organize their styles. Your pages stopped looking like plain text documents and started looking like real websites.

In Lesson 6, everything changed. You learned JavaScript, and suddenly your web pages came alive. You were not just displaying information anymore — you were building interactive programs. You learned about variables, functions, conditionals, loops, and how to respond to user actions. You built programs that could think, make decisions, and react to what the user does. That was the lesson where you went from "someone who makes web pages" to "someone who programs computers."

In Lessons 7 through 10, you put it all together. You learned about the DOM, event handling, forms, accessibility, and how to present yourself as a professional developer. By Lesson 10, you had built a complete portfolio website — a real, working site that showcases your skills and tells the world who you are as a developer. That is not a toy project. That is something you can put on a resume and share with employers.

Then came the second half of your journey. In Lesson 11, you installed Java and learned an entirely new programming language. Think about that for a moment. Learning one programming language is a major achievement. You learned two. And you discovered that the second language was easier to pick up because the fundamental concepts — variables, functions, loops, conditionals — are the same everywhere. You did not just learn Java. You proved to yourself that you can learn any programming language.

In Lessons 12 and 13, you built a REST API from scratch using Spring Boot. You learned how the internet actually works — how browsers send requests, how servers process them, and how data flows back and forth in JSON format. You created API endpoints that other programs can talk to. You connected your portfolio site's contact form to a real backend server. That is full-stack development. That is what professional developers do every day.

In Lesson 14, you added a real database to your application. You learned SQL, JPA, Hibernate, and how to store data permanently so it survives server restarts. Your application went from a clever demo to something that actually remembers information. You learned how virtually every application on the internet stores its data.

And in Lesson 15, you brought it all together. You built a production-quality API with full CRUD operations, input validation, proper error handling, and clean code organization. You did not just write code that works — you wrote code that works well. Code that validates its inputs, handles edge cases gracefully, and follows the patterns that professional developers use in real companies.

Let us put this in perspective. According to various surveys and studies, less than 1% of the world's population knows how to write code. Most people have never opened a code editor. Most people have never seen a terminal. Most people think programming is some kind of mysterious, unreachable skill reserved for geniuses. You know better now. You know that programming is a craft — something you learn step by step, one concept at a time, through practice and persistence. And you have proven that you can do it.

"The expert in anything was once a beginner." You started this course as a complete beginner. You are finishing it as a developer. Not because someone gave you a title, but because you can sit down at a computer and build real software that solves real problems. That is what a developer is. That is what you are.

Here is a summary of every major skill you have acquired across all sixteen lessons:

Category Skills You Learned
Frontend HTML structure and semantics, CSS styling and layout, responsive design, flexbox, media queries
JavaScript Variables, functions, conditionals, loops, DOM manipulation, event handling, fetch API, JSON
Professional Skills Portfolio website, accessibility (a11y), forms, project organization, resume-ready projects
Java Data types, classes, methods, object-oriented programming, packages, imports
Spring Boot Project setup, controllers, REST endpoints, request/response handling, application configuration
Databases SQLite, SQL basics, JPA/Hibernate, entity classes, repositories, data persistence
API Development REST architecture, CRUD operations, input validation, error handling, HTTP status codes
Problem Solving Reading error messages, debugging, searching for solutions, learning independently, breaking problems into smaller pieces

That last row might be the most important one. You did not just learn specific technologies. You learned how to learn. You learned how to read an error message, search for a solution, try something, fail, try again, and eventually succeed. That meta-skill — the ability to teach yourself new things — is what will carry you through the rest of your career, no matter which languages or frameworks come and go.

Part 2 — What You Can Build Now

You might be thinking, "Okay, I learned a lot. But what can I actually build with all of this?" The answer is: far more than you probably realize. The combination of frontend skills (HTML, CSS, JavaScript) and backend skills (Java, Spring Boot, SQLite) gives you everything you need to build complete, functional web applications. Let us walk through some concrete project ideas and see exactly how your skills apply to each one.

A Personal Blog Platform

You could build a blog where you (or anyone) can create, edit, and delete posts. The frontend would be HTML pages styled with CSS, with JavaScript handling form submissions and dynamic content loading. The backend would be a Spring Boot API with endpoints like GET /api/posts to list all posts, POST /api/posts to create a new one, PUT /api/posts/{id} to edit one, and DELETE /api/posts/{id} to remove one. The database would store each post with a title, body, author name, and creation date. You already know how to do every single piece of this. You built exactly these kinds of CRUD endpoints in Lesson 15.

An E-Commerce Product Catalog

Imagine a website for a local Lansing business that wants to display their products online. You would build product listing pages with search and filtering, a detail page for each product, and an admin interface to add or update products. Your Spring Boot API would manage the product data — name, description, price, category, image URL — and your frontend would fetch that data and display it beautifully using the CSS layout skills you learned. This is not a hypothetical exercise. Small businesses need exactly this kind of website, and you now have the skills to build it.

A Booking or Appointment System

Think about a local barber shop, tutoring service, or community center that needs an online booking system. Users would see available time slots and book appointments. Your database would store appointments with dates, times, customer names, and service types. Your API would handle creating bookings, checking for conflicts, and canceling appointments. Your frontend would show a calendar or schedule view. The validation skills you learned in Lesson 15 would be critical here — you would need to make sure people cannot book appointments in the past or double-book the same time slot.

Community Tools for Lansing Organizations

Lansing has dozens of community organizations, nonprofits, and local groups that need better technology. You could build a volunteer sign-up system, a resource directory, a community bulletin board, or a donation tracker. These are real problems that real organizations face, and you have the technical skills to solve them. Using your coding skills to help your community is one of the most rewarding things you can do as a developer.

An Event Manager for Local Meetups

Build an application where meetup organizers can create events with dates, locations, and descriptions, and where attendees can RSVP. Your API would manage events and RSVPs as separate but related data. Your frontend would show upcoming events, let users register, and display attendee counts. This is a great project because it combines everything you have learned: HTML for structure, CSS for making it look great, JavaScript for interactivity, Spring Boot for the API, and SQLite for storing events and registrations.

A Task Management Application

A to-do list application might sound simple, but a well-built one is an impressive project. Think about features like creating tasks with titles, descriptions, and due dates; marking tasks as complete; organizing tasks into categories or projects; filtering by status; and sorting by priority or due date. Your CRUD skills map perfectly to this. Your validation skills ensure that task titles are not empty and due dates are valid. Your frontend skills make the interface clean and easy to use.

Your Portfolio Site with a Working Contact Form

You already built this one! Your portfolio website from Lesson 10, connected to the Spring Boot contact form API from Lesson 13, with database storage from Lesson 14. But now you can go further. You could add a project gallery that pulls from a database, a blog section, or even a page that displays your GitHub repositories using the GitHub API. Your portfolio is a living project that can grow with you throughout your career.

The key insight here is that almost every web application follows the same fundamental pattern: a frontend that users interact with, an API that processes requests, and a database that stores data. You have learned all three layers. The difference between these projects is not that they require fundamentally different skills — it is that they apply the same skills to different problems. Once you have built one full-stack application, building the next one is dramatically easier because the patterns are the same.

Part 3 — Skills to Learn Next

You have a solid foundation. You can build real applications. But the world of software development is vast, and there are many skills that will make you a stronger, more employable, and more effective developer. This section is your roadmap. You do not need to learn all of these at once — pick one or two that interest you most and start there. The beautiful thing about learning is that each new skill makes the next one easier to pick up.

Deployment: Getting Your App on the Real Internet

Right now, your applications run on your own computer. That is great for development, but nobody else can see them. Deployment is the process of putting your application on a server so that anyone in the world can access it by visiting a URL. This is one of the most important skills to learn next because it transforms your projects from "things on my laptop" into "things people can actually use."

For Spring Boot applications, there are several beginner-friendly deployment platforms. Render (render.com) offers a free tier that lets you deploy Java applications with just a few clicks. Railway (railway.app) is another excellent option that connects to your GitHub repository and automatically deploys your code whenever you push changes. Both platforms handle the complicated server configuration for you, so you can focus on your code rather than system administration.

When you are ready for more control, you can learn about VPS hosting (Virtual Private Servers) through providers like DigitalOcean or Linode. A VPS gives you a full Linux server that you manage yourself. It is more work, but it teaches you invaluable skills about how servers, networking, and the internet actually work.

Recommended resources for deployment:

Authentication: User Login and Registration

Most real applications need users to create accounts and log in. Spring Security is the standard library for adding authentication and authorization to Spring Boot applications. With Spring Security, you can build user registration forms, login pages, password hashing (so passwords are stored safely), and protected routes that only logged-in users can access. This is a critical skill for building any application where different users have different data or permissions.

Authentication also introduces you to important security concepts like password hashing with BCrypt, session management, CSRF protection, and the difference between authentication (proving who you are) and authorization (determining what you are allowed to do). These concepts are essential knowledge for any professional developer.

Recommended resources for authentication:

More SQL and Database Design

In Lesson 14, you learned the basics of working with databases. But real-world applications need more sophisticated database designs. You should learn about relationships between tables — for example, a "users" table connected to a "posts" table, where each post belongs to one user. You should learn about joins, which let you query data from multiple tables at once. And you should learn about migrations, which let you safely change your database structure over time as your application evolves.

You should also consider learning PostgreSQL, which is the most popular open-source database for production applications. SQLite is excellent for learning and for small applications, but PostgreSQL is what most companies use for their main databases. The good news is that since you already know JPA and Hibernate, switching from SQLite to PostgreSQL mostly involves changing a configuration file — your Java code stays almost exactly the same. That is the power of the abstraction layers you learned about.

Recommended resources for databases:

Testing: Writing Code That Catches Bugs

Professional developers do not just write code — they write tests for their code. A test is a small program that checks whether your main program works correctly. For example, if you have a function that calculates a total price, you would write a test that calls that function with known inputs and checks that the output is correct. If someone later changes the function and accidentally breaks it, the test will catch the mistake immediately.

For Java, the standard testing framework is JUnit. Spring Boot has excellent built-in support for testing, including tools for testing your API endpoints and your database operations. For JavaScript, the most popular testing framework is Jest. Learning to write tests will make your code more reliable, give you confidence when making changes, and is a skill that virtually every employer looks for when hiring developers.

Recommended resources for testing:

Git CLI: Real Version Control

If you have been using GitHub's web interface to manage your code, it is time to level up to the Git command line. Git is the version control system that virtually every software team on the planet uses. It lets you track every change you make to your code, create branches to experiment safely, merge changes from multiple developers, and go back in time if something breaks. Learning the Git CLI gives you much more power and flexibility than the web interface alone.

The essential Git commands to learn are: git init, git add, git commit, git push, git pull, git branch, git checkout, and git merge. Once you are comfortable with those, you can explore more advanced features like rebasing, stashing, and cherry-picking. Knowing Git well is one of the most universally useful skills in all of software development.

Recommended resources for Git:

Frontend Frameworks: Thymeleaf or React

So far, you have written plain HTML, CSS, and JavaScript. That works great, and many professional websites are built this way. But as applications grow larger and more complex, developers often reach for a frontend framework to help organize their code and build user interfaces more efficiently.

You have two main directions to explore. Thymeleaf is a server-side template engine that integrates beautifully with Spring Boot. Instead of building a separate frontend and API, you write HTML templates that Spring Boot fills in with data before sending them to the browser. This approach is simpler and is excellent for many types of applications. React is a client-side JavaScript library for building interactive user interfaces. It is the most popular frontend framework in the industry and is used by companies like Facebook, Netflix, and Airbnb. React is more complex to learn but opens up a huge number of job opportunities.

Which should you learn first? If you want to keep things simple and build on your Spring Boot skills, start with Thymeleaf. If you want to maximize your job prospects and are excited about building highly interactive interfaces, start with React. Either choice is a good one — you cannot go wrong.

Docker: Consistent, Portable Deployment

Have you ever heard someone say, "But it works on my machine"? Docker solves this problem. Docker lets you package your application along with everything it needs — the right version of Java, the right libraries, the right configuration — into a self-contained unit called a container. That container runs exactly the same way on your laptop, on your coworker's laptop, and on a production server. Docker has become an essential tool in modern software development, and understanding it will make you a much more effective developer.

Docker is also your gateway to understanding cloud computing, microservices, and DevOps — all areas with tremendous demand for developers. You do not need to become a Docker expert right away, but understanding the basics of building and running containers is increasingly expected of backend developers.

Recommended resources for Docker:
A word of caution: Do not try to learn everything at once. It is tempting to look at this list and feel overwhelmed, but remember — every experienced developer learned these skills one at a time, over months and years. Pick the one or two skills that are most relevant to what you want to build, focus on those, and move on to the next ones when you are ready. Depth beats breadth, especially when you are starting out.

Part 4 — Continuing with Coders Farm

Finishing this curriculum is not the end of your Coders Farm journey — it is the beginning of a new chapter. Coders Farm is a growing platform, and there are many ways to stay involved and keep learning as the community evolves.

New learning tracks are in the works. The curriculum you just completed covers web fundamentals and Java/Spring Boot, but there is so much more to explore. Future tracks may cover topics like React and modern frontend development, Python and data science, mobile app development, cloud computing, and more. By staying connected to the Coders Farm community, you will be among the first to know when new content becomes available.

Coders Farm is open source. The entire platform — every lesson, every line of code — is available on GitHub. That means you can contribute! Found a typo in a lesson? Fix it and submit a pull request. Have an idea for a better explanation? Write it up. Want to add a new lesson or even a whole new track? The community welcomes contributions from learners at every level. Contributing to an open-source project is also an excellent way to build your resume and demonstrate your skills to potential employers.

Consider mentoring newer learners. One of the best ways to solidify your own knowledge is to teach someone else. When a new learner is stuck on Lesson 3 trying to understand CSS flexbox, and you help them through it, you reinforce your own understanding while making a real difference in someone else's life. Mentoring does not require you to be an expert — it just requires you to be a few steps ahead and willing to share what you know.

Community projects in Lansing need developers like you. Lansing has a vibrant community of organizations, nonprofits, and local groups that need technology solutions but cannot afford to hire professional development firms. Your skills can make a real difference. Whether it is building a website for a community garden, creating a volunteer coordination tool for a food bank, or helping a local arts organization manage their events, community projects are where your technical skills meet real impact.

The community is here for you. Learning to code can feel lonely sometimes, but it does not have to be. The Coders Farm community is a place where you can ask questions, share your projects, celebrate your wins, and get support when you are struggling. Whether you are stuck on a bug, unsure which technology to learn next, or just want to show off something cool you built, the community is here. You are not just a student anymore — you are a member of a community of developers who are all learning and growing together.

Part 5 — Your Final Challenge: The Graduation Project

You have learned the theory. You have practiced the skills. You have built guided projects along the way. Now it is time for the real test — not a quiz with multiple-choice answers, but something much more meaningful. It is time to build a project entirely on your own, from idea to deployment.

Your graduation project is your chance to prove to yourself (and to the world) that you are a real developer. Go back to Part 2 of this lesson and pick one of the project ideas that excites you. It could be a blog platform, an event manager, a booking system, a task management app, or something entirely different that you come up with on your own. The specific project does not matter nearly as much as the process of building it from start to finish.

Step 1: Plan it. Before you write a single line of code, sit down with a piece of paper (yes, actual paper) and sketch out your project. What pages will your frontend have? What API endpoints will your backend need? What data will you store in the database, and what tables will you need? Planning ahead saves you hours of confusion later. You do not need a perfect plan — just a clear enough picture that you know where to start.

Step 2: Build it. Start with the part you feel most comfortable with. If you love frontend work, build the HTML and CSS first, then add the JavaScript, then build the API to power it. If you love backend work, start with the Spring Boot API and database, then build the frontend to display the data. There is no single correct order. The important thing is to start, make progress, and keep going even when you get stuck. You will get stuck. That is normal. That is how programming works. The difference between a beginner and a professional is not that professionals never get stuck — it is that they know how to get unstuck.

Step 3: Deploy it. Put your application on the real internet. Use Render, Railway, or whatever platform you choose. Get a URL that you can share with anyone in the world. There is something deeply satisfying about sending someone a link and saying, "I built this." That is the moment your project stops being a learning exercise and becomes a real piece of software that exists on the internet.

Step 4: Share it. Add your graduation project to your resume. Put it on your portfolio website. Push the code to GitHub so employers can see how you write code. Tell the Coders Farm community what you built. Write a blog post about what you learned. Share it with your friends and family. You worked hard for this — do not keep it to yourself.

Here is your graduation project checklist. Print this out, stick it on your wall, and check off each item as you complete it:

How long should this take? A graduation project is not something you finish in an afternoon. Give yourself one to three weeks. Work on it a little bit each day. It is okay if it is not perfect — no software is ever perfect. What matters is that it works, that you built it yourself, and that you can explain how it works to someone else.

Your Next Steps

You've completed the entire Coders Farm curriculum. Here's what to do right now:

  1. Update your resume with the skills and projects from this course.
  2. Push your projects to GitHub so employers can see your work.
  3. Pick your graduation project and start building today.
  4. Join the Coders Farm community to connect with other learners and mentors.

You are a developer now. Go build something amazing.

Finished the entire curriculum?

← Previous: Validation & CRUD Next: Understanding Data & Data Types →