Live data from Hacker News

A Software Engineer’s Adventures in Learning Mathematics

medium.com

141–150 of 227 posts

Re: A Software Engineer’s Adventures in Learning Mathematics

#141

Has anyone had any experiences learning different mathematical techniques using Mathematica? I was wondering if it might be more enjoyable to learn some areas without the manual arithmetic usually involved in school. Any recommendations on books or courses appreciated, thanks!

There's a pretty good Linear Algebra course currently being offered on edx.org. I just made it past week 1 with relative ease and in the next few weeks we will be using Mathematica. (Every student gets a license for the duration of the class)

Re: A Software Engineer’s Adventures in Learning Mathematics

#142
post #116

The comments are amusing. It seems there's a popular opinion that to be an engineer requires a higher understanding of mathematics than what most mere mortals require. My understanding was that to call yourself an engineer one must be capable of building robust and efficient things, whether that thing is a plane, or a bridge, complex software, even a website, matters not, so long as it is robust and efficient. The de…

> It seems there's a popular opinion that to be an engineer requires a higher understanding of mathematics than what most mere mortals require. > build an maintain an API in Go Unfortunately, a much larger proportion of engineering jobs require mathematics than you make it seem. Software engineers seem to forget that engineering includes designing planes, bridges, cars, lasers, electrical circuits, materials, and a m…

I clearly brought up designing planes and bridges, I figured both were enough to demonstrate that my definition of engineering includes the structural, the mechanical, the electrical, etc.

The point is, the engineer who designs the plane only needs to know enough math to design said plane. The engineer who designs the bridge? The same. Theoretically, they're supposed to understand a great deal. Realistically, the degree to which technology automates the mundane task of calculation could very well mean that their daily application and actual understanding of mathematics is overestimated anywhere from slightly to greatly. This will be especially true as time goes on and the tools of the trade become even more advanced.

To design a web application that operates efficiently in terms of cost, response time, and required maintenance, along with a number of other variables, requires good software engineering. Once upon a time, this required strong mathematical aptitude. Now, it requires more of an understanding of the language used for the design of the application itself, an ability to justify why one approach should be faster through algorithm analysis and efficient testing, logical thinking, etc, it certainly doesn't require the mathematical aptitude to design your own cryptography protocol whenever you can simply use a library demonstrated to be safe and reliable, although an understanding of the underlying concepts of how said protocol works might be nice, if anything to understand why you shouldn't roll out your own.

It's not too far off to imagine a near future where the average functionally requires the same degree of mathematical aptitude as today's current web developer.

Re: A Software Engineer’s Adventures in Learning Mathematics

#143
post #3

I always thought that being an Engineer assumes you have knowledge of mathematics. The way this word is being used in Software ist kind of strange. "I built a blog in php, I'm a Software Engineer" - this feels kind of awkward to me.

A great many real, live engineers that I know would object to anyone calling themselves an engineer without a lot of study of the big three: statics, dynamics, and thermodynamics; not just general mathematics. It's one of the reasons I don't call myself an engineer. (But I do get to harsh on them a bit about not being professional programmers---their code isn't pretty.)

The other reason, of course, is that the "software engineer" term comes from a group of people who really wanted the respect that comes with "engineer" but realized that the big three don't get very far, software-wise. (And coincidentally didn't want to do all that icky math stuff. Not to mention much of the icky programming stuff.)

Re: A Software Engineer’s Adventures in Learning Mathematics

#144
post #80

What I understood after studying CS for over 10 years at a few universities regularly ranked highly at ACM ICPC is that math is unnecessarily obfuscated to most people. There is even an excellent book "Concrete Mathematics" from Stanford that tries to bring fun back to math instead of drying people with some formal stuff without explaining how people over the centuries got to that structure. I honestly believe math l…

This is what drew me to CS over math. I enjoy describing things with code or pseudo code, not difficult to understand equations and math symbols. Also, it is much easier to see the practicality of an equation when presented in code form.

After I read SICP and HtDP I started retaking math I had forgotten but writing out the equations in Scheme to further grasp the language. At first doing Spivaks Calculus in this method took a long time but now I can write formulas and basic proofs just as fast in a programming language as I can with a pencil.

I skimmed SICM (Structural Interpretation Of Classical Mechanics) just to get an idea of how they represented Langrange equations in Scheme and went from there.

Re: A Software Engineer’s Adventures in Learning Mathematics

#145

If anyone is interested in how mathematicians think and do proofs there are many helpful books. For example, Mathematical Proofs: A Transition to Advanced Mathematics by Chartrand and others. How to Prove It: A Structured Approach by Velleman. Learning to Reason: An Introduction to Logic, Sets, and Relations by Nancy Rodgers. Elementary Discrete Math books make for great intro to proofs and math thought: Discrete Mat…

If you don't mind could you list some more books that you think are particularly great? Topic to me is not so important, as I am interested in just books that are the best in their field. Much appreciated!

Re: A Software Engineer’s Adventures in Learning Mathematics

#146
post #72
post #55

Earlier quoted context omitted.

And that assumption is wrong. You don't need any knowledge in advanced mathematics to engineer many types of software, that doesn't make the creator less of a Software Engineer. Being an engineer means using technology, science, mathematics to solve problems. Well in many cases you don't need math to solve these problems. The word itself as no root in math either, it's based on latin for devise/contrive, sure it was…

>Being an engineer means using technology, science, mathematics to solve problems. That's called practicing engineering. An engineer is a professional practitioner of engineer. You can practice engineering all you want, but if you're not a professional (having received an engineering degree from a certified university), it's dishonest to call yourself one. Honestly, it is elitist. But those of us who obtained our deg…

Plus, do you really want to drive across a bridge every day that was designed by someone you don't know, someone who was self-taught in the ways of technology, science, and mathematics?

Re: A Software Engineer’s Adventures in Learning Mathematics

#147
post #131
post #80

What I understood after studying CS for over 10 years at a few universities regularly ranked highly at ACM ICPC is that math is unnecessarily obfuscated to most people. There is even an excellent book "Concrete Mathematics" from Stanford that tries to bring fun back to math instead of drying people with some formal stuff without explaining how people over the centuries got to that structure. I honestly believe math l…

[deleted]

Yes, I am familiar with problem reduction.

There are far simpler models for formal verification than Turing machines, e.g. Smullyan's top-down tableaux method - you make a simple functional snippet and immediately verify it using mostly general induction and easy-to-understand verification steps that can be almost automated. Going all the way to the Turing level would kill you time-wise to get to anything useful (even preparing description of your JavaScript machine in Turing terms) - Turing machine has infinite time available, you don't.

Not to mention there are some issues with formal logic that might cause you problems (hint: why do medical doctors use counter-factuals and not mathematical logic?)

"Beware of bugs in the above code; I have only proved it correct, not tried it" -- Donald E. Knuth

Re: A Software Engineer’s Adventures in Learning Mathematics

#148

This topic comes up every so often. I think my previous comment applies here [1]: I started a Math degree after 16 years of programming without any Math beyond high school (the highest being high school calculus). Most of my work as a software developer didn't require any "higher" Maths. Once I began studying math, including Modern Algebra, Analysis, Graph Theory, Category Theory, etc., I realized I understood many t…

Thanks for writing this. Over the last 4 years I switched from studying computer science with applications in mathematics, to studying math and symbolic logic with applications in computation. I did this alone, without interacting with anyone in the field. I thought I was going insane because of how many direct 'abstract' connections there are from computer science to mathematics and back again. I know these abstract connections exist as words in the world, but many times it feels like I have to go hunt for the word when I already have the idea.

I haven't really found any real world applications of the concepts I've learned, aside from having to hold a meticulously constructed symbolic reasoning world inside my head for a really long time without observational reality confirming it's correctness as a model to describe all things. This makes me pretty good at programming things that are incompletely described, I think, but also explains why Tarski said he was the only sane logician.

I never really hear about autodidacts talking about their experience. It can be really rough most of the time. I literally think it's just luck that I stumble across the right words. I also think it's luck when I manage to understand things and make a connection between them. I have managed to connect such disparate symbols together and maintain that connection strongly for long periods of time (with absolute conviction), that it all really seems like magic when it does work. But, giants, shoulders, yada yada.

Re: A Software Engineer’s Adventures in Learning Mathematics

#149
post #93

Earlier quoted context omitted.

> 4) Calculus and Linear Algebra are the father and mother of applied math. > You'll save yourself a ton of grief if you learn them first Baby Rudin and Axler are used currently by Harvard Math 55 to teach those subjects. Rudin might not be very didactic (I would be happy to hear about alternatives), but Axler is a fantastic choice.

If you liked Axler, you might check out Abbott's Understanding Analysis, also in the Springer UTM series. I think it covers somewhat less than Rudin (e.g. looking at baby Rudin's contents, I'm pretty sure Abbott doesn't touch Lebesgue integration) but it's a pretty great introductory analysis book IMO.

As a math graduate student, I second the choice for Abbott's "Understanding Calculus". It's a wonderful beginning book for analysis. Walter Rudin's "Principle's of Mathematical Analysis" is an amazing book but it's difficult to start with.

For a quick intro to Lebesgue integration you can read the beginning of Rudin's "Real and Complex Analysis" or Halsey Royden's "Real Analysis".

I haven't read Axler's book. I liked Hoffman and Kunze's "Linear Algebra"

Re: A Software Engineer’s Adventures in Learning Mathematics

#150

This topic comes up every so often. I think my previous comment applies here [1]: I started a Math degree after 16 years of programming without any Math beyond high school (the highest being high school calculus). Most of my work as a software developer didn't require any "higher" Maths. Once I began studying math, including Modern Algebra, Analysis, Graph Theory, Category Theory, etc., I realized I understood many t…

[deleted]
Post reply on HN