This project is for creating a book that introduces people to programming in the Java programming language, with a concentration on doing so in the Apache NetBeans IDE.
The idea for this book came to me when I was driving around listening to SiriusXM radio and heard a commercial for Babble language learning software. They had stated that they use a technique for teaching languages that is known as the "full-immersion" language learning technique. This piqued my interest, so I did some research into this language learning technique and I what I found gave me an idea...well, I created a theory anyway.
In my research, I found that the way children (primarily infants and toddlers) learn how to speak is that they are fully immersed in the culture that speaks their native language. 😕 This got me to thinking, if full immersion works for natural languages, I wonder if it will work for artificial languages as well. Therefore, I decided to test this theory.
Most CIS classes dealing with the Software Development Life Cycle (SDLC) and programming tend to be extremely dry and boring. Listening to a teacher or professor droning on and on about the history of computers, programming, and the specific language on which the course is focused. Then having to sit through session after session (or read chapter after chapter) of high-level, didactic content about the various intrinsic data types and their ranges, the various scopes of declared variables, etc., just turns most people off.
So, in fleshing my theory out even further, I thought, "what if, instead of all of that didactic crap that can be looked up in the API documentation, a book or a class was to simply focus on using the language and let the reader or student learn as they go?" This brought me to thinking about the presentation of the topic. Instead of a dry, boring book (see the book, *Java — The Complete Reference, Eleventh Edition for an example), why not write the book in such a manner that it is more like a conversation between friends? So, that is how I am approaching this project.
To make it more like a conversation, I am writing in the first person, using phraseology such as "I" and "we". Occasionally, I will move into the second person and say "you". Regardless, I plan on using emojis throughout the book, within the context of the regular paragraphs, in order to get across my tone of voice at that moment. I will use certain emojis, such as:
- ❌ - Never do this!
- ❗ - Warnings
‼️ - Danger- 🎯 - Best practice
- ✏️ - Note
- 📓 - Additional Information
- 🔧 - Configuration Information
- 💡 - Quick Tip
- 🔍 - Links to websites for further research
- 🐜 - Bug (intential to teach debugging)
- ⚡ - Bug Fix (proces for fixing the bug)
These emojis will be used to mark separate paragraphs, like marginalia or callouts, simply to provide additional information to the reader. Then I will use other, mostly facial expression, emojis for my attitude/voice inflection as needed.
I figure the best way to teach this topic is to do all of the planning for a specific project, develop it, test it, maintain it, then release it, in a cyclic process so that only small parts of the project are developed at once. Furthermore, instead of doing a bunch of small, directly on topic projects, we will create an entire desktop application (a simple one) throughout the course of the book.
This way, the reader will keep repeating things s/he has already done so that it gets cemented into his/her mind. I believe that this will be a better way of teaching how to program than by creating multiple small, do-nothing projects throughout the book, such as you find in most books on programming.
As I am creating each chapter and/or section, if anyone is willing to read, proofread, and/or make suggestions for the content or the project, please file an issue on this repository. I greatly appreciate any input, feedback, and/or pointers that I can get! Every little bit will help out a lot...
---- Sean C.