Since my last update here I received an awesome offer for a job at Sigma IT and Management as a consultant and couldn’t help but to jump on that train. Right now it feels pretty sweet to get a crash course into the industry after all those years in the academia! Highlights with this whole consultant thing include that you’re encouraged to get certified in relevant technologies and can request courses you would like to take. For example, as my current aim is to get certified in Java and related technologies, me and some fellow consultants at Sigma will attend a three day course on Spring technologies in Gothemburg. 🙂
Apart from the boring book I’m reading to prepare for the Java certification exam – which contains the really ugly and obscure parts of the language that you most probably won’t come across but need to know for the test – I’ve read quite a lot of books on system development and programming. The one that probably inspired me the most was Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans. Many chapters maintain a fairly high conceptual level compared to many other books for developers; when you see code samples they commonly aim to exemplify a concept or idea, e.g. the supplied patterns (or building blocks) to facilitate DDD. I buy the entire argument of keeping analysis and design very close together – potentially seeing them as one – in order to not lose or misinterpret domain knowledge gained during analysis in the design and implementation efforts. Related to this argument is the concept of the ubiquitous language, a shared language based on the domain model that is used to communicate domain knowledge consistently between members of a team (or company). Through exploiting the object oriented modeling paradigm (or any other that might fit) the domain model can be implemented using concepts from the ubiquitous language. In my opinion it makes perfect sense to make use the OO paradigm to design and implement the domain model as closely as possible, i.e. avoid to make domain objects mere data containers without behavior.
Other books I enjoyed during late summer was Patterns of Enterprise Application Architecture by the infamous Martin Fowler and The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas. The former contains plenty of useful patterns that I most certainly will look up when needed while the latter suggests and instructs how to keep a pragmatic approach to programming. I can warmly recommend them both!
At the moment I am digging throguh Effective Java (2nd Edition) by Joshua Bloch as I have been told that it is a gold mine for Java developers, and judging by the first 100 pages I have a lot of neat stuff to look forward to. Hrm this was a long post, better stop now before I make it even longer.
Over and out!