I've just completed a book, Hackers & Painters: Big Ideas from the Computer Age by Paul Graham.
I thought it was very articulate, it feels like he is giving a talk, so it was easy to follow and understand. It's a relatively non-computer-science friendly, though some parts of the book were rather technical. The chapters didn't necessarily follow one another, so each chapter felt like reading a separate essay. As a result, the book overall didn't flow well. Individual chapters reads great, each with its introductions, arguments, and takeaways.
Several things in the book that caught my attention:
(0) Web based application is that the new direction to go with startup applications is to do them on the web, so the users do not need to install it on their own platform. There are several advantages to this.
(1) Rapid changes are possible, because whenever you need to update, it happens immediately. In contrast with user downloaded applications, they would need to wait for a patch.
(2) Freedom to use other languages, especially Lisp. With using native application development, most programs are written in whatever the OS happens to be developed on. Typically this is C. Running on your own server means you don't have to worry about users' different platforms, thus independent.
(3) Using a great language, particularly Lisp, means the developers can save on development time. In this age, it is the programmers' time that is more valuable than the cost of machine time. Processing cost is ever cheaper - programmer cost isn't.
(4) Lisp is very advantageous over other languages. It was designed to be a simpler model of the Turing machines, and never intended to be a real programming language. The creator, John McCarthy, had a grad student, Steven Russel, who implemented a interpreter for this theoretical language, and thus Lisp was born in 1958. It is an idealistic language, rather than a practical one like Fortran and C. Meaning the design focused on its mathematical constructs rather than machine efficiency, which typically is simplified assembly language. I've been using Scheme and this is a dialect of Lisp (other one being Common Lisp), I intend on trying Common Lisp (which is likely what Paul Graham used).
(5) Better language is a better tool, saves you many more lines of code. This means faster development.