I’m proud to report that the Chicago Lisp group is experiencing monthly membership growth of over 50%! If my math is correct, by this time next year we should have close to 2500 members. That should complicate venue planning :).
In the spirit of my last post, I decided to turn one of my favorite long comments on Hacker News into a blog post in the hopes that someone would find it useful. There was a good discussion last week about how to learn Lisp, and since I was a little late to the thread, most of the things I wanted to say had already been said. So, in an effort to pull it all together, I made a nice long summary comment, which is reproduced and cleaned up below.
Before I started learning Lisp, I have (in reverse chronological order) worked with .Net for several years, disliked C++ in college, loved Pascal in high school, dabbled in (Assembly?) programming my TI-82 graphing calculator, and started with Hypercard. Here’s my advice based on ~1 year of part-time Lisp education.
- To learn “lispiness”, functional programming, and get a feel for the computational approach to programming, read The Little Schemer and The Seasoned Schemer. Also, use the resources for the MIT Intro course Structure and Interpretation of Computer Programs. Watch the video lectures (30 well spent hours) and if you’re ambitions, read the book (Amazon). Doing these things will help keep you from writing PHP in Lisp.
- To put it into practical perspective and learn the nuts and bolts of modern common Lisp, read Practical Common Lisp (Amazon).
- If you read PCL, you will run into Emacs and SLIME (the generally preferred [NO FLAMES, PLEASE. I KNOW VI IS AWESOME TOO] open source way to edit Lisp files). I wrote some resources to help with that:
- I’m surprised no one has mentioned PAIP (Peter Norvig’s Paradigms of Artificial Intelligence Programming). Probably because there’s no free version online and it’s a pricey book. I got it for myself for Christmas and it’s well worth the price. It’s half AI book, half tutorial on Lisp programming and Lisp style. It’s a good read with lots of example programs written in good Lisp Style.
There are three hurdles people usually run into when learning Lisp:
- The language looks different – this goes away with practice and familiarity. It starts looking normal fast. The parentheses are a bit tough to manage unless you use a capable editor, which leads to:
- Emacs is different – really powerful, fun to use, but it takes investment in learning. It’s really tempting to quit when starting, but worth getting over the hump. Once you do that:
- The way of thinking is different in Lisp – Lisp seems a little awkward to use until you get (don’t need to master them, just get the idea) the following ideas: 1) code can be manipulated as data because the syntax is so simple, 2) creating your own syntax (using macros – code that writes code) means that you can express your program in a way that closely matches the problem you’re trying to solve. Some good articles to help get these points are:
Don’t worry if you don’t get these “big picture” things at first, they click at some point and everything makes a lot more sense. You can speed that up by putting a lot more Lisp in your head in the meantime.
Does anyone have any more tips on learning Lisp?
The state of Illinois has a publicly funded boarding high school for exceptional students called the Illinois Math and Science Academy. I’m the kind of person that would have benefited greatly from a special advanced curriculum and the resources this school has – I was in the International Baccalaureate program and I still found it pretty easy. So I’ve kept one eyeball on IMSA, curious to find out more about it. So far, the most compelling fact I’ve found was in a comparison of Chicagoland high schools. The best high schools act (including the admissions-based magnet high schools in Chicago) had median ACT scores of 26 or 27. IMSA had a median ACT score of 32! For reference, a 36 is a perfect score and a 32 puts you in the 98th percentile.
I got my opportunity to find out more and meet some of the kids at a the first meeting of the OLPC Chicago Interest Group, hosted at Google’s Chicago office. Most of the meeting was IMSA students presenting projects that they were working on. Here are some of the projects they mentioned:
- An EKG probe, including building a general purpose signal amplifier that could be used for other probes. This included learning electrical engineering, breadboarding, and how to solder (hand burns and all!). These students expressed interest in getting their design manufactured in a more robust and inexpensive package that could be added on to OLPC orders. This would turn the XO into a tool for health management in addition to education.
- An acoustic tape measure program that measures sound pulses to determine the distance between two laptops. This program is already included on the Give One, Get One laptops.
- A clock program that will show multiple interpretations of the time, starting with digital, analog, and the position of the sun or moon in the sky. These two students are learning PyGtk for the graphics and doing this in their spare time, in addition to writing a general CAPTCHA solver for a semester project.
- A Rosetta Stone-like language acquisition program. This is in the planning stage but the intention is for it to be as much as possible in the target language so that once the software is developed, it can be easily ported to other languages. I’ve offered to help in the design and coding of this software.
- In addition to the hardware and software projects, other students were helping plan teaching and demonstration events at area schools and organizing a bulk purchase of laptops in the Chicago area.
Did I mention that these are high school kids?!? My summary doesn’t begin to convey the confidence, enthusiasm, and intelligence that these kids radiated. Just a little background on IMSA and the OLPC project: IMSA was the first (and looks like still only) high school chapter of the University program to create communities of interest around the OLPC. The other schools (9 total) include some lofty company, like Olin College, Northwestern, and Duke. The students are in touch with some of the main contributors to the project, and their project have attracted attention and support from industry experts working who are also contributing to the OLPC ecosystem.
The students I met tonight were exceptional in many ways. They’re worth keeping an eye on, and fortunately, they’re documenting their progress on their chapter wiki. For anyone who expects great things to come out of the students at the Illinois Math and Science Academy, you don’t need to wait long.
P.S. Google puts on a nice spread! If you ever have the chance to eat their food, take it!
This has been in my writing queue for over a month. As part of my resolution to write more, I thought the easiest place to start would be to flesh out the ideas that I’ve already scribbled down.
It doesn’t take an economics professor or a petroleum geologist to know that energy is a big issue in all aspects of society: technology, politics, military, economics, and social issues. And anyone who follows America’s energy policy know that it’s oriented towards resource extraction, increasing energy supply, and tax breaks for producers. Lots of people criticize this approach, but one man has risen above the debate.
Amory Lovins is a founder of the Rocky Mountain Institute, which does more stuff than I can even begin to summarize. The premise is that rather than viewing energy conservation as a social good or something to be done out of guilt, investment in energy efficiency can be done profitably and indeed must be done to remain competitive. Mr. Lovins charges a $40,000 speaking fee (he’s obviously not going to be at my birthday party) but thanks to the internet, you can listen to a complete 9 part lecture series he gave at Stanford. He covers energy efficiency in buildings, transportation, and industry, and the implications that this massive efficiency increase would have. Most of his claims sounds too ridiculous to even be possible, but for almost all of them he points to a real client or implementation where actual results were obtained, not just theoretical projections. It was so amazing that half the time I was either laughing out loud or my jaw was dropped in awe.
So without further ado, if you’re at all interested in the economics of energy, go to the Conversations Network and listen to all the talks in the MAP Energy Efficiency Series. It’s an amazing 10 hour investment that will change your perspective completely forever.
(note: inspired by this post at SecretGeek)
Anyone who spends 5 minutes reading technology news sites knows that there is FAR too much for any one person to learn (there’s almost too much for one person to be aware of). Between big companies, startups, open source, and research, there are thousands of new products, libraries, languages, technologies, etc every year. Thinking you’ll learn all of them (or even a significant fraction of them) is just madness. So here’s the process I’ve used to evaluate things.
No sooner do I post my review of some of the shortcomings of MIT’s OpenCourseWare program, and today I see an article that Yale is providing full video courses online! No, I’m not nearly as powerful as I sound. They are starting out with 7 of their most popular classes and expanding to 30 over the next couple years. From the article:
“Diana E. E. Kleiner, Dunham Professor of the History of Art and Classics and the director of the project, noted that the full content of all the courses is now readily available online and may be accessed at the users\’ convenience. ‘We wanted everyone to be able to see and hear each lecture as if they were sitting in the classroom … We hope this ongoing project will benefit countless people around the world.'”
The 7 courses they will start with are:
- Astronomy 160: Frontiers and Controversies in Astrophysics, with Professor Charles Bailyn
- English 310: Modern Poetry, with Professor Langdon Hammer
- Philosophy 176: Death, with Professor Shelly Kagan
- Physics 200: Fundamentals of Physics, with Professor Ramamurti Shankar
- Political Science 114: Introduction to Political Philosophy, with Professor Steven Smith
- Psychology 110: Introduction to Psychology, with Professor Paul Bloom
- Religious Studies 145: Introduction to the Old Testament (Hebrew Bible), with Professor Christine Hayes
You can debate whether these schools are doing this ot of educational philanthropy or to increase brand awareness among the international and the socially conscious, but either way, it’s a great resource for everyone!
I was giddy with excitement when I first read about MIT’s OpenCourseWare initiative. All of MIT’s classes online, world class knowledge free for the taking, a “Good Will Hunting” starter kit? This was right about the time that I embarked on my current quest of saw-sharpening, professional development, and re-geekification, so I thought it would consume my life for the entire foreseeable future. Well, it’s about a year later and I’ve taken my first good look at one of the courses and I’ve got a couple warnings for anyone interested in doing an OCW course themself: