Skip to content

Essential MATLAB and Octave – 2nd Ed. Returning to my First Book

There are books that you write, and then there are books that change the trajectory of your career. For me, Essential MATLAB and Octave was very much the latter.

When it was first published in 2014, I had no idea where the journey would lead. At the time I was teaching scientific computing, numerical methods and data analysis to students who often found themselves caught between two worlds. On the one hand was MATLAB, the de facto standard in many universities and engineering organisations. On the other was GNU Octave, the open-source alternative that allowed students to continue working long after they had left the computer lab. Existing books tended to focus on one or the other (not so much the other, i.e., Octave), but rarely both, and I felt there was room for something different: a practical introduction to scientific computing that treated MATLAB and Octave as two implementations of the same underlying ideas rather than competing camps.

What I did not appreciate at the time was how much I would learn by writing a book.

The first-time author imagines that the difficult part is the technical content. It turns out that the technical content is often the easy part. The real challenge lies in deciding what to leave out, finding a structure that carries the reader forward naturally, and maintaining consistency across hundreds of pages written over many months. Writing a book is less like giving a lecture and more like designing a long journey. Every chapter must arrive somewhere meaningful while also preparing the reader for what comes next.

Looking back now, I can see all the fingerprints of a first book. Some of them are things I am still proud of. Others are things I would approach very differently today.

Since Essential MATLAB and Octave appeared, I have written three other books, each one teaching me something new about the craft. Two of those books have already gone through second editions, which turned out to be an education in itself. Revising a technical book is not simply a matter of updating screenshots, correcting a few examples and adding a chapter about whatever happens to be fashionable. A second edition forces an author to confront an uncomfortable question: what was the book really about in the first place?

The answer is rarely “the technology”.

Technologies change too quickly. If a book’s value depends entirely on a particular version of a programming language or software package, it begins ageing the moment it is printed. What survives is the underlying way of thinking. That lesson became increasingly clear to me while revising later books, and it is one of the reasons I am very please to have the opportunity to revisit Essential MATLAB and Octave now.

Twelve years is a remarkably long time in computing. When the first edition was published, MATLAB was a different from the platform we use today. It may look the same, and a lot of the foundations remain. However, features that are now part of everyday development either did not exist or were in their infancy. Live Scripts were not yet part of the landscape. Modern data structures had not arrived. Interoperability with Python was far less mature. The machine learning and AI capabilities that many users now take for granted were still evolving.

The world around the software has changed just as dramatically. In 2014, data science was still establishing itself as a profession. Today, it is difficult to find a technical discipline that has not been influenced by machine learning, automation and AI. Students approaching MATLAB or Octave today are doing so in a very different environment from the one that existed when the first edition was written.

Yet as I say, the interesting thing is how much has remained the same. Vectors, matrices and linear algebra are still at the heart of everything. Numerical methods still underpin scientific simulation and engineering analysis. The mathematical foundations that power modern machine learning are, in many cases, the same foundations that have always powered scientific computing. In fact, one of the pleasures of thinking about this revision is recognising how many supposedly modern ideas are simply old ideas wearing new clothes.

That realisation has influenced the shape of the second edition. Rather than treating machine learning as a separate subject that suddenly appears halfway through the book, I want readers to see it as part of a continuous story. The same concepts that allow us to solve systems of equations, process signals or model physical systems can also be used to understand neural networks and modern AI techniques. By the time readers encounter these topics, they will already possess most of the intellectual tools required to understand what is happening beneath the surface.

In many ways, this mirrors my own professional journey. When I wrote the first edition, I was primarily focused on scientific computing and numerical analysis. Since then I have spent years working in data science, machine learning and AI, moving from research and consultancy into leadership roles focused on innovation and technology strategy. Revisiting the book offers an opportunity to connect those worlds in a way that simply would not have been possible in 2014.

At the same time, I am determined not to lose what made the original book useful. The goal is not to transform it into another AI book. There are already plenty of those, including mine! Instead, the aim is to preserve its emphasis on understanding, experimentation and computational thinking while extending the journey to reflect the tools and challenges that modern scientists, engineers and data practitioners encounter every day.

There is also something unexpectedly satisfying about returning to a project after so many years. The first edition was written by someone who was enthusiastic, ambitious and perhaps a little naïve about what publishing a technical book involved. The second edition is being written by someone who has accumulated a few more scars, a few more books and a much deeper appreciation for the relationship between technology and education.

The younger version of me was primarily concerned with explaining MATLAB and Octave.

The older version is much more interested in teaching people how to think computationally.

That distinction may seem subtle, but after twelve years, four books and several editions, it feels like the most important lesson of all.

As work on the new edition continues, I find myself revisiting old examples, rediscovering old decisions and occasionally smiling at assumptions that seemed perfectly reasonable in 2014. Some chapters will change substantially. Others will remain surprisingly familiar. Either way, the process has reminded me why I wrote the book in the first place.

And there is something rather fitting about that. After all, every author’s first book leaves a mark. Twelve years later, it seems only fair to return the favour.