December 15, 2009

A developer’s library (C++ Edition)

Filed under: Computer Science — Tags: , , , — vecano @ 11:13 am

Several years ago, on February 2, 2005, I attended a presentation by Edward Keenan during a meeting of the Chicago Chapter of the ACM. The title of the presentation was “Game Development: Real-World Skills Needed to Excel in this Industry”. From the summary:

This presentation will shed light on several key misconceptions about software development in the video game industry. Examples will provide insights on the difficulties of developing software for software programmers.

Trends, tools and work environments for the next generation of game consoles such as the XBox-360 and PS3 will be discussed. A roadmap to transform students as well as seasoned software developers to build these critical skills necessary to enter this exciting field will be presented.

The presentation was very informative for someone wanting to go into video game development. At the end, Mr. Keenan distributed sheets with a list of computer book titles divided in three aspects of programming, as shown below. The list is an excellent library  for the novice or practicing programmer. Given the video game bias, the “Language” area is for C++, but the books in the other two areas can be read independent of programming language. Below I’ve also included a scan of the original sheet.

  1. Design & Architecture
  2. Process
  3. Language

Book list for development skills

At the end of the presentation someone asked Mr. Keenan if he had any more book recommendations and he replied that this list should provide years of reading material (or something to that effect). Despite that, I’d like to add two helpful books to the “Practice” area: The Practice of Programming and The Art of Unix Programming. And although, this last one has UNIX in its title, it has information that is applicable more generally outside the UNIX tradition.

The books on the “Language” area assume the mastery of at least the fundamentals of C++. If this is not the case, I would recommend the following books:

December 13, 2009

So you want to be a webmaster/developer… and you know Spanish

Filed under: Web Development — Tags: , , , , , — vecano @ 7:14 pm

Recently someone pointed me to Librosweb which has several books on HTML, CSS, Javascript and AJAX. You can read them online or download them as PDFs. The only catch is that they are written in Spanish.

They are provide under a Creative Commons Attribution-Noncommercial-No Derivative Works License. A webmaster-to-be should probably read the books in this order:

  1. Introducción a XHTML
  2. Introducción a CSS
  3. Introducción a JavaScript
  4. Introducción a AJAX

These books are complemented with several books on Symfony (a PHP web framework). So together, they should provide a good foundation for a webmaster, or a front-end or back-end web developer. There is also a book on advanced CSS (CSS avanzado) and a CSS reference book (Referencia de CSS 2.1).

Many other web frameworks exist besides Symphony. In PHP you have: CakePHP, CodeIgniter, Zend Framework, among others. In Python: Django, Pylons, TurboGears, etc. Ruby on Rails in Ruby. And others in other languages.  My favorite is Django. But more info on web application frameworks in a future post.

Although similar free resources must exist in English, I like this website because they have all of the information in one place, and the books provide just enough information which should allow you to do a multitude of web-related projects.

A similar “curriculum” in English, would probably go like this:

  1. HTML & XHTML: The Definitive Guide or HTML, XHTML, and CSS
  2. CSS: The Definitive Guide
  3. JavaScript: The Definitive Guide
  4. Ajax: The Definitive Guide

You can almost never go wrong with O’Reilly, which consistently publishes high-quality books. The “Definitive Guide” books will be more comprehensive references than the Spanish books but also much longer.

As for Symfony, it’s website has a wealth of documentation available in English, and some of it is available in other languages, including Spanish.