Learn Java the Hard Way
“Learn Java the Hard Way” is a book with tutorial videos
that teaches you how to code the same way a lot of us learned as children
in the 1980s: typing in short, simple programs and getting them to work.
The exercises and explanations in this book are distilled from my
more than fifteen years of experience teaching programming to ordinary
students. Over 2,000 students have taken my classes and nine months later
almost all of them knew how to code — at least a little!
If you have ever bought another Java book for “beginners”
and been lost by page 10, then my book is for you.
“You're the man! I've had such a hard time figuring out these
fundamentals for years, professors and books really have no concept of the
idea that maybe the reader or student has no background in programming,
or just might want to know why things need to be typed in, rather
than ‘just type this in, it makes your program function’. I
can't thank you enough for writing this and hope for the best for you!
“I just want to thank you, Graham, for creating the first
programming book (let alone that it's Java!) that I have
been able to both understand and complete the lessons. I know that there
are tech writers out there who can also program, but I've never been one
of those guys. I have a liberal arts degree, fer God's sake! And I taught
composition and drama! Not particularly technical areas. Anyway, you don't
know how thrilled I am with your course and how programming (pre-OOP) is
finally sinking in. And I have tried a lot of stuff.... You can evidently
teach an old dog new tricks, trust me.”
- Steve G
“I purchased your book Learn Java the Hard Way and I was very
pleased with it. You struck a balance between speaking in plain, simple
English without watering down the core materials of an introductory
course. I finished your book and now I find myself eagerly anticipating
the release of your second book.”
What You Will Learn
- Installing the Java compiler and a text editor to write programs with
- How to create, compile and run your first Java program
- Using variables and getting input from the user
- Reading and writing text files
- Making decisions with if statements
- Repeating things with loops
- Writing functions (methods)
- Basic objects
In the final chapter you’ll write a not-so-simple text-based
adventure game with levels loaded from a file. You should also be
able to write a text-based card game like Hearts or Spades.
- Who are you?
- I am Graham Mitchell.
I have been teaching Computer Science at Leander High School
(near Austin, TX) since the fall of 1997. We are a pretty good school; consistently
ranked near the top 5% of public schools nationally. I have a lot of students who are exceptional
but most of my students are regular kids with no particular aptitude for
- What is included in the book?
- The book is a DRM-free PDF. It contains
59 exercises that walk you through creating programs and explaining what each
line does. All the tools you need to create Java programs are included or
freely available. Also included is a zip file containing all the source code
and text files used in the book.
- Can I download a preview of the videos?
- You can watch the first few videos on my Youtube
playlist. If you just want to see if the videos will play on your
computer, you can download the video for Exercise
1 (5.6 MB). If you request a sample book, some sample videos are included, too.
- What format are the videos in?
- They are h.264 video at 1280 x 1024, 15 fps in an MP4 container. Audio is 64kbps AAC-LC.
Please let me know if the videos don't play on your system.
- If I buy it now, will I get future updates for free?
- Yes. Any future changes to the text and even new book formats like
.mobi (Kindle) or .epub (iPad) versions are included for free. Also,
if I add new answer videos or update the tutorials you'll get an email
to download the new version.
- I already bought the book! Can I buy just the videos?
- Of course. Email me.
- Are you affiliated with Zed Shaw, who wrote the excellent book
Learn Python the Hard Way?
- No, but I have spoken to him on the phone. He knows about
this project and has given it his blessing.
- Can I email you to get help?
- Sure. Email firstname.lastname@example.org
and I will do what I can.
“Learn Java the Hard Way” is ©2013–2015 Graham Mitchell