Answer the question
In order to leave comments, you need to log in
What are the requirements for a junior in c++?
Hello!
At the moment, I'm learning C++ on my own and currently learning OOP (I'm currently learning classes). I also decided to study Python in parallel (the first lessons seemed to me just a fairy tale after C ++). So, write, please, what is the minimum knowledge required to get a job?
In addition to C ++ and OOP, I studied the essence of Git (the theory, I did not work in it), as I understand that it is necessary when working with projects.
Z.Y. I ask in order to know when you can start spreading your resume)
Z.Z.Y. I don’t have any real projects / solutions, my practice is limited to solving problems from the Internet and independently invented code like calculators and the like.
I'll be glad for your answers ;)
Answer the question
In order to leave comments, you need to log in
Go to sites with vacancies, for example hh.ru and look at the requirements. You can also read the habr, there are articles that describe the experience of employment of the juniors in C ++.
It is worth noting that a novice programmer is not a beginner. This is a specialist with at least a year of experience and / or relevant experience in software development, obtained, for example, in the development of their projects or open source projects.
At a minimum, you need to know the language and the standard library, have some knowledge of algorithms and data structures, operating systems, be able to at least decompose the task at an elementary level, etc.
And so, you can write something at the level of fizzbuzz or binary search, you understand O (n), you know what size and capacity are for std:: vector and why you need it, you heard about cache line out of the corner, you understand how map and unordered_map differ , you have a couple of your projects on github and you have used OOP a little (by the way, OOP is not only about classes) ... Feel free to try. At the very least, I would most likely hire such a junior.
Depends on the company. Adequate companies do not expect anything specific from a junior. You need to have a minimum base and somehow demonstrate that you are ready to learn.
With C++, you need to understand the basic mechanics:
1. OOP. 90% of interviews will ask you what polymorphism is. Drive on virtual and not virtual functions. You need to understand well why constructors and destructors are needed. When they are called. How parameters are passed to functions. Why is something written in .h and something in .cpp. STL, smart pointers, etc.
A good list of books:
https://tproger.ru/books/cpp-books-middle/
Not expected to read everything, but open in the middle Myers should not surprise you with syntax in most cases.
2. Algorithms. What is complexity in big O notation (not necessarily verbatim). Device and complexity of basic operations for vector, list, set, map, unordered_set, unordered_map. Be able to answer the question "Which is faster vector or list"
"Hacking the code interview" contains a very brief description for this part (there is a translation). The whole book is rather on the middle level, but it is useful to read.
3. Having a repository even with learning tasks is very useful. I always looked at the code if there was one.
4. Next is the specifics of the company. They can ask math, networks, Qt, ML... Here you can already see what is more interesting to you.
Hmm, well, that's about the list of questions that I was asked when I went to ++ jun.
//функция, использует класс для кодирования строки. Спустя
//какое-то время программа падает. Почему?
Result encode(const char *string)
{
Encoder * coder = new Encoder();
Result res = coder->encodeString(string);
return res;
}
//Где-то в функции ниже ошибка. Найдите
void printArray(int * mas)
{
for (int i = 0; i < sizeof(mas); i++)
std::cout << mas[i] << " ";
}
struct A {
virtual std::ostream &put(std::ostream &o) const {
return o << 'A';
}
};
struct B : A {
virtual std::ostream &put(std::ostream &o) const {
return o << 'B';
}
};
std::ostream &operator<<(std::ostream &o, const A a)
{
return a.put(o);
}
int main() {
B b;
std::cout << b;
}
With this approach, you will not leave further than a trainee. Junami take those who are ready to do, which means that you should definitely practice and do live projects (and store in the same git)
By skills - open hh.ru and see skills in vacancies in your region, make a list and study
I closely interact with programmers on the plus side and see the complexity of their work and the level of knowledge required for it.
I can say that the pros are not the language that makes sense to learn on your own. It is mainly used in those subject areas where a high background in computer science is needed. Without good academic preparation in the relevant faculties, you are unlikely to pass social security in good companies.
Do not waste time, there are more friendly directions for IT people - test automation, front-end
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question