January
- Matemàtica discreta. UOC. (2nd time)
February
- The New York Trilogy, Paul Auster
March
- The Great Gatsby, F. Scott Fitzgerald
- Event-Driven Programming: Introduction, Tutorial, History; Stephen Pherg
- JavaScript Enlightenment, Cody Lindley
April
- El camino a un mejor programador, Esteban Manchado, Joaquín Caraballo and Yeray Darias
- The Mists of Avalon, Marion Zimmer Bradley
May
- La Tumba (Grave Peril), Jim Butcher
- Implementation Patterns, Kent Beck
- User Stories Applied, Mike Cohn
June
- Implementation Patterns, Kent Beck (2nd time)
July
- Chapters 1-6 of Object-Oriented Analysis and Design With applications 2nd edition, Grady Booch
August
- Test-Driven Development By Example, Kent Beck (2nd time)
- Victus, Albert Sánchez Piñol
- El cuerpo humano (Il corpo umano), Paolo Giordano
September
- Part 1 of Test Driven, Practical TDD and Acceptance TDD for Java Developers, Lasse Koskela
October
- Liquidación final (Περαίωσι), Petros Márkaris
November
- Con el agua al cuello (Ληξιπρόθεσμα δάνεια), Petros Márkaris
- Specification By Example, Gojko Adzic
December
- Los desorientados (Les désorientés), Amin Maalouf
- The Clean Coder: A Code of Conduct for Professional Programmers, Robert C. Martin
- Effective Unit Testing, A Guide for Java Developers, Lasse Koskela
Record of experiments, readings, links, videos and other things that I find on the long road.
Registro de experimentos, lecturas, links, vídeos y otras cosas que voy encontrando en el largo camino.
Tuesday, December 31, 2013
Thursday, December 26, 2013
MOOCs: Programming Languages in Coursera
Two weeks ago I finished this great Coursera course by Dan Grossman from the University of Washington:
In this course we learned many of the basic concepts behind programming languages,
with a strong emphasis on the techniques and benefits of functional programming.
We used three programming languages, ML, Racket, and Ruby, in order to learn learn key issues in designing and using programming languages, such as modularity and the
complementary benefits of static and dynamic typing.
Dan did a great work on the videos to explain very clearly some hard concepts such as pattern matching, thunks, promises, streams, currying or partial applications. The challenging set of weekly assignments helped me a lot to digest the materials.
This course was at the same time a challenge and a great experience. As one of the course mates said on the forum:
"This course opens your mind... It's exciting! (And annoying sometimes haha)".
I can't agree more. This course was tough and challenging. Some weeks I even thought I wouldn't be able to finish the assignment. You had only two submissions per assignment and only one timed opportunity per exam. It's been probably the toughest course I've taken so far in Coursera, but at the same time it's also been the most rewarding one.
I'm very proud and happy to have been able to complete it and I've learned a lot about functional programming and a bit about object oriented programming. I think it's made me a better programmer.
To finish, I'd like to thank Dan, his team and Coursera for making this great course possible.
Sunday, December 22, 2013
Interesting Talk: "The S.O.L.I.D. Principles of OO and Agile Design"
I've just watched this interesting talk by Robert Martin:
Interesting Talk: "OOP básico, lo que crees saber II"
I've just watched this interesting talk by Xavi Gost:
It's the second part of a talk that took place during the Software Craftsmanship Barcelona 2013.
It talks mostly about the SOLID principles and Xavi's code hygiene rules.
It's the second part of a talk that took place during the Software Craftsmanship Barcelona 2013.
It talks mostly about the SOLID principles and Xavi's code hygiene rules.
Interesting Talk: "OOP básico, lo que crees saber I"
I've just watched this interesting talk by Xavi Gost:
It's the first part of a talk that took place during the Software Craftsmanship Barcelona 2013.
Don't let the name mislead you because its contents are advanced.
It's the first part of a talk that took place during the Software Craftsmanship Barcelona 2013.
Don't let the name mislead you because its contents are advanced.
Monday, December 16, 2013
Interesting Talk: "Design Patterns And The Proper Cultivation Thereof"
I've just watched this interesting talk by Corey Haines about design patterns:
Friday, December 13, 2013
MOOCs: Introduction to Systematic Program Design - Part 1 in Coursera
Last month I finished this great Coursera course by Professor Gregor Kiczales from the The University of British Columbia:
I'm looking forward to start the second part.
This course is a 10 week introduction that presents a design method that enables you to approach the design of complex programs systematically. I saw a previous version of the course and felt curiousity about it.
Their method shows how to model the information in a problem domain, how to structure program data to mirror that information and how to further structure the data to lead to a well organized program. It also teaches how to distinguish those parts of a program that are naturally data driven, from those that should use an alternative algorithmic approach. The method also uses a first test approach to unit-testing.
The course goes slowly and Professor Kiczales explains all concepts very well. Moreover, their design methodology with its design recipes and templates helps to make explicit many of the unconscious design decisions experienced programers often do. For that reason I think it's a great introduction to programming.
In my case, having some previous programming experience, I found that applying the method systematically for most of the small programs done during the course was a bit overkilling. However, in the end, it paid off when we started working with generative recursion to produce fractals and with bactracking searches. Following the recipes of their method proved to be really useful.
Another reason to do this course was the languages it uses: several teaching languages that are subsets of Racket (a Lispy language). This makes this course a gentle introduction to the basics of functional programming.
It gave me the chance to practice a lot with recursion, immutability and higher order functions, and it also helped me to get into the "Lisp cycles":
It was a great course. I think that Professor Kiczales and his team did a really great work and I'd like to thank them and Coursera for giving us this opportunity.
I'm looking forward to start the second part.
Subscribe to:
Posts (Atom)