Click here to Skip to main content
15,887,485 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I've finished a 50hr course on C++ and my basics are somewhat clear although I'm not confident of it.
So, I am looking to improve my C++. My ultimate aim is to study data structures and algorithms in C++.
Book 1:

https://www.amazon.com/Problem-Solving-9th-Walter-Savitch/dp/0133591743/ref=sr_1_3?qid=1686155829&refinements=p_27%3AWalter+Savitch&s=books&sr=1-3

Book 2:

https://www.amazon.com/Starting-Games-Graphics-first-Gaddis/dp/B00BUWFM50

As I said earlier, I've already grasped basics of C++. Since my ultimate goal is to work in coding industry, for interviews, I need to prepare for algorithms and data structures, grind leetcode. Between C++ and Java, I choosed C++ because that was taught in our university.

I won't read the first book line by line. I will start from exercises of loops and complete 20% of all exercises. It'll take at least 6 months of weekend studies for me to get there.

Another plan is to do graphics programming. The book by Tony Gaddis is so good for me. Only problem, it uses darkgdk which is very much outdated. So, if you've any recommendations for libraries in C++ like sfml, allegro, sdl, etc, Please recommend. Recommend those which is similar to darkgdk architecture. This book will also take me 6 months of full time weekend studies to finish.

Which one will be more beneficial to my learning?

What I have tried:

I've tried to googling. I've tried finding books. I've tried finding books with exercises.
Posted
Updated 8-Jun-23 7:56am

You have to know that you can do pretty much anything in any language, simply some languages are harder for beginners because there is more pitfalls to handle.
You need to master a set of techniques that are the basis of the job and are not linked to a language.

Advices:
- Start with an easy/safe language: VB, Java, C#, not C or C++. I do not recommend to start with Python either because of the usage of indentation.
- Read documentation / Follow tutorials (a lot of them)
- Start with tiny/useless projects, the purpose is to learn programming, not doing something useful.
- Start with console mode programs (no fancy graphics, no mouse)
- Learn debugger (an incredible learning tool)
Debugger - Wikipedia, the free encyclopedia[^]
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[^]
- A problem ? Google is your friend.
- Learn one or more analyze methods, E.W. Djikstra/N. Wirth Stepwize Refinement/top-Down method is a good start.
Structured Programming.pdf[^]
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[^]
https://en.wikipedia.org/wiki/Structured_programming[^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[^]
Program Development by Stepwise Refinement[^]
- Learn Algorithms and Data-Structures.
GitHub - The-Art-of-Computer-Programming-Books: "Everyday life is like programming, I guess. If you love something you can put beauty into it." ? Donald E. Knuth[^]
Skiena The Algorithm Design Manual
- Learn Boole algebra
- Learn SQL
- Learn Databases design and Administration
Introduction to database design[^]
1NF, 2NF, 3NF and BCNF in Database Normalization | DBMS Tutorial | Studytonight[^]
- Learn Regular Expressions

Interesting link:
stanford.edu: Learn to Program[^]
CodersLegacy - Imparting knowledge to the Future[^]

There is no shortcut to knowledge, no one can learn for you, you are the only one that can do it.
Remember the exercises and little projects are not here to make something useful, they are here to teach you programming.

My most important part is probably: Learn one or more analyze methods.
 
Share this answer
 
I learned programming by implementing various graphical algorithms. I started with fractals and then I went to spirograph shapes (hypercycloids) and then 3D wireframe objects and lastly to 3D solid, shaded objects. I started before Windows was an actual product so I used some ancient libraries but then I went to Windows' GDI and GDI+ and then to OpenGL.

Today, I would probably start with GDI+ and doing 2D graphics like the spirograph shapes. I found getting into proprietary libraries is not the best path unless it is one in very wide use because the likelihood of it being used in a professional setting is small. If you want to jump right into 3D graphics then I would start with old-style, retained-mode OpenGL. It is much, much simpler than the newer version which uses programmable shaders. There are tons of sample code available for both Linux and Windows.

I can't recommend a book on this because I didn't use any and I don't pay particular attention to them now. I got Scott Meyers' book "Programming in C" and went on from there. If you want to start with structures and algorithms then you might not want to jump right into graphics but I did because most graphics things use structures and algorithms too. There are lots of on-line tutorials for this stuff that could be useful for you.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900