๊ฐ•์˜

๋ฉ˜ํ† ๋ง

์ปค๋ฎค๋‹ˆํ‹ฐ

Programming

/

Programming Language

readable_code:: C++ development environment setup A to Z that is complete if you follow along

Is there any other language that is as difficult to set up as C++ in terms of development environment? I set up the development environment by following the information that is floating around, but why is it so difficult and complicated to build even once? Through this lecture, learn how to set up the C++ development environment easily anytime, anywhere, regardless of OS or platform!

(4.8) 17 reviews

553 learners

Level Beginner

Course period Unlimited

  • captaindev
Visual Studio Code
Visual Studio Code
GitHub
GitHub
Visual Studio Code
Visual Studio Code
GitHub
GitHub
Thumbnail

Reviews from Early Learners

Reviews from Early Learners

4.8

5.0

foxrose

64% enrolled

Thank you for the great lecture.

5.0

choiseonmun

79% enrolled

I recommend this for beginners who want to start C++ with VSCode. It was great that they always explained the "Why" behind things. The disappointing aspects are: (1) For emphasis in slides, using a single color rather than multiple colors would have been easier on the eyes, (2) It doesn't show Windows setup (though this doesn't matter if you're familiar with WSL), and (3) It would have been more convenient if they had provided a repo link for class notes.

5.0

fain9301

100% enrolled

Thank you for the good lecture.

What you will gain after the course

  • Setting up a C++ development environment independent of OS

  • How to set up Version Control System (VSC, Github)

  • How to set coding fonts to improve C++ development efficiency

  • How to set up an Integrated Development Environment (IDE, Visual Studio Code) for C++ development

  • Automating development environment setup via scripts

readable_code

cpp: Setting up the core development environment - A to Z of setting up the C++ development environment that you can follow along with.

Learn how to set up the essential development environment required for C++ development!

  • I want to develop in C++, but... the environment settings are too complicated, right?

  • I searched the internet to see if there was any information gathered in one place, but it was different here and there...

  • In this course, I will teach you everything you need to know about C++ development, based on my extensive experience in the field!


Learn about these things

How to set up Git for source code version control

  • I tried using GitHub once and I was surprised at how many things there were to set up...

  • Set Github-related permissions all at once through the CLI!

How to set up an IDE (VSCode) for effective C++ development

  • Was it difficult to integrate C++ with IDE and Intellisense?

  • We'll show you how to set it up simply without any complicated settings!

  • Additional feature recommendations to improve development efficiency are included.

Screenshot 2023-11-24 at 5.34.56PM

How to set up a C++ development environment for various operating systems

  • I tried to develop in C++, but it was different on Windows and different on Ubuntu...

  • We'll show you how to set up a development environment that works regardless of OS!

Automate all of this with a single Enter!

  • Was it difficult to set up the development environment every time you formatted?

  • There is no need for humans to set up the development environment.

  • Let's automate it with one press of Enter!


Screenshot 2023-11-24 at 5.45.20PM

What can you get?

  • How to set up a C++ development environment regardless of OS (MacOS/Ubuntu)

  • How to set up a Version Control System (VSC, Github)

  • How to set coding fonts to improve development efficiency

  • How to set up an Integrated Development Environment (IDE, Visual Studio Code) for C++ development

  • Automating development environment setup through scripts

Keywords

  • Development Environment

  • Compiler

  • Build System

  • Version Control System

  • IDE

  • Coding Font

  • Automation Script

Things to note before taking the course

Practice environment

  • Operating System and Version (OS): macOS, Ubuntu

  • Tools used: Clang, CMake, Github, Visual Studio Code (VSCode)

  • PC specifications: Any PC capable of building C++

readable_code

Why readable_code?

I still remember the feeling of self-doubt I felt when I first entered my graduate school lab and looked at the source code. "Ah... why can't I understand it no matter how much I look at it?" At the time, I thought it was my own shortcomings. More than ten years have passed since then. Now, I realize: the problem wasn't me, it was the code.

Many developers write code, cryptic, and cry out, "I have to get back to it!" But those codes soon come back to haunt them like a shackle. Code written without adherence to conventions for quick implementation and overused comments create confusion when reading, and carelessly created interfaces eventually make it difficult to discern what data is being exchanged. Code written this way, over time, produces incorrect results, becoming unreadable to anyone. Even the author of the code , after a week without looking at it, finds himself having to open the codebook called "Debugging" and decipher the code .

We call source code a language . Language exists to communicate with something. Many people mistakenly think that something is a computer. This misconception is why so many codes, called "codes," are created. (Isn't it interesting that code actually means "code?") However, as I mentioned earlier, code isn't something computers read, it's something we read. Therefore, writing source code is akin to writing. It's similar to writing technical documentation. We need to write code concisely and clearly, so that people can understand it. Code written this way is easy for anyone to read and understand. Unfortunately, in the field I've worked in, people often say they don't have time to consider and implement such trivial details. However, what I've learned is that it's not about "not being able to do something because we don't have time," but rather "not being able to do it because we can't."

Code that's easy for people to read ( readable_code ) is also easy for computers to read in most cases. This is because it doesn't implement unnecessary variables, functions, transformations, and processes. It also dramatically improves collaboration and code maintenance performance. For example, at my company, I abandoned the existing framework and designed and implemented a new one. This shortened code integration work that would have taken two weeks with the existing framework to just three days . Furthermore, module implementation, which would have taken three months with the existing framework, became possible in less than a month . The problem with human-readable code is that it's not something you can implement; if you can, there's no reason not to. It's an incredible thing that can dramatically improve development efficiency.

A mature development culture, collaboration, and readable code are often considered nice-to-haves, or rather, not essential. However, I've witnessed the power of readable code and experienced its practical application. While I can apply this knowledge locally to my company and team, I don't want to be satisfied with that. I want to increase Korea's software productivity. I want engineers to develop in a better environment. I want a good development culture to take root within Korean companies. From now on, I will share with you my experiences, successes and failures, and all the know-how I've learned along the way . These are invaluable and will serve as a solid foundation for your future path. Would you like to join us? (y/n) โ€ฆ -y

Differences between readable_code and readable_code

  • An instructor with software architect experience teaches based on software that has been verified to work in the field.

  • Covers content applicable to actual work/development

  • It conveys know-how and concepts acquired through actual development experience, not theoretical content that can be learned by reading books.

  • We implemented a structure that can be understood by listening to just one lecture by eliminating dependencies between each lecture as much as possible.

How to read lecture titles

  • Describing lecture titles using the snake_case technique used when describing variables and namespaces in C++

  • Divide the hierarchy of lectures in a way similar to using namespaces in C++.

  • readable_code:: language_name :: xx::yy::zz::Course_Name - Subtitle

    • language_name : Describe the programming language in which the lecture is being held (ex. cpp, c, python, etc.)

    • xx, yy, zz : Represents the detailed hierarchy of each lecture, the properties of the lecture (e.g. design, verification, etc.)

    • Corresponding_Course_Name: The name of the lowest level describes the original name of the lecture.

    • Subtitle : Additional explanation of the lecture

Recommended for
these people

Who is this course right for?

  • For those who don't know what a development environment is

  • For those who are new to C++ development

  • For those who find it too difficult to set up the development environment again every time they format their PC

  • For those who want to manage their development environment more efficiently

  • For those who want to set up a consistent development environment across multiple platforms.

  • Anyone who wants to optimize their C++ development process

Hello
This is

619

Learners

22

Reviews

4

Answers

4.8

Rating

2

Courses

๐Ÿ‘‹ Hello, I'm Eunseong Yang, the Development Lead

Are you curious how a developer, who was still Googling at 3 AM, managed to increase team productivity by four times?


"Helping 100 people at a company vs. preventing tens of thousands of developers from wasting their time... which is more meaningful?"

It was a thought I had about two years ago while working as an architect at a self-driving car company.

But this thought ended up changing my life completely.

Have you ever experienced something like this?

"Damn, I've already spent the whole day just setting up the development environment..."

"What on earth is the problem with this CMake error?"

"I messed with multi-threading and the program just crashed..."

"I got into another fight with a teammate during a code review..."

Ah... this was exactly me 10 years ago when I first joined ROBOTIS. I had to implement a C++ multi-threaded framework from scratch to build a delivery robot, but honestly, I didn't even properly understand what variables or functions were back then.

I wrestled with CUDA parallel processing in the office until late every single night, rewriting 20,000 to 30,000 lines of code a month... Open source? I couldn't use it because it was a commercialization project. It was truly starting from absolute scratch.

But in the midst of this hellish process, I gained one realization.

The one realization that changed my life

"Oh, I just need to write it so it's easy to read. Then the structure, syntax, and process will all naturally fall into place, right?"

This single realization completely changed my life as a developer. I applied this to the team when designing the Visual SLAM system for autonomous parking at StradVision, and...

๐Ÿš€ The results are insane:

  • Feature development period: 2 months โ†’ 2 weeks (No, seriously, it became 4 times faster)

  • Bug fixing time: reduced by 70% (Goodbye to all-night debugging!)

  • Number of arguments during code reviews: 60% decrease (Finally, peaceful reviews)

  • Team overtime: Almost gone (Work-life balance achieved!)

While adhering to industry standards (MISRA C++ 2008), these results were achieved.

My team members said, "Wow... it finally feels like I'm actually developing!" That's when I was certainโ€”this was the answer.

So I was on a roll. My career was solid, my salary was good, and I kept getting job offers... but then one day, a thought suddenly crossed my mind.

"Wait, no matter how well I do at a company, I'm only helping 100 people at most, right? But if I teach... couldn't I save thousands, or even tens of thousands of developers from making the same mistakes I did?"

So I made up my mind. I decided to kick away my stable salary, start HolyGround, and reveal everything I know.

Why? Because we're no longer competitors, and I have absolutely no reason to hide anything.

Are you curious about what I've been up to?

๐ŸŽฏ HolyGround CEO (2023.06 ~ Present)

I'm creating the "I Wish This Had Existed" series

  • Practical educational content that truly solves developers' real-world problems

  • C++ Core Series: Project Setup, Log Management, Memory Management

  • Readable Programming Guidelines

  • Everything was created with a focus on practical application that can be used immediately in the field.

๐Ÿš— StradVision Visual SLAM Software Architect (2021.12 ~ 2023.05)

Yes, that's the company that quadrupled team productivity

  • Visual SLAM system for automated parking designed from scratch

  • Increasing development speed while adhering to industry standards (MISRA C++ 2008)

  • Reduced test environment setup time by 90% with Docker-based CI/CD bแบฑng CI/CD dแปฑa trรชn Docker

  • Passed customer certification and received recognition for our technical expertise

๐Ÿค– Robotis Perception Part Tech-Lead (2019.01 ~ 2021.12)

The place where I truly built my skills from the ground up

  • I served as the lead for perception software development for delivery robots.

  • Couldn't use ROS and had to build a C++ multi-thread framework from scratch

  • CUDA parallel processing optimization on Embedded Platform (Nvidia Jetson)

  • Developed zero-base implementation skills by refactoring 20,000 to 30,000 lines of code every month

An educational journey with Korean developers

๐ŸŽ“ Programmers Autonomous Driving DevCourse (1st, 2nd, 3rd, 5th, 6th Cohorts)

"I finally feel like I've learned how to develop for real!"

  • C++ Development Environment, Build Systems, and Code Quality Improvement Strategies Special Lecture

  • Significant improvement in team project completion rates through mentoring

  • Actual student reviews: "I learned professional philosophy, not just simple grammar"

๐Ÿ“š Inflearn Bestselling Course

The ultimate solution for "Why does it only work on my computer?"

๐Ÿข Special Lectures for Companies and Institutions

  • SSAFY Portfolio Special Lecture - "Practical Job Search Strategy"

  • Seoul ICT Innovation Specialized High School Python Education - "Programming Even High School Students Can Understand"

From Childhood to Now: A Life with Robots

๐Ÿค– Aspiring Robot Engineer Days

Having loved robots since I was a child, I first encountered programming through the programmable LEGO my parents bought me. In middle school, I entered robot competitions using Mindstorms and even participated in international competitions as a national representative.

๐Ÿ“š Misconceptions from my days as a researcher

However, the robots I encountered in graduate school were completely different from what I had known. Complex formulas, difficult C++ code... I had to conduct research by reading and modifying robot source code, even though I didn't even properly understand variables and functions at the time.

Fortunately, ROS allowed me to barely scrape by in my research by adjusting parameters, but looking back, I think that actually ended up being a disadvantage. I wasn't able to develop real implementation skills.

๐Ÿ’ผ Awakening in the Field

Once I entered the industry, the situation was completely different. In commercial projects where open source could not be used, I had to implement everything from zero base.

The first 1-2 years were truly hell. However, through this process, I built a real foundation in programming and was able to develop "the true skill to create even without open source."

The Secret to 4x Productivity: The Core Philosophy of the Development Leader

๐ŸŽฏ Golden Rule

"Leave repetitive tasks to machines, and creative problem-solving to humans"

๐Ÿค– Things handled by machines (Automation)

  • Formatting: "Don't fight over code style"

  • Testing: "No need for humans to run it every time"

  • Environment Unification: Eradicating the "it only works on my machine" phenomenon

  • Static Analysis: "Detecting issues before compilation"

๐Ÿง  Things humans should focus on (Creation)

  • Architecture Design: "The big picture of the system"

  • Algorithm Implementation: "Core Business Logic"

  • Final Judgment: "Is this right? Quality verification"

๐Ÿ† Actual Application Results

Applying this philosophy:

  • The structure becomes clear

  • The code is consistent

  • The question "What does this code do?" itself disappears

  • Developers can focus only on truly important tasks

Why is Dev Captain's content different?

โœ… Zero-base implementation experience

"Real skills that allow you to build even without open source"

  • Most courses: Focused on using open source

  • Dev Captain Content: How to implement from scratch

โœ… Proven performance in the field

"Methods that have been actually used, not just theories"

  • A proven result of improving team productivity by 4x vแป viแป‡c cแบฃi thiแป‡n nฤƒng suแบฅt nhรณm gแบฅp 4 lแบงn

  • Adhering to industry standards while maintaining fast development

  • Passed client certification, proving its quality

โœ… The "I wish I had this" perspective

"Things I desperately wanted when I was a rookie"

  • Things that I wish "had existed" when I was a rookie 10 years ago

  • Instead of flashy theories, "immediately applicable" practical solutions

  • "The Real Problem Solver" concept

HolyGround "I Wish This Existed" Series

๐Ÿ’ป Practical-focused premium content

๐Ÿ”งC++ Core Project Configuration Management (โ‚ฉ99,000)

We solve the frustration of "the entire team waiting for a build every time a single parameter changes due to hardcoding." With a type-safe configuration system, reduce your build time from 15 minutes to 1 minute.

๐Ÿ“‹C++ Core Log Management (โ‚ฉ99,000)

"Have you ever experienced your program stuttering due to cout debugging, or staying up all night because you couldn't find the cause during a failure?" Implement your own logging system that is 10 times faster based on spdlog.

๐Ÿง C++ Core Memory Management (โ‚ฉ199,000)

An "8-step roadmap" for all C++ developers who "lose sleep over memory leaks and pointer errors." 8-step roadmap. Gain systematic memory management expertise by implementing everything up to a memory pool for real-time systems.

๐Ÿ“–C++ Readable Programming Guidelines (โ‚ฉ149,000)

I have systematized the philosophy that "readable code is good code" based on 10 years of industry experience. By clearly separating the roles of automation tools and humans, this guide will elevate the code quality of your entire team at once.

โšกC++ Ultimate Boilerplate (โ‚ฉ299,000)

We end the pain of "wasting days on environment setup every time you start a new project." With our cross-platform C++ project template, start a new project within 5 minutes and experience a fully automated development environment.

๐Ÿ› C++ Development Environment Automation System (โ‚ฉ199,000)

Stop saying, "I spent the whole day setting up the development environment." With a fully automated development environment system, experience the magic of setting up the entire toolchain with just one click.

๐ŸŽฏ Key differentiators of each content

Grow together with the Development Leader

๐Ÿ’ My promise to you

"Since we're no longer competitors, I'll tell you everything I have"

I will share everything I've learned through trial and error in the field without hiding a thing. I truly hope more developers don't have to struggle as much as I did.

๐ŸŽฏ This is perfect for people like this

  • "I spend all day just setting up the development environment" if this sounds like you

  • "I want to give up because of CMake errors" those who feel this way

  • "I'm too scared of multi-threading to even touch it" if this sounds like you

  • "I fight with my teammates every time we do a code review" - If this sounds like you

  • "I want to develop the skills to implement everything from scratch" those who feel this way

๐Ÿš€ What you can gain by joining us

๐Ÿ“ˆ Changes you can feel immediately:

  • Development Environment Setup: 90% time reduction

  • Debugging time: 70% reduction

  • Code review conflicts: 60% resolved

  • Team Communication: 50% more efficient

๐ŸŽฏ Long-term capability improvement:

  • Zero-base system design skills

  • Architect leading a team capabilities

  • Automation-focused development culture building skills

  • Readable code writing habits

๐Ÿ’ก The unique value of Dev Captain

"A condensed pack of 10 years of trial and error"

  • Field-Proven: Delivering only methodologies verified in real-world projects

  • Differentiation in Completion: A complete learning process of "Theory โ†’ Practice โ†’ Real-world Application"

  • Time Compression: Condense 10 years of trial and error into just a few weeks

  • Directly applicable to practice: Skills you can use in the field starting tomorrow

๐Ÿ… Proven Educational Philosophy

"Developers shouldn't waste time on repetitive tasks. They should focus on solving truly important problems."

This philosophy has been proven by the actual result of a 4x productivity improvement.

๐Ÿ—ฃ A warm community

Readable Code Open Chat (Admin)

  • Welcome to everything from coding concerns to daily small talk

  • From "how to ask good questions" to "easy-to-read code styles"

  • Sharing and solving the real concerns of working developers

Spatial AI KR (Co-administrator)

  • A specialized community for SLAM, autonomous driving, and robotics

  • Technical discussions with industry experts

  • Reviewing the latest papers and sharing real-world application cases

Don't struggle alone; let's grow together

๐Ÿ˜ค I've struggled with these same concerns a lot too

  • "Ugh, working overtime again..."

  • "Why on earth can't I catch this bug?"

  • "I fought with my teammate again during the code review..."

I've also had times when I spent all night debugging, wrestling with spaghetti code, and spending the entire day just trying to set up the development environment.

๐ŸŒŸ We can go further if we go together

Becoming a good developer starts with knowing "why" you should do it that way, rather than just "how" to code.

That's why I HolyGround was created. Don't struggle alone; it's a place where we can worry and grow together.

๐ŸŽฏ True skill is being able to build it even without open source

There is a world of difference between using open source and being unable to do anything without it.

Just as the experience of developing something from scratch had a decisive impact on my growth, this kind of experience is essential, especially for developers aiming for the industry.

๐Ÿ“ž Feel free to contact me anytime


๐Ÿค"Don't struggle alone, let's do it together!" Stuck while developing?Ask Captain Dev!๐Ÿš€I'll share everything I know.


โœจCaptain Developer Eunseong Yangโœจ

I'm doing this because I want Korean developers to succeed

Curriculum

All

28 lectures โˆ™ (3hr 33min)

Course Materials:

Lecture resources
Published:ย 
Last updated:ย 

Reviews

All

17 reviews

4.8

17 reviews

  • foxrose71857๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    foxrose71857

    Reviews 10

    โˆ™

    Average Rating 4.4

    Edited

    5

    64% enrolled

    Thank you for the great lecture.

    • haedallog๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      haedallog

      Reviews 16

      โˆ™

      Average Rating 4.9

      5

      79% enrolled

      I recommend this for beginners who want to start C++ with VSCode. It was great that they always explained the "Why" behind things. The disappointing aspects are: (1) For emphasis in slides, using a single color rather than multiple colors would have been easier on the eyes, (2) It doesn't show Windows setup (though this doesn't matter if you're familiar with WSL), and (3) It would have been more convenient if they had provided a repo link for class notes.

      • rdgldk๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        rdgldk

        Reviews 3

        โˆ™

        Average Rating 5.0

        5

        100% enrolled

        • mingi42265816๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          mingi42265816

          Reviews 1

          โˆ™

          Average Rating 5.0

          5

          32% enrolled

          • sungkukpark๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
            sungkukpark

            Reviews 10

            โˆ™

            Average Rating 4.5

            4

            100% enrolled

            This course covers how to build the most ideal development environment in VSCode, and the process of easily setting up C++ development environment and CMake was particularly helpful. For those who are new to C or C++ language development environments, this course can help reduce trial and error that could range from a few hours to several months. Additionally, the introduction of various useful VSCode extensions was very helpful in improving actual work efficiency. However, it was disappointing that the course presents the 'ideal installation method' as a kind of answer key, making it difficult for students to gain opportunities to explore individual extensions or tools more deeply. While it excels at quickly completing the environment setup, I wish it had provided a bit more room for learners to independently understand and utilize the tools. Furthermore, if the course had covered how to configure settings for directly running or debugging C or C++ code using .vscode/launch.json files, as well as development environment setup methods for Windows OS, it would have been a much more practical and complete course. The fact that these parts were completely missing was somewhat disappointing.

            Free

            captaindev's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!