3 * [[http://www.extension.harvard.edu/ | Harvard Extension School]] -- Undergraduate courses of **Mathematics** and
4 **Educational Technologies**.
6 * [[http://www.unifi.it/ | Unviersità degli Studi di Firenze]] -- I attended only one term of
7 **Software Engineering** (computer Science exam **30/30 cum laude**).
8 In 1995, I dropped out to work for a startup in the emerging field of
11 * [[http://www.itcvolta.it/it/default.asp | Istituto Tecnico-Commerciale Alessandro Volta]] -- High-school diploma
12 in **Mathematics and Computer Science** with a rating of **56 out of 60**.
13 This course included a good amount of **Electronic Engineering**.
15 === Non-formal studies and self-teaching ===
17 To compensate for the lack of good formal education, I became a good customer of the local libraries:
19 * **Compilers**, reading plenty of textbooks such as CompilersPrinciplesTechniquesAndTools,
22 * **Algorithms** -- many, including classics such as DonaldKnuth's bible TheArtOfComputerProgramming,
23 CambridgeUniversityPress's NumericalRecipes and NicholasWirth's ancient, but still
24 brilliant, "Algorithms + Data Structures = Programs".
26 * **Operating Systems** -- Too many to mention here, most of which quite
27 theoretical and boring. Of course, my favorite will always be AdvancedProgrammingInTheUnixEnvironment.
29 * **Networking** -- Several books, including TcpIpIllustrated, several RFCs and
32 * **Programming Languages** -- All the obvious textbooks such as BjarneStroustrup's
33 SeePlusPlusProgrammingLanguage, and many others like the old SeeProgrammingLanguage,
34 ThinkingInJava, and dozens of C++ books.
36 * **Programming Techniques** -- Countless. Such as SeePlusPlusTemplateMetaprogramming
37 and the controversial ModernSeePlusPlusDesign by AndreiAlexandrescu.
38 My absolute favourite is Brian Kernighan's and Rob Pike's [[http://cm.bell-labs.com/cm/cs/tpop/ | The Practice of Programming]].
40 * **Software Architecture and Design** -- All the "must-read" classics such as
41 GangOfFour's DesignPatterns, UmlDistilled and UmlDesignPatterns.
43 * **Project Management** -- My favourites are TheMythicalManMonth and
44 [[http://c2.com/cgi/wiki?AntiPatternsBook|AntiPatterns]], but I've also read
45 [[http://www.amazon.com/Waltzing-Bears-Managing-Software-Projects/dp/0932633609|WaltzingWithBears]],
46 [[ExecutionPlainAndSimple]] and a few others.
48 * **Technical Writing** -- TheElementsOfStyle and DonaldKnuth's TheTexBook are my
49 favourites on the topics of stylish writing and typesetting.
51 * **Numerical Methods** -- I'm sorry to have quite a thin mathematical background.
52 Nevertheless, I enjoyed reading DonaldKnuth's ConcreteMathematics and
53 CambridgeUniversityPress' NumericalRecipes.
55 * **Database** -- Relational algebra, principles of schema normalization, SQL.