# Junior C++

## Who is it?

It is a developer who has theoretical knowledge of software development and little practical experience in personal/educational projects. In addition, may have a theoretical understanding of how the industry works. Junior can perform simple tasks within a real project under the guidance of experienced colleagues.

## What coding abilities are expected?

- Ability to read documentation of libraries, frameworks, etc.
- Ability to collect and connect third-party libraries to the project
- Ability to read code from a different developer and understand it
- Search and fix bugs using the debugger or using logs
- Write tests to the code
- Basic knowledge and experience with Git

## What general skills are expected?

- Fast learning
- Ability to independently search for information on the Internet, books, etc.
- Ability to ask colleagues questions in a timely manner
- Ability to work in a team 

## Tips and recommendations

- Try to find a couple of enthusiasts at your company and join them. They can be your source of knowledge and experience.
- Ask questions to senior colleagues. There are no stupid questions, there are stupid answers.
- Don't bury yourself in the task for too long. If after several attempts there is no progress, immediately contact your colleagues for help. They expect that the task will be completed by you within a reasonable period. Your main goal is to solve problems, not create them for the team.
- When difficulties arise, try to find a couple of possible solutions yourself, and then approach your mentor. Your mentor will adjust or complement your solution.
- Juniors tend to fall into a common trap: the more lines of code are written, the cooler they are as developers. Don't get caught! Remember, the more code you write, the higher the chance of an error. Ideally, the code should be written so that when you return to it six months later, you can quickly recall what it does. A good developer is not someone who writes a lot of code. A good developer behaves like a samurai: he delivers one precise and deadly blow, rather than pointlessly swinging his sword to hit the enemy.
