Top Books

We collected top books from hacker news, stack overflow, Reddit, which are recommended by amazing people.

Top Books

We collected top books from hacker news, stack overflow, Reddit, which are recommended by amazing people.

https://www.amazon.com/Programming-Language-Brian-W-Kernigha...

I'd also learn SICP: https://www.amazon.com/Structure-Interpretation-Computer-Pro...

and algorithms from either CLRS https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press... or Skiena Algorithm Design https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...

http://www.amazon.co.uk/gp/product/1848000693/

I've also heard

The Algorithm Design Manualrecommended, although I haven't read it and don't own a copy. http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/...https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...

It's nearly a third of the length of CLRS, and half of Sedgwick. Much more precise, yet offers more in that it talks about common problem solving uses cases with data structures and algorithms, rather than writing going through the theoretical proofs behind them.

A CS degree is useful for a software engineer, but most of what you learn is only tangential to software engineering. Many of the best engineers are self taught.

That said, some of the basic stuff from CS is pretty useful. I'd definitely encourage you to learn data structures and algorithms. Just pick up a good textbook and go through it! (I like to recommend this one: https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...).

Another suggestion I have is to seriously think about

whyyou want to do work in lower level stuff. The large majority of jobs are in web development right now, so trying to avoid that really limits your options. There's really nothing more sophisticated or interesting going on at the low levels. I've seen a lot of people come into a software engineering career with preconceptions about exactly what sort of work they want to do, and at the end of the day, I don't think those preconceptions have made any of them happy.To me the best book I've found (so far) for understanding data structures is Steven Skiena's The Algorithm Design Manual.

Aside from the first part covering algorithm analysis, algorithm & data structures the second part is absolutely invaluable in finding (or at least narrowing down) the proper data structure/algorithm for solving a problem.

I'm currently running Skiena cover to cover...it's very good so far...

If you're having problems understanding the Dijkstra's Algorithm for Shortest Paths in Graphs, you can check this link. It also has some pseudocode that might be helpful.

Also, here is a fine video lecture on shortest paths, by Steven Skiena, the author of The Algorithm Design Manual. By the way, this is an amazing book on algorithms that I recommend to everyone! It contains a wide variety of data structures and algorithms, and on the second part of the book, it has a humongous collection of problems (one pagers) with various ways/algorithms to solve them.