Software testing helps protect code from incoming bugs and improves general quality of the functionalities exposed to the users. When you look at it from the developer’s standpoint the first thing that comes to mind is unit testing. However it turns out tests come in many flavors. I have already shared in the recap from Advanced TDD workshop with Uncle Bob what kinds of tests a professional team should use to ensure that the application remains intact. The following items create a hierarchy:
Earlier this week I attended a three day Advanced TDD workshop delivered by Uncle Bob Martin. The course explained the principles and practices of Test-driven development as described in his book, Agile Software Development, Principles, Patterns, and Practices. It was an amazing experience, packed with great knowledge, so I couldn’t resist sharing my notes.
Uncle Bob (Robert C. Martin):
He has been a programmer since 1970. He is the Master Craftsman at 8th Light inc, an acclaimed speaker at conferences worldwide, and the author of many books including: The Clean Coder, Clean Code, Agile Software Development: Principles, Patterns, and Practices, and UML for Java Programmers.
– Skills Matter
Lately I wanted to explore more in-depth functional programming concepts. When I was looking for resources I found an interesting bundle (with 60% discount) from O’Reilly:
It turned out they are really nice because they present code examples from the different programming languages like: Java, Scala or Closure. That approach gives you a bigger picture how functional programming can be applied. I’d say that the book contains almost everything you can see in the related video. In addition, it’s more up to date and it contains a bit more details. On the other hand the video is much more interactive.
This blog post explains most of the popular keywords I was asked about during interviews for the various software engineering roles. They are presented in an alphabetical order. Personally I find this glossary very useful when preparing for the upcoming interview.
Agile Software Development
In 2001 a group of industry experts created a statement of values called The Manifesto of the Agile Alliance:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.