Agile Professional Programming (ICP-PRG)
This course covers the engineering skills and tools required to become a professional programmer. These skills empower agile programmers to develop clean code and produce quality products taking into consideration product changes and technical innovation.
In this lab-based 3-day course, participants will be introduced to techniques like automated tests, coding-by-intention, test-driven development, continuous refactoring, basics of good design, continuous integration, behavior-driven development, etc. They will go through many exercises and will practice software development using these techniques and related tools.
Also, this course focus on the agile mindset related to software programming. It focuses on the importance of effective developer collaboration within and across agile teams. Participants will be introduced to techniques like collective code ownership and pair-programming as examples for enabling collaborative agile software development environment.
This course offers one of two Continuous Learning Certifications (CLCs) on ICAgile Software Development and Design track. Upon attending this course, you’ll earn the ICAgile Certified Professional in Agile Programming (ICP-PRG) certificate.
Who Should AttendAnyone involved in the effort of designing and developing systems:
- Junior/senior software developers
- Technical Team Leaders
- Software Designers
- Software Architects
- Programming knowledge with java or c# is recommended as most of the exercises are done using these languages. However, any prior experience with a modern programming language is also ok, like Ruby, PHP, etc.
- To be eligible for the ICP-PRG certification, participants need to be an ICAgile Certified Professionals (ICP). This certificate is attained upon completing the Fundamentals of Agile Software Development training course.
- Automated tests
- Types of tests
- Techniques for test doubles
- Clean programming
- Programming by intention
- Common code smells
- Tools for continuous refactoring
- Common refactorings
- Simple design
- Design principles
- Dealing with legacy code
- Test-Driven Development (TDD)
- Behavior-Driven Development (BDD)
- Continuous integration
- Collaborative Teams
- Collective code ownership