A Software Engineer’s Adventures In Learning Mathematics
1. Reference
https://medium.com/@warrenhenning/a-software-engineers-adventures-in-learning-mathematics-62140c59e5c
2. Detail
A Software Engineer’s Adventures In Learning Mathematics
What we hope ever to do with ease, we must first learn to do with diligence. — Samuel Johnson
Get your fundamentals on lock so that you can start getting into the ill advanced shit. This is universally applicable. — Earl Sweatshirt
Recently I’ve been working my way through several lower-division undergraduate math textbooks. Why? Why spend your spare time learning math, which is challenging and sometimes dry?
Because math is too beautiful, too powerful, and too important to be reduced to mere mechanical calculation the way most of us experience it in school. That is not what math is really about. What matters in math, and what gives it its beauty, is reasoning and connections between ideas.
To me, math is raw, untapped power. Statistics is helpful in computer programming, period. My dream is to learn the statistics, probability, and linear algebra needed to really understand machine learning and computer vision, which has had a major spurt of activity in the past 5–7 years. To realize this goal, I need a solid foundation so that I can truly understand what’s going on: why something works, when it won’t work, and what to do differently if it doesn’t.
Why not quit my job and go back to school? Well, that’s not really for me. Reading books at my own pace lets me try a subject out without fully committing to it and making it a necessity that I find work based off of it. It confers the full lightness of being a beginner, exploring in a free, untutored fashion. A degree program may be a good choice for some people. If that’s you, fantastic. This article is for people who can’t or won’t commit to a conventional academic program.
Cultivating Disciplined Habits While Walking A Lonely Road
There’s something going on when attempting any challenging course of study. We’re striving to build within ourselves the discipline to achieve a worthwhile, ambitious long-term goal in small, manageable increments. We are training ourselves to become disciplined, effective learners. We are sculpting our minds and emotions to become used to working hard in our spare time.
This is challenging in an unusual way: for the most part, we are alone. This distinguishes teaching oneself advanced math from endeavors such as special operations military training, where, as hard as it is, you have fellow students enduring the same hardships right beside you. If you quit Navy SEAL BUD/S training, for instance, you know your actions will directly impact people around you and yourself; you will have to tell your friends, family, and commanding officer that you did not succeed. By contrast, if you decide to study math in your spare time and then quit part way through, no one will notice or care. There will be no stains on your reputation or your record. I don’t mean to say that learning math is as hard as, or at all comparable to becoming a Navy SEAL! I’m saying it has a particular solitary quality that is a challenge in of itself. Depending on what you’re studying and how you go about it, you may not have so much as a study buddy to compare notes with. The same qualities that make individual study appealing, then, also make it difficult.
Making time to study with work and family life can be very challenging. We live in a noisy, busy world, and math demands the deepest concentration, preferably in large, uninterrupted blocks of time. Just finding a quiet place free of distractions can seem impossible.
But, take heart. All you need to do is not quit altogether, and eventually you will get it. If you get frustrated and stalled, forgive yourself. If you get lazy and find yourself cutting corners the way I often do, don’t worry. Just stop yourself, go back, and do it right. Take breaks when you get frustrated or when other things take higher priority in life. Steady, regular progress adds up to big long-term gains. The more disciplined you are, the faster you will go and the better you will get. The better you get, the more efficient you will be. This is how you build habits that change your life.
Facing Your Demons
I’ve had to contend with many self-defeating mental blocks I wasn’t initially even aware were impacting me. I’ve thought at various times that I didn’t even have the right to try teaching myself because math is somehow the exclusive domain of established experts. If you aren’t already a master by now, don’t even bother, part of me thought. That “don’t even bother” sentiment paralyzed me for years.
There’s a particular brand of life advice I’ve heard quite a bit of which goes something like this: it’s generally impossible to reinvent yourself; your goal in life is to find what you were “meant” to do. The problem is that I’ve never been preternaturally gifted at anything. All I have is skills that I’ve spent time honing, such as computer programming. I ask: why can’t engineering mathematics and statistics be another, complementary part of that skillset?
I hope you give yourself permission to pursue your own interests, even if you don’t have the traditional background of experts in your field of interest.
Average People Have Things To Add, Not Just Alpha Geeks
If you’re like me, the academic-industrial complex of research labs and paywalled research journals is a bit intimidating. There seems to be no room in such a place for mere mortals. And yet there are so many problems to solve in our world, and MIT-educated geniuses so few in number, that they will undoubtedly overlook things us average folk can be in a better position to actually do something about than they. Researchers often don’t focus on delivering complete solutions to problems their work may be useful in addressing; by necessity, they focus on the fundamental issues, and once those are figured out, they often move on to the next research problem. Valuable insights that could be useful to many languish in obscurity behind horrid paywalls. Let’s not make the established, traditional experts out to be more than they are, either; a lot of them are really only capable in their specific niche and lack a lot of valuable complementary skills you already possess.
It seems a great tragedy that many of our best and brightest in industry wind up working on better ways to sell ads online or allocate capital in financial markets. The amazing things they could do with their highly advanced skills go unrealized. Because of this, I think the wider group of intellectually curious amateurs have an opportunity to truly capitalize on the advances made in the sciences.
Advocation Of Autodidacticism In Math, Science And Engineering
To be honest, I feel nervous even publishing this. I left it sitting as a draft on Google Drive for well over a month after spending hours writing and editing it. What will the turbogeniuses who already know everything I aspire to learn and are also probably better software engineers to boot say? Many of them are several years younger than I am, already more accomplished in every way. I just have to learn to live with that.
The prize I have my eye on far overshadows any anxieties or reservations I have. A world of eternal truths and cold, subtle beauty awaits. We will fill whole notebooks with thoughts, scribbles, dead ends and epiphanies. We will construct a body of knowledge which we can truly claim for ourselves and which we can never be stripped of. Let us grant ourselves permission to be beginners, to be uncertain, to have more questions than answers, to be ignorant but motivated to learn. Let us dare to begin.
Appendix: Book Recommendations
The rest of this article is an annotated list of books I’ve found useful which you may enjoy, as well.
Linear algebra is a critical tool in machine learning, so I started there. My first thought was to use the same book as MIT’s popular 18.06 course, for which there are lecture notes, lecture videos that directly follow Gilbert Strang’s course textbook, and many other valuable resources.
Strang’s book didn’t really work for me, so I went looking for another. I liked Applied Linear Algebra and Matrix Analysis, by Thomas Shores, but found the overly computational nature of the exercises a bit tedious, so currently I’m trying a very famous title, Linear Algebra Done Right by Sheldon Axler.
A curious thing happened when I started working through Shores. The first chapter included a review of complex arithmetic, and upon reading through it I realized I had to do more review before I could even start this book.
At the time, I was devastated to realize I had to review high school math in order to reach my goal, which suddenly seemed much further away than before. There was one night where I was in tears and I seriously considered just quitting outright.
But I knew that stepping back to review the simpler stuff was the only way to go. I had to humble myself and look for suitable materials for reviewing high school algebra, trigonometry, and geometry.
Instead of using the same kind of lousy books I used in high school, I chose alternatives by respected mathematicians and educators.
I found nice books on elementary algebra, geometry, and trigonometry.
I also brushed up on single-variable calculus using a book by Serge Lang. Again I found it much more enjoyable than the books I used in school.
I found it useful to focus on my math study skills specifically. I realized that much of my effort at learning math in the past was wasted because I was not studying in a productive manner.
I liked A Mind For Numbers: How to Excel at Math and Science (Even If You Flunked Algebra) by Barbara Oakley a lot. It tells the author’s own story of becoming an engineering professor through a non-traditional route. It also goes into great detail on effective study techniques.
For those who haven’t taken upper-division math courses but want to read more advanced math books, a book focusing on proofs and mathematical reasoning will likely be very helpful and enlightening. I used Foundations Of Higher Mathematics in college and it was one of the most beneficial courses I took.
I’ve found searching Amazon and the wider Internet for books to be quite rewarding. You can be surprised by what you find. Here are a few of the good ones I hope to read which I feel are examples of the virtues of carving out your own learning path:
- Linear And Geometric Algebra, by Alan Macdonald
- Vector And Geometric Calculus, also by Alan Macdonald
- Visual Complex Analysis, by Tristan Needham
- Information Theory, Inference and Learning Algorithms, by David J. C. MacKay
Surely there are others that would interest you. There are many learning paths you could take:
- Category theory for programming language design
- Abstract algebra and number theory for cryptography
- Differential equations, optimal control, or finite element methods for many applied computational problems in science and engineering
- Monte Carlo simulation for financial modeling
- Differential geometry for general relativity
- Discrete mathematics and combinatorics for analysis of algorithms
You don’t have to make the same choices I did. You could just watch Khan Academy videos or do Coursera courses, for instance. What matters is that you’re tailoring your own learning to your preferences and background. The possibilities are endless. Let us begin.
The author thanks the following people (in no particular order), discussions with whom on numerous occasions directly led to this article: Colin Barrett, Patrick Thomson, Phillip Bowden, Tom Burns, Brandon Burton, and Bradford Stephens.
Thanks to Patrick Thomson and Phillip Bowden in particular, who reviewed early drafts and offered useful feedback.