Commit c715da32 authored by bbguimaraes's avatar bbguimaraes
Browse files

books

parent 370cfe46
.books .book:nth-child(even) img {
float: right;
margin-left: 1em;
}
.books .book:nth-child(odd) img {
float: left;
margin-right: 1em;
}
.book {
display: inline-block;
margin-bottom: 1em;
margin-top: 1em;
}
.book img {
height: 16em;
}
.book h3 {
margin-top: 0;
}
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>books</title>
<link rel="stylesheet" type="text/css" href="../main.css" />
<link rel="stylesheet" type="text/css" href="books.css" />
</head>
<body class="w80">
<nav id="page-nav">
<a href="/"><img id="logo" src="/triangle.png" alt="root"/></a>
/
books
</nav>
<p>
A reading list containing books that were fundamental in my life/career.
</p>
<p>
Book reviews also sometimes appear in my
<a href="/blog/tags/books.html">blog</a>.
</p>
<h2 id="technical"><a href="#technical">technical</a></h2>
<p>
Code/exercises based on some of these books can be found
<a href="https://gitlab.bbguimaraes.com/bbguimaraes/books">here</a>.
</p>
<div class="books">
<div class="book">
<img src="/files/books/refactoring.jpg">
<h3>
<a href="https://martinfowler.com/books/refactoring.html">
<i>Refactoring: Improving the Design of Existing Code</i></a>,
Martin Fowler
</h3>
<p>
An introduction to the extremely effective combination of Test Driven
Development and systematic code editing procedures. This book thoroughly
describes how to structure code for robustness and how to change and evolve it
while maintaining its integrity and guaranteeing no regressions are introduced.
</p>
<p>
I had the luck of finding a copy in my university's library and reading it in
my first few semesters there: it shaped how I write and edit code from the
beginning.
</p>
</div>
<div class="book">
<img src="/files/books/unix.jpg">
<h3>
<a href="https://www.pearson.com/us/higher-education/program/Bach-Design-of-the-UNIX-Operating-System/PGM81513.html">
<i>The Design of the UNIX Operating System</i></a>,
Maurice J. Bach
</h3>
<p>
A detailed, low-level analysis of the implementation of operating systems with
examples from the early versions of Unix. Each subsystem is described, from the
hardware to the user programs: algorithms and data structures are presented,
with a generous amount of diagrams and C code.
</p>
<p>
A reference for programmers writing system code and a guide for those
interacting with it, this book is indispensable for anyone working with Unix,
the most influential operating system in history, or any of its descendants.
</p>
</div>
<div class="book">
<img src="/files/books/sicp.jpg">
<h3>
<a href="https://mitpress.mit.edu/sites/default/files/sicp/index.html">
<i>Structure and Interpretation of Computer Programs</i></a>,
Harold Abelson, Gerald Jay Sussman, Julie Sussman
</h3>
<p>
Undoubtedly the best introductory programming book for Compute Science courses.
Lisp and the rich collection of problems and exercises presented throughout the
book will fundamentally transform how a programmer views and reasons about code
and computation in general, even for those who program in different languages
and paradigms.
</p>
<p>
The full accompanying course is also available on MIT's OpenCourseWare's Youtube
<a href="https://www.youtube.com/playlist?list=PLE18841CABEA24090">channel</a>.
</p>
</div>
<div class="book">
<img src="/files/books/tdd_c.jpg">
<h3>
<a href="https://pragprog.com/titles/jgade/test-driven-development-for-embedded-c/">
<i>Test Driven Development for Embedded C</i></a>,
James W. Grenning
</h3>
<p>
A very good introduction to Test Driven Development with an emphasis on systems
programming for embedded devices. Always in a very practical manner, sample
programs of progressive complexity &mdash; from simple unit tests to black-box
integration tests involving several components &mdash; are presented along with
techniques to address the challenges inherent in designing software for
constrained hardware platforms.
</p>
</div>
<div class="book">
<img src="/files/books/effc++.jpg">
<h3>
<a href="https://www.aristeia.com/books.html">
<i>Effective Modern C++</i></a>,
Scott Meyers
</h3>
<p>
The latest revision of the mandatory reading series for C++ programmers. Each
new revision of the language (a steady process every three years now, since
C++11) has introduced powerful and expressive constructs, always building on top
of previous ones. The <i>Effective</i> series presents these new concepts in a
pragmatic way with copious code examples and is considered a reference for best
practices and guidelines among C++ programmers.
</p>
</div>
<div class="book">
<img src="/files/books/pil.jpg">
<h3>
<a href="https://www.lua.org/pil/">
<i>Programming in Lua</i></a>,
Roberto Ierusalimschy
</h3>
<p>
A programming guide for this extremely elegant language. Lua is unique in many
aspects of its design, not least of which is its simplicity. Very few &mdash;
but powerful &mdash; language constructs underlie the implementation of concepts
found in most programming languages.
</p>
<p>
This book presents common programming topics from the idiosyncratic point of
view of Lua and will teach all that is necessary for someone interested in using
it either directly or as an auxiliary scripting language in a larger program.
</p>
</div>
<div class="book">
<img src="/files/books/tlpi.jpg">
<h3>
<a href="https://www.man7.org/tlpi/index.html">
<i>The Linux Programming Interface</i></a>,
Michale Kerrisk.
</h3>
<p>
A comprehensive and detailed exposition of the entire API of the Linux kernel.
An enormous tome written by the maintainer of the kernel manual pages, walking
through every conceivable component of Linux with historical references,
comparisons to other operating systems in the Unix family, code samples, and
in-depth descriptions.
</p>
<p>
Also doubles as an intimidating artefact to be displayed on one's desk (I have
this one autographed =)
</p>
</div>
<div class="book">
<img src="/files/books/hcwocl.jpg">
<h3>
<a href="http://www.heterogeneouscompute.org/?page_id=7">
<i>Heterogeneous Computing with OpenCL</i></a>,
Benedict Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry,
Dana Schaa
</h3>
<p>
A detailed introduction to programming for heterogeneous devices, this book
presents the OpenCL language along with its C API. Additionally, each component
is contextualized with discussions of traditional architectures for CPUs,
GPUs, FPGAs, and other devices and several case studies, with accompanying
source code examples.
</p>
</div>
</div>
</body>
</html>
......@@ -55,7 +55,7 @@
</ul>
</li>
<li>
lib
<a href="books" title="books">lib</a>
<ul>
<li>
<a href="codex/" title="code experiments">codex</a>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment