Skip to content
UdemyJavaPaid courseIntermediate levelCertificate

Learn TDD in Java (Udemy.com)

Learn Test Driven Development through a concise programming interview question

Created by: Sam Atkinson

Last updated March 2017

icon
What you will learn

  • Write code, tests first
  • Use IDE shortcuts more proficiently
  • Understand what an interviewer is looking for in a pairing code interview

How it compares

Against the other 231 rated Udemy courses in Java on CourseDuck:

  • Rating4.5 out of 5higher than 53% of them
  • Reviews2,153#91 of 232 by number of reviews
  • Length0.8 hoursshorter than 98% of them
  • Last updatedMarch 2017earlier than 90% of them

icon
Course Description

This course teaches Test Driven Development from the ground up using an example paired programming interview question.  This interview question is taken from a real interview which I ran for several years and continues to be used in a number of institutions.

The interview is conducted as a TDD, pair-programming challenge. This is important to note. It was not the eventual solution that mattered so much as the journey there. Sometimes we would hire people who didn’t get the solution, and other times we wouldn’t hire people who did.

The Challenge

Implement a “movie store” (like blockbusters or Netflix). The store needs to hold a number of movies (let’s say a maximum of 100, but for our testing purposes 4 or 5 is sufficient). We need to be able to search the movie store for titles based on a number of different criteria.

Sounds pretty simple huh?

It’s amazing how many people it trips up though.

In the interview we would reveal each requirement one by one. As we’re doing TDD we’re building the requirements one at a time. Just like in the interview, I'll reveal each requirement one at a time.

The goals

The solution should have beautiful, clean code, without repetition or hacks. It should be code that you would be proud to have in production.

It should be well tested.

You do not need to worry about databases, threading, user interfaces, API access or 3rd party libraries. This a pure Java question.

You should be mindful about performance, but it’s not a major concern.

You should not over engineer the solution.

The solution

Don’t worry if you’ve never done TDD- I even teach you how to do TDD from the start.

This course is approximately an hour long and comes with all the code available to download.

The training is about much more than just coming up with a solution- we discuss many of the areas that candidates fall down in interview and how to avoid them.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Sam Atkinson

I am a serial entrepreneur, web and mobile app developer, and founder of Oh Hai Yo web & iOS consultancy. I am a massive geek and can often be found at tech events around HK such as Angelhack and Startup Weekend and have been a guest panellist for General Assembly.

After working for a year in a small web firm I have spent the last 5 years in finance specialising in front to back Rich Internet Applications (RIAs) in Flex and HTML5 with a focus on java and node.js on the backend. I lead tech and programming sessions and organise speaker sessions to increase awareness of the latest web technologies and teach developers using practical examples.

You can find me on twitter at @ohhaiyodev and I will always reply as soon as possible.

icon
More Java courses

Free

$84.99

$119.99

$174.99

$17.99

$12.99

icon
Reviews

4.5

2,153 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Pradnya joshi on 7/5/2022

Thank you very much for such easy-to-understand course. I am experienced software professional but new to Java and object-oriented programming. I have been through other courses and they teach about Java. This course teaches how to get on with building a solution in Java based on requirements. Further, it also teaches how to think about unit / functional tests before building something, an important aspect that many people miss. The tips on IDE are very helpful. The last few sections - (section 19 onwards are quite challenging for me but teach a lot in a short time). It would be helpful if the course description or first section describes what aspects of Java/ object oriented programming one needs to understand for completing the course.

By Danillo Lobo Ferraz on 11/1/2020

This is exactly the kind of course I like. It has a clear purpose and accomplish that with objectivity. I also liked the tips about IDEs and code interviews. I just felt that I could use a few more examples to grasp the technique better (really liked the Predicate approach, maybe a little bit more of those clever snaps).

By Anonymized User on 5/16/2020

Excellent course, it does a really good job explaining TDD by using examples and building the project piece by piece, it’s clear the instructor is proficient on the topic, will search for more courses from him!

By Thierry Lafaye on 3/29/2020

It was very good, insightful. Probably just too quick to keep up if you are self-taught Java enthusiast and used to some other IDE than IntelliJ, but eventually found a way to make it all work without having to download solution (and rewound a few times to have it completed in my own pace). Pleasant course, can't wait for more material from same trainer.

By Anonymized User on 3/13/2020

the course gives the basics to understand you, in that sense it meets my expectations, I would only add that I could say what is the logic to do unit tests and improve the subtitles, otherwise it follows quite well, the other is to show shortcuts which implements

By Devilmachie on 2/25/2020

At first, I started disgusted from TDD. I didn't understood the principle behind that coding method. Now, I feel like I could enjoy that. So thanks. If I was forces to criticize this course, I would say that maybe one chapter could concern the naming of test and a quick learning of the shortcuts in IntelliJ (I've already learned so much but now I feel like I cannot live without them). Thanks

By Paweł Chmielewski on 7/29/2019

Really great course that helped me not only understand processes that rule TDD, but also shed some light on how to approach refactoring. Another great thing is that it shows of how much Intellij is capable of. I personally learned a lot of helpful commands that I will definitely use in my future work. I can really recommend this course for anyone, unless you're a TDD/refactoring expert.

By Natalia Nazaruk on 12/13/2018

It is trully beginners course, quite concise and fast to finish. So if you are a beginner and want to quickly get what is this all about - this is a great start.

By Anonymized User on 5/8/2018

While the content of this course is relevant to me for expanding my Java skills, the instructor moves too quickly through how he is using the IDE for shortcuts with writing his code. In addition, the content at the end is somewhat out of order, and the simplified solution is not explained in a linear manner.

By Quinton Delpeche on 1/10/2018

I have been doing TDD for a while now and have had to retroactively apply TDD to existing projects, which is not ideal. This course has definitely helped me with getting TDD running for a new project from scratch and I am able to explain this to my Graduate Trainees in a more concise and practical manner.

Showing all 10 reviews on CourseDuck

Read all 2,153 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100