5 ms·
Most reputable CS courses will have one or two math subjects (often called "Discrete Mathematics" or some variation). Does anyone have any advice on tackling s
by pygar 10mo ago
Most reputable CS courses will have one or two math subjects (often called "Discrete Mathematics" or some variation).
Does anyone have any advice on tackling subjects like these for someone who hasn't done any math since high school more than a decade ago (and has forgotten it)?
- School-Cotton 10mo agoMy advice is to (re-)learn elementary algebra to a proficient level before attempting any other branch of math. That is a core prerequisite for absolutely everything. By elementary algebra I mean roughly everything in classes called “Algebra” or “pre-calculus” that you learn in an American high school before calculus. Geometry and trigonometry can’t hurt either but algebra is more central.
- tresdots 10mo agoFor as much as I've learned in the last 10 years of being a software engineer, I've frankly forgotten at least half of the maths I once knew. Of course, I could take the time to re-learn it all if need be, but I'm definitely thankful to have went straight from high school into college. Having to re-learn everything just to be at baseline would make the whole experience far less enjoyable. Kudos to those that have done so.
- chrisweekly 10mo agohttps://betterexplained.com https://betterexplained.com is a goldmine
- randmeerkat 10mo agoKhan Academy https://www.khanacademy.org/ https://www.khanacademy.org/
- qsort 10mo ago> one or two math subjects Only one or two? :) It's not easy as an adult but it's definitely doable, don't get discouraged. The main hurdle isn't knowledge of specific topics, most undergraduate courses assume little to no previous baggage, i'd say it's more the lack of "mathematical maturity"[0], or the ability to "bridge" between the formal language of math and the intuitive "what we're doing here". When you're writing code, you probably don't stop to think "I need to do this operation for each element of this vector, a for loop is what I need", you instead have a high level idea of what you're trying to accomplish and "make the code happen", filling in the formalities as needed. Trying to go line by line is how beginners operate, and that's why they never get anything done. I'd never get anything done either if I had to work like that! The reason why many people get stuck in math is similar. You read a definition that goes "for all ε>0 there exists δ such that for all ..." and you immediately get confused, trying to keep the entire "abstract syntax tree" of what you just read in memory. Like in the code example, the "mature" way to see it is that we're trying to capture an idea, and the formalism is instrumental in that. What are the variables "morally" doing? (At a certain point you'll realize the formalism is actually working for you rather than against you, but that's a rant for another time...) The conceptually easier but more time-consuming thing to do is to practice symbol pushing if you lost that since high school. For example: is it immediately obvious to you what (a+b)^n is if you expand it? Do you remember how to factor (a^3 + b^3)? Do not despair if you don't. Many more people than you think can't do that off the top of their heads, but it's the kind of "mechanical" skills that's probably blocking you at this point. Another important aspect to learn is a bit of notation, the "standard library" of math, as it were. Understand "for all" and "exists" as quantifiers, and how they interact with negation and logical operators. It should be eventually obvious to you that negation "inverts" quantifiers. Learn at least a little bit how to work with naive set theory: union, intersection, etc. Look up what the "common" sets (integers, rationals, reals, complex) are and how they relate with each other. And finally, try to get a feel for how proofs work. That's going to be important, even for the type of math you need for computer science. Good luck! --- [0] https://en.wikipedia.org/wiki/Mathematical_maturity https://en.wikipedia.org/wiki/Mathematical_maturity
- monero-xmr 10mo agoMy university offered the math classes in either CS or Math departments. I always chose the math department. Better teachers and far more interesting professors (as people)
- qsort 10mo agoI have a degree in CS and I got a lot from it, so I'm absolutely not going to bad mouth CS, but I have the feeling that it's possible to just get a piece of paper having learned little to nothing in a way that couldn't happen with Math or Physics. Obviously lots of great people have CS backgrounds, but it also feels like "how did this idiot get a degree" happens far more frequently for CS than Math. It's not like everyone coming out of a Math degree is automatically a genius, but they set the bar higher and as a result math classes "feel" better.
- mettamage 10mo agoPsychology and business administration is even worse. I studied CS, psychology and business administration (I dropped out of BA, it was useless info)
- modernerd 10mo agohttps://www.mathacademy.com/ https://www.mathacademy.com/ is a great combination of structured learning across an incremental skill tree with practise problems to prove to yourself that you understand. It’s a big commitment but helped me go from “hasn’t done any math for a while and probably missed some basics” to much more comfortable. You can do the self-test to pick a starting level and work up from there. As with many things you basically have to sit down and do the work, though, you’re not going to get better just by inhaling books and videos. MA isn’t a fun/gamified learning platform like Duolingo, the ‘fun’ comes from putting the work in and seeing yourself improve. For me it went from a grind initially to something I enjoyed doing. https://www.geogebra.org/ https://www.geogebra.org/ is also worth exploring for its novel visual approach, but is much more rudimentary, less challenging, and less deep than MA.
- lII1lIlI11ll 10mo agoI second this. Mathacademy is great and there is no way OP would be able to just jump into university-level math courser without re-learning prerequisites, considering they said that they forgot most of the school-level math.
- nathan_douglas 10mo agoI third MathAcademy. I graduated high school >25 years ago with almost no math skills and had a major struggle with the math prerequisites for my CS degree ~15 years ago. I've been wanting to get into higher math recently, so a few months back I started hitting MathAcademy heavily. Its structure and modularity is exactly what I needed.
- Rendello 10mo ago> Its structure and modularity is exactly what I needed. Through great effort, I completed Mathematical Foundations I & II. I talked about it a bit here [1][2]. If you read through MathAcademy's methodology and reasoning, it's incredibly strong [3], but in practice I never felt confident in my understanding or execution, everything felt quite discrete and I didn't understand the relationships or purposes of what I was doing. I kept going because I was getting better, and because people online who were quite good at math said not to try too hard to understand things fully at first, since the abstraction level of math is so high. The weeks before finishing MFII, my motivation was higher than ever. The day I finished, I felt nothing, and in the following weeks I decided that it was time to let it go for now. I think MA is good. I've never done so many exercises in my life, and although I wasn't super confident, I was far better at math than I'd ever been. But I think MA probably needs a lot more multi-part exercises so you understand what you're doing and where to use things. I feel like I learned "Discrete Math", but in the sense that all the lessons were discrete and I couldn't draw connections between them. https://news.ycombinator.com/item?id=42519882 https://news.ycombinator.com/item?id=42519882 https://news.ycombinator.com/item?id=43275665 https://news.ycombinator.com/item?id=43275665 https://www.justinmath.com/files/the-math-academy-way.pdf https://www.justinmath.com/files/the-math-academy-way.pdf
- deleted 10mo ago[deleted]
- whatamidoingyo 10mo agoI'd recommend going on Thriftbooks and ordering a textbook. I can't remember the exact copy I had years ago when I was self-learning CS, but it was like $4.00 for a really incredible textbook. Now, I don't have a degree, so take my advice with a grain of salt, but the book was really really good, and honestly, if you've been programming for awhile, I think most of the concepts didn't require a heavy math background (of course, it would probably help). The chapters were like: Symbolic Logic, Set Theory, Proofs, Algorithms, Cryptography, and other things which I can't remember. Edit: The book is free to read online EDIT EDIT: Removed link as I don't know if that was a "legal" link. It's out of stock on Thriftbooks, but looks to go for $6-8 on there.
- ink_13 10mo agoWhat's the name of the book?
- whatamidoingyo 10mo agoIt's called "Discrete Mathematics and its Applications" by Kenneth H. Rosen. A google search reveals a PDF as the first result.
- Rendello 10mo agoMath Academy is a good option, but I wrote about the issues I had with it here. Recently, I've been going through Introduction to Graph Theory by Richard J Trudeau. It's from the 70s, and I'm doing all the exercises. It really is an intro, and teaches some set theory and proof stuff. Doing Math Academy at least taught me that doing exercises is incredibly important for mathematics learning. https://news.ycombinator.com/item?id=46124247 https://news.ycombinator.com/item?id=46124247
- z500 10mo agoIt's a different kind of math from the continuous math they teach in school. Personally I found it a lot more intuitive. Like it wasn't the easiest thing ever, but I did better than I thought I would.