I will start by saying I have read many useful blog posts and course notes that have been linked on this forum, and I greatly appreciate the effort that goes into making them. The problem is they are not discoverable. It is my opinion that these guides would be much better served as a “Tutorial” or “Usage Guide” section in the official documentation for each package. I would like to have a discussion about that stance and what we can do to improve discoverability of fundamental knowledge for new users to enjoy the Julia experience faster.
It is well known (based on questions that come up on this forum) that documentation for even some of our most fundamental packages is not sufficient to get a new user comfortable using Julia efficiently: Pkg, VSCode, JuliaUp, Revise, Debugger, workflow, reading errors, etc. To me, writing Julia is easy, but running and engineering Julia is hard. Even after 3 years of casual Julia use, I don’t really understand these fundamentals.
Subscribing to your favorite Julia blogger is a good way to get niche tips once you are already in, but it is not a good way to start learning from scratch. I am really excited to see Modern Julia Workflows come together, mostly because it will point new Julia users to the best starting tools, but is anyone really going to find it a year from now buried here:
For me at least, if a sufficiently thorough and high-quality “User Guide” is not within two clicks of the GitHub README, I start to get frustrated digging around the internet trying to get something working. I think more of the great writing coming out of the community should be added directly as pages or links in the documentation. Then it is much easier to find and point people to the answers they are looking for. I just want the great content I see being linked on discourse more broadly available to new users who aren’t necessarily plugged in to the Julia community, and I am hoping to start a movement and discussion in that direction.
Some Obvious Retorts:
-
Documentation is for reference not long-form instruction!
Both can coexist (on the same website). -
Blogs are opinionated. Documentation can’t be: requires public consensus!
Who cares if a method different from the one you personally use is the officially documented one? You could add an “alternative workflow” page or make the documentation a list of links to several differing external resources. Just give people an easy and popular option to get them started. An opinionated guide is better than no guide! -
Blogs can discuss a broader ecosystem. Documentation must have a focused scope!
I will admit that the broadest cases (something like “Machine Learning with Statistical Datasets”) is better as a separate blog or course, but common and simple use cases could benefit from having a dedicated page or even separate documentation (linked to from both READMEs) on “Using SomePackage with OtherPackage”. -
If you are so unhappy with the documentation, then fix it yourself!
– I try here and there, but I am only one man. There is a lot of documentation to improve.
– There are hurdles that sometimes prevent a novice like me from contributing.
(I’m not sure that the remedy for the first three topics in that link ever did find a good home.)
– The end result would be much better if the whole community was committed to generating great content in these few focused, accessible locations together.