• Google+
  • Twitter
  • YouTube
  • RSS
  • Facebook

Latest Java and Programming Tutorials

C++ for Beginners: Arrays – Your C++ Shopping Lists

Arrays are a vital construct in nearly all programming languages. They allow you to deal with lists ……..

C++ for Beginners: Take Control of Your Loops with Break and Continue
C++ for Beginners: “For” Loops: The Swiss Army Knife of Loops
C++ for Beginners: “Do-While” Loops
C++ for Beginners: “While” Loops

You can now access ALL my premium courses for just $19 a month, cancellable anytime; no minimum period. Click here!

Coming soon: a particle fire explosion tutorial in C++!

Java Spring Framework Tutorial

The Java Spring Framework Tutorial

My latest premium tutorial is an extensive introduction to the popular Spring Framework, including web programming with Spring MVC. $29.
My Kindle book about online teaching and my many attempts to free myself from office work … How to Make a Great Living Teaching Online

Java for Complete Beginners

Java for Complete Beginners

Completely free if you sign up via this link. Over 175,000 people have already joined this course on Udemy.com! Now available right here too. This course teaches you how to program in Java from scratch.
You can find lots more courses here

Want a Course but Can’t Afford to Pay?

If you want access to one of my paid courses but can’t afford to pay, email me at john@caveofprogramming.com with a brief email explaining your situation, and I’ll consider giving you free access.


If you feel like sending me some cash … well, thanks! You can do so right here:

Get a Job as a Software Developer

If you’re looking to get a job in software, my free Java for Complete Beginners is all you need, at the minimum. If you master the contents of this course and you’re prepared to travel and apply for lots of stuff, while there are no guarantees, you’ve got a good shot at getting a job as a programmer. This course includes advice about getting a job.

If you want to improve your chances by learning an advanced Java specialisation, my Servlets and JSPs (and JSTL) course gives you very marketable skills. You’ll need to separately study HTML and CSS a bit (not as hard as Java!) and preferably some SQL too.

Alternatively, you could Learn Android Programming or try Mastering Java Swing; Swing is widely taught in universities, but there are less jobs around for it than for web-based stuff (see Jobserve).

Finally, The Java Spring Tutorial gives you some very hot skills, but it’s advisable to learn about Servlets and JSPs first, unless you like being dropped in at the deep end.

My other free courses, Java Multi-threading and Java Design Patterns and Architecture, will certainly improve your chances in a job interview, and you can take them in whatever order you like.


Leave a Comment

  • Edward August 31, 2014, 3:39 am

    Hi John,

    I bought all of your courses on Udemy (Spring, Servlets, Swing, Android and Perl). Do I need to purchase the courses again on your site?

    P.S. Your courses are awesome. It helped me understand the Object-Oriented and Design Pattern concepts using Java Programming Language.

    • John August 31, 2014, 8:29 am

      Thanks a lot Edward! If you register free on my site and let me know the email address you registered with, I’ll subscribe you to everything.

  • Keith August 29, 2014, 4:37 pm

    Hi there.

    Done with Java for Beginners and will probably do Collections and Threads next

    I googled for some sample java exercises with worked solutions and found a couple of decent sites, wondering if you have so e favourites you would recommend so I can practise the stuff you taught in Java for Beginners?

    Besides Collections, Threads and perhaps Design patterns, what else would you recommend?

    • John August 29, 2014, 9:34 pm

      Hi Keith, I don’t ever do exercises myself — only Googling for tutorials. But someone mentioned http://codingbat.com/ . Collections are really important to know about, so I can recommend that! You need at least the first few videos’ content to be able to do any real Java programming. After that you’re pretty much set to tackle whatever you want. Threads are vital for some programs, but not used at all in many.

  • Muhammad August 29, 2014, 11:23 am

    Hey John,
    I’m trying to create a chat application for android, I’m now trying to connect my app to mysql workbench database (for test). I’ve followed this tutorial
    Note : i tried to access localhost from android emulator using and my pc’s ip:8080 and localhost:8080 but i get HTTP Status 404, The requested resource is not available..
    Thanks :)

    • John August 29, 2014, 11:35 am

      I’m only familiar with JSON, so probably can’t help … I should think you can’t connect directly to your database in Android, only through a web service or JSON or something similar.

  • ahmed August 28, 2014, 8:05 pm

    when I open offres-servlet.xml
    i can’t see mvc button
    note: i have jar spring web-mvc download to the project

    • John August 28, 2014, 9:15 pm

      MVC button?

      • ahmed August 29, 2014, 3:32 pm

        hi John,
        i have eclipse
        Version: Luna Release (4.4.0)
        Build id: 20140612-0600
        on dependendcies tab i see mvc jar 1.6 and less.. but on your tutorial i see mvc jar 3.2.3 release .. how i get the latest jars

        • John August 29, 2014, 9:38 pm

          Are you looking at my Spring tutorial, Ahmed? If so, make sure your Maven repository is up to date (there is a FAQ showing how to update it attached to one of the final lectures, if you scrolled down the course list — titled “FAQ”), but most likely you are looking at the wrong dependency group ID. Make sure you go to the right bunch of Spring dependencies — the org.springframework ones if I remember rightly.

  • Ansul August 19, 2014, 11:37 am

    Hi John,

    I am really enjoying your beginner Java tutorial. I wanted to know, is there a website or something from where I can get programs/questions/problems to practice, to enhance my skills.


  • Baris Bozkurt August 18, 2014, 8:56 am

    Dear John,
    I have been watching your Java for beginners lectures for the last few days. I have already completed a few other similar online courses to compare teaching styles. Congratulations and thanks a lot for producing these great teaching materials and making them available. They are very clear, well-organised, and they present the core material in a very easy to understand style. They will for sure be inspirational to many people teaching similar content. My best regards.

  • Ki August 13, 2014, 2:08 pm

    Hi John, i am from China. Thanks for your efforts. I am following your Java beginners tutorial now. It makes points clear and simple.

    And I am wondering which fonts are you using in your eclipse because I can’t find it.

    • John August 13, 2014, 10:06 pm

      Hi Ki, I don’t know … can you post the code you are using? I don’t use any special font, just the default.

      • Ki August 14, 2014, 2:09 am

        Hi sir, I’m afraid the code will transform to default font when I post here. Never mind. My current font is OK.

        Thanks anyway. have a nice day.

  • Evert Dhont August 13, 2014, 6:03 am

    Hi there John!
    First of all, I like your work very much! Right now I am learning your Java for complete beginners course, and there I was playing with the code of the getting user input video and I wondered why if I enter some text in the program with a capital letter in it, the program just displays the first letter? I really don’t know what the problem is but it’s a kind of frustrating so I hope you can help me out!
    Thanks in advance,

    • John August 14, 2014, 11:57 am

      Post your code, Evert!

      • Evert August 14, 2014, 12:35 pm

        Thanks for help but it seems like I fixed the problem on my own… I think it had something to do with the version of Java I was using because I was programming on my android device… Now that I have my computer back, the problem isn’t there any more…

  • Arpan Sharma August 12, 2014, 2:38 pm

    Sir I have watched your free courses and i want to enroll for jsp & servlets but I don’t have any credit card.
    So what to do???

  • Justin Willingham August 8, 2014, 10:33 pm

    Thank you for doing this John. I completed your Java for Beginners course and I’m about half way through your Java Multi – threading course. Now preparing for my Oracle Associate Certification!!
    Thanks to your course… It’s really appreciated.

  • berker August 8, 2014, 7:06 pm

    hello John,

    i have been following your Java for Beginners tutorials from udemy.com for a couple of days now. They are quite good actually but i want to make a little suggestion.
    i searched google for Java exercises, both to practice and understand how different methods are used and found this http://www.ntu.edu.sg/home/ehchua/programming/java/J2a_BasicsExercises.html

    it was great to practice what i learned from your lessons, so i understand everything better but those exercises and your lessons does not sync. so it would be great if you can also supply some exercises with solutions for each lesson or maybe exercises for a group of lessons.

    by the way, i really appreciate what you have been doing here.


  • Muhammad August 6, 2014, 9:33 pm

    Hey John,
    I’m trying to connect my swing app to an online database as i can edit the database from other computers.. I need a website that host my database for free (as it’s a small app for test) and if I find that site how can I write the connect method ? I mean Class.forName(“what will be here ?”).newInstance();
    String connectionUrl = “and here ?”;
    Thanks. :)

    • John August 7, 2014, 12:52 pm

      The class.forName bit would be the same as if it’s on your local machine. The connection URL would depend on the URL where you’re connecting to your database. Your host will hopefully give you that information! Something like jdbc:mysql://localhost:3306/dbname, but localhost:3306 will be replaced by the URL or IP address and port number of your database, and dbname with the name of the database you create.

  • Onur August 6, 2014, 7:32 am

    Just wanted to thank you for your effort. I wonder if there is any way to follow the tutorial “offline” like a movie or something?


    • John August 6, 2014, 4:25 pm

      Hello Onur, it should be possible to download my videos one-by-one. If there are any you want to download and can’t, let me know, because maybe I just need to switch them to downloadable by hand. You can also find my courses on Udemy.com, where they should also all be downloadable.

  • vicky August 5, 2014, 6:38 am

    Hi, John

    I wanted JDBC tutorial from you. I dont know it’s already there or not please help me out.

    • John August 5, 2014, 11:34 am

      Hi Vicky, I include some basic JDBC stuff in several of my tutorials; especially the Swing one. But I don’t have a specific tutorial on it.

  • Emre Yavuz August 3, 2014, 12:03 pm

    Hello, I have learned a lot of your java turtorials but i got a question.

    Can you please make a turtorial about javaFX?

    I have heard Oracle is gonna focus more on javaFX than Swing

    I hope you do it :)

    with kind regards, Emre

    • John August 6, 2014, 4:58 pm

      I’ve made a few, so far … have a look at the video section …

  • speed August 2, 2014, 1:27 am

    hello john

    i want a subtitles for ur videos plz

    Java Swing (GUI) Programming: From Beginner to Expert


  • James McGiveran August 1, 2014, 5:35 am

    Hi John,

    I just wanted to thank you for all of your hard work. I am working my way through the Java for Complete Beginners and I find you to be one of the finest instructors, in any discipline, that I have ever encountered. Your explanations are clear and to the point. The shorter video format allows me to go back and forth and fiddle with the code. I am truly appreciative. Can you please recommend which course I should take next after this one? Are your courses set up beginner / intermediate / advanced or are they more subject based? Thanks again John, Jimmy

    • John August 1, 2014, 8:39 pm

      Thanks James! You can try any other of my courses after the beginners’ Java one really. Except it’s probably easier to tackle Servlets and JSPs before you do the Spring course.

  • sujay July 31, 2014, 8:20 pm

    John ,I am Sujay from India I have watched your tutorial for Java for complete beginners,this tutorials helped me lot in my exam.I wanted to buy your tutorials for java swing but now they are showing me 39$ ,which i can’t afford can you please tell me how to avail the discount for someone from india so that i can buy them for my next exam!
    Thanks in advance :)

  • Miguel Rios July 31, 2014, 6:17 pm

    Hi John! Thank you very much for your work!

  • Joseph July 31, 2014, 4:53 am

    Hello John.

    Just wanted to leave a comment to show gratitude. I am working my way through your java for beginners series and out of all the other tutorials that I have looked at I find yours to explain everything in a way that someone new to programming can understand. I plane to look at your other tutorials (focusing on java for now) and when the time comes I will have no problem purchasing the additional content. Please keep it up.

    Thank you

  • Kushal July 25, 2014, 2:33 pm

    Hi John,
    I love your work and appreciate your effort.
    Keep up the good work