New to programming: Advice

Discussion of Common Lisp
Post Reply
gao
Posts: 2
Joined: Tue May 26, 2009 9:54 pm

New to programming: Advice

Post by gao » Wed May 27, 2009 2:13 pm

Hello all,
I'm seeking some advice on how I should proceed in my attempt at learning programming. I am working through "The Little Schemer" using CL and was wondering if "Practical Common Lisp" would be a good fit for the next step? I have never taken any computer courses of any kind and haven't set foot in a classroom in 30 years. Is there a better introductory text to CL? I'm about a third of the way through "TLS" and seem to have a pretty good handle on the concepts so far. Thanks.

Gregg

findinglisp
Posts: 447
Joined: Sat Jun 28, 2008 7:49 am
Location: Austin, TX
Contact:

Re: New to programming: Advice

Post by findinglisp » Thu May 28, 2009 8:40 am

TLS is a great introduction to programming, recursion, and Lisp in general (via Scheme). PCL will be a much more practical text. It assumes that you already know how to program in another language and simply introduces you to Common Lisp through a series of quite expansive projects. You can also look at the online copy of PCL and either read it there or make a decision as to whether it's right for you before you buy the dead-tree version:
http://gigamonkeys.com/book/

Good luck and welcome to LispForum. 8-)
Cheers, Dave
Slowly but surely the world is finding Lisp. http://www.findinglisp.com/blog/

hrapof
Posts: 5
Joined: Fri Oct 10, 2008 8:10 am
Location: Moscow, Russia
Contact:

Re: New to programming: Advice

Post by hrapof » Thu May 28, 2009 10:07 pm

The Structure and Implementation of Computer Programs is also very nice as an introduction to programming (via Scheme). First chapters of Paradigms of Artificial Intelligence Programming can be used as a Common Lisp textbook with exercises.
And of cource, as I started to learn Common Lisp through ANSI Common Lisp by Paul Graham, I wholeheartedly recommend it!

slobodan.blazeski
Posts: 9
Joined: Tue May 26, 2009 8:27 am

Re: New to programming: Advice

Post by slobodan.blazeski » Fri May 29, 2009 12:34 am

It might be better to decide which language do you want to learn first common lisp or scheme, going through both of them in a same time would only confuse you.
If you decide to fallow the common lisp way Practical common lisp is a great book though for a complete beginner to programming Gentle introduction might be a better choice.
Here's a link with few other books and advices: http://tourdelisp.blogspot.com/2009/02/ ... -lisp.html

Bobi
http://www.linkedin.com/pub/slobodan-blazeski/6/b9b/151
http://slobodanblazeski.blogspot.com/

duncan
Posts: 31
Joined: Wed May 27, 2009 9:07 pm

Re: New to programming: Advice

Post by duncan » Sat May 30, 2009 2:57 am

hrapof wrote:The Structure and Implementation of Computer Programs is also very nice as an introduction to programming (via Scheme). First chapters of Paradigms of Artificial Intelligence Programming can be used as a Common Lisp textbook with exercises.
And of cource, as I started to learn Common Lisp through ANSI Common Lisp by Paul Graham, I wholeheartedly recommend it!
SICP is a great book, but it assumes a lot. I first read it when I was a junior in one of the better CS programs in the US, and.. I remember thinking that MIT's Freshmen must be awfully bright to be able to follow it in their first semester. Then I met a few of MIT's best and brightest, and realized that very few of them had.

SICP is a great book, but it's the kind of book you keep coming back to. It's also the kind of book that intimidates people who are trying to learn to program. I'd recommend it, but with the proviso that it's OK if you find it gibberish after a certain point. If I had started to learn to program by reading SICP I would have given up on the whole enterprise, and assumed that I was just not bright enough to be a programmer.

I started learning to program back in the dark ages, when you couldn't look things up on the web. I was alternately selling things and working in kitchens at the time. My next door neighbor's father gave her a really antiquated machine with Borland's DOS C compiler installed, and gave her the Borland manuals as well. She had no idea how to even invoke the compiler, but I wound up over there a few nights later, with some friends, all of us hilariously drunk. It took me an hour or two with those terrible manuals, but i eventually managed to write a program that asked for the name of the user and replied "Dharma, you stupid slut" if the user put in the name "Dharma"- I hard-coded similar endearments for our entire circle of ruffians, and everyone got a good laugh from it- most of us had never seen a PC before (though I had- I had taught myself MS BASICA a few years earlier, but the entire write/compile/execute cycle was foreign to me at that time.)

So Dharma ignored the horribly misogynist output of my first program and asked me to come over and help her decipher the C tutorial her Dad had printed for her from some bulletin board (again, this was pre-web). She held up pretty well until we got to the section on recursion, and then she decided that she wasn't cut out for programming (she went on to study EE, against the wishes of her social worker, and last I heard she was checking the work of board designers.) But by that time I was hooked. I wrote a program that played tic-tac-toe, and used the Borland graphics library to display the board nicely under DOS. Dharma told her Dad that she had given up, but that I was writing programs like that, and he told her that I might actually be able to get paid to write programs- I thought that was nonsense at the time. The idea that someone would pay me to program a computer... well, it was a different time.

A few years later I wound up a student in a good CS program. It turned out that having written some programs the "wrong" way was very useful. It made it so much easier to see why the "right" way was better.

So my advice is to pretend that you are living back in the dark ages and actually write some programs. Back then we had nothing else to keep us occupied ;). We didn't bitch about the libraries available, because we didn't know that there could be better ones. We didn't imagine serious programs that could make us rich, because we'd never really heard of people making money from computer programs. And when we did get exposed to people doing things more sophisticated than what we were doing we soaked it up, because we had been pondering the problems they were solving for so long.

PCL is a fine book. SICP is another fine book. But you're not really asking for advice about books. You're asking how to learn to program. Let me ask you: how many dumb little programs have you written? You have to write a lot of those dumb little programs before the books are even all that useful, and the sheer amount of information available these days can be a defect, if you wind up reading more than coding. Write a lot of dumb little programs. Then you'll have a basis for understanding what the good books are getting at. That's my advice, at least.

gao
Posts: 2
Joined: Tue May 26, 2009 9:54 pm

Re: New to programming: Advice

Post by gao » Mon Jun 01, 2009 10:47 pm

Many thanks to all those who replied to my post. I'm currently alternating between "The Little Schemer" using CL and "Common Lisp: A Gentle Introduction. I was laid off from my job recently, so have plenty of time to study. I've written several of those "dumb little programs" that don't do much, and have a good grasp of the concepts so far. Never having attempted anything like this before, I don't have a good yardstick for measuring my progress, but my plan is to solve all the problems in the books and then move on to more advanced texts. At this point, I'm looking at "Practical Common Lisp" and then "Paradigms of Artificial Intelligence Programming". Thanks again for all the pointers.

Gregg

findinglisp
Posts: 447
Joined: Sat Jun 28, 2008 7:49 am
Location: Austin, TX
Contact:

Re: New to programming: Advice

Post by findinglisp » Tue Jun 02, 2009 9:13 am

gao wrote:Many thanks to all those who replied to my post. I'm currently alternating between "The Little Schemer" using CL and "Common Lisp: A Gentle Introduction. I was laid off from my job recently, so have plenty of time to study. I've written several of those "dumb little programs" that don't do much, and have a good grasp of the concepts so far. Never having attempted anything like this before, I don't have a good yardstick for measuring my progress, but my plan is to solve all the problems in the books and then move on to more advanced texts. At this point, I'm looking at "Practical Common Lisp" and then "Paradigms of Artificial Intelligence Programming". Thanks again for all the pointers.

Gregg
That sounds like a good plan.
Cheers, Dave
Slowly but surely the world is finding Lisp. http://www.findinglisp.com/blog/

Post Reply