I want to start learning C++ and don't know what to start with. I have some VERY limited programming knowledge, and I want to advance to the point where I can create my own piece of software.
Ideally, I want to make an application that is able to take in a .las point cloud and do operations on it.
Now, for my question, C++ looks really scary to learn, especially due to the HUGE amount of things it can do and I don't have time (for now) to learn it all - What should I learn to get me as quick as possible (without compromising quality) to the point of making my own software.
I hope I'm making myself understood, feel free to ask for details.
*my initial idea was to learn first how to create a library that can read/write .las and work further from there
Also, any idea where I can find a list of interesting project ideas to work on while studying the language? Just reading and making short exercises will get me bored in 2 hours.
Yes C++ can be pretty scary.
Why don't you consider learning C# or Java or Python instead.
The learning would be much easier and there are better learning resources available.
IMO it's not a good idea to start with the most difficult programming language.
Believe me if you study indian books which push you more than your capability then things will be easier for you later.
No, just no. Most people that post aberrations here like using conio, bgi (i.e: "graphics.h") and abusing the "system" function seem to have learned them from school/college/ textbooks/professors/teachers, plus they are also mostly from India. So I'd rather recommend to avoid any-kind of textbook, especially Indian (no offense, but that's the truth).
If you want to learn, do it right. Would you rather learn from the creator of the language or someone that has proved his worth in this domain, and more importantly, writes/has written production code or from some school teacher that has only written code on paper and doesn't actually know the language he's talking about? The choice seems obvious.
Stay with C++ Primer (5th Edition); it is a good choice.
Avoid popular text books which are commonly prescribed; Indian text books are just as bad as the offerings which are popular amongst career teachers in the US; the only saving grace is that since you didn't have to pay the earth for a bad book, it is psychologically easier to do the right thing: throw it away.
Believe me if you study indian books which push you more than your capability then things will be easier for you later.
Interestingly enough, that first amazon link has a review which contains images of the table of contents. The first 5 chapters have very little to do with programming, and the 6th chapter has such gems as:
Why include iostream.h?
iostream.h is a non-standard (sometimes non-existent) header that's use has been obviated since the first standard for C++ was published some 20 years ago. It isn't 1998 any more.
It does appear to devote 5 whole pages to C++11, so at least there's that!
Everything won't go waste. But you may end up having to unlearn some of the things that you had learnt.
Though unlearning something wrong is more difficult than learning it right in the first place, you would have plenty of company; almost everyone who has been taught by a career teacher in a class room. Fortunately, his is quite well understood by the industry; unlike in medical education, programming is mostly taught by people who never had to program for a living. Software set ups do invest quite a lot in teaching programming to fresh recruits just out of college.