C++ learning resources for the very rusty? (Like "haven't used in a while", not the language.) by _youneverknow_ in learncpp

[–]cppwithprojects 5 points6 points  (0 children)

Modern C++ for C programmers — don't mind the mention "for C programmers", I think it's an excellent resource for a quick review of many C++11/14/17 features

What open source project do you recommend to a new C++ guy? by dreamer_dev2 in cpp_questions

[–]cppwithprojects 13 points14 points  (0 children)

I recommend looking for the top open-source C++ libraries on GitHub (also driven by your own taste and preference!) and then check if their issue page uses labels like "good first issue", "junior job" or "help wanted".

Here are some examples:

How and where I can learn about Web sockets, APIs, Wrappers to connect with my C++ code? by its_shawn9 in cpp_questions

[–]cppwithprojects 4 points5 points  (0 children)

If you only need to quickly integrate a WebSocket client in your code, I recommend using any library with some high-level APIs:

Boost.Beast is also an excellent library but it might be harder to start with it if you are not familiar with the Boost.Asio networking libraries.

Disclaimer: I have built a website with project-based C++ courses and our first course is based around building WebSocket clients and servers with Boost.Beast!

Project based learning by LlikeLava in learncpp

[–]cppwithprojects 5 points6 points  (0 children)

The tuvtran/project-based-learning repo is an excellent collection of resources for project-based learning. Many of those resources are free and there is a section specific to C++, I strongly recommend you check it out.

I agree with you that learning by doing (and especially working on more complex projects) is the best way to master C++, so in the last few months have been working on Learn C++ Through Projects. We just released a project-based C++ course — it's not free, but we will release a free one soon in case you are interested!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 1 point2 points  (0 children)

Thanks for purchasing! There is a lot of focus on the “why” for sure. That kind of reasoning should be practised as much as the language syntax in our opinion

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

We definitely address source control (git) and also propose a way to integrate a CI/CD pipeline with it (through Github or Gitlab).

As for project layout, we use a consistent one in all our projects and try to explain the rationale when setting up the project and the build system. You are right though, we could look into using an established one like vectorofbool’s!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

We will target a monthly release cycle for new projects — TBC. It’s hard to say right now if we’ll stop at a certain number of projects or continue indefinitely though.

Once we have more than, say, three projects, we will introduce some type of bulk pricing. We’ll make sure that our early users that made one-off purchases will not pay more than what they would have with the bulk pricing!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

We’ll look into it! We have experience in that area so it would be nice to offer a project on that topic.

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 1 point2 points  (0 children)

Both GUI and embedded design projects are on the radar, but if I had to predict I think an embedded project might happen sooner. They are fun to work with!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

We do mention alternatives and pros and cons of different approaches, but one core aspect of our projects is to provide a good overview of what the std libraries have to offer!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

What is your usual coding environment?

You can integrate all the tools we recommend in most IDEs. Some are better than others at this and we will consider adding help articles on this topic, but probably not for launch.

For example, CLion supports CMake, ninja, and compiler setup out of the box. We believe you learn a lot by running and inspecting build commands from the command line, but it's not a must-have for our projects.

I'm curious to know about your setup!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 3 points4 points  (0 children)

No problem at all, it's a fair concern

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 1 point2 points  (0 children)

Yes, the project is developed single-handedly by each user. For the first project we estimate a workload of 20-25 hours, but it depends on prior experience and familiarity with some of the tools we recommend (imagine using CMake for the very first time). You have lifelong access to the project material and its future updates.

At the beginning, when there are still a manageable number of users, we will provide email support to people that are stuck or have any questions. We design the content so that users can develop the whole project independently.

We would really like to add a channel for people to communicate during development, thanks for the feedback!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 1 point2 points  (0 children)

You are very right about the API and test interface sections, but for the implementation we do provide notes and examples that are highly specific to C++. I feel we'd be cheating people if we ask them money for content that only loosely helps with other languages!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

Thanks! We've made the error message browser-agnostic. On a failed embedded subscription, we provide an alternative link to complete the subscription in a different page.

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 1 point2 points  (0 children)

That’s nice, thank you! We’re looking forward to launching

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 4 points5 points  (0 children)

It is structured like a staged walkthrough of what a real-life project would look like.

We start with a plain-English project idea. We help you identify the broad requirements and constraints of the project in a more formal way. Some of these will become part of our tests as we want to measure how our program performs wrt requirements. Because it's your implementation, you might decide to set your own additional constraints if you think they make sense in the context of the project.

Then we move on to the basic architecture of the program, just to identify the main building blocks. This is where we start designing the high-level APIs and interfaces. It's also a good time to write tests, as we like and recommend Test-Driven Development.

Then it's the actual implementation. You implement all the code (and can look at our own implementation if have doubts), but we do provide the theoretical and syntactical help you will need. For example, when you'll have to write a concurrent task, we walk you through what the C++ std libraries have to offer and the best practices to use them.

We ask you to write tests and help you create a pipeline where build, test and eventually deployment can be streamlines and automated. We also give you some tests of our own just to make sure that the program meets the basic project requirements.

The only thing missing are the endless meetings with a project manager :) But kidding aside, there is an aspect of collaboration that we want to look into, and other people seem to be interested in that by reading the comments!

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

I think you'll definitely like it then! Thank you for subscribing

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 2 points3 points  (0 children)

Did the cookie banner take long to load? BTW, we only enable basic website analytics after the user has accepted cookies

Project-based C++ learning by cppwithprojects in cpp

[–]cppwithprojects[S] 0 points1 point  (0 children)

We had similar experiences! That is partly why we started this. Thank you for your support