Resources for mathematician turned SW engineer?

4 points by emotinium ↗ HN
Hello!

I have a background in mathematics, and I am currently embarking on a career as a SW engineer. I have some experience working as as a software developer previously, and I am familiar with many CS concepts. However, I feel that I want to brush up on this knowledge and build a more solid base for myself.

Thus, I am interested in some resources to learn/re-learn more about CS, everything from foundational concepts to more practical (e.g. how does a computer work at the hardware level). Any resources particularly ”geared towards” mathematicians would be especially interesting!

Can anyone help me out? Thanks in advance!

4 comments

[ 1390 ms ] story [ 595 ms ] thread
I don't think that your background changes things all that much. A good textbook/course on something from CS (DS&A, compilers, operating systems etc) is a good resource regardless of whether you have a math degree, or an English degree, or no degree.
> Thus, I am interested in some resources to learn/re-learn more about CS, everything from foundational concepts to more practical (e.g. how does a computer work at the hardware level).

For information on how the computer works at hardware level and how software interacts with it, following two free courses will help:

https://www.coursera.org/learn/build-a-computer

https://www.coursera.org/learn/nand2tetris2

As you have background in mathematics, any book on algorithms will be an easy read for you. For data-structures the free https://opendatastructures.org book should suffice.

For languages, if you have mathematics background, then start with functional programming e.g. Haskell, Clojure. And also start with Python.

That is all it is to CS ;)

For domain specific, then you will have to look at specific text or courses e.g. machine learning, graphics, databases, distributed systems, operating systems etc.

My broken record response, Knuth's Art of Computer Programming.

Maybe it won't be for you. That's true for every book.

Maybe it isn't for you right now, but you might grow into it...and isn't that the point?

The reason I think it is the place to start is because Knuth is a good standard for against which to evaluate other programming books.

Good luck.