Through my personal experience I have found 3 ways of learning things

1) Through Documentation and asking Questions, or been taught in a
course/class,  this one is the most popular because is the one requiring
the least effort , but also the weakest form of learning because it offers
a very limited array of knowledge . Knowledge that is documented or from
people that can answer your questions if you can reach them.

2) Investigation. Investigation is basically the art of following the
clues, of piecing things together. Investigation is basically the
scientific method, you form assumptions, you test these assumptions , you
observe , you correct these assumptions according to your observations and
you repeat the process . Investigation unlike Documentation has no limits
to how far it goes however it has a big flaw too, it depends on your
ability to divide and conquer a problem. However if the problem is too
complex it will still work but it will be a very enduring process and quite
painful too.

3) Exploration. Exploration is abandoning any assumption or reliance to
documentation . Opening the mind to any possibility. Learning for the
purpose of true joy. No goals. No rules, No boundaries. Exploration is
great and its my favourite way of learning because it never disappoints and
never frustrates.  Instead of being frustrated at a problem you have very
hard time finding documentation about or you have hard time investigating
you move to the next one. If investigation is about dividing a difficult
problem to much easier ones, Exploration is about going straight to easy
problems and let yourself through experience gradually progress to more
complex areas. I also prefer exploration because it offers a more structure
way of learning and builds confidence. The flaw of Exploration is that
there is such thing as having to much fun and you may find your self
wasting time on things that you enjoy on one hand but are not particularly
useful on another,  you may lose track of your goals.

All those 3 techniques I have opportunity practicing them when I took my
Law degree but they apply pretty much apply to everything.

Even though the 3rd one is my favourite I use all of them when the
situation demands it.

When it comes to Pharo

- Documentation : Pharo By Example 5, Deep Into Pharo, Pharo for the
Enterprise ,  Pharo In Progress, asking question in mailing list like this
one, reading class and method comments, reading code of unit tests.

- Investigation: Reading code directly, going through messages one by one,
creating and playing with unit tests, heavy usage of Class browser's
ability of finding senders or and implementors of a method, use of
GTSpotter for location of methods, taking a look at practical examples and
how they use the code you want to use.

- Exploration: heavy usage of inspector , debugger and
workspace/Playground. Also heavy reliance on printing data on transcript.
An alternative way is to formulate your own data and send them an inspect
message this way you can avoid printing things and go directly to the
source.  Coding inside the debugger instead of inside the browser is also
highly advisable.

The way you work is like this

1) Is there Documentation of what you want to learn ? ->  if yes use
Documentation

2) If No does reading code and its unit tests are easy enough to learn what
you want ? if yes use Investigation

3) If no then start making a ton of experiment in the workspace, print and
inspect many values to see exactly how the code works, move the code to
System browser through class definitions, introduce self halts
(breakpoints) and work the rest using the debugger and the inspector for
even deeper look into data processing and flow. Remember your purpose
unlike investigation is not how the code works but how the code affects the
data.

Cannnot say if my method of learning will suit you, but take it as it is,
with a grain of salt.

On Sun, Nov 27, 2016 at 9:25 AM Derry Bryson <derrybry...@gmail.com> wrote:

> Where can I find documentation of the base class libraries for Pharo
> Smalltalk?  Or is there some other way I should learn about the system?
>
> Thanks,
>
> Derry
>

Reply via email to