I'm reading The Passionate Programmer, by Chad Fowler a book I reccomend to everyone, even if you're not really into coding. It's a set of tips on how to make the most out of your work as a software developer, all written in a easy to follow and engaging style.
One of the tips is called "Learn to Fish", and, quoting the famous saying "Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.", it tells us about the importance of going deep in the understanding of our development tools, and business domain. The chapter ends by saying:
Better yet, don't ask to be taught -go learn yourself.
Chad Fowler also gives a tip on how to learn to fish:
You can ask yourself two extremely useful questions about any given area to drill down into the murky layer: How does it work? and Why does this (have to) happen?
So this is what I'm gonna do (more) from now on. Spending time asking myself this type of questions around the technologies I use. And, inspired a bit by Jennifer Dewalt (180 websites im 180 days), I'm gonna track everything here. Let's get started!
I'll start by trying understand better the tools I use in my daily job. At the moment I'm working as an iOS developer and next to the classic iOS SDK, Objective-C, Xcode and the iPhone Simulator, I'm making massive use of CocoaPods, AFNetworking, and xctool.
I already have many questions on those technologies and tools, but one thing I've learned about propositions is start small!. So I'll start with only four questions. One per week, this shouldn't be hard to accomplish.
###1 - Xcode
How does it... stores the informations about project and workspace?
###2 - Objective-C
Why does it... allow us to use the messages syntax AND the dot notation to call methods?
###3 - CocoaPods
How does it... generate the workspace and manage the pods in it?
###4 - AFNetworking
How does it... wrap Apple's newtworking classes?