A software developer's
Software development is not just programming. This book explores the principles, practices and tools behind 8 important software development topics like code management, testing, development processes, software estimation and others.
Adopt senior-level thinking and get a solid foundation to become a development lead.Buy on Gumroad
After 20 years in the IT industry, I thought I already knew everything. When I got my hands on this book, I was pleasantly surprised. I have been working as a DevOps for many years and as a python developer for the last few years, but in the book, I found a lot of good advice on how to improve my knowledge in all directions.
Petr wrote a practical and actionable book packed with great examples. The topics are well organized and I've really learned something new in each one. I highly recommend the book to both beginners and people with many years of experience.- Tomas Pytel, Python Engineer & DevOps @ IBM, PyConSK organizer and Speaker, The PSF Member.
- Capturing requirements.
- Using a backlog to organize requirements.
- Creating product and technical specifications.
- Bug management.
- Running software systems for development.
- Development tools.
- The best features of code editors and IDEs.
- Interactive computing for fast prototyping.
- Version control systems.
- Working with Git.
- Branching models and code integration strategies.
- Continuous integration and deployment.
- Quality checks and analyzing codebases.
Debugging, Logging, Profiling
- Debugging principles and tools.
- Profiling applications.
- Agile software development.
- Scrum and Extreme Programming (XP).
- Shape Up.
- Considerations for custom processes.
- Personal and team documentation.
- Development documentation.
- Documenting architecture.
- Creating external documentation and documentation sites.
- Testing mindset.
- Test categorization.
- Test cases and test plans.
- Automated testing and test automation tools.
- Performance testing.
- Estimation principles.
- Estimating individual tasks.
- Estimating size, effort, and schedule for a bulk of work.
- Group estimation.
- Working with worst and best case estimates.
- Monte Carlo Simulation.