pharo-open-documentation / pharo-wiki

Wiki related to the Pharo programming language and environment.
https://twitter.com/PharoOpen
Creative Commons Attribution 4.0 International
246 stars 76 forks source link

True Beginner Confusion #161

Open claytron5000 opened 5 years ago

claytron5000 commented 5 years ago

The first page of this wiki "Must know for beginners," jumps in at least two steps ahead of where a beginner starts. I don't have a PR yet, but as a true beginner, I get pretty confused when the first directions on this page are

Browse (CMD/CTRL + b): This command will open a new system browser on the class you are currently focusing Senders (CMD/CTRL + n): This command will open a message browser with all the methods calling the method/symbol you are currently focusing. Implementors (CMD/CTRL + m): This command will open a message browser with all the methods whose name is the name of the method/symbol you are currently focusing.

I personally have already installed Pharo, but I might not have, and I don't have the IDE this might be referring to.

In short: Add at least one paragraph explaining or linking to how to start from scratch.

olekscode commented 5 years ago

Thanks for your issue, @claytron5000 I am working on a page about setting up a new project: https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/SettingUpANewProject.md

Bajger commented 5 years ago

Hi Oleks, I've looked in your MD file and looks really nice! I guess for beginners would be most interesting to have description of steps 0-3 described as "Basic interaction with Pharo tools and code" and rest of steps split to next phase "Completing whole project ecosystem (version control, Package setup, CI, etc.)" or with some better name of chapter. For steps 0-3 I would add some more smaller steps how to interact with tools like Playground, Transcript, Debugger, Inspector and explain purpose of that. What do you think? Anyway, this is great!

olekscode commented 5 years ago

I think that Pharo Wiki should not cover general topics that are already covered in books. For example, Pharo by Example (https://files.pharo.org/books-pdfs/updated-pharo-by-example/2017-01-14-UpdatedPharoByExample.pdf) gives a really good introduction to Playground, Transcript, Debugger, Inspector, etc. If we can write it better, we should just propose an update to the book.

The goal of Pharo Wiki is to provide information on the new things and some very specific technical details. Things that change so fast that they are not yet covered in books or MOOC.

That's why I want to write about Pharo Launcher, Iceberg, GitHub, Travis CI - practical guidelines that are not yet included or just out of scope of Pharo books, but can be very useful for beginners. For the information about Playground, Debugger, and language syntax, we should just provide a reference to a certain chapter of a certain book.

Bajger commented 5 years ago

I see. I would still argue that mentioned tools are very essential for beginners and they would interact with them even when they'd write 1st line of code on day 0. If you intend in chapter 2 to describe only creating package, class (and method?) in System browser, beginners might get impression that this only way of interacting with code. I definitely agree to avoid doubling information, but nothing fancy is needed (just 1-2 sentences to each tool, or even link to Pharo By Example book). I'm afraid that Pharo By Example is not known on very beginning to incomers. So it could be like this:

jecisc commented 5 years ago

Hi,

I would like to have a page describing the basic tools of Pharo and also a page for each tool describing the advanced features.

Currently, we do not have a lot of time to work on it so we prioritize documentation on part of the system that has no documentation for now. It's the reason we did not yet write a page on basic tools since there is a section in Pharo by example, but in the future, we will probably add one.

olekscode commented 5 years ago

And the purpose of the page of Setting up a new project is not to introduce a beginner to Pharo, but to describe a good workflow for creating / testing new projects and libraries.

So we can have a page about setting up a project and another page about working with Playground

Bajger commented 5 years ago

Right, issue was dealing with confusion about "Must know for beginners" and somehow I felt that describing whole project setup is much larger than what beginners are interested in. My point was to show REPL like experience and very basic steps, similar to what is described e.g. in this video https://www.youtube.com/watch?v=eGaKZBr0ga4

claytron5000 commented 5 years ago

For some context, I'm coming from the web-world. While I know Pharo is a much different project, I'd like to point to some great online documentation that makes it very easy for a beginner up and running. Elixir: https://elixir-lang.org/getting-started/introduction.html React: https://reactjs.org/docs/getting-started.html Go-lang: https://golang.org/doc/

These are big well-supported projects backed by the biggest companies in the world, that's important to keep in mind. But I think they also provide an ambitious "reach-goal."

I like @olekscode start.