I wanna start off by saying, I am a COMPLETE beginner to C++, basicly a noob in all programming languages. I've been able to grasp the VERY basis syntax of the C++ language (Watching newboston tutorials etc). I recently started on my first book in any programming language (YAY), the book is called "Jumping into C++ by Allex Allein".
Now can it really be true, I am not even half way through the book and he starts on some pretty advanced topics. I'm already strugling with the first advanced topic, "structures". Or atleast he makes it advanced. I mean this "Alex Allein" guy started out pretty good explaining basic syntax of the langauge in chapter 1 & 2. I pretty much enjoyed it until chapter 3. Now he expects after you learned the very basic syntax, you can learn the advanced topic basicly on your own.
He just starts a topic, in this example structures. Throws a couple of facts in your face and shows you some of his advanced code. Then he throws some practices in your face which requires you to be able to update the screen position of an array object in the console. I mean really? WTF. I am a COMPLETE beginner at this and you expect me to grasp that.
Thing is, this guy is HORRIBLE at explaining how to program in C++ in chapter 3 and forward. So it brings me to this question, is it gonna be a pain in the ass in ALL books for beginners? Does it really require you to google every simple thing a book teaches you? Because the book simply doesn't explain it well enough? Should I start with a easier book out there? Many recommend Accelerated C++. But Alex Allein claims his book is for beginners too.
I am really confused, should I just live by the fact that C++ is generally hard and not many is good at explaining it?
I recommend the headfirst series. While many people think it's a little childish, it's easy on the eyes and helps the reader grasp difficult concepts. While a headfirst book regarding C++ isn't available (it may be in development), there are books on Java, C#, PHP, C, etc. I personally own the Java, C#, and C books and I can honestly admit they have helped me understand the languages more than any other book I've read.
You know I've used Alex's site before, and found the tutorials there to be pretty straight forward but never bought the book; it's a little disappointing to see the book gets confusing post chapter 3 for you, because he always tries to keep his teaching methods understandable to a wide variety of people. And yes, it's actually very of hard to write a programming book that everyone will understand :P. Have you tried the tutorial here? ( http://www.cplusplus.com/doc/tutorial/ ) it's also aimed to be pretty straight forward, and if there are any problems, the forum is always willing to help :D
I tried C# and it wasn't something for me tbh. It was a bit too "easy" for my type. I feel like C# is like Photoshop. A built program doing all the work for you.
I like it when it is just plain code.
You really don't know enough about C++ and C# to state this, as you are wrong. They are both High-level OOP languages which are very similar for most things. The only real big difference is that C++ offers some low level things such as pointers, etc so that it can be easy backward compatible with C. C# does have pointers though you have to specify the use of un-safe code. Also C++ has no garbage collector, Unless you use C++/CLI.
However as Bjarne Stroustrup mentions at the release of C++ 11, you should stay high-level, if you wish to be a low-level coder, really consider what you wish to create, because your limiting yourself a lot. C++ and C# work well together and you will find that large enterprise development rarely just use one language. C# is not like Photoshop of programming, if you wish to do something useful, it can get very difficult and in practice, very similar to how you would do it in C++.
Here’s an exemple of simple C# query using a lambda expression;
string csv = this.Ctr.Select(b => b.x).Aggregate((a, b) => a + ", " + b);
Console.WriteLine(Regex.Replace(csv, @",\s([^,]+)$", " and $1"));
it provides all of C's features because it evolved from it and to keep backward compatibility. Also considering the creator of C++ calls it a high level language, I would assume it would be.
C is not object oriented, it is general-purpose procedural language while C++ is a OOP language, that is a big difference. Considering all modern software and games are strongly object orianted, I don't see why you would want to spend too much time with just C or anything low level.