Hey folks,
This is early days so I am going to use this first page as a message board of sorts to catch everyone up to speed.
If you want to get involved the (non-writing) tasks that provide the most value are
- Provide feedback and suggestions
- Offer any domain knowledge on things that the writers don't have (Has anyone used JavaFX for real?)
- Start to investigate what it would take to have interactive code snippets or inline quizzes
- Make art for pages that are "content complete." The wackier the better.
- Share reference materials / tutorials you like or don't like.
In this section you will find some "indexes" of books and online tutorials that have been copied down rote for reference.
<iframe width="560" height="315" src="https://www.youtube.com/embed/rCOmkrwQdFc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>The section labeled "Getting Started" is where folks should work on making a guide for getting set up with the ability to run Java and develop on their machine.
There is a wide variety of possible setups, so this is strangely tricky!
In every chapter and guide we can assume that folks have gone through whatever setup instructions are there, but no more.
This should end with a successful "hello, world" and not have to be "redone" at any point for a learner to follow along.
In this section we are focusing on plotting the "learning path" for someone who wants to learn the "best version" of Java.
By "someone" I mean a "student" (loosely defined high school, college, or self learning) who is lacking solid fundamentals. (due to bad curriculum, bad teacher, bad resources). Thats my current working hypothesis for a target audience.
I don't imagine we will be able to make "101" type material that competes with a full curriculum. (Teaching for loops is way too hard!) but we should be able to make something that gives the proper foundation for
Generally speaking, we are working on a "tutorial" in the diataxis sense. As a rule of thumb, if someone has something that is an "Article" like you would see on Baeldung or geeksforgeeks or Medium, that is not the thing we want. (They are free to publish on those sites or self publish).
At this point, we think the content should be written as if it is an interaction between a single author - "I" - and a hypothetical reader.
In this we should use the latest Java uncompromisingly. There is no "as of Java 8" in this town. It is just Java, whatever the latest release is. Not latest LTS, latest release. I am not going to wait 2 years to talk about pattern matching.
We should also introduce every topic and concept that we bring up. It should be readable from start to finish with minimal external context.
Here is where I am dumping all the content that is "legacy." Stuff like Vector
and Hashtable
or Date
.
This is where we would explain where bad patterns came from and what folks should do instead and why.
If anyone has a good get/set rant in them, here is the place. (I think).
I am mostly using it as a place to put things to remind me to go over them, though it could spiral beyond that mandate.
If the "modern java" section is where someone would go to learn how to program from near zero, this is where someone would go if they already knew another language like Python, JavaScript, C#, etc. and just wanted to get up to speed.
The order of topics in this section should roughly follow the order they are introduced in the learning section, though as they are for a different audience they can go more in depth and assume more common knowledge.
Of everything this is the strongest canidate for the kind of content that would be a "seperate book." Seeing as the initial use of this is to link to strugglers, its fine to be colocated atm.
Think tour of scala or rust by example.
Once a topic has been covered and fleshed out enough in the tutorial, someone can write a corresponding reference page in the tour.