Learning to Learn: Reading

From time to time, I get questions about how I read and retain as much information as I do. While it is never easy – especially with dry technical documents – there are a few strategies that I have learned along the what that I find helpful. In this post I provide some general suggestions along with some that are more useful in computer systems research. Strategies for Reading in General My chemistry and physics teacher – Dr....

August 8, 2018 · 8 min · 1548 words · Robert Underwood

Learning to Learn: C++

C++ is a huge language. It has tools form imperative, functional, object-oriented, and generic paradigms. And that leaves out the extremely fine control over things like memory allocation strategies in the standard library not generally available elsewhere. In this post, I present my learning path through C++ and offer some suggestions for learning this multi-faceted language. Order of Topics This is not intended to be an exhaustive (for that would be far too long), or optimal (for that would be context dependent) listing of the topics, but rather the path that I took through the language....

January 12, 2018 · 12 min · 2513 words · Robert Underwood

Learning to Learn: Intake

From time to time I get questions about how I stay apprised on all of the topics that I know something about. The short answer is a lot of reading and listening. I make extensive use of RSS Feeds and Podcasts as part of my information intake process. In this post, I provide the list of principles that I use to manage the list of information sources that I use....

January 1, 2018 · 4 min · 735 words · Robert Underwood

Learning to Learn: GDB

GDB is a powerful tool that is underutilized by most programmers that I’ve met. It can tell you the state of one or more running or crashed programs, and even manipulate the memory of a running process. It is an invaluable tool for understanding what is going wrong with your programs. How to get started To get the most out of GDB you need to compile your program with debug information – metadata that describes the program source....

9 min · 1728 words · Robert Underwood

Learning to Learn: MPI

MPI is the de-facto standard way to write distributed programs that run on super computers. Many have tried to replace it, but so far none of them have succeeded. Learning to use it successfully, will enable you to write powerful distributed programs. Order of Topics MPI has a minimal powerful and useful core, but really tries to completely own it’s space. I strongly reccommend reading “Using MPI” by Gropp et al....

5 min · 1034 words · Robert Underwood