# 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)