I haven’t had much to write about for the past month, which is why this page has been relatively inactive.
Well, all that has changed this weekend!
To start, I have been reading a lot more than I used to. It started with the latest Harry Potter book. I wanted to read it, and read it pretty quick before I started to hear people talking about it (especially my aunt and cousins who like to spoil things for others).
Once I finished it I wanted to read more. And Amazon had just sent me a coupon for $5 off anything, so I picked up Hackers and Painters by Paul Graham. I read a bunch of his essays on his website, mostly about starting a startup so I figured I should pick up his book and see what else he’s got to say. It was really good, and pretty much re-enforced ideas that I had about programming and how to go about doing things which pretty much countered everything I had ever learned in school. So it was good to see that I’m not the only one who thinks that way. Essentially, what I’m getting at without going into too much detail is that programming should be a fluid/organic process. You don’t just sit down and write code according to some spec. You essentially sketch out what you want to do, and write and test and re-write… just like a painter would do when working with oil paint. If something doesn’t work, just go over it again.
One of the things he continuously talks about is how amazing LISP is. So after finishing ‘Hackers and Painters’ I decided that I should give LISP a shot and see what its all about. I’ve gone through two chapters of Paul Graham’s book on Common Lisp that he has on his website for free, and so far it wasn’t too hard to pick up once I started doing some of the practice problems, but it is a pretty huge paradigm shift from what I’m used to.
For one thing there are brackets EVERYWHERE! It is like looking at some complicated math expression.
This is a recursive function I wrote to count the occurrences of a symbol in a list of symbols:
(defun occursInList (a lst)
(if (> (length lst) 0)
(if (eql a (car lst))
(+ 1 (occursInList a (cdr lst)))
(occursInList a (cdr lst)))
The other thing about LISP is the syntax for anything you are trying to do is exactly the same. Everything is essentially a list. (+ 1 1) is how you do 1 + 1. if you want to add more numbers together then you just make the list of arguments longer (+ 1 2 3 4 5) is 1+2+3+4+5 .
So now ontop of learning LISP I’ve got another book, Next by Michael Crichton, that I am reading. I’ve only gone into one chapter, but it sounds like it is about BioTech which is something I am relatively interested in and actually I almost studied when I was looking for programs to study in university.
And you’d think that that would be enough for me. I mean, I’m not wasting my time on anything unproductive anymore… I am learning LISP, reading more, what else could I possibly want? Well, a PS3. I went out to Best Buy yesterday after letting my cousin Daniel talk me into it for about an hour. It came with 300 on Bluray (which was out of stock so I got a raincheck) and Motorstorm, and I picked up F1 Championship Edition. One thing I forgot to get was the HD cables so I can use my 24 inch widescreen I bought for my PC as a monitor… since it can handle 1080p I thought I could hold off on getting an HDTV for the time being. I am just patching the audio through my PC right now to use the 5.1 pc speakers I’ve got.