- How does XP (Extreme Programming) relate to agile development?
XP came before the agile manifesto and hugely influenced it. The name comes from taking good practices and taking them to an extreme. Reviewing code is good, and an extreme variation of that would be pair-programming.
Adopting XP practices can help your team. Be wary of trying too much too early and giving up before giving it a fair chance.
User stories are where the developer and customer decide what to build. For example, they should communicate value to the end-user so the customer can prioritize and help the developer discover a solution.
It’s easy to get lost in all the jargon when gathering, writing, and planning stories. However, the author does an excellent job describing common problems and their solution.
- More computer science?
There are a lot of great topics in computer science that will help you as a programmer.
- Computer science textbooks are long and hard.
Not all computer science books are textbooks. Some of the best ones are pretty short and focused even if some are long. I will only put books I think are worth reading here.
A Geek's Guide to the Beauty of Numbers, Logic, and Computation
Mark C. Chu-Carroll
- Why is math helpful for a programmer?
A computer can only do calculations, understanding math is understanding the computer and programming languages.
This book will give you an introduction to a wide array of subjects within math. Parts 1, 2, and 3 are fascinating but offer little value to your software craftsman career, and parts 4, 5, and 6 are helpful to understand how programming languages and computers work.
A Guide to Modern Databases and the NoSQL Movement
Eric Redmond and Jim R. Wilson
- Knowing how to use seven different databases seems like one too many.
The right tool for the right problem is the name of the game. For smaller projects, the choice of databases has little impact. In distributed systems, what database you use can make a huge difference in response times.
- Why is design so important?
Unthoughtful system design will always be a poor feat for future requirements, but a well-designed system is easy to change.
Scala is a multiparadigm programming language with good support for object-oriented and functional design. This programming book displays that we can apply functional programming ideas to any programming language.
- I have a programming job. Why do I need to practice?
Deliberate practice is an efficient way to become a better programmer. Honing one’s skill will make your work as a programmer more enjoyable for you and your teammates.