Learn to build server-side apps on one of the most common platforms in the industry

Java is one of the most ubiquitous and versatile languages in the industry. It runs behind-the-scenes for a large portion of the websites you use daily, as well as in many desktop and smartphone apps. It’s well-suited for large programs that need performance and scalability.

Clojure is a new language that runs on top of Java. It represents a trend in the industry known as functional programming, which is a new way of writing software that is easier to test and allows execution of multiple processes at the same time. Being exposed to these concepts will improve your code, even when writing Java.


Java has been around for about 20 years. It was an instant success when Sun Microsystems released it in the mid 90s as a language targeting back-end software for a then-young internet. Oracle acquired Sun in 2010 and became the steward of the language.

Despite new competition from other server-side scripting languages, Java has maintained its popularity. This is due in part to its excellent performance, maintainability, and unparalleled ecosystem of libraries and frameworks (like Spring and Hibernate).


A graduate shows off their final project at Demo Day

See our upcoming courses

Jump down to the schedule to see when and where this course is offered.

Start Date
  • Please select a location above.


Here's what you'll learn

The ubiquity of the Java platform is not an accident. It occupies a middle ground in which you attain nearly the performance of native code while maintaining the safety of high-level scripting languages. Over the years, the community has produced an unparalleled ecosystem of libraries and tools that have become the foundation for a large portion of the technical plumbing we rely on every day.

In programming, it’s not uncommon to find conflict between the practical need to use proven technologies and the academic desire to use cutting-edge technologies. One advantage of the Java platform is that you can have both: while Java is the dominant, time-tested language of the platform, there are several other languages that can interoperate with it, giving you access to exciting new paradigms and tools.

This course will equip you with the marketable skill of server-side Java programming and supplement it with an understanding of functional and concurrent programming using the Clojure language. The goal will be to make you a well-rounded programmer ready for real-world challenges while keeping you curious to explore esoteric ideas that the industry is moving towards.


Students follow along as an instructor maps out programming concepts

Get the syllabus
Enter your email and we will send you a printable version of our Back-End Engineering with Java syllabus.

Programming Fundamentals

  • Methods and control flow

    Writing the basic logic of your program is mostly a matter of calling methods to initiate actions. It also requires a clear understanding of control flow, which includes conditional statements, loops, recursion, and exceptions. These simple tools can be combined to write programs of almost unlimited complexity.

  • Functional programming

    We’ll use Clojure as a vehicle for understanding another paradigm of software development that is rapidly becoming more mainstream. Functional programming allows us to limit how much we change the data in our programs. Its goal is to avoid a large class of bugs that normal programs have, as well improve performance through concurrency.

  • Storing data

    After spending time writing console programs, it will be important to learn how to read and write data to the disk using files and databases. Tools you may see: H2, PostgreSQL

  • Concurrency

    As processor speeds have found more modest improvements lately, it has become more important to find new ways to run software faster. In some cases, running code concurrently can achieve this, so it has become an important new subject for programmers to become familiar with.

  • Data structures

    The foundation of all software development is learning how to organize data. We take a “data first, code second” approach by focusing on core data structures before we even begin writing the code that makes use of them. After developing an intuitive understanding of that, the code becomes relatively straightforward to write.

  • Object-oriented programming

    We’ll gain a deep familiarity with the main paradigm of Java. We’ll learn how to write a class, and how to make use of inheritance to organize our code.

  • Debugging and testing

    No matter your experience, bugs are inevitable. We’ll learn how to debug our programs and write tests to help prevent them from surfacing in the first place. Tools you may see: Debugging with an IDE, testing with JUnit

  • Third-party libraries and frameworks

    One of the Java platform’s biggest selling points is the ecosystem. You’ll learn how to take advantage of battle-tested libraries, frameworks, and tools built by the Java community. Tools you may see: Spring, Hibernate

Tools & Teamwork

  • Version Control

    Master version control for personal and team workflows. All of your code will live online from day one. Tools you may see: Git, Github

  • Back-end tools

    We use an IDE to write our Java and Clojure projects. Tools you may see: IntelliJ IDEA (Community Edition), Cursive Clojure

Beyond the Terminal

  • Learn from the pros

    Guest speakers and more! Our students get real world exposure early and often during class.

  • Getting hired

    We do mock interviews, resume writing and portfolio building. Grads have weekly meetings with our team to help find exciting jobs and projects.

  • Freelance fundamentals

    Seasoned contractors show you how to find good work, write contracts, set expectations, price well and communicate with clients.


Is this right for you?

Before we get into specifics, we need to let you know that this class is going to be very challenging. The material gets really hard, really fast. All of the work is very do-able, but if you think you’re going to develop professional level skills in a cushy 40 hour week, this isn’t the place for you. (The average student puts in about 60 hours per week, minimum). We don’t require you to know code to start with, but you need to have tried it and enjoyed it. If that’s you, go ahead and apply now. If not, try a few exercises to see.

We’re family people, so our goal is for you to work as hard as possible in class so you can find joy in a great job, freelance work, or starting your own company when you’re done. We’re proud of all of the different types of people who have come through The Iron Yard, and we don’t have stereotypes of what a programmer is like. We’ve taught students from 18 to 50 years old, from different countries and all sorts of backgrounds.

Here’s an overview of the skills our students learn in our Java Engineering course:

• Java and Clojure fundamentals
• Object-oriented and functional programming
• Debugging and testing to catch and prevent errors
• Storing information in databases
• Using third-party libraries and frameworks
• Improving performance using concurrency
• Most importantly, learn how to learn

How much does it cost?

You can read about tuition, financing and scholarships on our Tuition Page. We offer great financing options, have significant discounts for enlisted military personnel/veterans, and sponsor a Women in Tech Scholarship.

What we look for:

  • Hard Worker

    Like we said above, this won’t be a walk in the park. Prepare for a rigorous course.

  • Self Motivated

    If you need to be micro-managed, this isn’t the place for you.

  • Works Well With Others

    You’ll be assigned to groups for projects, and each person’s role will be crucial.

  • Interested in Learning

    Even if you know basics (or more), you might have to unlearn some things. We’ll start from the ground up as a team, and there won’t be room for egos.

  • Ready to Have Fun

    We work hard, play hard, and laugh every single day. We do the best work we possibly can, but we make sure not to take ourselves too seriously.

Curious about Java
See if Java is the right language for you. Try writing some code right now!


Let's talk.

Whether you're thinking about starting a new career, interested in learning more about our programs for individuals or businesses, or just want to chat, we're here and we'd love to connect with you. Shoot us an email or your phone number and we'll get back to you soon, or you can chat with us right away using the chat icon below.

We'll call you
Enter your phone number below and we'll give you a ring in the next few days.

We'll email you
Enter your email below and we'll be in touch shortly.

You've made it this far down the page! If you're hungry for info, here's even more:

Learn Java and Clojure with our 12-week course

Our Java course will not only teach you the basics of Java, but will teach you to think like a back-end engineer. Students will learn Java and Clojure, a new language that runs on top of Java and represents a trend known as functional programming. Java course graduates will be well-positioned to join an existing development team, build their own products, or enter the freelancing world.

Remember: learning Java doesn’t make you great at building apps; that’s the easy part of back-end development. The emphasis in our 12-week immersive Java course is to teach you to think like an engineer. Programming is a lifelong study, and our goal is for you to learn how to learn so you remain highly valuable for the rest of your career.