Más de 40 libros para diseñadores y desarrolladores

El artículo 40+ Books For Professional Design & Development publicado en Smashing Magazine recoge más de 40 libros esenciales para los diseñadores y desarrolladores. De todos esos libros he leído (y los recomiendo):

  • Designing with Web Standards, de Jeffrey Zeldman.
  • Don’t Make Me Think: A Common Sense Approach to Web Usability, de Steve Krug.
  • Prioritizing Web Usability, de Jakob Nielsen y Hoa Loranger.

Web Programming Step by Step

No tengo este libro, pero lo recomiendo a partir de su tabla de contenidos: Web Programming Step by Step.

Este libro sigue una estrategia de enseñanza de la programación web muy similar a la que yo empleo:

CHAPTER 1 THE INTERNET AND WORLD WIDE WEB

  • 1.1 WHAT IS THE INTERNET?
    • History
    • People and Organizations
    • Technologies
  • 1.2 THE WORLD WIDE WEB (WWW)
    • Clients and Servers
    • URLs and DNS
    • Hypertext Transmit Protocol (HTTP)
    • Languages of the Web

CHAPTER 2 HTML BASICS

  • 2.1 BASIC HTML
    • History
    • Page Structure
    • Block Elements
    • Inline Elements
  • 2.2 MORE HTML ELEMENTS
    • Lists
    • Tables
    • Quotations
    • Pre-Formatted Text
    • A Few Miscellaneous Elements
    • Audio and Video
  • 2.3 WEB STANDARDS
    • Why Follow Web Standards?
    • The W3C HTML Validator
    • Web Page Metadata

CHAPTER 3 CSS FOR STYLING

  • 3.1 BASIC CSS
    • CSS Syntax
    • Applying CSS to a Web Page
    • Color Properties
    • CSS Comments
  • 3.2 CSS PROPERTIES
    • Font Properties
    • Text Properties
    • Background Properties
    • List Properties
    • Table Properties
  • 3.3 MORE CSS SYNTAX
    • Style Inheritance and Conflicts
    • IDs and ID Selectors
    • Classes and Class Selectors
    • Pseudo-class Selectors
    • W3C CSS Validator
  • 3.3 CASE STUDY: TRAVELER TIMES REVISITED
    • HTML Content
    • Fonts and Colors
    • Text and List Properties
    • Targeting Elements with IDs and Classes
    • Final File Contents

CHAPTER 4 PAGE LAYOUT

  • 4.1 STYLING PAGE SECTIONS
    • Page Sections (div et al)
    • Spans of Text (span)
    • CSS Context Selectors
  • 4.2 INTRODUCTION TO LAYOUT
    • The CSS Box Model
    • Default Styles
    • Finding Box Model Problems with Firebug
  • 4.3 FLOATING ELEMENTS
    • The float Property
    • The clear Property
    • Making Floating Elements Fit
    • Multi-Column Layouts
  • 4.4 SIZING AND POSITIONING
    • Width and Height
    • Positioning
    • Z-indexing
    • Element Visibility
  • 4.5 CASE STUDY: ULTIMATE FRISBEE
    • Page Sections and General Styles
    • Images, Headings, and Lists
    • Page Layout
    • Final File Contents

CHAPTER 5 PHP

  • 5.1 SERVER-SIDE BASICS
    • Lifecycle of a Web Request
    • Introduction to PHP
  • 5.2 PHP BASIC SYNTAX
    • Syntax Errors
    • The print Statement
    • Types
    • Arithmetic
    • Variables
    • Strings
    • Comments
    • Boolean Logic
    • Control Statements
    • Errors and Debugging
  • 5.3 EMBEDDED PHP
    • Embedding PHP in HTML
    • Expression Blocks
  • 5.4 ADVANCED PHP SYNTAX
    • Functions
    • Including Files
    • Arrays
    • The foreach Loop
    • File I/O
    • Classes and Objects
  • 5.5 CASE STUDY: WORD OF THE DAY
    • Index Page
    • Word Definition Page
    • Final File Contents

CHAPTER 6 FORMS

  • 6.1 FORM BASICS
    • Parameterized Pages and Query Strings
    • A Simple Form
  • 6.2 FORM CONTROLS
    • Text Boxes
    • Checkboxes and Radio Buttons
    • Labels
    • Drop-down Menus and Lists
    • Reset Buttons
    • New Form Controls in HTML5
    • Grouping Controls (Field Sets)
    • Styling Forms
  • 6.3 SUBMITTING DATA
    • URL-encoding
    • Hidden Input Parameters
    • HTTP Requests: GET vs. POST
    • Uploading Files
  • 6.4 PROCESSING FORM DATA IN PHP
    • Superglobal Associative Arrays
    • Working with $_GET and $_POST
    • Processing Uploaded Files
  • 6.5 CASE STUDY: VOCAB QUIZ
    • Selecting Random Words
    • Submitting Guesses
    • Final File Contents

CHAPTER 7 WEB DESIGN

  • 7.1 USER-CENTERED DESIGN
    • The Typical User
    • Visual Design Concepts
    • The Design Process
  • 7.2 PAGE LAYOUT
    • General Appearance
    • Home Pages
    • Navigation and Links
    • Forms and UI Controls
  • 7.3 ACCESSIBILITY
    • Accessibility Issues
    • An Accessibility Checklist

CHAPTER 8 JAVASCRIPT

  • 8.1 KEY JAVASCRIPT CONCEPTS
    • Client-Side Scripting
    • Event-Driven Programming
    • A JavaScript Program
    • The Document Object Model (DOM)
  • 8.2 JAVASCRIPT SYNTAX
    • Types
    • Numbers and Arithmetic
    • Variables
    • Comments
    • Using DOM Objects
    • Debugging Common Errors
    • Strings
    • for Loops
    • The Math Object
    • Null and Undefined Values
  • 8.3 PROGRAM LOGIC
    • Comparison Operators
    • Conditional Statements: if/else
    • Boolean Values
    • Logical Operators
    • While Loops
  • 8.4 ADVANCED JAVASCRIPT SYNTAX
    • Scope and Global Variables
    • Arrays
    • Function Parameters and Returns
    • Input Dialog Boxes
  • 8.5 CASE STUDY: HANGMAN
    • Initial HTML/CSS Code
    • Choosing a Word with JavaScript
    • Making Guesses
    • Right and Wrong Guesses
    • Final File Contents

CHAPTER 9 THE DOCUMENT OBJECT MODEL (DOM)

  • 9.1 GLOBAL DOM OBJECTS
    • window.onload and Unobtrusive JavaScript
    • Anonymous Functions
    • The Keyword this
  • 9.2 DOM ELEMENT OBJECTS
    • Interacting with Text
    • Adjusting Styles
    • Unobtrusive Styling
  • 9.3 THE DOM TREE
    • DOM Nodes
    • Traversal Properties and Methods
    • Traversing Elements
    • Selecting Groups of Elements
    • Creating and Removing Nodes
  • 9.4 CASE STUDY: COLORED SQUARES
    • Initial HTML/CSS Code
    • Creating Squares
    • Add Squares, Change Colors
    • Clickable Squares
    • Final File Contents

CHAPTER 10 PROTOTYPE AND SCRIPTACULOUS

  • 10.1 PROTOTYPE
    • Introduction to Prototype
    • Language Improvements
    • Prototype and the DOM
    • Accessing Styles
    • Traversing the DOM
    • Prototype and Forms
  • 10.2 SCRIPTACULOUS
    • Visual Effects
    • Drag-and-Drop
    • Controls and Sounds

CHAPTER 11 EVENTS

  • 11.1 EVENT-HANDLING
    • The Event Object
    • Mouse Events
    • Keyboard and Text Events
    • Form Events
    • Page Events
    • Timer Events
  • 11.2 CASE STUDY: MULTIPLICATION QUIZ
    • Initial HTML/CSS Content
    • Problems and Guesses
    • Time Limits
    • Final File Contents

CHAPTER 12 AJAX, XML, and JSON

  • 12.1 AJAX CONCEPTS
    • History and Compatibility
  • 12.2 USING XMLHTTPREQUEST TO FETCH DATA
    • Synchronous Requests
    • Checking for Ajax Errors
    • Asynchronous Requests
    • Prototype’s Ajax Features
    • Ajax Security and Debugging
  • 12.3 XML
    • What is XML?
    • XML Document Structure, Schemas, and DTDs
    • Processing XML Data
  • 12.4 JSON
    • JavaScript Object Literals
    • JSON Data Format
    • Processing JSON Data
  • 12.5 CASE STUDY: ANIMAL GAME
    • Initial HTML/CSS Content
    • Fetching Question Data Using Ajax
    • End-of-Game and Adding Polish
    • Final File Contents

CHAPTER 13 RELATIONAL DATABASES AND SQL

  • 13.1 DATABASE BASICS
    • Motivation
    • Example Database: imdb
  • 13.2 SQL
    • Connecting to MySQL
    • Database/Table Information
    • The SELECT Statement
    • Filtering Results with the WHERE Clause
    • Ordering Results: ORDER BY
    • Aggregating Data: GROUP BY, HAVING
    • Modifying Data: INSERT, EDIT, and DELETE
  • 13.3 MULTI-TABLE QUERIES
    • Cartesian Product
    • Joins
    • Keys
    • Designing a Query
  • 13.4 QUERYING A DATABASE IN PHP
    • Connecting to a Database
    • Performing Queries
    • Error Checking
    • MySQL-specific Database Functions
  • 13.5 CASE STUDY: ADVENTURE RECOMMENDER
    • Index Page
    • Adventure Recommendations Page
    • Final File Contents

CHAPTER 14 COOKIES AND SESSIONS

  • 14.1 COOKIE BASICS
    • What is a Cookie?
    • Myths About Cookies
    • Lifecycle of a Cookie
    • How Cookies are Stored
  • 14.2 PROGRAMMING WITH COOKIES
    • Cookies in PHP
    • Cookies in JavaScript
    • A JavaScript Cookie Library
  • 14.3 SESSIONS
    • Lifecycle of a Session
    • Sessions in PHP
  • 14.4 CASE STUDY: USER LOGIN SYSTEM
    • Basic HTML/CSS Content
    • User Login Page
    • Grades and Teachers Pages
    • Restricting Access
    • Logging Out
    • Adding “Flash” Messages
    • Final File Contents

CHAPTER 15 WEB SECURITY

  • 15.1 SECURITY PRINCIPLES
    • Threats and Attacks
    • Thinking Like an Attacker
    • The Security Mindset
  • 15.2 CROSS-SITE SCRIPTING (XSS)
    • A Typical XSS Attack
    • Defending Against XSS
  • 15.3 VALIDATING INPUT DATA
    • Client-Side Validation
    • Server-Side Validation
    • Regular Expressions
    • Regular Expressions in HTML
    • Regular Expressions in PHP
    • Regular Expressions in JavaScript
  • 15.4 SQL INJECTION
    • Typical SQL Injection Attacks
    • Defending Against SQL Injection
  • 15.5 SESSION-BASED ATTACKS
    • Session Hijacking
    • Cross-Site Request Forgery (CSRF)
    • Defending Against CSRF

Ejercicios resueltos sobre Programación y estructuras de datos

No es un libro sobre programación web, pero como soy autor del libro y el blog es mío, ahí va la publicidad…

Acaba de salir a la venta el libro Ejercicios resueltos sobre Programación y estructuras de datos, publicado por el Servicio de Publicaciones de la Universidad de Alicante con ISBN 978-84-9717-295-0.

portada-ejercicios-ped

La reseña del libro dice:

En el libro se recogen una colección de ejercicios y preguntas de test resueltos que abarcan todos los tipos de datos estudiados en el temario de la asignatura. Se engloban en cuatro grandes bloques: tipos lineales (vectores, listas, pilas y colas); tipo árbol (árbol binario, árbol binario de búsqueda, árbol enhebrado, árbol AVL, árbol 2-3, árbol 2-3-4, árbol B y árbol rojo-negro); tipo conjunto (tablas de dispersión y colas de prioridad); tipo grafo.

El problema fundamental en el diseño e instrumentación de grandes proyectos o aplicaciones informáticas es reducir su complejidad. Los atributos que permiten simplificar dicha complejidad son los siguientes: legibilidad, corrección, eficiencia, facilidad de mantenimiento y reutilización. A través de la abstracción de datos se pueden obtener estos objetivos.

Los autores, pertenecientes al Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Alicante, tienen una dilatada experiencia docente y en estas páginas intentan que el lector adquiera las técnicas y habilidades necesarias para poder resolver con éxito cualquier ejercicio planteado sobre estructuras de datos.

¡No todo en este mundo es programación web, también enseño otras cosas!

El libro tiene un sitio web: estructurasdedatos.es

100 trucos para PHP

El libro Plug-in PHP: 100 Power Solutions ofrece interesantes “trucos” o soluciones para diferentes situaciones que se pueden dar al desarrollar una aplicación web. Los trucos están agrupados en las siguientes categorías, y se pueden descargar de la web del libro:

  1. Building a Development Server
  2. PHP and Plug-ins
  3. Text Processing
  4. Image Handling
  5. Content Management
  6. Forms and User Input
  7. The Internet
  8. Chat and Messaging
  9. MySQL, Sessions and Cookies
  10. APIs, RSS and XML
  11. Incorporating JavaScript
  12. Diverse Solutions

Rocket Surgery Made Easy

Rocket Surgery Made Easy, de Steve Krug, es la continuación del famoso libro Don’t Make Me Think. Este libro está dedicado principalmente a la realización de tests de usuarios “do’it-yourself” o “hazlo tú mismo”. En la página web del libro podemos encontrar recursos interesantes para plantear un test de usuario:

  • Usability test script: instrucciones para iniciar un test de usuario.
  • Recording consent form: consentimiento para realizar una grabación durante un test de usuario.
  • Checklists: listas de verificación de cosas que se deben hacer tres (dos, una) semana antes del test, durante el test y después del test.
  • Instructions for Observers: instrucciones para los observadores de un test de usabilidad.

Don’t Make Me Think

El libro Don’t Make Me Think, de Steve Krug, es ya un clásico de la usabilidad que he vuelto a releer después de varios años de haberlo leído por primera vez. En la página web de la segunda edición se pueden descargar de forma gratuita tres capítulos de la primera edición:

La verdad sobre HTML5

El libro The Truth About HTML5 (For Web Designers) promete contar aquello que otros no te cuentan.

Las cinco razones que el autor de este libro da para motivar a su lectura son:

  1. Aprende HTML5 de la forma correcta.
  2. Aprende el futuro de la web semántica.
  3. Aprende que características de HTML5 puedes utilizar hoy.
  4. Aprende que ocurre cuando Flash muere.
  5. HTML5 para gestores de contenido (CMS) y más allá de HTML5.

El contenido del libro es:

Introduction
Foreword and Introduction

Chapter 1
A Somewhat Sensationalized History Of HTML5

Chapter 2
A Basic HTML5 Web Page

Chapter 3
Structuring A HTML5 Page

Chapter 4
HTML5’s Structural Elements

Chapter 5
HTML5 Micro-Semantics And Schema.org

Chapter 6
HTML5 And SEO

Chapter 7
HTML5’s Other New Elements

Chapter 8
HTML5 Forms

Chapter 9
HTML5’s Canvas, Gaming And Flash

Chapter 10
Audio & Video In HTML5

Chapter 11
SVG. The Flash Challenger That Was, Wasn’t, & Now…

Chapter 12
HTML5 Web Apps, Mobile, & What Comes Next

Chapter 13
The Truth About The Future Of Web Design: Performance Based Design

Escribir en internet, guía para los nuevos medios y las redes sociales

El pasado jueves 20 de septiembre se presentó el libro Escribir en internet, guía para los nuevos medios y las redes sociales. El libro es un manual con numerosas recomendaciones para escribir correctamente en la red y aprovechar todas sus posibilidades. Cuenta con los consejos de más de cuarenta expertos sobre asuntos como la cortesía en la red, la correspondencia electrónica, la reputación online, la redacción de blogs, las redes sociales o los emoticonos.

Como de costumbre, alguien se ha apuntado la medalla de que este libro es “el primer manual práctico en español de uso de internet” (La RAE acoge la presentación del primer manual en español para internet). Sin embargo, desde el año 2008 está disponible de forma gratuita el libro Cómo escribir para la Web de Guillermo Franco.

Respecto al nuevo libro, existe una página con todas las referencias citadas en el libro.

Pro HTML5 Programming

El libro Pro HTML5 Programming de Apress ya va por la segunda edición. Su contenido es:

  1. Overview of HTML5
  2. Using the Canvas API
  3. Working With Scalable Vector Graphics
  4. Working with Audio and Video
  5. Using the Geolocation API
  6. Using the Communication APIs
  7. Using the WebSocket API
  8. Using the Forms API
  9. Working with Drag-and-Drop
  10. Using the Web Workers API
  11. Using the Storage APIs
  12. Creating Offline Web Applications
  13. The Future of HTML5