We may earn an affiliate commission when you visit our partners.
Course image
Tim Short

If your goal is to

Read more

If your goal is to

As a trainer for over 6 years, one of the most common questions I get asked is "I'm new to programming, how can I get better and prepare for a job interview?" My answer is "Practice, practice, practice. " I created this course to help people see the core Java concepts in action. This will help you understand the ideas and know how to apply them in an application.

The BEST way to prepare for a technical interview is to get practice building applications and applying core principles of object-oriented design. I've designed this course to accomplish that objective.

Many people fail interviews because:

  • They don't grasp object-oriented programming concepts
  • They can't apply object-oriented design in an actual program
  • They haven't practiced developing their applications by hand
  • They haven't debugged their code and overcome challenges

This course is designed for someone who simply wants to get better at understanding and applying Java design and object-oriented programming. It is perhaps the most effective thing you can do to prepare for your job interview. Forget about flashcards, forget about quizzes. Start practicing.

In my Practical Java course, you will build realistic projects from scratch. We will approach each program analytically and outline our approach to implement the solution. Then, piece by piece we will write the code to create a fully functioning application.

  • Understand client scenarios and requirements
  • Approach each problem analytically
  • Write our solution outline
  • Implement code step-by-step
  • Apply core principals of object-oriented design

Everyone hoping to start out in Java needs to practice. It's not enough to learn and watch, but you must try yourself. So enroll in this course and get typing.

Note: this course was build for someone who has some working knowledge and familiarity of Java or application design. If you are new to Java, I recommend enrolling in my "Become a Junior Java Software Developer" course first.

Enroll now

What's inside

Learning objectives

  • Build 5 complete, end-to-end java applications from scratch
  • Implement core object-oriented programming techniques
  • Optimize applications with best practices and sharpen your programming skills
  • Master design principles and apply proper architecture to solve problems
  • Apply inheritance, interfaces, access modifiers, encapsulation, polymorphism
  • Use data structures and arrays to handle data sets and collection of objects
  • Develop your own utility class to read data and export results to a file
  • Analyze data from a file and apply conditional operations to make decisions
  • Design a real-world project with abstract classes and abstract methods
  • Use constructors, overloading, and overriding to enhance applications

Syllabus

Introduction
The Ultimate Java Prep Guide
Survey of Course Projects
Course Pre-Requesites
Read more
Preparing the Java Environment
You are an IT Support Administrator Specialist and are charged with the task of creating email accounts for new hires.
Overview of the Email Application
Creating the Outline for the Email Admin Class
Implementing the Constructor
Defining the Email Department
Generating a Random Password
Creating the Email Syntax
Implementing Class Set Methods
Implementing Class Get Methods
Using the Show Info Method
Build a Student Database Application
Overview of the Student Database Application
Creating the Outline for Student Class
Initializing the Student Constructor
Creating the Unique Student ID
Implementing the Enrollment Method
Implementing the Pay Tuition Method
Cleaning Up and Finishing Touches
Creating an Array of Objects
Build a New Bank Account Application

New Bank Account Data

Arielle Duncan,444102638,Savings,1000
Marybeth Sanders,431551383,Checking,2500
Hattie Storey,476687875,Checking,3500
Hilary Ward,005965723,Checking,6000
Luella Bradbury,217512645,Savings,1500
Frankie Davidson,002607927,Checking,10000
Darnell Goodman,469426397,Savings,15000
Shila Obrien,233479044,Savings,2200
Agnes Leonard,003827896,Savings,6500
Florinda Goulding,233025468,Checking,25000
Eliseo Waller,395157182,Savings,12500
Fredia Hastings,208728517,Checking,6500
Melody Potts,687057316,Savings,1500
Deadra Power,009545701,Checking,4500
Clyde Higgs,164445329,Checking,1000

Setting up the Project Architecture
Creating the Outline for All Bank Accounts and Interest Rate
Using Super Constructors with Inheritance
Listing Account Shared Properties
Initializing New Accounts with Constructors and Super Constructor
Generating the Account Number
Generating Account Number by Account Type
Implementing the ShowInfo Method
Implementing the Savings Account Safety Deposit Box
Implementing the Checking Account Debit Card
Setting up the Interest Rate Interface and Implementation
Implementing Account Shared Transactions
Implementing the Compound Interest Rate Method
Enhancing Application with Correct Access Specifiers
Writing a CSV Reader Utility
Determining Which New Account to Open
Creating a List of Objects

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches Java programming concepts from scratch in a practical way, making it ideal for aspiring Java developers
Focuses on applying core Java principles through hands-on projects, helping learners develop practical programming skills
Introduces object-oriented design principles and best practices, preparing learners for real-world development scenarios
Suitable for those with some prior programming experience and a desire to enhance their Java skills
Exposes learners to industry-relevant techniques and tools, such as data structures, arrays, and file handling
Instructor has over 6 years of training experience in the field

Save this course

Save Practice Java by Building Projects to your list so you can find it easily later:
Save

Reviews summary

Java project development

learners say this course is a good match for beginners with some Java experience who want to gain practical experience working on real-world Java projects. It features lectures, readings, exams, quizzes, homework assignments, and coding exercises that cover core Java concepts like polymorphism, inheritance, encapsulation, and abstraction. The course includes three Java projects: an email application, a student database application, and a bank account application.
Three real-world projects provide hands-on experience.
"This course has given me a wider thoughts on Java programming , and the applications were very good and that 3rd application covered many new things.... I hope its useful for other aslo... Thanking You."
The course provides a good overview of OOP concepts and how to apply them in real-world scenarios.
"This is exactly what I've been looking for to move ahead in my learning since I already have some basic experience in Java and want to advance to the next level with hands-on experience in practical projects."
The instructor is knowledgeable and engaging, and he provides clear and concise explanations.
"I enjoyed this video. so far is very promising. I have memorized many codes of java by now and I really find it useful to se how these codes are used in a real project."
The course provides ample opportunity to practice working on real-world Java projects.
"If you know the concepts just theoretically and dont know how the concepts are implemented in real world, this is THE course to go to."
The projects in the course are based on real-world applications, which helps learners see how Java is used in the real world.
"This course should be considered as a small practical work, it does not provide a thorough knowledge of Java but only helps to consolidate some previously studied material. Thanks, Tim Short for this course!"
The course is well-paced and allows learners to progress at their own pace.
"The instructor is great but the additional challenges at the end of the program with the next video w/s explanations would improve the overall experience of this great tutorial of REAL WORLD Apps which is important."
The course is suitable for beginners with some Java experience.
"This will the course which you definitely have to take up if you are a beginner to coding , definitely helps you understand how theory gets into implementation!"
The course is engaging and keeps learners interested.
"Absolutely enjoying the course as the concepts are simplified and made in such a way that new users can learn java more quickly as compared to courses that teaches only concepts and not real world problems."
The course is incomplete, with two of the five promised projects missing.
"Only 3 of the advertised 5 applications are available. Resources are missing, namely Project3.pdf. The instructor is inactive and not responding to questions."
The instructor sometimes makes mistakes, which can be frustrating for learners.
"The last project was good, but the Email App and the Student DB were just two classes, I believe those projects could have much more complexity and OOP structure"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Practice Java by Building Projects with these activities:
Review Java basics
Revisit fundamental Java concepts to strengthen your understanding before starting the course.
Browse courses on Java Basics
Show steps
  • Go through online tutorials or videos covering Java basics
  • Review your notes or previous materials on Java
  • Practice writing simple Java programs to test your understanding
Join study groups or online discussions
Engage with peers to share knowledge, clarify concepts, and gain different perspectives.
Show steps
  • Join online study groups or forums specific to Java
  • Participate in discussions, ask questions, and share your insights
  • Collaborate on small projects or code challenges
Follow online tutorials and documentation
Supplement your learning with external resources to deepen your understanding and explore specific topics.
Show steps
  • Find tutorials on object-oriented programming concepts
  • Review Java documentation to understand class libraries and methods
  • Explore online forums and Q&A platforms for specific problem-solving
Four other activities
Expand to see all activities and additional details
Show all seven activities
Connect with experienced Java developers
Seek guidance and support from experienced individuals to accelerate your learning and gain insights.
Show steps
  • Attend meetups or events where you can meet Java developers
  • Reach out to developers on LinkedIn or online forums
  • Ask for advice and feedback on your code or projects
Hands-on coding exercises
Practice writing code to solidify your understanding of Java concepts and apply best practices.
Show steps
  • Implement core object-oriented programming techniques
  • Apply design principles and proper architecture to solve problems
  • Implement inheritance, interfaces, access modifiers, encapsulation, and polymorphism
  • Use data structures and arrays to handle data sets and collections of objects
  • Develop your own utility class to read data and export results to a file
Java application project
Build a complete Java application from scratch to showcase your skills and understanding.
Show steps
  • Analyze data from a file and apply conditional operations to make decisions
  • Design a real-world project with abstract classes and abstract methods
  • Use constructors, overloading, and overriding to enhance applications
Develop a personal Java coding project
Embark on a self-directed project to apply your skills and explore your interests.
Show steps
  • Identify a problem or area that interests you
  • Design and plan your project, including the scope and functionality
  • Implement your project and debug any issues
  • Share your project with others for feedback and improvement

Career center

Learners who complete Practice Java by Building Projects will develop knowledge and skills that may be useful to these careers:
Java Developer
A Java Developer is responsible for developing and maintaining Java-based software applications. This course can help build a foundation for a career as a Java Developer by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in designing and implementing real-world Java applications.
Software Engineer
A Software Engineer is responsible for the design, development, deployment, and maintenance of software systems. This course can help build a foundation for a career as a Software Engineer by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in designing and implementing real-world software applications.
Application Developer
An Application Developer is responsible for designing, developing, and maintaining software applications. This course can help build a foundation for a career as an Application Developer by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in designing and implementing real-world software applications.
Web Developer
A Web Developer is responsible for designing, developing, and maintaining websites and web applications. This course can help build a foundation for a career as a Web Developer by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in designing and implementing real-world web applications.
Software Architect
A Software Architect is responsible for designing and overseeing the development of software systems. This course can help build a foundation for a career as a Software Architect by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in designing and implementing real-world software systems.
Technical Lead
A Technical Lead is responsible for leading and mentoring a team of software developers. This course can help build a foundation for a career as a Technical Lead by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in leading and mentoring a team of developers.
Project Manager
A Project Manager is responsible for planning, executing, and delivering software development projects. This course can help build a foundation for a career as a Project Manager by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in planning, executing, and delivering software development projects.
Systems Analyst
A Systems Analyst is responsible for analyzing and designing software systems. This course can help build a foundation for a career as a Systems Analyst by providing hands-on experience in Java programming, object-oriented design, and software development best practices. The course projects will provide valuable experience in analyzing and designing real-world software systems.
Database Administrator
A Database Administrator is responsible for managing and maintaining databases. This course may be useful for a Database Administrator by providing hands-on experience in data structures and arrays, which are used to handle data sets and collections of objects.
Data Analyst
A Data Analyst is responsible for analyzing data and extracting insights from it. This course may be useful for a Data Analyst by providing hands-on experience in data structures and arrays, which are used to handle data sets and collections of objects.
Business Analyst
A Business Analyst is responsible for analyzing and understanding business requirements and translating them into technical specifications. This course may be useful for a Business Analyst by providing hands-on experience in object-oriented design and software development best practices.
Quality Assurance Analyst
A Quality Assurance Analyst is responsible for testing and evaluating software applications to ensure they meet quality standards. This course may be useful for a Quality Assurance Analyst by providing hands-on experience in Java programming and software development best practices.
Technical Writer
A Technical Writer is responsible for writing technical documentation for software applications and other technical products. This course may be useful for a Technical Writer by providing hands-on experience in Java programming and object-oriented design.
Teacher
A Teacher is responsible for educating students in a particular subject matter. This course may be useful for a Teacher by providing hands-on experience in Java programming and object-oriented design.
Freelance Developer
A Freelance Developer is responsible for developing software applications for clients on a contract basis. This course can help build a foundation for a career as a Freelance Developer by providing hands-on experience in Java programming, object-oriented design, and software development best practices.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Practice Java by Building Projects.
Comprehensive guide to the Java programming language. It covers all the basics, from variables and data types to object-oriented programming and GUI development. It great resource for beginners who want to learn Java from scratch.
Comprehensive reference for the Java programming language. It covers all the major topics, from the basics to advanced features. It great resource for experienced Java developers who want to brush up on their skills or learn about new features.
Guide to writing effective Java code. It covers topics such as object-oriented programming principles, design patterns, and performance optimization. It great resource for experienced Java developers who want to improve the quality of their code.
Guide to writing concurrent Java code. It covers topics such as thread safety, synchronization, and performance. It great resource for experienced Java developers who want to learn about concurrency and improve the performance of their applications.
Classic guide to design patterns. It covers 23 of the most common design patterns, and provides examples of how to use them in Java. It great resource for experienced Java developers who want to learn about design patterns and improve the quality of their code.
Guide to tuning the performance of Java applications. It covers topics such as profiling, garbage collection, and optimizing memory usage. It great resource for experienced Java developers who want to improve the performance of their applications.
Guide to using Hibernate, a popular Java persistence framework. It covers topics such as object-relational mapping, caching, and transactions. It great resource for experienced Java developers who want to learn about Hibernate and develop data-driven applications.
Guide to using Spring Framework, a popular Java application framework. It covers topics such as dependency injection, aspect-oriented programming, and web development. It great resource for experienced Java developers who want to learn about Spring Framework and develop enterprise-grade applications.
Guide to using Java 9's modularity features. It covers topics such as modules, the module path, and the new Java Platform Module System. It great resource for experienced Java developers who want to learn about Java 9's modularity features and use them in their applications.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Practice Java by Building Projects.
UML and Object-Oriented Design Foundations
Most relevant
Object-oriented Programming in Java
Most relevant
Object-Oriented Design
Most relevant
Design Patterns in Java: The Big Picture
Most relevant
Fundamentals of Object Oriented Programming in Java
Most relevant
Object-Oriented Programming with Java
Most relevant
Object-Oriented Hierarchies in Java
Most relevant
Java Object-Oriented Programming: AP Computer Science B
Most relevant
Working with Inheritance (Java SE 8 Programmer I...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser