I have been working in HMTL, ASP.NET till now. All the stuff that I did so far is just learning tags and using them. I am sure this is not what I want. I want to learn more about algorithms and programming. I am thinking of shifting my career to C++. I have a few questions regarding this:
1. Is this a good idea?
2. Are there plenty of jobs in C++ for beginners(freshers)?
3. How much time will it take to learn c++ completely?
These questions aren't easy to answer, but I'll try:
1. In my opinion it is always a good idea to learn C++. One reason is that you will familiarize yourself with the Object-Oriented paradigm, which is very very useful when moving onto other languages such as java or python. Another reason is that it is a widely used and popular language, and I think it'll provide a good qualification job-wise:)
2. I wouldn't expect to get a job as a beginner in any language. In order to perform to the standards required by most jobs in computer programming you'll need to master the language(s) you use, and C++ is not the easiest language to learn.
3. As I said previously, C++ is not the easiest, and therefore not the fastest language to learn. How fast you can "master" it depends on your previous knowledge of programming languages, the oop approach, computing in general, how hard you work and your level of natural talent. So, as you can see it is almost impossible to say in advance how fast you'll be able to gain the level of expertise you want.
1. Learning C++ is a great idea. ;) You're bound to hear that on a C++ forum, but the fact is that it's a very powerful language and there are loads of great libraries available for it
2. I'm still at school, so I wouldn't know much about jobs, but I would imagine that is is easier to get programming jobs as a more advanced programmer than as a beginner.
3. You will probably never learn C++ completely. A new standard is on the way, and the language, has so many subtleties that you will gradually pick up as you go along. The standard library is also huge, and likely you will only remember the bits you use frequently. You should learn the basics, which might take a while in itself if you haven't come across classes and pointers before. Then you will be able to learn the more complex stuff from books by Stroustrup and Sutter, etc and various articles and so on.
Of course, ultimately a book is better so you might want to ask around on here about that too (although it's been asked before so you can probably just find the old thread).
If you're interested in C++, pursue it. There simply aren't enough C++ developers around.
In answer to your questions,
1. Yes, it's an excellent idea
2. Getting started is always tricky. Try to learn a bit about the industry you want to start it, that'll help.
3. You'll probably never learn it completely, there's just too much to learn and the language evolves. But you just need to be good enough in a particular domain to get started.
Two books which I haven't got yet, but I've heard good things about. They are both moderately advanced, I think, but they should be very good once you know the language fundamentals.
Bjarne Stroustrup: The C++ Programming Language (this guy invented C++)
Herb Sutter: Exceptional C++ (this guy is the top Microsoft CLI/C++ architect who used to chair the C++ standards committee).
your inputs are very helpful. I am looking for a book to learn fundamentals. Do you think the tutorial pdf on the site should be sufficient enough to get a good foundation in c++ fundamentals?
Everyone has their own opinion, and I agree that C++ isn't suited to Web development, but I'm damned if I can think of a business domain doesn't care about speed.
That site seems like someone trying to make a living out of bull****... It's nothing but a commercial website trying to sell their fish.
EDIT: Although I have to agree that C++ is not for the common web market (except where speed and security is a must, banks, etc). However I believe that anyone learning C++ isn't looking for webdevelopment anyways..
We literally cannot hire enough C and C++ programmers. Every one that decides to move on finds a new job almost at will. I have left every job I've ever had without bothering to find a new one first; until someone told me otherwise about two years ago, I honestly thought that's how it was done and that it was normal to take a couple of weeks off and then pick up the phone when you felt like working again.
May I ask how long you've been in the industry? I wish it was that easy for me to find a job as a programmer, I'm a recent graduate and my C++ is strong and I'm finding it impossible to even get an interview.
Almost a decade. I'll freely admit that I've always been prepared to move more or less anywhere, and it does seem that being able to start tomorrow is a significant factor in getting hired. Few people hire because they want someone in a month; they want someone now.