Víctor López Ferrando

Matemàtiques, informàtica, política i divulgació.

La meua col·lecció de llibres científics i tècnics

16 de de desembre de 2018. Víctor López Ferrando.
Aquest article es pot llegir també en anglès.

Quins llibres tècnics compraríeu si tinguéssiu 1000 € per gastar? Aquesta és la pregunta que em vaig fer en assabentar-me que la meua beca de doctorat incloïa uns diners destinats a comprar material i que no m'havia gastat. Després d'uns dies de recerca, vaig elaborar una llista amb els més de 30 llibres seleccionats.

Han passat uns mesos, i ja he tingut temps de llegir-me alguns dels llibres i de fullejar la resta. Ací us deixo la meua selecció, amb un breu comentari de cada llibre.


Bioinformatics algorithms

Una meravella de llibre, que tot just ha sortit en la seva tercera edició. Explica de manera didàctica, amena i fins i tot divertida els algorismes fonamentals de diversos camps de la bioinformàtica. El llibre, disponible a la biblioteca de la UPC, em va ser de gran ajuda per preparar la Bioinformatics contest 2018, i era una adquisició necessària.


Física per a la ciència i la tecnologia

El clàssic llibre de física, amb capítols dedicats a la mecànica, gravitació, electromagnetisme, física moderna... Sempre m'ha agradat molt la física, i a l'institut vaig aprofitar i absorbir tot el que vaig poder. Aquest llibre em servirà per anar refrescant i ampliant de tant en tant aquelles matèries que em vagin interessant.


Calculus

Sovint he parlat amb companys de la carrera de matemàtiques que en la nostra època d'estudiants hauríem d'haver parat més atenció a la bibliografia de les assignatures. Estudiar basant-nos en els llibres ens hauria permès tornar anys després als mateixos llibres, que sempre estaran millor que els apunts que hàgim pogut prendre. Aquest llibre és la primera pedra per anar corregint aquell error de joventut.


Introduction to algorithms

La bíblia de l'algorísmia. Un llibre que vaig consultar extensament per preparar els concursos de programació durant l'època universitària, i que és molt més que una introducció als algorismes i les estructures de dades.


Understanding machine learning

Aquest llibre és una introducció als fonaments teòrics del machine learning, o aprenentatge automàtic. Un llibre molt ben explicat i que m'ha sigut útil per fonamentar els mètodes que he emprat en la meua tesi.


Biología molecular de la célula

Tot i ser gairebé doctor en biomedicina (bioinformàtica més concretament), els meus coneixements sobre biologia fa uns anys eren més aviat limitats. Els primers capítols d'aquest llibre em van servir per introduir-me en la matèria, i en general m'ha servit com a llibre de consulta per anar resolent els dubtes que m'anaven sorgint.


Principles of biochemistry

La bíblia de la bioquímica, un llibre que té tot el que mai necessitaré saber pel que fa a aquesta matèria.


Lewin's genes XII

Un llibre de genètica que no coneixia abans de fer aquesta cerca. Tenia molt bones crítiques i és un bon complement als anteriors llibres de biologia i bioquímica.


The C Programming Language

Segurament C és el llenguatge de programació més influent de la història. Aquest llibre, un dels autors del qual és el creador de C, és el clàssic manual d'aquest llenguatge.


Expert C Programming

Si bé el llibre anterior és la referència bàsica de C, per anar més enllà i ser capaç d'escriure bon C, cal alguna cosa més. Aquest llibre conté desenes de trucs, bones pràctiques, etc. que ens ajuden a fer-ho millor.


CODE: The Hidden Language of Computer Hardware and Software

Interessant i entretingut llibre divulgatiu que resumeix la història de la informàtica, de tots els avenços que han convergit en la creació els ordinadors.


Programming Collective Intelligence

Com tria Google les pàgines web rellevants per una cerca donada? Com sap Netflix quines pel·lícules ens poden agradar? Com ens recomana Facebook amics? Aquest llibre, amb un títol peculiar, tracta els algorismes que han pres gran rellevància des del naixement de la web.


Competitive Programming 3

Una autèntica joia, que tant de bo hagués existit quan jo era estudiant! Els seus autors, mestres dels concursos de programació, condensen en aquest llibre anys i anys d'entrenament, pràctica i estudi. En ell tracten tots els temes relatius a les competicions de programació: algorismes, estructures de dades, trucs en la implementació, teoremes i propietats matemàtiques rellevants, i molt més.


Computer Networks

La bíblia de les xarxes de computadors. La veritat és que jo no coneixia aquest llibre, però el meu company Pau me'l va recomanar; ell sempre recorda una lliçó d'aquest llibre: no podem menysprear l'amplada de banda que correspon a una furgoneta plena de discs durs.


Deep learning with Python

El deep learning, és a dir, l'aprenentatge automàtic basat en xarxes neuronals de moltes capes, ha suposat una revolució els últims anys en el món de la intel·ligència artificial. Els avenços han sigut tan ràpids, que avui en dia és factible emprar Python per entrenar els teus models, i fins i tot pots fer-ho a casa si et compres una bona targeta gràfica. Aquest llibre, escrit per l'autor de Keras, un dels frameworks més populars, ens introdueix a aquest món, començant pels fonaments i passant aviat a la pràctica. Val a dir també que el llibre està molt ben escrit.


Effective C++

Un llibre que he consultat molts cops en PDF i que tenia ganes de tenir. Amb aquest llibre milers de programadors han millorat el seu coneixement de C++ i han passat de fer les coses, a fer-les millor.


Effective Modern C++

El complement necessari al llibre anterior. C++ ha introduït grans canvis els últims anys, i Scott Meyers ens resumeix el bo i millor d'aquests canvis. Especialment interessant són els capítols dedicats a la programació concurrent.


The Go Programming Language

Go és un llenguatge de programació molt interessant, que brilla en termes de simplicitat i concurrència. Està especialment pensat per projectes en què treballen diverses persones, codis llargs on cal seguir les convencions i l'eficiència és important. Aquest llibre és una introducció completa al llenguatge. Curiosament, Brian W. Kernighan ja vas ser coautor del llibre The C Programming Language.


RTFM: Red Team Field Manual

RTFM (normalment Read The Fucking Manual) és la frase que em solia dir el meu amic Alberto quan li preguntava per enèssima vegada per alguna opció de la comanda grep. Aquest llibre conté un catàleg de centenars de comandes d'una varietat de temàtiques: Windows, *nix, xarxes, web, trucs... La majoria de les comandes són desconegudes per a mi, i per això suposa una font interessantíssima d'informació.


Command Line Kung Fu

Un llibre més bàsic que l'anterior, però que ens dóna un bon fonament per començar a treballar eficaçment amb la línia d'ordres.


The Hitchhiker's Guide to Python

Aquesta guia de Python, escrita per l'autor de paquets tan populars com requests, més que una guia sobre el llenguatge, és una guia sobre bones pràctiques pel que fa a la gestió dels projectes: com organitzar-los, gestionar les dependències, empaquetar llibreries, etc. Segurament és un llibre que quedi obsolet en pocs anys, però de moment és rellevant.


JavasScript: The Good Parts

Aquest llibre, publicat el 2006, ha sigut enormement influent en el ressorgiment del llenguatge JavaScript. JavaScript, un llenguatge que va ser ideat pràcticament en un cap de setmana, s'ha convertit en un dels llenguatges més emprats els últims anys. En tan sols 100 pàgines, l'autor és capaç de presentar les fortaleses de JavaScript, ajudant el programador a evitar els problemes, i deixant molt ben parat el llenguatge com a tal.

Els últims anys, però, hi ha hagut canvis molt importants en l'estàndard d'aquest llenguatge, i seria molt interessant que l'autor publiqués una segona edició actualitzada.


Working Effectively with Legacy Code

Com es treballa amb codis antics? Per sort, molta gent s'ha trobat amb aquesta situació anteriorment i la seua experiència ens serveix a la resta per enfrontar-nos a aquests reptes. Aquest és un dels llibres més rellevants pel que fa a aquesta temàtica.


Refactoring: Improving the Design of Existing Code

Jo definiria refactoritzar com canviar un codi per un altre que fa el mateix, però que d'alguna forma és millor. Aquest llibre aprofundeix en aquest concepte, i ens ofereix desenes d'exemples i patrons per detectar codis candidats a ser refactoritzats.

El llibre té els seus anys, i està especialment centrat en el llenguatge Java i el paradigma de la programació orientada a objectes, no obstant això, té lliçons atemporals que es poden aplicar a tots els escenaris. Curiosament, s'acaba de publicar una nova edició que canvia aquest enfocament.


Mastering Regular Expressions

Les expressions regulars són tot un món, i aquest és el llibre recomanat per tothom per aprendre a utilitzar-les bé. Recordo el meu amic Rafa que escrivia infernals línies de xino, com ell deia, i que eren capaces de detectar complicats patrons. Òbviament no es tractava de xinès, sinó d'expressions regulars; espero que aquest llibre m'ajudi a dominar-les.


Pro Git

Des de fa uns quants anys, jo, i la pràctica totalitat dels programadors, usem Git diàriament per gestionar les versions dels nostres programes i projectes. Git va ser revolucionari: un sistema de control de versions distribuït, amb garanties criptogràfiques, rapidíssim... i lliure. Aquest llibre ens porta més enllà del pull, add, commit, push, i ens ajuda a traure tot el suc a aquesta genial eina.


Programming Pearls

Aquest llibre, que ja vaig fullejar en PDF fa uns anys, conté autèntiques perles de la programació. L'autor ens planteja històries i alguns reptes, uns més senzills que d'altres, i l'acompanyem en l'exploració de diverses solucions que ens mostren la bellesa que senzills problemes poden amagar.


The Rust Programming Language

Rust és un dels llenguatges de programació més interessants actualment. És revolucionari en la gestió de la memòria, posant la seguretat per davant de tota la resta, però mantenint l'eficiència. Aquesta és la segona edició del llibre oficial d'introducció al llenguatge. Tot i que està disponible en línia, sempre m'ha sigut més útil poder fullejar un llibre d'aquest estil en paper.

The Contest Problem Book VII, VIII, IX


Com a promotor de la Contrarellotge matemàtica sempre estic buscant problemes. Aquests tres llibres recullen centenars de problemes matemàtics que han aparegut a les American Mathematics Competitions, les Proves Cangur americanes.


Doing Science

Un llibre amb una portada atroç però que conté interessants recomanacions i reflexions pel que fa a la recerca i la seua comunicació. Repassa aspectes crucials com la recollida de dades, l'anàlisi estadística, l'escriptura, les taules, figures... tot ben contextualitzat històricament i amb exemples aclaridors. Un llibre que recomanaria a qualsevol persona que s'inicie en la recerca.


The Elements of Style

Un clàssic de l'escriptura (en anglès). Escrit fa 100 anys, comprén tot un seguit de recomanacions pel que fa a l'escriptura que segueixen sent del tot vigents. Un llibre que ha sigut recomanat per centenars de periodistes, escriptors, editors... un complement ideal a On writing well, que em vaig llegir fa uns mesos, i que em serà de gran ajuda a l'hora d'escriure la tesi.