Arc Forumnew | comments | leaders | submitlogin
If You Have Some Spare Time And Don't Mind Teenagers...
1 point by crownoflaurel 5464 days ago | 17 comments
I'm sorry, but this is a rather long story. I'll try to make it short, and hopefully bother no one.

I come from NaNoWriMo, where I found this interesting essay about school, which I followed to Paul Graham's site. Naturally being an avid reader, I started browsing through all his other essays. I found that some of them I didn't understand most of, and that the reason I didn't understand was because I understand nothing about programming.

Now, if I was a docile child, I would have simply left. However, I'm stubborn. I decided I'd just have to learn this....programming thing. It couldn't be that hard. Then I realized I had no idea of how to go about learning that, aside from looking for help books, which I inherently distrust. And so I searched said website and found this forum.

Does anyone have the time to spare to give me some advice? I understand this forum isn't really for these types of questions, but I wasn't sure where else to go.

I apologize if reading this has bothered you in any way.



2 points by aw 5463 days ago | link

A good way to learn programming is to write a program that does one very simple thing, such as displaying a message. Then read and learn a little more about programming, and add to your program, or write a new program, so that it does a little more:

learn -> do -> learn -> do -> learn -> do ...

You don't have to either trust or distrust things you read because you can immediately test what they have to say.

For example, if someone were to say that to write a Javascript program that adds two numbers, you can go the address bar in your web browser (the box that normally has a web address like "http://arclanguage.org/), and type in:

  javascript:alert(3+4)
you don't have to believe them or not believe them, you can try it for yourself.

Or, if you read in the Arc tutorial that typing in

  (+ 1 2)
will display "3", you can go try it for yourself.

You can try Arc without installing anything on your computer, as palsecam has Arc running on a web page for you: http://dabuttonfactory.com:8080/

If you'd like to run Arc on your computer, feel free to ask for help if you run into any trouble installing it (Arc is new so it isn't as easy to install as some other languages).

-----

2 points by diiq 5462 days ago | link

I sat here for nearly half an hour, trying to compose a response --- because while I think that programming is one of the most gratifying skills I have, your question forced me once again to realize that I don't remember how I acquired it.

Learning to program is not at all like learning to juggle --- it's more like learning to read. When I learned to juggle, each new complication made practicing harder (5 balls vs 3); when I learned to read, the very act of reading had side-effects (new knowledge, the recognition of allusions) that made reading easier.

Because of that, it's impossible to say, "Oh, I learned to read last Wednesday." The process is gradual and it is governed by arcane laws of acceleration. The same thing happens with programming --- learning helps you learn faster! So don't worry about your first step --- even if you pick up the worst programming book ever written. So long as you persevere, the knowledge you gain will make picking the next book easier.

As long as I keep reading, I am still learning to read. As long as I keep programming, I am still learning to program. All you need is enough information to start --- and that can come from any book, or any tutorial!

For an ambitious start, try the books and tutorials recommended at the very bottom of this page: http://norvig.com/21-days.html

-----

1 point by thaddeus 5463 days ago | link

I wouldn't worry about using this forum as a means to learn programming. I did. The member's have treated me very well even when some of my newbie questions hadn't made much sense.

The only unfortunate part is that many of the more senior members have left, but the few still kickin around are very helpful - so just keep posting your questions.

http://arclanguage.org/leaders

-----

1 point by jsgrahamus 5452 days ago | link

Why have the senior members left?

-----

2 points by aw 5452 days ago | link

pg had been writing about plans for Arc for several years, and so there was a big wave of interest when Arc was first released, and the forum was more active then. We've settled down for the long haul now :-)

Though, without disparaging forum contributions, I wouldn't necessarily equate leadership with the "leaders" list of people with high karma values. Many of the people who have made some of the most significant documentation and code contributions aren't at the top of the "leaders" list.

-----

1 point by akkartik 5464 days ago | link

This would be a perfect question for Hacker News, also related to said website: http://news.ycombinator.com

http://searchyc.com/submissions/learn+programming+ask

No need to apologize. Come see us again if you ever try out arc. I'm at HN as well, and you can email me if you like.

-----

1 point by crownoflaurel 5462 days ago | link

I read that page. It's interesting, but I don't think I'll be spending 10,000 hours on programming. I'm a writer, have been from birth.

Thanks for the Hackernews site, I might go visit, but I feel safe here. No one's yelled at me.

So, can anyone give the very basics? In the reading analogy, that would be the twenty-six letters and how they sound.

-----

1 point by aw 5462 days ago | link

Is there a kind of program you'd like to be able to write?

By analogy, first you say you want to get into transportation, and someone says "OK, here's how to learn how to fly a plane, ride a bicycle, drive a car, pilot a submarine..." and you say, "oh, I'd really just like to learn to sail", and that narrows it down to something where it's easy to say, "oh, OK, here's where to go to learn to sail".

So if you think of a kind of program that would be useful to you, we can better suggest how to get started with the basics of doing that :-)

-----

1 point by crownoflaurel 5462 days ago | link

A program that counts words, periods, commas, sentences? That would be nice for my writing, or at least interesting. I've always wonder how many periods I've used....

Sorry, but that's really all I can think of. I'm not even certain I know what is and isn't a program.

-----

1 point by aw 5462 days ago | link

OK, you'll want to install Arc on your own computer, so that you'll be able to read your file which has your text in it.

What kind of computer do you have? Mac? Windows? Linux?

-----

1 point by crownoflaurel 5462 days ago | link

My school computer is a Mac, but I don't think it'll let me install anything on it.

My home computer is Windows.

-----

1 point by thaddeus 5462 days ago | link

I would suggest stepping through pgs tutorial:

http://ycombinator.com/arc/tut.txt

Then ask questions along the way.

-----

1 point by crownoflaurel 5462 days ago | link

I've only gotten about a quarter through this, but I like what I've heard. Is there a place where I can experiment, aside from the one already mentioned?

-----

1 point by thaddeus 5462 days ago | link

As suggested by aw you should start by installing arc.

Arc is a layer built upon scheme, thus to use arc you also need mzscheme.

I normally start by downloading arc from here -> http://ycombinator.com/arc/arc3.1.tar

Unpack the 'tar' file and put it somewhere you're happy with.

Then get the latest version of MzScheme here -> http://download.plt-scheme.org/mzscheme/.

I generally take the scheme folder and put it inside the arc folder. This is not required, but earlier I found it easier to manage as they become one movable install.

Arc is best suited to unix/linux or mac operating systems. Arc has some issues on Windows, but In the past I still managed to get it working on windows.

If you're using a unix/linux or mac os you need to find the Terminal application that is already there and launch it.

In the terminal window you need to navigate to the arc directory. You can do this by typing 'cd' (change directory) followed by the path to the arc folder...

In my case:

  Terminal $ cd /users/thaddeus/arc
If all goes well, as a test, you should be able to type 'ls' which will show you the files existing in the arc directory.

  Terminal $ ls
  
now to you can invoke arc by typing (note change the paths to respect your install directories):

  Terminal $ /users/thaddeus/arc/scheme/bin/mzscheme -f as.scm 
which should provide an Arc prompt:

  arc>
Then you're off to the races.

Windows is similar only you're using the 'cmd' utility rather than the terminal.

You can start 'cmd' (command prompt) by going to your operating systems 'Start' button then select 'Run' and type 'cmd' into the text entry box (& hit 'ok'). A dialog window should come up. Here you also need to navigate to the arc directory:

Mine starts like this:

  C:\Documents and Settings\thaddeus>_
So I change the path to the arc directory like so (note change the paths to respect your install directories):

  C:\Documents and Settings\thaddeus> cd C:\thaddeus\arc
which changes the prompt to:

  C:\thaddeus\arc>
I then invoke arc like so:

  C:\thaddeus\arc> C:\thaddeus\arc\MzScheme\MzScheme.exe -f as.scm 
And you should get an arc prompt

  arc>
I typed all this up on my lunch hour at work, so I didn't actually do the steps - just memory recall. So if you hit a snag ask, I may have typed something wrong.

There's a few other resources for you:

1. Easy means to search the arc forum: http://af.searchyc.com/

2. Good documentation: http://arcfn.com/doc/index.html

-----

1 point by thaddeus 5458 days ago | link

If you're not tied to arc, a good online learning tool can be found for the Ruby language...

http://tryruby.sophrinix.com/

It's brilliant for day one programmers - Arc should really have something this nice.

-----

0 points by diiq 5462 days ago | link

That's why I pointed you down to the appendix. A journey of a thousand miles begins with a single step --- but so does a journey down the street to the chemists.

Face that you need to dive in. Have you picked up a book yet? No more questions until you take the first step. Read the introduction and chapter one. Follow the instructions on how to install the language. Do the exercises. A carefully written and revised book will be a far better first step than an argumentative grab-bag of Arc hackers.

Then start asking questions --- because you'll have interesting ones.

-----

1 point by crownoflaurel 5460 days ago | link

Okay. I'll come back when I've found a book. It might take a little while....but I'm sure it will happen.

Thanks for all your help. I'm sure you'll regret it when I visit again, with an entire list of questions.

-----