What after finishing a C++ course?

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?

Are you planning to work as a C++ developer? If the answer is “Yes”, ignore what I’m going to say next…

JavaScript may be a better language for you to get deeply familiarized in. From there, you can even go WASM or WebGL where you can mix C++ and JS together. JS is one of the most popular languages out there (sometimes Python shows up on top!), but the fast iteration and ability to test anywhere makes it a good one to go deep into.

Plus, you can also learn Data Structures and Algorithms using it:

I’ve been spending a bunch of time revising it over the past few months :slight_smile:

If my memory is right (I have a SHOCKING memory) you keep jumping from one thing to another and saying things like “I did a 90 hour course”. Well do you know how long its considered to become a master in anything? 10,000 hours!!! And to make things harder knowing how a language works is just the start. Knowing a language to perfection (even with 10,00 hours) wont enable you to do ANYTHING! After that comes each subject, css, dom ,html, algorithms, graphics, audio, data structures, memory management, numbering systems (decimal, binary, hex), databases, trigonometry, etc. And then even after you pick something like graphics its made of soooooo many of the previous things. Pick the language that your most comfortable with or you think is most advantageous to your goals (such as finding work, which is prolly JS). You need to pick something, get real good at it and then think of looking at other stuff. Graphics is an AWESOME!!! area to look at, it will teach you all sorts of things including data structures and algorithms. Start at 2d and then look at 3d. Learn to manipulate the canvas, pure byte data and then move to 3d. Graphics and the demo scene (Im old, think the 80’s) are what really got me into coding, its so much fun and you will learn sooooo much. Trying to move butt loads of particles needs knowledge in a bunch of things.
I couldnt do C++ when I was younger (getting better) but I dont care anymore as JS is sooooo much more rewarding. If I was you Id stick with JS as I dont think the langauge you pick is so important as the concepts of what needs to be done to get things done.

PS: I looked up darkgdk and saw it has a relationship with DarkBasic, I loved that once a time, one of the few basics I didnt hate with a passion (mainly because of the community)…nice to see it still lives on.

I’m completely planning to switch from javascript to c# .NET or java. Mainly because javascript is too complicated for me(destructuring,spread operator, fetch apis, etc). (After I give a try for the last time where I’ll make around mini 75 projects in javascript-I won’t do it now but later when I get some time). My current plan is C++(I’ve learnt basics now want to practice questions. My goal is DSA In C++.). I am currently learning Linux and SQL as well. I learn Linux and SQL on weekdays and C++ on weekends. So, I’ve to manage time.

What do you say? My ultimate goal is to be able to program, doesn’t matter if I become a web dev, app dev, SDET, automation engineer, devops or whatever you name it. Because programming is ultimately important skill.

any concrete advice you could give me? I understand the gist, but I’d love a concrete advice. Also do read my reply to @Kirupa.

To be honest, I cant understand why you would find C++, C# or Java easier to understand than JS…

JS like C++,C#, is one of those languages where there are:

  • 10 different ways to skin a cat
  • no “correct” way to do something
  • an abundance of syntax
  • nuances that alter the way your code runs e.g. type coersion
  • multiple paradigms
  • a boatload of concepts that must be understood to do anything useful

If you are hell bent doing back end and skipping front end learn Golang because:

  • the syntax is deliberately simple
  • there is usually only 1 correct way to do anything
  • its stupidly fast for a GC language
  • its awesome for network programming
  • there are lots of jobs
  • it can be compiled to run on anything (hackers love it)
  • Google develops it unlike Oracle or Mozilla gone wild (Rust project)
  • they don’t keep adding stupid features and bloating the language

If you want to do/ learn bare metal programming go with Ziglang because:

  • its like Golang and C had a baby
  • it can compile C code better than C compilers
  • it runs on nearly anything
  • it memory safety is 90% comparable to Rust without the borrow checker
  • it has Comptime (run at compile time code)

I know JS pretty well and have tried to learn Python, Rust and C.

Python was just like stitching together a truck load of libraries and praying that it works…

Rust was a mind bending experience but you have to know 70%+ of the language to do anything useful and coding time is “just kill me” slow…

C is just full of footguns…

I’m slowly learning Go and Zig now and sure its not easy but they’re a whole lot simpler to wrap your head around…

I have seen both C# and Java talks at some of the programming meet ups that I’ve been to.

The C# code was hard to understand because it was a orgy of 50+ classes that called other classes. To understand it I would have to be familiar with all of those classes (some inbuilt, some created).

Java seemed simpler than C#… but again it was a bunch of deeply nested classes.

I think classes are useful in JS (especially for importing) but turning every single micro operation into a class, nesting them 10 deep and having them pass data and call each other is worse than spaghetti code…

1 Like

@polaryeti - I think everyone has given a lot of good suggestions here. If C++ is what you want to pursue, then great. Just stick with it. Don’t keep jumping around the moment things get uncomfortably difficult. That is just a part of learning.

The point is its like learning anything you do physically, just because you know how to do it doesnt mean you can do it well, or will when needed. Its why I could teach you how to block a punch but if you dont practice it over and over, when you get punched you might not do it instinctively. Just knowing how to do something doesnt mean you can do it well, or even do it. Learn a language, become efficient in it and then learn the other stuff. Yes you learn best by doing, but your jumping around so much your not learning enough to make it an instinctive way of doing things.
You want an exercise for JS…take that c data structure stuff your learning and convert it to JS. When you can do that easily you know Js.

1 Like