Working my way up to calculus for the first time in my life, at nearly 40 years old. I've always hated math :(
When I was a kid, they always told me math would be super useful, especially if I liked computers. Well, 20+ years of a dev career later, I still have never used anything more than basic arithmetic and rudimentary algebra (to calculate responsive component sizes). But with web dev jobs going the way of the horse-drawn wagon, I figured it was time for a career change. Hoping to get into (civil/environmental) engineering instead, but I guess that field actually does use math, lol. We'll see how it goes...
In the meantime, also taking singing classes at the community college, and enjoying THAT way more. We performed at a nursing home a few weeks ago, and that brought SO much joy to the audience there, even though we're just a bunch of amateurs. It's just such a different reception than anything I've ever seen as a dev. Tech rarely inspires such joy.
If I could start all over again, I wish I would've pursued music over computer stuff. Much harder life though!
It sounds like you might enjoy my book on MACH+CALC, which comes with prerequisites included (a summary of the essential parts of high school math requited to understand calculus).
Last but not least, I highly recommend you check out the computer algebra system SymPy, which provide functionality for doing all kinds of basic algebra (`solve`, `simplify`, `expand`, etc.) You can use it to invent practice problems for yourslef, check answers, etc. It also has useful functions for calculus which you will need when you get to that. Here is a little tutorial on it:
https://minireference.com/static/tutorials/sympy_tutorial.pd...
Always just saw it as the handful of operations and a handful of generalized objects (sets, variables, etc) that represent data. So knowing those parts is all there is. Contrived compositions used in school to prove ourselves to some teacher just seems like patronizing helicopter parenting type vibes.
Went at most of my math classes with that in mind and didn’t really worry about relating it to past things
I don’t really buy into a notion like “more abstract” or “less” abstract. Everyone is its own abstract.
I dunno. That philosophy has worked for me so far shrug
I highly recommend the online book "Calculus at Moravian University", it does a pretty good job in building a fundamental understanding of calculus from the basics to multiple integration and vector calculus. I also used Joplin to take notes while reading, it's a notebook app where you can also use LateX (admittedly, many people won't like reading and taking notes on the phone, but I like it since it gives me a chance to learn even when you can't easily use books and laptop)
I'm taking a class at the local community college. It's OK, just some class notes and an e-textbook that I never bother to read. The pedagogy is much as I remember it, the teacher going through the problems on a whiteboard and expecting everyone to rote-memorize things.
But mostly, I'm learning from ChatGPT. You can enter (or take a picture of) any problem and ask it to break it down step by step and it does that very well, and explains it better than most resources I've found. There are some OK YouTube or KhanAcademy videos too, but overall I prefer ChatGPT for its higher signal to noise ratio.
At home I'll usually ask ChatGPT to explain the first one of a problem type, then try to do it again on my own and double-check it against the posted answers. For subsequent problems, I'll do it myself first (pen and paper or iPad), check it for correctness, and then ask ChatGPT for a breakdown if I screw up. I can usually tell it the mistake I made (i.e. how come I got X in step Y) and it can often correctly guess and explain where I went wrong.
Some examples (keep in mind that I'm still working up to calc, so still in pre-calc right now!):
Overall, I find this method of learning math (by rote memorization and parroting) very unsatisfying, and I'm unable to retain most of it in long-term memory. A few days after I learn anything I already forget how to do it. I ended up with an A in the class mostly just cramming the night before + morning of, using ChatGPT and class notes to refresh myself before the tests.
But IMO it's a terrible way to learn (at least for me) and part of why I hate math. I never really learn the whys and wherefores of anything, it's just a bunch of magic shortcuts and black-box algorithms that I have to memorize and re-use without any actual understanding. It's the educational equivalent of solving every problem with someone else's function/library :( I have no idea why anything works the way it does, only that I must remember it and re-use it exactly.
If anyone has a better approach to learning and retaining this stuff, I'm all ears!
IMO taking Calculus later in life is probably easier for most (study of 1) people (assuming you have seen some of it before). I took Calculus at 19 years old and passed but I did not have any idea what it was really used for. Taking it again during Grad School (mid 30s) Calculus made way more sense. Ideas would click (mostly not CS related) but more in the general world view (think washers for nuts and bolts – area under a curve). I will be the first to admit that making front ends and tuning a DB will almost never need any calculus (but it does happen) and admit I did horrible in high school but turned it around in college (I was behind when I got there the first time for sure). How much do I remember right this second (not much), but I do feel its worth doing as if only a right of passage to say we deserve that 6-figure salary and maybe not feel too bad about calling our self’s engineers.
Good luck with the singing lessons and new job, but if your married (or have children) do NOT quit that day job just yet If not, well hell go for it my friend!!!
Lol, I hope I get to feel that way in hindsight! Right now it's just the struggle and the grind... math feels like a bad Asian MMO where you just run around crunching numbers to make other numbers go up slowly. And if you die/miss an assignment, you have to go back a few levels and do it all over again. Sigh.
> that 6-figure salary and maybe not feel too bad about calling our self’s engineers
Hah! I've only ever briefly made a 6-figure salary, and I quit that job because of its bureaucracy. I'm just some rando dev and I would NEVER call myself an engineer (even though my job title sometimes says that). It's an insult to all the REAL ones who actually survived the math, lol.
(Frontend) web dev has always been more similar to me to graphic design than anything I would call "engineering": It's pretty-looking shiny stuff backed by spaghetti code, not anything I'd ever trust to life-and-death scenarios like dams or bridges.
Anyway, that's not the point :)
> well hell go for it my friend!!!
Hah. This is the upside of a minimal DINK life. We don't have much money (at all), but we have fun!
chatgpt is proficient enough in writing web dev CRUD app code, which leads some to believe it'll lead to obsolescence of that particular skill set, and collapse the job market and pay for that, much like the skills of a horse-drawn wagon driver, or a buggy-whip manufacturer.
How to communicate with people and get through negotiations and all of those tiny little conversations that happen day to day in our personal and professional lives with more success.
Started with Difficult Conversations last year and it was a total game changer. It has been instrumental in my professional and personal life. If I was going to share two key points for anyone it'd be to remember to listen and that you have also always contributed to the problem.
Working through Getting to Yes by the same group of folks now and it is just as great. A bit more high level but I plan to dive back into more specific areas afterwards and read through the just recently updated version of Difficult Conversations.
Want to hit Supercommunicators and Crucial Conversations later. I've decided that so many things break down, big and small, because of these seemingly small but ultimately important conversations. Always be soft on the people and hard on the problem.
Relearning statistics with a Bayesian approach. My undergrad education was in social science research methods and I spent 4 years learning the strict frequentist approach of orthodox statistics. It made sense for highly-controlled experiments and simple dice games. But it broke down horribly when faced with any complexity and I never understood why. 25 years later, it's time to fill in the gaps. My reading list:
- E.T. Janes "Probability Theory: The Logic of Science" provides the fundamental theory.
- Robert McElreath "Rethinking Statistics" provides a practical application of the theory in R.
- Andrew Clayton's "Bernoulli's Fallacy" is a non-technical book that provides historical context to the frequentist vs bayesian debate.
I'm fairly convinced now that Bayesian approaches have more mathematical rigor than the crusty old heuristics of traditional statistics. But in terms of user-experience, doing Bayesian calculations still requires more effort on model design and more compute power. It's flexible to a fault, without a well-defined workflow. There is a strong temptation to follow the easy path - shove your data into a black box and publish if p<0.05. It's going to take a generation of (re)training and improvements to statistical software before Bayesian methods are widespread.
+1 for the Statistical Rethinking book by McElreath. I recently took the 2024 edition of the self-paced course https://github.com/rmcelreath/stat_rethinking_2024 and the lectures on youtube are amazing. He's not just teaching stats, but how to do science!
Another, more basic, book on Bayesian stats is: https://allendowney.github.io/ThinkBayes2/ The author uses the grid approximation for everything, so there is no need to get into Stan or other framework.
Myself, I'm still trying to (re)learn frequentist stuff properly (will post a separate comment about that), but the deeper I go the more convinced I am that it is total crap, and my desire to convert to the church of Bayes increases...
I'm learning how to build a MMORPG. Not a complete game but a project with all the architecture in place to expand on (think Asheron's Call quality).
I started programming because I wanted to work on Guild Wars 1 back in the day, but that didn't work out and I ended up as a web developer (although with some gamedev experience). I've always thought you can't make an MMO alone and so never tried.
Recently a combination of health problems that scared be quite a bit and seeing other people on YouTube tackle these kinds of projects have motivated me to fulfill my childhood dream of learning the tech behind MMO games.
My goal is still to work on a MMO game professionally one day, but if that never works out, at least I worked on a MMO. My own.
Apropos of the other HN article on the elder mathematician who credits his success by studying the simple things until he understands them really, really well, I'm practicing drawing boxes in any/every orientation in 3D space. This includes drawing two boxes connected by a common edge - imagine a box with a lid the same size as the box itself, slightly opened.
For me this is profoundly difficult to visualize. I've taken to learning the basics of Blender just so I can create these various boxes accurately to use as reference material. It's been slow going but the progress is tangible and the process is fun.
Technical Drawing was a core required course for first and second year Engineering students (Electrical, Civil, Mechanical, Electronic) in Commonwealth countries in the 1980s and for decades before.
Descriptive Geometry was a major component of Tech Drawing, everybody in pre CAD digital age (and still, I'd say at least) needed a good grounding in blueprints, schematics, and "constructive drawing" good enough to take measures from during building.
Wow, I've been perusing books on drawing/sketching and scouring videos and blog posts for years, and none of them mentioned "descriptive geometry". Perhaps they did and I just missed it, but seems unlikely given how much I retread materials.
I started (re)learning this subject in preparation for a new book, thinking all I had to do was review what I studied in my university days, and summarize the essential ideas, but it turns out statistics is A LOT more complicated than that. It's like a black hole that you can never get out of. There is lots of historical baggage, strong opinions, unjustified rules of thumb, etc. I've been in it for 5+ years now! As a physicist, I want to understand how things work under the hood, so I can explain to readers the underlying mechanisms and not just give formulas without explanations, and this has been very hard to do. The whole thing is well summarized by this quote from Richard McElreath "Statistics is a horrible thing."
There is hope though, in recent years teaching frequentist statistics is moving toward simulation based methods, a.k.a. the modern statistics curriculum, which makes a lot of sense. Here is a blog post about that: https://minireference.com/blog/fixing-the-statistics-curricu...
I'm a senior Android developer, and I'm learning the very basics of Jetpack Compose, and the basics of Dagger for dependency injection. All of the (very large) codebases I've worked on so far have functioned perfectly well without them, and I've always found Dagger, and now Compose, to be completely unintuitive and unnecessarily complex. But this is the way the industry has shifted, so I'm forcing myself to learn these patterns, and see if I can learn to like them.
Also learning to get better on the piano, specifically improvising.
I'm learning LLM at the moment, RAG particularly. [1]
I ended up built InkChatGPT as my learning project and it was huge fun. It is an AI Agent that could help learning from multiple documents and you can chat with it, thank Chat PDF GPT.
I use LangChain as LLM framework to simplify the backend, and using Streamlit as front end UI and deployment. Using OpenAI `gpt-3.5-turbo` model, Use HuggingFace embeddings to generate embeddings for the document chunks with `all-MiniLM-L6-v2` model.
To be honest, coming from Mobile development background, learning about ML and reading about LLM models, prompt tuning and various techniques really opens my mind, but the vast information and knowing how to start is difficult.
Thank you for your compliment, I just wandering and tinkering all weekend. I am picking to update the app UI and learn more about improving the app recently.
I plan to pickup more on LLMs topic and will start experimenting with different models.
When I was a kid, they always told me math would be super useful, especially if I liked computers. Well, 20+ years of a dev career later, I still have never used anything more than basic arithmetic and rudimentary algebra (to calculate responsive component sizes). But with web dev jobs going the way of the horse-drawn wagon, I figured it was time for a career change. Hoping to get into (civil/environmental) engineering instead, but I guess that field actually does use math, lol. We'll see how it goes...
In the meantime, also taking singing classes at the community college, and enjoying THAT way more. We performed at a nursing home a few weeks ago, and that brought SO much joy to the audience there, even though we're just a bunch of amateurs. It's just such a different reception than anything I've ever seen as a dev. Tech rarely inspires such joy.
If I could start all over again, I wish I would've pursued music over computer stuff. Much harder life though!
Check out the extended preview here: https://minireference.com/static/excerpts/noBSmathphys_v5_pr...
Here is the concept map from the book which might be useful to you as general orientation in the "concept space", now matter which book you're learning from: https://minireference.com/static/conceptmaps/math_and_physic...
Last but not least, I highly recommend you check out the computer algebra system SymPy, which provide functionality for doing all kinds of basic algebra (`solve`, `simplify`, `expand`, etc.) You can use it to invent practice problems for yourslef, check answers, etc. It also has useful functions for calculus which you will need when you get to that. Here is a little tutorial on it: https://minireference.com/static/tutorials/sympy_tutorial.pd...
Always just saw it as the handful of operations and a handful of generalized objects (sets, variables, etc) that represent data. So knowing those parts is all there is. Contrived compositions used in school to prove ourselves to some teacher just seems like patronizing helicopter parenting type vibes.
Went at most of my math classes with that in mind and didn’t really worry about relating it to past things
I don’t really buy into a notion like “more abstract” or “less” abstract. Everyone is its own abstract.
I dunno. That philosophy has worked for me so far shrug
https://webwork.moravian.edu/apexcalc/book-1.html
But mostly, I'm learning from ChatGPT. You can enter (or take a picture of) any problem and ask it to break it down step by step and it does that very well, and explains it better than most resources I've found. There are some OK YouTube or KhanAcademy videos too, but overall I prefer ChatGPT for its higher signal to noise ratio.
At home I'll usually ask ChatGPT to explain the first one of a problem type, then try to do it again on my own and double-check it against the posted answers. For subsequent problems, I'll do it myself first (pen and paper or iPad), check it for correctness, and then ask ChatGPT for a breakdown if I screw up. I can usually tell it the mistake I made (i.e. how come I got X in step Y) and it can often correctly guess and explain where I went wrong.
Some examples (keep in mind that I'm still working up to calc, so still in pre-calc right now!):
* Breaking down the quadratic formula and explaining imaginary numbers: https://chat.openai.com/share/b267e954-fa0b-46ea-8fd6-11f71a...
* Explaining properties of logs: https://chat.openai.com/share/01d79b4f-81b4-46b3-9767-be93b7...
* e and natural logs: https://chat.openai.com/share/fbb3f957-ed6f-4c1a-af95-917d0e...
* Word problems: https://chat.openai.com/share/502f7a91-9c2c-4c74-834a-5c791a...
-----------------
Overall, I find this method of learning math (by rote memorization and parroting) very unsatisfying, and I'm unable to retain most of it in long-term memory. A few days after I learn anything I already forget how to do it. I ended up with an A in the class mostly just cramming the night before + morning of, using ChatGPT and class notes to refresh myself before the tests.
But IMO it's a terrible way to learn (at least for me) and part of why I hate math. I never really learn the whys and wherefores of anything, it's just a bunch of magic shortcuts and black-box algorithms that I have to memorize and re-use without any actual understanding. It's the educational equivalent of solving every problem with someone else's function/library :( I have no idea why anything works the way it does, only that I must remember it and re-use it exactly.
If anyone has a better approach to learning and retaining this stuff, I'm all ears!
> that 6-figure salary and maybe not feel too bad about calling our self’s engineers
Hah! I've only ever briefly made a 6-figure salary, and I quit that job because of its bureaucracy. I'm just some rando dev and I would NEVER call myself an engineer (even though my job title sometimes says that). It's an insult to all the REAL ones who actually survived the math, lol.
(Frontend) web dev has always been more similar to me to graphic design than anything I would call "engineering": It's pretty-looking shiny stuff backed by spaghetti code, not anything I'd ever trust to life-and-death scenarios like dams or bridges.
Anyway, that's not the point :)
> well hell go for it my friend!!!
Hah. This is the upside of a minimal DINK life. We don't have much money (at all), but we have fun!
Could you elaborate please ?
Started with Difficult Conversations last year and it was a total game changer. It has been instrumental in my professional and personal life. If I was going to share two key points for anyone it'd be to remember to listen and that you have also always contributed to the problem.
Working through Getting to Yes by the same group of folks now and it is just as great. A bit more high level but I plan to dive back into more specific areas afterwards and read through the just recently updated version of Difficult Conversations.
Want to hit Supercommunicators and Crucial Conversations later. I've decided that so many things break down, big and small, because of these seemingly small but ultimately important conversations. Always be soft on the people and hard on the problem.
https://www.amazon.com/Nonviolent-Communication-Language-Lif...
a cursory search online already makes this look absolutely awesome! I'm totally adding this to my repertoire
honestly, i work in public education and I feel like these kinds of negotiating and communication skills could easily be a doctoral dissertation
- E.T. Janes "Probability Theory: The Logic of Science" provides the fundamental theory.
- Robert McElreath "Rethinking Statistics" provides a practical application of the theory in R.
- Andrew Clayton's "Bernoulli's Fallacy" is a non-technical book that provides historical context to the frequentist vs bayesian debate.
I'm fairly convinced now that Bayesian approaches have more mathematical rigor than the crusty old heuristics of traditional statistics. But in terms of user-experience, doing Bayesian calculations still requires more effort on model design and more compute power. It's flexible to a fault, without a well-defined workflow. There is a strong temptation to follow the easy path - shove your data into a black box and publish if p<0.05. It's going to take a generation of (re)training and improvements to statistical software before Bayesian methods are widespread.
Another, more basic, book on Bayesian stats is: https://allendowney.github.io/ThinkBayes2/ The author uses the grid approximation for everything, so there is no need to get into Stan or other framework.
Myself, I'm still trying to (re)learn frequentist stuff properly (will post a separate comment about that), but the deeper I go the more convinced I am that it is total crap, and my desire to convert to the church of Bayes increases...
I started programming because I wanted to work on Guild Wars 1 back in the day, but that didn't work out and I ended up as a web developer (although with some gamedev experience). I've always thought you can't make an MMO alone and so never tried.
Recently a combination of health problems that scared be quite a bit and seeing other people on YouTube tackle these kinds of projects have motivated me to fulfill my childhood dream of learning the tech behind MMO games.
My goal is still to work on a MMO game professionally one day, but if that never works out, at least I worked on a MMO. My own.
[1] https://github.com/TrinityCore/TrinityCore
Apropos of the other HN article on the elder mathematician who credits his success by studying the simple things until he understands them really, really well, I'm practicing drawing boxes in any/every orientation in 3D space. This includes drawing two boxes connected by a common edge - imagine a box with a lid the same size as the box itself, slightly opened.
For me this is profoundly difficult to visualize. I've taken to learning the basics of Blender just so I can create these various boxes accurately to use as reference material. It's been slow going but the progress is tangible and the process is fun.
[0] https://drawabox.com/
Thanks for the rec!
Descriptive Geometry was a major component of Tech Drawing, everybody in pre CAD digital age (and still, I'd say at least) needed a good grounding in blueprints, schematics, and "constructive drawing" good enough to take measures from during building.
https://en.wikipedia.org/wiki/Technical_drawing
https://en.wikipedia.org/wiki/Descriptive_geometry
Thank you!
I started (re)learning this subject in preparation for a new book, thinking all I had to do was review what I studied in my university days, and summarize the essential ideas, but it turns out statistics is A LOT more complicated than that. It's like a black hole that you can never get out of. There is lots of historical baggage, strong opinions, unjustified rules of thumb, etc. I've been in it for 5+ years now! As a physicist, I want to understand how things work under the hood, so I can explain to readers the underlying mechanisms and not just give formulas without explanations, and this has been very hard to do. The whole thing is well summarized by this quote from Richard McElreath "Statistics is a horrible thing."
There is hope though, in recent years teaching frequentist statistics is moving toward simulation based methods, a.k.a. the modern statistics curriculum, which makes a lot of sense. Here is a blog post about that: https://minireference.com/blog/fixing-the-statistics-curricu...
You can see the notebooks from the upcoming book here: https://nobsstats.com/ and concept map here: https://minireference.com/static/excerpts/noBSstats/conceptm...
Also learning to get better on the piano, specifically improvising.
I ended up built InkChatGPT as my learning project and it was huge fun. It is an AI Agent that could help learning from multiple documents and you can chat with it, thank Chat PDF GPT.
I use LangChain as LLM framework to simplify the backend, and using Streamlit as front end UI and deployment. Using OpenAI `gpt-3.5-turbo` model, Use HuggingFace embeddings to generate embeddings for the document chunks with `all-MiniLM-L6-v2` model.
To be honest, coming from Mobile development background, learning about ML and reading about LLM models, prompt tuning and various techniques really opens my mind, but the vast information and knowing how to start is difficult.
[1] InkChatGPT: https://github.com/vinhnx/InkChatGPT
I plan to pickup more on LLMs topic and will start experimenting with different models.