I've been programming since '83. Just personal stuff, really. At one time, I knew more than 15 languages well enough to jump in on anything and light it up. But in all that time, I never touched C++. I'd read horror stories abt pointers and was turned off by them. But here I am. I'm going through a few Udemy courses, just finishing pointers and references, Classes and Objects, and working on operator overloading at the moment. All is well, so far.
So here are my questions:
1) Is there a demand for C++ console programming? If so, then;
2) Is CLion a product that's used in the marketplace?
I've used CLion, C::B, CodeLite, Qt, and VS2019. And the one I like best is CLion. I'm asking you this because I want to be learning on an IDE that developers use. Qt would be my next favorite.
This is a good forum, one of the best I've ever been on. So I look forward to your input. I know it'll be on point.
lot of stuff is command line. Basically, if a user interacts with it, it usually is not command line. If not, it often is. Examples are device drivers, background processes, utility (in house?) programs (may have a drag/drop file makes new file, or simple command line params or interface), embedded programs, etc.
2) no idea. Qt is a gui system, not an IDE really. I use notepad ++ but I am doing mostly in house utilities, my job does not use much c++. Visual studio is one of the best out there.
3) pointers as used for dynamic memory are rare in modern c++. If you are using new/delete a lot, stop before it becomes a habit. Use a vector or similar container: they do the memory for you, and its already debugged and cleaned up.
There is no "C++ console programming". Unless you're talking about literally programming consoles, as in, controlling terminal emulators through their various APIs and libraries like ncurses (in which case, no demand. Also, those APIs/libraries are mostly C).
If you want to emphasize some particular technology, it would be perhaps, C++ network programming, C++ concurrent programming, C++ embedded programming, C++ software infrastructure programming, or maybe you can emphasize the target business - C++ finance programming, C++ automotive/avionics programming, C++ telecom backend, C++ VFX programming, etc etc.
I want to be learning on an IDE that developers use
Most people understand "console progranming" as a valid short version of "programming for the console", meaning "not GUI programming", which is of course short for "programming using a GUI framework to produce a GUI application."
Some of us even consider it obnoxious to be pedantic over common vernacular which cannot honestly be misconstrued to mean anything else.
Qt is an entire application framework, which includes GUI components as well as non-GUI components.
It seems as though my choice of words caused a bit of confusion. My apologies.
When I said C++ console programming, I shldve said non-GUI. In doing various C++ tutorials, learncpp.com comes to mind here, everything is done via a console app. Never are GUIs used. In the Udemy course on C++, all lessons are console apps, never a GUI. So I just tied together, with limited knowledge, a non-GUI program to be a console program. Hence my term C++ console programming.
When i read your pointer suggestion, all the monsters turned to vapor and were gone in the blink of an eye. In my current Udemy course, I used new/delete quite a few times when studying Classes and Objects. I'll go back over the exercises and see what I can do along the lines you laid out. Much appreciated. Thanks.
Thank you. Your insight to the various technologies was really what I was looking for. The IDE opinions were just an afterthought once I started the post.
Thanks to all of you who took time to offer your insight/input. It taught me a thing or two.
I will add one more stray for you. Often you write code in 'console mode' for the most part. You typically want to be *able* to plug your code into a GUI if you want to, but most of the code is blissfully unaware of this. The majority of your code should allow any input source (could be cin, but may not be) and target any output (could be cout, but may not be). Practice making your 'do the work' objects and tools be flexible in this way, and letting a wrapper handle the I/O part for that specific program (but a different program may use a different I/O piece around the same core tools).
This is one of a few places many intro books blow it, they just dump cin/cout into classes everywhere for simplicity.
C++ took the idea of pointers from C. You never dabbled with C? (Whether C originated the current concept of pointers, I don't know.)
Yes, "raw" pointers can cause problems, especially when dealing with pointers handling memory declared on the heap. Pointers can be especially error-prone to memory leaks if not diligently managed.
Pointers are a powerful tool. "With great power comes great responsibility."
C++ smart pointers make managing the lifetime of pointers and memory less error prone. A programmer still needs to not be sloppy.
Check out usage polls
DAYUM! VS is by a sizeable margin the choice of development environments, even though Linux edges out Windows as OS. That is seriously surprising to me.
Working on the command-line instead of using an IDE looks to be favored only by a handful. That is rather sad IMO. As much as I am wedded to using VS I would like to learn to make use of the command-line/make files to broaden my knowledge.