# Useful resources ## Algorithms [Log Structured Merge Trees](http://www.benstopford.com/2015/02/14/log-structured-merge-trees/) [Algebraic patterns - Semigroup](http://philipnilsson.github.io/Badness10k/posts/2016-07-14-functional-patterns-semigroup.html) [EXACT STRING MATCHING ALGORITHMS](http://www-igm.univ-mlv.fr/~lecroq/string/index.html) [A Memory Allocator](http://g.oswego.edu/dl/html/malloc.html) ## Tips [Falsehoods programmers believe about time](http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time) [GCC optimizations for embedded software](http://events.linuxfoundation.org/sites/events/files/slides/elc14_raj.pdf) ## Python programming [Useful libraries for data science in Python · GitHub](https://github.com/rasbt/pattern_classification/tree/master/resources) [Example Google Style Python Docstrings](http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html) [Welcome to Bokeh](http://bokeh.pydata.org/en/latest/) ### Videos [SciPy 2016: "Data Science is Software" tutorial](http://isaacslavitt.com/2016/07/20/data-science-is-software-talk) ## C++ programming [Don’t be Afraid of Returning by Value, Know the Return Value Optimization](https://blog.knatten.org/2011/08/26/dont-be-afraid-of-returning-by-value-know-the-return-value-optimization/) [Copy elision](http://en.cppreference.com/w/cpp/language/copy_elision) ## C programming [Bit Twiddling Hacks](https://graphics.stanford.edu/~seander/bithacks.html) [The Lost Art of C Structure Packing](http://www.catb.org/esr/structure-packing/) [Memory management in C programs](http://nethack4.org/blog/memory.html) [Const and Optimization in C](http://nullprogram.com/blog/2016/07/25/) [You Can't Always Hash Pointers in C](http://nullprogram.com/blog/2016/05/30/) [Four Ways to Compile C for Windows](http://nullprogram.com/blog/2016/06/13/)