Skip to content

Latest commit

 

History

History
37 lines (31 loc) · 1.81 KB

Knowledge.md

File metadata and controls

37 lines (31 loc) · 1.81 KB

Requirement of development knowledge

If you are not familiar with several items in the requirement list below, you are still welcome to try developing. If you encounter something you don't know, you will be fine as long as you can learn them during development. There are many online resources that help you learn new things in programming and we are here to help.

Feel free to ask us any questions regarding program development in our Discord server.

Development knowledge list:

  • Know how to use a build tool (e.g. CMake, Visual Studio, VS Code, Qt Creator) to build and run a C++ program.
  • Know basic usage of source control tool git and Github.
  • Know basic computer science concepts:
    • Programming concepts like compiling, linking and libraries.
    • Algorithm concepts like sorting, recursion, time complexity and parallelism.
  • Know basic C++ language features:
    • Variables, functions, pointers, if-statement, for-loop, while-loop.
    • Variable reference, function pass-by-value vs. pass-by-reference.
    • Source files, header files, namespaces.
    • Structs, enums, enum classes.
    • Basic C++ STL classes like std::string, std::vector, std::map.
    • Classes, objects, inheritance, abstract classes.
    • Basic knowledge of templates.
    • Exception handling.
    • Lambda functions.
  • Know basic programming practices:
    • How to debug.
    • How to search for variable and function definition, declaration and usage.
    • Write comments and documents.
    • Other basic coding styles and guildlines like:
      • Don't use goto.
      • Always use {} for if, for and while statements.
  • Know JSON format.

If you are not familiar with contributing open-source code on Github, we have a brief guide.