Support and Development of Knowledge

I find that there is no substitute for working alongside developers and designers that are more experienced than you, or experienced in different ways. Spending 8 hours of every day working with these talented individuals means that you can naturally harvest knowledge and experience. However, there are times when you need to explore new technologies or theories yourself.

From this point of view, I find that keeping an eye on what people are looking for in their job advertisements is a good indicator of what I should be learning. Just recently I have started to notice that more development positions are starting to mandate an at least basic knowledge of the git version control system, ORM layers such as doctrine and development principles such as dependency injection.

In terms of learning about this kind of thing I find that there’s nothing better than a well written book (preferably a printed copy, so it can be read away from the computer screen). However, as a basic introduction to any technology or principle (and a means of finding recommended decent books on the subject), a quick google search and a read of other developer blogs can often answer any initial questions, e.g. ‘why would one use git over subversion’, and ‘what exactly is the point of an ORM layer’?

I also find that reading a book and understanding the principles of a design pattern or a new version control system is all well and good, but applying this knowledge in a real project often throws up questions the theory book never covers. For this reason, when learning new things, I try to use that new technology or solution in a personal project to actually make sure I’ve understood everything correctly. For example, many years ago I introduced myself to MVC by rewriting my father’s tractor dealership website following that pattern. During this rewrite I also used subversion for the first time, and the ‘real life’ use of both meant I developed a much deeper understanding than if I had just simply ‘read the manuals’.