# Code categories
The Zowe™ codebase consists of a few key areas, with both unique and shared guidelines that define how to write new code. A few such areas are:
- Server Core
- Server Security
- Zowe Desktop Applications
- Zowe Application Framework
- Zowe CLI and CLI Plug-ins
- Imperative CLI Framework
# Programming languages
For each area of the codebase, there are established and favored programming languages. Each repository in Github identifies the primary language used. Some of the basic skills needed to contribute to the project include:
- CLI - Node.js, TypeScript
- APIs - C, Assembler, Java, Spring
- API Mediation Layer - Java, Spring
# Component-specific guidelines and tutorials
This "Code Guidelines" section provides high-level best practices. Each component may have more specific contribution guidelines. Look for a CONTRIBUTING.md file in the component's GitHub repository for specific details.
To learn more about how to develop Zowe applications and plug-ins or extending Zowe with APIs, see Extending.