Some of you have said that you’re interested in investing more time in becoming master programmers. One of the best ways of doing that is reading other people’s code. I’ve selected 4 libraries that are all pretty small and digestable for your consideration.
Because I am currently teaching Ruby, these examples are all Ruby. But a similar list would be easy to build for other languages. While each language has some unique capabilities that will be exploited in examples, most of what you learn in these examples would apply equally to other languages
- Find a group of two or three other, equally passionate programmers and decide on one of these programs to study.
- On your own study the library. Write a sample program using it so you really know what it is supposed to do. Read it on your own to orient yourself.
- Get together around a single computer and go through the program, line by line and discuss and explain what it does, all the while tapping into the web and ruby documentation to follow up on questions that are raised.
Jointly write up a report on what you found and what you learned. As you are not writing original code I do expect you to go fairly deep to show off your mastery of Ruby and Software Engineering. Here are some points you might cover:
- Advanced Ruby and other programming techniques or patterns
- Your opinion on the design and how well it follows good Object Oriented Design principles
- Relationship and comparison to other similar or related libraries
- What core functionality it might miss, i.e that users might ask for enhancements
- Computational complexity analysis
- A simple and complicated example of using the library
- Areas where it is hacky and could be improved
- Fundamental shortcomings if any
You have some freedom depending on the project but basically it should be like a paper. Submit as a pdf. Please submit it in the slot for Movies-1 and Movies-2. In other words, two students, each submit it twice. The same report.
The two members will get a grade for the written deliverable above and it will count as movies-1 and movies-2.
My Special Offer I would be glad to participate in this meeting if you want!