Published 4/2023
MP4 | Video: h264, 1280×720 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.41 GB | Duration: 2h 19m
C++, Compiler, Debugger, Profilers, Version control, software engineering, DIY approach like you will face in industry
What you’ll learn
Using software engineering approach to self learning. Planning and foucsing on getting things done to ship code instead of pointless deepdives.
The foundational components of C++ infrastructure and their role in the development process
The key stages of the C++ compilation process and how to use compilers like GCC, Clang, and MSVC
How to efficiently build and package C++ applications using CMake
Best practices for version control with Git and how to collaborate effectively on C++ projects
The importance of automated testing and how to implement it in C++ using tools like Google Test
How to set up and configure a Continuous Integration/Continuous Deployment (CI/CD) pipeline for C++ projects
The various alternatives for deploying C++ applications, including static website deployment and container orchestration
How to use static analysis tools to identify and fix code issues before they become problems
Best practices for debugging C++ applications and how to use tools like GDB to quickly identify and solve issues
How to engage with the C++ community to stay up-to-date with the latest advancements and best practices and collaborate with other developers.
The course provides a roadmap and resources to follow up cutting out the confusing search in intial stages. The rest of knowledge has to be earned by practice.
Requirements
Basic knowledge of programming concepts and syntax
Familiarity with the C++ programming language
Access to a computer where C++ development environment can be installed
Basic understanding of software engineering concepts, such as version control and testing, is helpful but not required.
Description
Embark on your C++ learning journey with a solid foundation in infrastructure essentials, guided by ChatGPT. This comprehensive course provides the knowledge and skills to effectively set up, manage, and deploy C++ projects. You’ll gain hands-on experience with essential tools and techniques, including compilers, CMake, Git, automated testing, continuous integration and deployment, and deployment alternatives for various scenarios.Throughout the course, you’ll work with the ChatGPT platform, leveraging its capabilities to enhance your learning process. By the end of this course, you’ll have a deep understanding of C++ infrastructure essentials and be well-prepared to take on more advanced C++ programming topics.Choosing the proper development tools is crucial in software engineering for several reasons:1. Efficiency: The right tools can significantly improve the efficiency of development processes, allowing developers to focus more on writing quality code and less on repetitive tasks.2. Collaboration: Development tools that facilitate collaboration and communication among team members can help ensure everyone is on the same page and working towards a common goal.3. Scalability: As software projects grow in size and complexity, the proper development tools can help manage the increasing demands, ensuring the code remains maintainable and scalable.4. Quality: Development tools that include features such as testing, debugging, and code review can help improve the quality of the code, reducing errors and minimizing the risk of bugs.5. Innovation: The proper development tools can help developers stay up-to-date with the latest technologies and industry trends, allowing for more innovative solutions and better user experiences.Choosing the correct development tools ensures that software engineering projects are efficient, collaborative, scalable, high-quality, and innovative.Key Takeaways:Understand the difference between C++ language and peripheral toolsSet up a ChatGPT account and C++ development environmentLearn the basics of compilers and the compilation processBuild and package C++ applications using CMakeManage your C++ project with Git version controlImplement automated testing for your C++ projectSet up continuous integration and deployment for C++ projectsExplore various deployment alternatives for C++ applicationsReceive tips for ongoing learning and diving deeper into C++ programmingAccess additional C++ resources for further studyWhy the course only provides resources and guidance instead of hours-long screencasts where the instructor does everything, and students get better at watching instead of programming?Hands-on software engineering projects are essential for gaining real-world experience and developing practical skills. While small code snippets in a browser can help understand the syntax of a programming language or framework, they do not provide the same level of depth and complexity as an actual project. Working on a project allows you to apply your knowledge in a more realistic setting, with the opportunity to encounter and solve real-world problems that might not be present in a simplified environment. It also helps to develop essential skills such as problem-solving, collaboration, and project management, which are highly valued in the software engineering industry.Furthermore, working on a project can also help to build a portfolio of work that can be showcased to potential employers or clients, demonstrating your abilities and expertise in a practical setting.In summary, while small code snippets can help you learn the basics of a language or framework, hands-on software engineering projects are essential for developing practical skills, gaining real-world experience, and building a portfolio of work that can be used to showcase your abilities to potential employers or clients.
Overview
Section 1: Introduction
Lecture 1 Course Structure
Lecture 2 Problems with searching for programming solutions online. Too many chefs!
Lecture 3 Solution for searching online efficiently
Lecture 4 How and when to use ChatGPT and generative AI tools while development
Section 2: C++ the language
Lecture 5 C++ language release process in a nutshell
Lecture 6 Language update process seems painful. Should one really care about updates?
Lecture 7 History of C++ from tools perspective
Section 3: Peripheral tools that make software engineering possible with C++
Lecture 8 Introduction to the peripheral tools in C++ ecosystem
Lecture 9 Overview of tools involved in software development with C++
Lecture 10 Quick walkthrough of the development environment setup steps
Section 4: Compilers
Lecture 11 Introduction to various compiler vendors
Lecture 12 Compiler stages
Lecture 13 Hello world program to setup the tools.
Section 5: CMake
Lecture 14 Introduction to CMake
Lecture 15 CMakeLists file. Basic overview to get started with assignments
Lecture 16 Building and packaging your Hello World Application
Section 6: Version Control System
Lecture 17 Introduction to Git Version control system
Lecture 18 Setting up your git repository
Lecture 19 Git WorkFlow
Section 7: Static Analysis Tools
Lecture 20 Introduction to static analysis tools
Lecture 21 CppCheck Tool
Lecture 22 ClangTidy tool
Lecture 23 PVS Studio
Section 8: Automated Testing
Lecture 24 Automated testing methods
Lecture 25 Unit testing with Google Test
Lecture 26 Integration testing frameworks
Section 9: Debugging Tools
Lecture 27 Introduction to debugging tools
Lecture 28 GDB
Lecture 29 Visual Studio Debugger
Lecture 30 LLDB
Lecture 31 Other debugging tools you could explore
Section 10: Continuous Integration and Continuous Deployment
Lecture 32 Introduction to CICD
Lecture 33 Selecting the CICD tool
Lecture 34 Configuring CICD
Lecture 35 Deploying your Hello World program
Section 11: Profiling Tools
Lecture 36 Introduction to Profiling Tools
Lecture 37 Valgrind
Lecture 38 Google Performance Tools
Lecture 39 Intel Vtune, AMD uProf
Section 12: Deployment Alternatives
Lecture 40 Introduction to deployment alternatives
Lecture 41 Containers (Docker and likes)
Lecture 42 FaaS, PaaS, Kubernetes
Lecture 43 Cloud Based Platforms
Lecture 44 Configuration Management Tools
Lecture 45 Webassembly
Lecture 46 Real life examples of C++ in the field
Section 13: C++ Community and self learning
Lecture 47 Introduction to role of community interactions in career growth
Lecture 48 Conferences and Meetups
Lecture 49 More options to stay up to date
Section 14: Conclusion
Lecture 50 Learn to use online tools efficiently
Lecture 51 Course Summary Recap
Lecture 52 Closing Remarks
Lecture 53[Bonus Lecture]
Beginner to intermediate-level C++ developers looking to expand their knowledge and skills,Software engineers who want to improve their workflow and optimize their development process,Students and professionals who are interested in learning about C++ infrastructure and tools,Anyone who wants to learn about best practices for C++ development and deployment.
Password/解压密码www.tbtos.com
转载请注明:0daytown » Software Engineering With C++: Diy Bootcamp