Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
bbguimaraes
bbguimaraes.com
Commits
c715da32
Commit
c715da32
authored
Oct 03, 2020
by
bbguimaraes
Browse files
books
parent
370cfe46
Changes
3
Hide whitespace changes
Inline
Side-by-side
bbguimaraes.com/books/books.css
0 → 100644
View file @
c715da32
.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
;
}
bbguimaraes.com/books/index.html
0 → 100644
View file @
c715da32
<!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
—
from simple unit tests to black-box
integration tests involving several components
—
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
—
but powerful
—
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>
bbguimaraes.com/index.html
View file @
c715da32
...
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment