Having a suggested "kernel" of J to learn for beginners is not a bad idea. Linda's proposal to make the J vocabulary more "beginner friendly" is one that has been proposed before, and even partially implemented. However I believe that we need to do more than just list a set of J primitives for a beginner to learn.
A list of primitves with links to definitions may be enough for a motivated computer science grad to get going in J, but that is probably not the best way for the less-motivated and less-technical, who just want to get a flavor of J. The learning curve for any language can be quite steep, particularly if the student is presented with a large number of concepts right up front. The J language is particularly bad about doing this, since most all of the laguage primitives can be displayed on a single page. For learning, it is better to introduce a subject's concepts gradually and serially. In addition, the serial steps should promote a "try this and see what happens" interactive approach, encouraging the student to experiment with each concept using a live interpreter. This plan is best achieved by using a narrative approach, which significantly flattens the learning curve. The narrative should lead the newbie through the basic concepts, having the studen read about, and try out each concept, one step at a time. However, developing such a narrative can be a large project. We already have several books which attempt to teach J by presenting J concepts in small steps. While these books do cover the subject well, I believe that they are still oriented to a technical, computer-science-grad audience. So even these books make the learning curve too steep for the non-technical, less-motivated students and casual investigators. We need an easy-to-read teaching tool that will ease the reader into the world of multi-dimentional matrices and the operations that can be performed on them. Think of a book that would fit in the popular series - "J for Dummies". There is one book that I believe presents a matrix language in a way that even the general public could grasp. The book is Gillman & Rose's book "APL - An Interactive Approach". Years ago, this book taught me APL in a fun and painless way, and that methodology is still valid today. This style of teaching tool is the perfect introduction to a complex language such as J for a less-technical audience.. In fact, Gillman &Rose's book would be the perfect introduction to J for non-technical users. There is just one problem - the book is about APL, not J. The good news is that J is similar enough to APL that it wouldn't take much to convert their book to "J- An Interactive Approach", thus creating a basic easy and fun to read J tutorial. In fact, I would propose that the J community would obtain a valuable learning resource for the J language by simply "translating" Gillman & Rose's book from APL to J. This would be a considerably smaller project than trying to author a "J for Dummies" book from scratch, for a non-technical audience. Basically, one could scan in the G&R book, OCR it, and then substitute J expressions for the APL expressions. Of course, there would need to be some other updates, modernizing the selectric typewriter nomenclature to computer keyboard or touchscreens, etc., but it wouldn't be all that big a project. Skip On Mar 16, 2013 8:47 AM, "Linda Alvord" <[email protected]> wrote: > We are close to selecting a "kernel" of the language. We need to pay close > attention to how those concepts are defined in the Vocabulary. Don't remove > all the wonderful complex examples! Just add more carefully chosen > examples. When the new user consults one of those terms, they should only > encounter even simpler concepts in the definition. Each example that is > looked up should encourage them to be more fluent "speaking" the > language. > > Linda > > > Original Message----- > From: p.rogramming-bounces@ forums.jsoftware.com [mailto:programming-b > [email protected]] On Behalf Of Linda Alvord > Sent: Saturday, March 16, 2013 9:17 AM > To: [email protected] > Subject: Re: [Jprogramming] Learning J language - initial thoughts > > My guess is that most experienced J users rely first on the Vocabulary. It > is an easier starting point to find answers than the primer, phrases, > index, > dictionary and other references. > > I would like see a Vocabulary that assists the beginner in the same way > that > it assists our most skillful users. > > Do we really need more options to explore to find the panacea for learning > to "speak" J? Couldn't we just make modest improvement to our best source > for understanding the language? > > Linda > ll > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Raul Miller > Sent: Saturday, March 16, 2013 8:09 AM > To: [email protected] > Subject: Re: [Jprogramming] Learning J language - I nitial thoughts > > On Sat, Mar 16, 2013 at 3:36 AM, Linda Alvord <[email protected]> > wrote: > > How many terms will you have to look up before you understand this? > > I have been wishing for a kind of wiki markup where I could mark a region > of > text as requiring some list of topics on the part of the reader, and then > also identifying a topic which the the text addresses. > > If something like this could be designed, we could present initially simple > definitions to the reader and reveal further detail as the reader visits > other topics. > > Complexities here include the implementation mechanism (some people would > prefer an automated approach - using cookies, perhaps - where at other > times > they would prefer a manual approach - using menus, perhaps), and > identifying > topics (addition, for example, could include topics of numbers, identities, > rank, and grammar with associativity and commutativity falling under > "grammar", and numbers themselves have a variety of types including > counting > of physical objects, promises for the future, measurements of distance and > collections of different kinds of numbers [apples, oranges and eggs]). > Unfortunately, this is a really good example of "it's simple when you > understand it but not until then", and the layering means that you can > understand something simple while not noticing the relevance of another > issue. > > Thanks, > > -- > Raul > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
