GNU Octave Beginner's Guide by Jesper Schmidt Hansen is a good, readable introduction to Octave. It will shorten your learning curve, and get you up and running quickly.
Octave is an open source alternative to MATLAB. So, why use Octave instead of MATLAB?
MATLAB is an extremely powerful, yet easy to use software package for scientific, engineering, and mathematical computations. MATLAB is also very expensive. An individual commercial license costs $2100. To use MATLAB, as an individual, you must purchase a commercial license, unless you are a student enrolled in an academic institution, or you work for an academic institution, even if your use is personal and not commercial. Not sure about you, but $2100 puts MATLAB a bit outside my price range.
If you already have access to MATLAB, great! Use it.
If not, Octave is a good alternative as it provides much of the functionality of MATLAB, with none of the cost.
Like Python, Octave is a high level, interpreted programming language. Unlike Python, it is focused on numerical computation. With its interactive shell, you can use Octave like an advanced calculator, to get immediate results, and to test code fragments. But you can also develop advanced programs using Octave.
So, what does Hansen's "GNU Octave Beginner's Guide" have to offer? Quite a lot if you are just starting out using Octave.
Chapter 1 walks you through installing Octave for Windows and Linux, setting and storing defaults, adding packages, etc. Everyone should read the instructions for both operating systems, as some useful information appears only one place.
Chapter 2 teaches you to use scalars, vectors, matrices, strings, arrays and solve linear equations.
Chapter 3 tells you how to use Octave's built-in functions, and how to make 2-d and 3-d plots.
Chapter 4 covers programing essentials, including using if, switch, for, do, and while statements; controlling exceptions; input and output; and saving and restoring scripts.
Chapter 5 teaches you to write and use your own functions, and introduces you to debugging and vectorization.
Chapter 6 introduces you to sparse matrices, and walks you through all the steps needed to build an Octave package that solves 1-d and 2-d Poisson partial differential equations.
Chapter 7 deals with data files and data analysis, descriptive statistics, fitting functions to data, and use of Fast Fourier Transforms in data analysis and smoothing.
Chapter 8, the final chapter, tells you how to make Octave programs run faster and how to call routines written in C++.
All considered, this book covers a lot of territory, and does it very well. The only negative is that some typos are scattered throughout the book. But they are minor, and I didn't find any that would cause problems.