Puedes encontrar cientos de libros útiles para aprender a programar, y puedes conseguirlos sin pagar ni un euro. Pero lo mejor es que también puedes hacerlo sin violar las condiciones de su copyright: ya sean libros clásicos ya agotados puestos en libre descarga por sus autores, u obras creadas desde cero bajo licencias libres (GNU Documentation o Creative Commons, en la mayoría de los casos), tienes auténticas joyas a tu disposición. Hemos seleccionado para ti algunas de ellas:
'Fundamentos de sistemas operativos', de VVAA (en español)
"Este libro, diseñado para servir como bibliografía para un curso de Sistemas Operativos para licenciatura, presenta las principales áreas en que se divide el trabajo de un sistema operativo".
Los autores de este libro (disponible en PDF, aunque su web incluye también código fuente de ejemplo y otro material adicional) son 4 académicos de distintas universidades hispanoamericanas.
97 cosas que todo programador debería saber, de VVAA (en español)
Esta traducción al español del libro '97 Things Every Programmer Should Know', contiene todo tipo de consejos y recomendaciones para los profesionales de la programación de software: refactorización, código limpio, pruebas, aprendizaje continuo, etc. Disponible en formato web.
'Pro Git', de Scott Chacon (en español)
Escrito por el cofundador de GitHub Scott Chacon y por el desarrollador de Zendesk Ben Straub, este ebook (alojado en la propia web oficial de Git) sirve como completa introducción a este sistema de control de versiones que hoy en día constituye una herramienta básica para cualquier programador. Disponible en formato web, PDF y ePub.
'Git Immersion' de Jim Weirich (en español)
"Git Immersion es un tour guiado que nos lleva por los fundamentos de Git, inspirado en la premisa de que, para conocer algo, hay que hacerlo. […] El camino más seguro para dominar Git es sumergirse en sus utilidades y comandos, para experimentar de primera mano".
El autor de este libro fue Jim Weirich, un desarrollador de software que tuvo un papel fundamental en el ecosistema Ruby, siendo el creador de herramientas como Rake y Builder, y del sistema de gestión de paquetes RubyGems. Disponible en formato web.
'Open-Source Introduction to Bash Scripting Ebook/Guide', de Bobby Iliev (en inglés)
"No importa si eres un ingeniero de DevOps / SysOps, un desarrollador o simplemente un entusiasta de Linux, puede recurrir a los scripts de Bash para combinar diferentes comandos de Linux y automatizar así tareas diarias aburridas y repetitivas para poder concentrarte en cosas más productivas y divertidas".
El autor (co-fundador de Dev Dojo y community manager de Digital Ocean) de este libro se centra, durante los primeros capítulos, en dotarnos de una base sólida en Bash scripting, y sólo entonces pasa a revisar ejemplos de casos de uso. Está disponible en formato PDF (y —esto es nuevo— con modos 'oscuro' y 'claro').
'An Introduction to C & GUI Programming', de Simon Long (en inglés)
Este libro constituye una introducción a la programación de interfaces gráficas en C, en la que la primera parte —pensada para principiantes absolutos— nos introduce en el uso del lenguaje, y la segunda se centra en enseñarnos a crear aplicaciones de escritorio para Raspberry Pi OS —la distribución Linux 'oficial' de las RPi— usando la biblioteca GTK. El autor es un ingeniero de software que trabaja para la Raspberry Pi Foundation.
'C Elements of Style', de Steve Oualline (en inglés)
'C Elements of Style' es, ante todo, una 'guía de estilo', que aborda los principios que debe seguir un buen programador de C/C++ para escribir código elegante que pueda ser fácilmente leído, entendido y mantenido por otros. Para ello, concede gran importancia a cómo se escriben los comentarios, pero también a aspectos como los nombres de variables, la organización de directorios o la elaboración del 'makefile'. La versión disponible para descarga es una versión abreviada del libro impreso (y agotado) homónimo.
'How to make an Operating System', de Samy Pessé (en inglés)
'How to make an Operating System' es un libro que nos enseña a codificar en C/C++ un sistema operativo de ordenador desde cero. ¿El objetivo? Crear un sistema operativo muy sencillo, basado en Unix, que sea capaz de arrancar el equipo, iniciar una shell de usuario y ser extensible. Su autor es un co-fundador de la plataforma GitBook.
'The Boost C++ Libraries', de Boris Schäling (en inglés)
Las 'bibliotecas Boost' son un conjunto de bibliotecas libres y multiplataforma, preparadas para extender las capacidades del lenguaje de programación C++. En este libro, escrito por el autor de las mismas, se nos presentan y explican hasta 72 de ellas, a través de 430 ejemplos de código que ilustran la utilidad y usos de cada una. Disponible en formato web.
'Aprendizaje Rust', de VVAA (en español)
Si alguna vez has buscado ebooks sobre programación en Internet, probablemente hayas topado en algún momento con las guías de RIP Tutorial, un proyecto de la compañía ZZZ Projects que crea libros con contenidos extraídos de aportaciones de los usuarios en Stack Overflow. Y posiblemente una de las guías más celebradas de esta colección sea la dedicada a la joven promesa por excelencia entre los lenguajes de programación: 'Aprendizaje Rust'. Disponible en formato PDF.
'Desarrollando con Java 8: Poker', de David Pérez Cabrera (en español)
El autor de 'Desarrollando con Java 8: Poker' —desarrollador de software en Telefónica— aborda la enseñanza de la programación en Java de un modo ciertamente original: eligiendo como objetivo la creación de una aplicación de póquer, que permite revisar aspectos del lenguaje que van desde la codificación de algoritmos a la interfaz gráfica, pasando por la gestión de eventos y concurrencia. Disponible en formato PDF, ePub y MOBI.
'Python para todos: Explorando la información con Python 3' de Charles R. Severance (en español)
"El objetivo de este libro es proporcionar una introducción a la programación […] orientada resolver problemas de análisis de datos comunes en el mundo de la informática".
Parte de 'Python para todos', usado como texto de referencia en varios cursos online (de Coursera, edX o CodeMentor) se basa, a su vez, en otro más antiguo, también con licencia CC y con traducción al español ('Cómo Pensar como un Informático: El aprender con Python'). Disponible en versión web, PDF y EPUB.
'Automate the Boring Stuff with Python' / 'The big book of small Python projects' de Al Sweigart (en inglés)
¿Qué pasaría si pudieras lograr que tu ordenador hiciera por ti todas esas pequeñas-pero-tediosas tareas que normalmente pierdes horas haciendo a mano? Cambiar el nombre de archivos o carpetas, actualizar o dar formato a miles de celdas en hojas de cálculo, dividir o fusionar PDFs, rellenar formularios, hacer webscrapping…
En 'Automate the Boring Stuff with Python', nos enseñarán a solventar paso a paso problemas como estos, incluso si empezamos la lectura sin conocimientos previos de programación… y en su secuela 'The big book of small Python projects' (disponible en la misma web) el autor continuará abordando casos prácticos similares.
"No pases tu tiempo haciendo el trabajo que un mono bien entrenado podría hacer".
'Python Data Science Handbook', de Jake VanderPlas (en inglés)
Uno de los campos en los que Python destaca por méritos propios es el de la ciencia de datos. Si estás interesado en éste, descubrirás que este manual publicado por la reputada editorial O'Reilly —y escrito por un ingeniero de software de Google Research— es magnífico para aprender a abordar problemas cotidianos como la manipulación y limpieza de datos, su visualización, o su uso en modelos estadísticos y de aprendizaje automático.
Además, se aborda la instalación y uso de programas como iPython, Jupyter, NumPy, Scikit-Learn o Matplotlab. Disponible en formato web… y en cuadernos Jupyter / Colab.
'Invent Your Own Computer Games with Python', de Al Sweigart (en inglés)
En 'Invent Your Own Computer Games with Python', cada capítulo te proporciona el código fuente completo de un nuevo juego (Adivina el Número, El Ahorcado, Tic Tac Toe, Reversi…), y luego va repasando los conceptos de programación mediante ejemplos. Se aborda el uso del framework Pygame, destinado a facilitar el desarrollo de juegos con gráficos 2D. Escrito por el autor de 'Automate the Boring…'.
"JavaScript, ¡Inspírate!", de Ulises Gascón González (en español)
Un libro de programación sencillo y accesible, que nos introduce en cómo programar con pseudocódigo antes de enseñarnos JavaScript propiamente dicho, y que termina abordando temas como las peticiones AJAX o la manipulación dinámica del DOM. Su autor es miembro del Grupo de Trabajo de Seguridad del Ecosistema Node.js. Disponible en PDF.
"Eloquent Javascript", de Marijn Haverbeke (en español)
"JavaScript está en el corazón de casi todas las aplicaciones web modernas […] no es un juguete, es un lenguaje flexible y complejo que se puede usar para crear aplicaciones a gran escala. 'Eloquent JavaScript' se sumerge en este floreciente lenguaje y te enseña a escribir código que tan elegante como efectivo".
"Al sumergirte en el código de ejemplo y fomentar la experimentación desde el principio, el autor te da rápidamente las herramientas que necesitas para construir tus propios programas". Una advertencia, sin embargo: la traducción al español está incompleta, por lo que quizá prefieras echar un vistazo al original en inglés.
'Dive intro HTML5' por Mark Pilgrim
Mark Pilgrim fue investigado por el FBI en 1992 por crear y distribuir un virus. Luego trabajó en IBM y Google, y ahora es desarrollador de software en Brave. Y en este libro nos ofrece una introducción legible y amena al estándar HTML5 y a la historia de su evolución. Disponible en formato web (obviamente).
'Adaptive Web Design', de Aaron Gustafson (en inglés)
Aaron Gustafson, quien trabaja en Microsoft como 'Web Standards Advocate', dio forma con esta obra al concepto de 'diseño web adaptado' como una categoría que incluía el diseño 'responsive' (pero pretendía ir más allá) y que vinculaba con la filosofía de la 'mejora progresiva'. 'Adaptive Web Design' aborda HTML, CSS, JavaScript y nociones de accesibilidad.
'How To Code in Node.js', de Digital Ocean (en inglés)
El popular proveedor cloud Digital Ocean publica gran cantidad de artículos sobre programación en su blog. En este caso, ha recopilado aquellos que publicó sobre la programación con Node.js en un ebook que constituye una gran introducción a este entorno. Revisaremos cómo crear clientes HTTP o servidores web. 'How To Code in Node.js' está disponible en formato web, PDF y ePub.
Ver 4 comentarios