# Python CiD Certification
A [[Python]] [[CiD - Citizen Developer|CiD]] Certification is an initiative that some companies takes to make their [[CiD - Citizen Developer|CiD]] more reliable and aware of cyber-security risks.
## Why ?
Lack of fondamental training and understanding of [[Python]] and programming increase:
- security vulnerabilities
- errors in production code
- inefficient code practices
- increased [[development]] time
- team communication issues
Untrained [[CiD - Citizen Developer|CiD]] have higher risks to:
- unknowingly create **security** breaches
- introduce bugs that could **compromise** system **reliability** and **security**
- unoptimized, **hard** to **maintain**, or lacks **scalability** codebase
- delays, rework, and **inefficient** debugging of codebase
- misunderstand other [[CiD - Citizen Developer|CiD]] and [[PD - Professional Developer|PD]], leading to **confusion** and **misaligned** goals
To certify [[Python]] [[CiD - Citizen Developer|CiD]] is to increase confidence and ensure that they possess the fundamental skills and knowledge required to write more secure, reliable, efficient, and maintainable code, reducing risks and improving overall [[development]] quality and collaboration.
## Goals
Understanding of:
- [[Python]]’s **syntax**, data structures, and core programming **concepts**
- clean **code principles**, error handling, and performance optimization
- [[Solutions for Python|tools]] and [[Patterns of Python|techniques]] to write **efficient** and **maintainable** code
- easy to learn patterns and guidelines
- knowledge of [[Python]] [[Solutions for Python|tools]] for efficiency
- understanding of what performance is and how to achieve it
- **readable**, **well-documented** code
- know, understand and use automated tools for this purpose
- know when not to documented, and how to do it properly
- how to minimize errors and **vulnerabilities**
## Certification Roadmap
### Pre-Cert
- **Identify** who need to be certified as [[Python]] [[CiD - Citizen Developer|CiD]]
- **Identify** skill level and skill gap: conduct an assessment to evaluate current [[Python]] proficiency levels on specific topics of [[2BPCiD - To-Be Python Citizen Developer]]
- Resources distribution: **share foundational [[Python]] resources**, such as official documentation, free courses, or tutorials. Many possiblilities: websites known for their tutorial quality (such as [RealPython.com](http://RealPython.com)), websites known for being a good training plateform (such as [codingame.com](https://www.codingame.com/start/)), or [[Python]] focused educational content in video or podcast format
### Training
- **Groups** [[2BPCiD - To-Be Python Citizen Developer|2BPCiD]] based on results of the assessment
- Conduct **on-site training** for each group focus on a specific topic
- Remote **elearning training**: allow access to every topics to everyone on E-Learn plateform
Whenever someone have completed every training required, they can pass to the certification stage.
### Certification
- **theoretical** questionnaire assessing knowledge of [[Python]] language fundamentals
- **practical** exercises evaluating the candidate's programming skills
### Post-Cert Support
- **Regular** workshops or hackathons to reinforce skills
- Access to **advanced learning** materials and mentorship
- Access to **advanced certification** path (security, performance, quality, architecture, etc)