• Google+
  • Twitter
  • YouTube
  • RSS
  • Facebook

Latest Java and Programming Tutorials

Stylesheets – JavaFX Tutorial Part 5

We can use stylesheets to style our JavaFX application, without even needing to change the code or t……..

Buttons and Events – JavaFX Tutorial Part 4
Introducing Scene Builder – JavaFX Tutorial Part 3
Hello World – JavaFX Tutorial Part 2
Introduction and Installation – JavaFX Tutorial Part 1

My new Kindle book …
Learn HTML5/PHP/AJAX Web Programming from Scratch – An amazing course from Dr. Richard Stibbard. Usually I only promote my own courses, but this course is very impressive, so I cut a deal with Dr. Stibbard … You can also find Richard’s website here
I no longer offer 1-to-1 mentoring, but Bloc does! Click here if you’re interested in web developer training.

Also Pratap Kumar offers 1-to-1 training via Skype in Java and Oracle, including Spring, Hibernate and SCJP/OCJP preparation; contact him at mail2pratapat@gmail.com

Usman Raza offers training in VB.NET for only $12 an hour via Skype: contact him at Usman Raza or via Skype at Skype ID: usman.khan8310

Java for Complete Beginners

Java for Complete Beginners

Completely free if you sign up via this link. Over 60,000 people have already joined! This course teaches you how to program in Java from scratch.
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. $39.
Learn HTML5/PHP/AJAX Web Programming from Scratch – An amazing course from Dr. Richard Stibbard. Usually I only promote my own courses, but this course is very impressive, so I cut a deal with Dr. Stibbard …. You can also find Richard’s website here.
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

  • Sam April 23, 2014, 6:38 pm

    Very good and detailed however im at a bit of a loss when it comes to an error between your vids and what i see on the screen in front of me

  • Jason April 23, 2014, 3:49 pm

    Hi John,

    Couple of questions for you:
    1. What’s a web server to host a personal website using Java for development?

    2.Where’s a good source to find Java developers salary? Excluding Glassdoor, Indeed, and Salary websites. I’m looking for solid numbers.


    • John April 23, 2014, 6:12 pm

      Hello Jason,

      1. Tomcat will run as a stand-alone server on your machine, even a laptop.

      2. I can only think of jobserve.com … a lot of the jobs don’t mention salary, but I think some do.

      • Jason April 23, 2014, 6:37 pm


        1. I would like my website to be accessible in the worldwide web. Can Tomcat make that possible?

        2. If you don’t mind me asking, what was your starting salary working with Java? To the best of your knowledge, do you know the average starting salary?

        Are you currently doing any consulting or application development on the side?


        • John April 24, 2014, 7:13 am

          Yes, but if you develop for Tomcat on your machine, you can then deploy the app to a service like Cloudbees or Google App Engine that will run it on the web for you. I think I’m quite out of touch regarding salaries …. the last time I worked anywhere was three years ago, when I was paid 42 euros per hour — a medium salary for a contractor. All I do with IT these days is make videos. It depends a lot on your skill level, qualifications and exactly where you work, even depending on the particular town.

  • Aditya Thanekar April 21, 2014, 10:29 am

    Hi John

    I want to learn javafx, but i know swing little bit only.
    Should i know swing properly in order to learn javafx?
    And what is more efficient swing or fx?

    • John April 21, 2014, 1:00 pm

      Hi Aditya, you don’t need to know Swing to learn JavaFX. JavaFX is technically superior to Swing, but it’s not fully developed yet. JavaFX looks like the future, but at the moment Swing is more popular. I think eventually JavaFX will replace Swing … that is the intention of the developers.

  • Andy B. April 20, 2014, 7:32 pm

    Really enjoyed your course on Spring. Learned a lot in a short time.


  • Sharvani April 19, 2014, 4:36 pm

    Hi John,

    Thank you so much for these courses. For the first time ever, I have a new zeal to code, rather than just read. All thanks to you! ( and I am a SCJP by the way.. Still had never felt so good coding :-)) ..

    Great work! God Bless!

  • TorakTu April 6, 2014, 11:01 am

    WOW, great JavaFX tuts. I am really looking forward to tutorial 5+.

    Thank you very much. Now it all “clicks”. :D

  • Shaun April 6, 2014, 10:43 am

    Hi John

    Thanks for the awesome java tuts, they are really easy to follow and to pick up on. Do you have or have you ever considered doing a series where you take all your lectures and create an app for your different courses, say one for android, servlets etc etc?

  • Mariselvam April 5, 2014, 6:25 am

    Sorry John, Name was mistyped.

  • Mariselvam April 5, 2014, 6:24 am

    Hi Joh,
    Your tutorials are awesome.Excellent!!!..Thanks for doing great job.:)


  • Garcia April 3, 2014, 7:16 pm

    Good day John.
    I tried to take the Java for Complete Beginners course but I had problems with the plugins. My laptop has the latest versions of Windows 7, Firefox, Adobe Shockwave and Flash Player. It there’s a link where I could download the course?

    • John April 5, 2014, 8:14 am

      There isn’t, but you can try both YouTube and Udemy, and also try the Chrome browser.

  • Nour Adel April 2, 2014, 2:40 pm

    Thank you so much for your courses your giving a 16 years old the passion and the help to keep going in learning programming
    Thank You

  • Usman Raza April 1, 2014, 10:06 am

    Hi John.. I sent you a mail yesterday regarding online tutoring so please remember to consider me

  • Jaishankar Vagaram March 31, 2014, 2:16 pm

    Hi John,
    All the tutorials are very nice.
    And thank you very much for all the tutorials.

  • Kc March 31, 2014, 11:38 am

    John, thanks so much for your Java for beginners tutorial! I definitely plan on checking out your paid courses as well.

  • John Richardson II March 29, 2014, 12:44 am

    I will like to subscribe to your news letters. You explain concepts very well; in deed, I appreciate it very much. Very easy to follow and understand.


  • Andreas March 26, 2014, 11:17 am

    Hi John,

    I am interested in learning java and I would like to ask you something. Are there exercises or programming assignments for every video or every set of videos in your courses? Or just the final projects? I mean playing around and experimenting on the limited material (mentioned on previous videos) before getting it all together for the course project would be helpful for keeping in mind the material. Is there such a concept of mini tasks or are there only the videos and the course project?

    Thanks in advance,

    • John April 5, 2014, 8:13 am

      There aren’t really any exercises, just endless exhortations to write programs :)

  • mi March 24, 2014, 4:29 pm

    i want an example of cod of snake game(java) and i want to understand what is the best algoritm for it?

  • sandesh March 23, 2014, 8:24 am

    Really nice Tutorial .Thank you very much .How can I download the code shown in your tutorial

    • John April 5, 2014, 8:15 am

      The code for free tutorials is embedded in the page usually, in the YouTube videos section. Or else downloadable from the Udemy version of the course.

  • Steele March 23, 2014, 4:10 am

    Thank you so much for the videos John. They have been extemely helpful and I am learning so much. And excited to do so!

    Thank you again,


  • fuad hasyim March 22, 2014, 4:15 pm

    hai John,,
    i wanna say thank you for your tutorial,
    i really appreciate it, it’s very helpfull for me,

    thank you so much John,

  • Andrew March 20, 2014, 8:33 pm

    Hi John,
    I really do appreciate the courses you have up on this site. The Java for beginners was excellent. I was curious and want to know if you have any upcoming courses for authentication/Security in Java. I haven’t looked at the other courses like SPRING etc which might have some authentication features.


  • Reena March 20, 2014, 9:43 am

    The course “Java for Beginners” was great. I enjoyed doing the course and am now comfortable coding in Java.

  • Habibur March 18, 2014, 10:55 pm

    Dear sir,
    I am a mad for learning Java programing.I have many idea for new invention .To complete this invention ,I should learn programing language like C++ or Java.
    I want to spent my life inventing new something which will help the people and world.
    So I need your help……………………
    Please Teach me ……………..I want to learn.

    • John March 19, 2014, 2:33 pm

      Have a look at my free beginners’ tutorial :)

  • Brandon March 17, 2014, 11:41 pm

    After we do the “Java For Beginners” course, what should we move on to next. I want to develop android apps, but I want to learn more before I actually get to that point.
    Also thanks for the great course! Have a great day!

    • John March 19, 2014, 2:34 pm

      Hi Brandon, try the free videos from my Android course and see how you get on. Other stuff that’s useful for Android are: basic knowledge of SQL (e.g. MySQL or SQLite, both free) and basic multithreading (see my free multithreading course, first few lectures).

    • John March 19, 2014, 2:41 pm

      Anyone of my courses, really! Or any other course. SQL and multithreading are the only extra things between my beginners course and the Android course. You can probably learn them as you go along though.

  • Kostas March 17, 2014, 6:47 pm

    Hi John,
    I am at 70% of the course “Java for Complete Beginners”. Thank you so much for the course! My objective is to learn Java for Android apps. I don’t know client – server programming (ie using databases).

    Which one course do I need next? Do I need Java Multithreading or Java Swing or Java Servlets & JSPs or Java Spring as a prerequisite for Android?

    Thank you!!

    • John March 19, 2014, 2:43 pm

      Nice work :) You can try any of these courses really. I used a bit of SQL in my other courses, so it’s helpful to know a bit of that. They mostly use some multithreading, so it’s good to know the stuff from the first two or three videos in my multithreading course. The web courses (Spring – NOT Swing, and Servlets and JSPs) need a knowledge of HTML and CSS too ideally.

      • Kostas March 20, 2014, 9:21 am

        OK, thank you!!

        So, to sum up, in order to take successfully the course Android Programming in Java I first need to take some lessons in Java Multithreading. As I understand Multithreading knowledge is a prerequisite in order to understand the activity class for Android, isn’t it?

        Also, I saw that SQLite is taught in your Android course. However, do I necessarily need to take some lessons in Java Swing, particularly the SQL part, in order to learn more about databases?

        Thank you!!!

        • John April 5, 2014, 8:18 am

          Even just the first video from my multithreading course is probably enough. You don’t need to know Java Swing. SQL knowledge is helpful, but you can probably just learn it when you need to for the Android courses. It’s fairly simple, unless you start needing to design an entire online shop database or something.

  • Ajheang March 17, 2014, 12:26 pm

    Hi John,

    do you have plan to make video on myBatis and Neo4j in Java Spring 3.2?
    looking forward to see
    you’ve done a great job


    • John March 19, 2014, 2:44 pm

      Cheers. No, I don’t know these. But it’s possible I’ll learn them and make a course on them one day, who knows.

  • Harmi March 14, 2014, 3:28 pm

    I am part of the way through your basic Java and am totally engrossed.

    Excellent work John!



    p.s I named my bike David!

    • John March 15, 2014, 3:11 pm

      Thanks Harmi, and nice work on choosing the best possible name for your bike :)

  • Rob Howard March 10, 2014, 9:32 pm


    I recently finished the Java for Compete Beginners course at Udemy and am working through the Swing tutorials right now. I just wanted to let you know that your tutorials are very informal and you really have a knack for teaching the basics in a way that makes learning easy.

    I come from a C++ background and have dabbled in Java many years ago (Version 1.4), but your course made it easy to step aside and learn a new language with new features. Keep up the good work and I look forward to the other courses that I have from you!!

    • Rob Howard March 19, 2014, 6:36 pm


      I have a comment that I left for you over a week ago that says it’s still waiting moderation. My comment was praising your tutorials, but it is still not showing up. Is there a reason for the moderation? I have nothing but praises for your tutorials and wanted to let everyone know!!

    • John April 5, 2014, 8:16 am

      Apologies for the slow comment approval, Rob! Especially for such a great comment, thanks. I’ve moved to a new flat and don’t yet have an Internet connection set up here — just using my phone.

  • Anila S March 10, 2014, 7:54 am

    Awesome tutorials!!! Thank you so much. Your sessions are well-organised, give in depth knowledge yet short and crisp!

  • Ken March 9, 2014, 7:37 pm

    The cave of programming is a site worth a visit. I learned how to program using java so quick that I still don’t believe it. John your site is great.

  • Aruna March 9, 2014, 10:30 am

    Hello John, I was actually preparing for my interview and came across your website.I brushed up my core java and advanced java skills.It really helped me a lot.Thank you so much and God bless you always!!

    • John April 5, 2014, 10:56 am

      Great news … hope you got the job :)

  • Jerry P March 9, 2014, 1:10 am

    Hi John,

    I am enjoying your Java for complete beginners course. It is very easy to follow. I’m not interested in finding a job (I already have a very good one in another field). I’m interested in learning how to write game apps for tablets and telephones. I am not opposed to paying for my education as necessary along the way. Could you provide some suggestion as to what to study? Thank you very much for your awesome course…


    • John April 5, 2014, 10:55 am

      Best thing is just to look up a tutorial somewhere (lots of free ones) on how to make a game for your chosen platform. You might want to check out AndEngine or some game programming framework.

  • Sivaram March 5, 2014, 4:37 pm

    John, I have completed one of your courses (on multithreading) and I am currently doing your Design Patterns course. Thank you so much for your excellent videos and teaching par excellence.

    I also got registered in your Spring and Servlets courses. I have seen many video tutorials in the past, but nothing helped me get started as much your videos have. Once again, thank you so much!

  • sunny March 3, 2014, 2:26 pm

    hi! any one of you…. do have any idea about the .Net language please reply me no this site
    …it will b a great help….thanx.

    • John March 6, 2014, 9:11 am

      I don’t have any .Net tutorials at the moment. .NET is a framework for creating user interfaces that can be used in various languages, as far as I know.

  • sunny March 3, 2014, 1:41 pm

    hi! man you are awsom… great….a real helping person on the earth belev me your tutorial are the most helping material i ever found on internet…..God Bless u realy….u are like an angel for me….may you live long with health,happiness and success. great job (Y).

  • Mit March 1, 2014, 11:18 pm

    I like the presentation style.

  • Alex March 1, 2014, 1:23 pm

    Dear john
    Could you please make a new udemy course on making games with eclipse, and also expand the java for complete beginners?

  • Vijay February 25, 2014, 12:34 pm

    Hi John,
    Just started viewing your videos from last week. Videos are presented in a simple manner and yet very effective and easy to understand. Many thanks for that !

    Just a quick question..whats the difference between CoreJava and Java ?

    • John March 6, 2014, 9:21 am

      I use “core Java” to mean the basic syntax (loops, conditionals, variables, classes etc), not including the various APIs that let you build programs with user interfaces, etc.

  • Online Trading Acaddemy February 25, 2014, 7:15 am

    Greate article. Keep posting such kind of information
    on your page. Im really impressed by your
    Hey there, You have done a great job. I’ll certainly digg
    it and individually recommend to my friends.

    I am confident they’ll be benefited from this website.

  • Balazs February 24, 2014, 7:43 pm

    Is it possible that you are going to make more tutorials about java FX?

    • John March 6, 2014, 9:08 am

      Yes! I mean to. There are five on my YouTube channel at the moment.

  • J Richardson II February 24, 2014, 1:50 am

    I wish some teachers teach like you do!!!

  • lakshman February 22, 2014, 11:11 pm

    hi john . I like to learn strutus framework . so please start tutorial for that also .Thanks in advance.

  • Arun February 22, 2014, 6:03 am

    Excellent tutorial website… I’m searching for this kind of website for very long time when i wanted to learn frameworks like Spring, hibernate, ibatis etc… Thank you very much for this website.

  • Plastic Surgeons in Akron Ohio February 22, 2014, 2:05 am

    Greetings! I know this is kind of off topic but I was wondering which
    blog platform are you using for this site? I’m getting tired of Wordpress because I’ve had
    problems with hackers and I’m looking at options
    for another platform. I would be awesome
    if you could point me in the direction of a good platform.

  • Pavas Sisaudia February 21, 2014, 8:10 pm

    Hi i have a question about constructor in java.
    is there any default constructor in java if one of constructor is already created for java?
    class a{
    int a;
    a(int assign){
    a = assign;}
    class b
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    a try1 = new a();// i m getting error in this

    • John March 6, 2014, 8:45 am

      No, if you create a constructor, you lose the default constructor. You can create one yourself though.