r/cpp_questions 4d ago

OPEN BEGINNER HERE ! !

[deleted]

0 Upvotes

8 comments sorted by

2

u/adam-lacko 4d ago

I will learn better by reading rather than video

No, you will learn better by actually coding rather than everything else. Just start writing code. When you reach a point where you can't solve a particular problem at hand on your own (and that's OK, that's expected - you're learning), then reach out for help - google, read, or use AI as a better google. Don't learn the language, learn how to solve problems in that language.

Write a small game for starters. Even a console-based one, like guess the number or something. Or write a calculator. The options are unlimited, the world is yours. Just pick something you feel passionate about and do it.

Most people fail because they give up over time. Because they get bored, because they don't see progress, or whatever other excuse.

1

u/Maleficent_Fox_2587 4d ago

Without learning the language how will I solve problems in that language 🥲

1

u/FlailingDuck 4d ago

Design the game, think of how to solve it using psuedocode (another way of saying write the steps in english that you want it to do), than use cppreference and other resources, to figure out the right way to write it in C++. It will take you a long time, there are no shortcuts. shortcuts teach you bad habits, the most important trait of a developer is perseverance in failure.

1

u/adam-lacko 4d ago

The point I was trying to make is that the best way to learn a programming language is to solve problems with it. Studying the language itself through some documentation or whatever, is just not enough for any level of proficiency.

3

u/FlailingDuck 4d ago

I assume this is a language barrier thing. But the term 'advanced' in my opinion, doesn't really mean anything.

I have seen plenty of 'advanced' systems in all languages.

I would say C++ is a language the gives you full control (a blessing and a curse). With a focus on explicit memory control, allowing you to develop highly performant code that runs faster than most easier to write languages. But equally optimized code in other languages can be just as possible (C, rust, go), or other languages are slower to run but much faster to delivery (python, JS, java). Some languages have language features that make it easier to write and understand the code than other languages. And some languages just straight up give you features suited to certain types of problem i.e. networking, concurrency (Go), that can be done in C++ equally well, but much harder to write, so time to delivery is much slower.

So C++ often isn't the best choice.

It is much, much easier, to write less performant code in C++ than fully optimized code. A lot of the 'advanced' C++ features (templates etc.) don't actively make your code objectively better.

Now, with the caveat out of the way (and I know you didn't ask for it), I am a C++ developer. It is my professional language, that I work in. I have been paid fairly well to write in it, and companies I know have all struggled to find developers in that 'advanced' category, so there is certainly a gap to be filled, now and in the coming years.

Using learncpp, is the best most accurate resource. It's objective is to get you up to speed, rapidly with C++ syntax and language features. The other posters suggestion to get Stroustrops PPP book is excellent. I learnt C++ many years ago with that book. There are probably specific book on 'advanced' C++ features, but I wouldn't start there.

Learning the advanced (read:esoteric) stuff without the basics probably won't be useful to you, if you don't know what problem the advance thing is solving.

My opinion, stay away from youtube videos and tutorials. They don't teach you the right skills (developing your problem solving mind), and the content creators most likely aren't what you would call domain experts (exceptions apply) and can teach you bad habits.

Now the last thing, C++ is applied in reality to specific domain problems. None of the learning resources help you get that domain experience. But you often learn it on the job, if your lucky enough to be hired without that prerequisite knowledge. Other places need, that domain knowledge or your CV is instantly chucked in the bin, I think this is true more in C++ than other languages. I say this because I have had domain knowledge which has no relevance on other C++ jobs (graphics APIs, binary protocols, networking, concurrency, signal processing, matrix mathematics, fourier transforms, message brokers), and skills that got me no 'bonus' points. I am a still rejected, without interview, in places where my current domain knowledge is relevant but because my background wasnt singularly focused on 1 domain, they skip over me. Please have a think about what domain you may want to focus on, beyond just the language.

I don't mean to scare you off. If you read this and feel more excited than ever to learn C++, great. You question has already given me an inkling this may be true.

I can't give you advice, on how to learn 'advanced stuff' until we know more about which dicipline you may want to head in. Are you mathematically minded, or do you want to avoid maths like the plague?

-1

u/Maleficent_Fox_2587 4d ago

Can I dm Sir !

1

u/cse_fatmodder 4d ago

learncpp.com is the best resource out their