String author = "Lincoln W Daniel";
String bookTitle = "Java for Humans";System.out.printf("Hello, World! My name is %s, author of %s", author, bookTitle);
Hello, World! My name is Lincoln W Daniel, a software engineer studying computer science. My passion is in developing software to enable people. I am writing to teach aspiring programmers/coders how to learn Java, my favorite language, in a way people can easily understand and relate to.
I know you want to get started now, but bare with me for a couple minutes as I introduce myself and Java.
Why Listen to Lincoln
I’m not a PhD and I wasn’t born with a knack for math. Nonetheless, in a little over a year of practicing software engineering, programming, coding, or any other term you may know it by, I have managed to interview with companies like AirBnB, Pandora, Box, and LinkedIn. Further, I’ve received internship offers from some of the more notable companies, including NASA JPL, IBM Watson, and A Medium Corporation among others. I learned and have reached this point in my young career by doing — building. However, I believe there is great value in books that can effectively teach beginners how to learn something in a language they can understand.
When it comes to teaching, I look at it this way: the more you teach others a skill, the better you become at that skill. As a tutor and teaching assistant, I help students understand concepts by relating them to real human experiences. I will be employing the same method to help you learn how to code because students have told me it is more fun and considerably more effective.
Why Learn Java
Put simply, Java, named after coffee, runs the world. There are more than three billion devices running Java today, according to Oracle. This is only possible because Java is a portable language thanks to the Java Virtual Machine (JVM). The JVM allows Java developers to write code and compile (run) it on one platform and run it on many other platforms unlike other languages. This has allowed Java to become a powerhouse in the programming world. Google caught on to this and swiftly made Java the language that runs your Android phone. Java is in everything and you’ve been using it since you were surfing the web in the good ole America Online dial up internet days.
Java for Humans will help you learn how to build the cool tools you use everyday. With knowledge of programming in Java, you can start building Android applications and games for phones, televisions, and tablets. Furthermore, not only will you be able to build with Java, you will be better prepared to learn more programming languages to increase the range of applications you can build from car to drone software.
Why Read this Book
I am writing this book to teach anybody with the slightest bit of interest in computer science, software engineering, and programming/coding how to begin by learning Java, the most widely used and deployed programming language today. However, Java for Humans won’t be like other coding books. My intention is to relate coding to human experiences to make it easier for beginners to learn and have a connection with Java.
Who is This Book For?
For the beginner who has never heard of Java before today, this book will get you started on the road to building your first Java application by walking you through the essential components step by step.
For those who have dipped their toes in a little bit but are feeling the coding life is a little too cold for them, too unlike what they are use to, or simply too boring to continue learning, this book is here to slowly pull you in deep. Java for Humans will help you relate coding to your life experiences so you don’t feel lost. Your current knowledge will be reinforced through clearer and more thorough explanations.
Not only can an old dog be taught new tricks, an old dog can also learn how to teach old tricks.
Finally, if you consider yourself an expert in Java or a coder of moderate skill level, Java for Humans will help you reinforce your knowledge of the basics of Java that you may be forgetting. Further, as experienced programmers, we are always learning from one another. Java for Humans will provide you inspiration for new ways of teaching your craft to others who may be beginning and those who need a refresher.
Who isn’t This Book For?
Anybody who knows oneself to be closed to new ways of thinking, this book is not for you. If you do not fall in one of the groups in “Who is This Book For”, this book may not be for you, yet. However, do feel free to stay ☺.
What Will You Learn?
By relating programming/coding to your human experiences, Java for Humans will teach you all of the concepts listed in the table of contents. Some of the more noteworthy ones include how to create a class, using encapsulation, using methods and variables, datatypes and data structures, interfaces, and the great polymorphism. You will also learn best practices, design patterns, tips and tricks for programming in Java.
Not only will you learn the above topics, I will teach you how to learn far beyond what any book can ever teach you. You will learn how to use Google & StackOverflow to learn more when you’re stuck. I will teach you how to learn through doing research, building things, breaking things, and fixing things as you go. Some call this the act of building a plane while you are in midair, but I call it the process of learning by doing. It is one of the most effective ways of learning how to do anything, especially programming.
The Overlying Projects
I believe in having fun while learning. Towards the end of the book, you will use all of the wonderful skills and super powers you develop to build and play a little fighting game in Java.
Because some people may learn better by hearing the explanation rather than reading it, I am publishing a video series on Java for Humans on my Youtube channel, ModernNerd. I will publish those videos as time permits, so please subscribe to the channel to receive updates as I post new videos.
Supporting Source Code
Finally, the code. While I will include necessary code snippets within the chapters, I have posted the executable code base for each chapter in a GitHub repository in order to keep the chapters short. The link to the repository can be found at the bottom of the table of contents.
Okay, that’s enough of the boring groundwork stuff. Time to get started.