Getting Started in J
You've heard about J and you wonder what all the fuss is about. Here's how to get started.
First, though, a warning: J is not like other languages you know. Sure, you're a pro: you can be using the latest object-oriented web-enabled widget language just a few days after you hear about it. But J's not going to be like that.
J isn't just another way to declare variables and write loops. J is a way of thinking big: describing an algorithm by looking at it as a whole and breaking it into its natural parts. You're going to have to spend some time learning what those natural parts are. Your skill as a program designer will help, but it will be fighting against your learned tendency to think small.
In a few hours, you will see that J is something special. In a few days, you will see that you will be able to learn to think this way. In a few weeks, you will be more productive than you ever were with more normal languages. And if you can give J a few months, you will change the way you think. Even when you go back to a scalar language, you'll write better code because you can plan in J.
J systems can be installed and distributed for free. See System/Installation and follow the Quick Start Guide for your computer. Follow the path to get all the addons and the Qt IDE.
Before you get down to learning J, spend a few minutes taking a tour. You need to see that J is going to be worth the effort! If you are using the jQt interface the J Studio will show the power of J.
Sign Up for the Forum
If you're still interested, you'll have to start learning instead of watching.
You need a helping hand! Fortunately, every experienced J user remembers what being a beginner was like, and many are ready to help with any question you may have. Look over the J Forums and sign up for at least the Programming forum. Post your questions to the Forum freely; they'll be answered quickly.
Get Serious About Learning
When you are ready to commit to learning J, here are some ideas depending on your learning style.
The recommended reference for learning the J language is NuVoc, which describes the vocabulary and primitives of J and contains many explanatory essays. Consult NuVoc when you have a specific J question to be answered. From the J session you can get to the NuVoc start page with Shift+F1, or to the page for a J word by putting the cursor in front of the word and pressing Ctrl+Shift+F1.
If you are dissecting a sentence, you can get NuVoc information by clicking on a primitive in the dissect display.
NuVoc is restatement of the original J Dictionary and its summary Vocabulary. The Dictionary is the official definition of the language, by Kenneth Iverson, who as a young man at the dawn of the computer age created the first array programming language (APL) which he refined into J as his crowning effort; and Roger Hui, Ken's disciple and the implementer of the J interpreter. The Dictionary is a masterpiece of brevity and is a treasured resource for experienced users.
A comprehensive list of books, essays, examples and even videos can be found here.