We may earn an affiliate commission when you visit our partners.
Course image
Coursera logo

Основы разработки на С++

черный пояс

Полднев Антон Вячеславович, Шишков Илья Иванович, Субоч Николай Михайлович, Матросов Михаил Александрович, and Alexey Zobnin
Во-первых, в «Чёрном поясе» будут изложены темы, без которых ваше представление о C++ будет неполным, — это таблицы виртуальных методов, виртуальные деструкторы, неопределённое поведение, шаблоны с произвольным числом аргументов и forwarding-ссылки. Во-вторых...
Read more
Во-первых, в «Чёрном поясе» будут изложены темы, без которых ваше представление о C++ будет неполным, — это таблицы виртуальных методов, виртуальные деструкторы, неопределённое поведение, шаблоны с произвольным числом аргументов и forwarding-ссылки. Во-вторых, мы предоставим вам возможность поработать с библиотеками и инструментами, без которых трудно представить современную разработку на С++, — это санитайзеры и protobuf. Наконец, «Чёрный пояс» будет содержать большой проект, который на этот раз будет длиться не одну неделю как обычно, а целых три. После прохождения нашей специализации слушатели должны: * уметь самостоятельно решать практические задачи на языке С++; * применять естественные для С++ идиомы и конструкции (STL, RAII, const-correctness, type-safety); * уметь самостоятельно находить ответы на свои вопросы и изучать язык глубже; * уметь писать на С++ эффективный код без ущерба для readibility и maintainability кода. Финальный проект «Чёрного пояса» призван проверить, достигли ли слушатели этих целей.
Enroll now

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Outlines C++ concepts such as virtual destructors and forwarding references, ensuring a comprehensive understanding
Introduces students to advanced C++ libraries and tools such as sanitizers and protobuf, enhancing coding proficiency
Provides ample hands-on experience with a multi-week project, fostering problem-solving and implementation skills

Save this course

Save Основы разработки на С++: черный пояс to your list so you can find it easily later:
Save

Reviews summary

A challenging but rewarding c++ course

This course is highly recommended for experienced C++ developers who want to enhance their skills and knowledge of the language. The course is challenging, with a heavy emphasis on practical assignments. However, the material is well-presented and the support from the instructors is excellent.
The course instructors are helpful and supportive.
This course offers plenty of practice opportunities.
"This is probably the hardest CS course I have ever taken."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Основы разработки на С++: черный пояс with these activities:
Understand STL and RAII
Review the Standard Template Library (STL) and Resource Acquisition Is Initialization (RAII) to strengthen your foundational understanding and prepare for more advanced topics.
Browse courses on STL
Show steps
  • Read through online tutorials and documentation on STL and RAII.
  • Practice writing simple code examples using STL containers and RAII idioms.
Attend a C++ Workshop or Meetup
Expand your knowledge and connect with other C++ enthusiasts by attending a workshop or meetup focused on specific C++ topics.
Show steps
  • Research and identify relevant C++ workshops or meetups in your area or online.
  • Register and attend the event, actively participating in discussions and networking with other attendees.
Read 'Effective Modern C++'
Supplement your learning with Scott Meyers' 'Effective Modern C++' to gain a deeper understanding of best practices and idioms.
Show steps
  • Read through specific chapters relevant to the topics covered in the course.
  • Apply the concepts and techniques discussed in the book to your own coding projects.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Explore Virtual Destructors and Undefined Behavior
Delve into the intricacies of virtual destructors and undefined behavior, solidifying your understanding of these critical C++ concepts.
Show steps
  • Follow online tutorials and read articles explaining virtual destructors and undefined behavior.
  • Analyze code examples to identify and understand potential undefined behavior scenarios.
Write Blog Posts on C++ Techniques
Enhance your understanding and solidify your knowledge by sharing your insights and learnings through blog posts on specific C++ techniques and concepts.
Show steps
  • Choose a specific C++ topic or technique to focus on.
  • Research and gather information to support your writing.
  • Write and publish your blog post, sharing your insights and code examples.
Practice with Templates and Forwarding References
Engage in targeted practice drills to enhance your proficiency in working with templates and forwarding references, essential for advanced C++ development.
Browse courses on Templates
Show steps
  • Solve coding problems and exercises involving templates and forwarding references.
  • Implement templates and forwarding references in your own code projects.
Compile a Resource Toolkit for C++ Development
Create a valuable resource for yourself and others by compiling a toolkit of useful links, tools, and code snippets related to C++ development.
Show steps
  • Gather and organize relevant online resources, such as tutorials, documentation, and code repositories.
  • Include tools and libraries that you find useful in your own C++ projects.
  • Share your resource toolkit with others to contribute to the C++ community.
Build a C++ Library with Sanitizers
Create a practical C++ library that utilizes sanitizers, providing hands-on experience in implementing error detection and prevention techniques.
Show steps
  • Design and plan the architecture of your C++ library.
  • Implement sanitizers to detect and handle runtime errors.
  • Test and refine your library to ensure its effectiveness.

Career center

Learners who complete Основы разработки на С++: черный пояс will develop knowledge and skills that may be useful to these careers:
Software Engineer
As a Software Engineer, you will leverage your proficiency in C++ to develop high-quality software solutions. This course will equip you with in-depth understanding of advanced C++ concepts like virtual tables and destructors, enabling you to write code that is robust, efficient, and maintainable. The project component will provide you with practical experience in working with real-world C++ libraries and tools.
Game Developer
In the field of Game Development, C++ is widely used for its speed and performance. This course will strengthen your C++ programming skills, empowering you to create immersive and engaging game experiences. By mastering advanced topics like templates and forwarding references, you will be able to optimize game code, handle complex data structures, and improve overall game performance.
Systems Programmer
As a Systems Programmer, you will work on low-level software components, operating systems, and embedded systems. This course will provide you with a solid foundation in C++ for developing reliable and efficient system-level software. The emphasis on undefined behavior, virtual destructors, and advanced debugging techniques will enable you to tackle complex system-related issues and write code that is robust and resilient.
Backend Developer
As a Backend Developer, you will build and maintain the server-side logic of web applications. This course will deepen your understanding of C++, including advanced topics like virtual methods and templates. By mastering these concepts, you will be able to design and develop efficient, scalable, and maintainable backend systems that process large amounts of data and handle complex business logic.
Compiler Engineer
As a Compiler Engineer, you will be involved in the development and optimization of compilers. This course will strengthen your C++ foundation and introduce you to advanced topics such as virtual tables, templates, and undefined behavior. This knowledge will enable you to design and implement efficient compilation algorithms, optimize code generation, and contribute to the development of high-performance compilers.
Database Engineer
As a Database Engineer, you will design, develop, and manage database systems. This course will enhance your C++ skills and provide you with a solid understanding of data structures, memory management, and resource optimization. By mastering these concepts, you will be able to develop efficient and scalable database systems that can handle large volumes of data and ensure data integrity.
Machine Learning Engineer
As a Machine Learning Engineer, you will apply statistical models and algorithms to solve complex problems. This course will provide you with a strong foundation in C++ and help you develop the programming skills necessary for implementing machine learning algorithms. By mastering topics like memory management, data structures, and optimization, you will be able to write efficient code that can handle large datasets and deliver accurate results.
Data Scientist
As a Data Scientist, you will analyze and interpret data to extract insights and make predictions. This course will strengthen your C++ programming skills and provide you with a solid understanding of data structures, algorithms, and statistical techniques. By mastering these concepts, you will be able to develop efficient data analysis pipelines, build predictive models, and communicate data-driven insights to stakeholders.
Quantitative Analyst
As a Quantitative Analyst, you will use mathematical and statistical models to analyze financial data and make investment decisions. This course will enhance your C++ skills and provide you with a solid foundation in data analysis, numerical methods, and optimization. By mastering these concepts, you will be able to develop sophisticated financial models, analyze market trends, and make informed investment decisions.
Embedded Systems Engineer
As an Embedded Systems Engineer, you will design and develop software for embedded systems such as microcontrollers and microprocessors. This course will strengthen your C++ foundation and provide you with a solid understanding of low-level programming, memory management, and real-time systems. By mastering these concepts, you will be able to develop efficient and reliable embedded systems that meet strict performance and resource constraints.
Computer Vision Engineer
As a Computer Vision Engineer, you will develop algorithms and software for analyzing and interpreting visual data. This course will enhance your C++ skills and provide you with a solid foundation in image processing, computer graphics, and machine learning. By mastering these concepts, you will be able to develop computer vision applications that can identify objects, track motion, and understand the content of images and videos.
Robotics Engineer
As a Robotics Engineer, you will design, develop, and test robots for various applications. This course will strengthen your C++ skills and provide you with a solid foundation in kinematics, dynamics, and control systems. By mastering these concepts, you will be able to develop efficient and reliable robotic systems that can perform complex tasks autonomously or semi-autonomously.
Computer Graphics Engineer
As a Computer Graphics Engineer, you will develop software for creating and manipulating 3D graphics. This course will enhance your C++ skills and provide you with a solid foundation in computer graphics theory and techniques. By mastering these concepts, you will be able to develop computer graphics applications for various industries such as gaming, animation, and visual effects.
Audio Engineer
As an Audio Engineer, you will design, develop, and implement audio equipment and software. This course will enhance your C++ skills and provide you with a solid foundation in digital audio signal processing, acoustics, and psychoacoustics. By mastering these concepts, you will be able to develop audio systems that deliver high-quality sound and meet specific performance requirements.
Network Engineer
As a Network Engineer, you will design, implement, and manage computer networks. This course may be useful for developing the programming skills required to automate network management tasks and develop network monitoring and troubleshooting tools. By mastering concepts like memory management and data structures, you will be able to write efficient and reliable network management software.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Основы разработки на С++: черный пояс.
Comprehensive guide to C++ programming and is written by the creator of the language.
Provides a great introduction to C++ programming and covers topics from basic syntax to advanced concepts such as templates and memory management.
Provides a thorough overview of the C++ Standard Library and valuable resource for both beginners and experienced programmers.
Provides a comprehensive guide to C++ templates.
Provides a collection of C++ programming puzzles and solutions.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Основы разработки на С++: черный пояс.
Пути выхода на фондовый рынок для частных инвесторов...
Most relevant
История экономики и экономических учений
Most relevant
Китайский для начинающих (Chinese for beginners)
Most relevant
Цифровая обработка сигналов Часть 1. Сигналы и системы...
Most relevant
Финансы для нефинансистов
Most relevant
Цифровая обработка сигналов Часть 2. Дискретные и...
Most relevant
История международных отношений
Most relevant
Анализ инвестиционных идей, проектов и рынков
Most relevant
Открытые образовательные ресурсы:шведский стол...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser