The single most important skill for a software engineer

“How to Think Like a Computer Scientist: Learning with Python”:

The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natu- ral science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions. The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills.

The Web is not an OS

Tim Bray: Not an OS:

…I: It’s About People Not Technology
…II: It’s About Information Not Technology
…III: It’s About Business Not Technology
…IV: Nobody Uses the OS Anyhow
…V: It’s Platforms That Matter
…VI: And Anyhow, It’s Not Like an OS

And previously Jeremy Zawodny: There is no Web Operating System (or WebOS):

…Computers need operating systems but networks don’t (not at the OSI layers I’m interested in, at least). A Web Operating System is a myth propagated by people who either don’t understand the Web, don’t understand operating systems, or both.

…The web is a marketplace of services, just like the “real world” is. Everyone is free to choose from all the available services when building or doing whatever it is they do. The web just happens to be a far more efficient marketplace than the real world for many things. And it happens to run on computers that each need an operating system.

…The web is open and decentralized. Everything is one click away. Remember that.

Mashups are not toys. They’re a good illustration of this point… a hint of the future.

Read both.

Aquamacs – I am home

If you like Emacs, and are looking for version that plays well in OS-X land, it looks like Aquamacs is what you want.

As an aside, following the instructions here, to download and install MIT Scheme, will get you ready to self study Structure and Interpretation of Computer Programs. Eli Bendersky blogged his effort to read the book.

If you’re concerned about learning Lisp to use Emacs, you don’t have to. But if you care to dip in, defmacro’s The Nature of Lisp is a good read.

If you’re looking for Python support, check out this write up (M-x run-python just worked out of the box – nice Aquamacs!).

There are many versions of Emacs available for OS-X beyond Aquamacs and the one that Apple bundles. You can find them on the EmacsWiki. The CarbonEmacsPackage is a popular choice, so is Emacs App. I’ll probably end up experimenting a bit with them both.

There is a great set of Emacs tutorials at IBM’s developerWorks.

Emacs’s Org-mode might be the answer to my note taking needs.