well, as a first language for you how much it takes from you to master C++, and how you were learning. and how much daily you spend time on that ?
Regards,
iCoder
Printable View
well, as a first language for you how much it takes from you to master C++, and how you were learning. and how much daily you spend time on that ?
Regards,
iCoder
Depends what you mean "master". Some people never seem to master it.
I was a COBOL programmer for about 5 years before switching to C++. It was several months before I could really do anything useful with it, then probably a year before I was what I would consider good with it.
Being a masterful programmer isn't really about the language you use though, it's about the way you approach a problem and the solutions you develop. The language is just a tool.
Yeah, I was pretty comfortable with it and writing fairly complex Windows apps after a year or so. I've also seen people with 10 years experience, unable to figure out the mean of a series of numbers. There are still a lot of features of the language I don't know well compared to some of the people here, but I would would venture to say I'm one of the better programmers out there.
As I said, the language is a tool. Mastery is a mindset.
I was able to write decent "C with classes" code pretty early on. It took quite a while before I realized that wasn't the best way to go about things.
Ditto for me. Most of my "C++" experience is in embeded avionoics, which is really "C with classes". After 12 years, I still don't consider myself a master, but I can code just about any type of app efficiently.Quote:
I was able to write decent "C with classes" code pretty early on. It took quite a while before I realized that wasn't the best way to go about things.
Truer words have rarely been spoken.Quote:
As I said, the language is a tool. Mastery is a mindset.
I bet that every C++ programmer is not versed in everything that the language offers.
For example, some know C++ templates backwards and forwards, while other respected programmers may not know everything about them. Yes, there are common elements of the language that every programmer should know, but there are other C++ features that some may know, while others won't know (or use) much of.
Bjarne Stroustrup himself (the inventor of C++) doesn't keep track of all of the things the language he invented can do. Even he was surprised when he first saw a C++ template meta-program. Scott Meyers, a highly respected author of C++ books, was not versed in the STL until after his second book.
In other words, no C++ programmer knows everything (well) in C++.
Regards,
Paul McKenzie
Don't confuse mastering programming with mastering C++.
Somebody may know Wordperfect or Word inside and out but that doesn't mean they can write a best-selling novel, and some of the best writers may only know the most basic feature set of Word that they need to get the job done.
Very few programmers will be writing very involved programs well with only one year of experienced, but a really good, experienced programmer, should be able to do really well with C++ in a year of less.
C++ is a tool. People tend to learn as much or as little as they need to get their job done. You may be the best programmer in the world and never "master" C++, or you may know all the ins and outs of the language and be a terrible programmer.
Reminds me of a programmer (or purported to be one) I used to work with.
He had "book knowledge" of the Windows API. He could tell you the API call, how many parameters it took, what each parameter meant, etc. The problem is that he couldn't write a real Windows program if his life depended on it.
Regards,
Paul McKenzie
On the other hand, I met C++ programmers trying to catch C++ exceptions "thrown" by WinAPI functions, sorting non-virtual listview controls using std::sort and so on.
Definitely, to make real-life programs (particularly, Windows applications) it's not enough just to know the C++ language, even at advanced level.
Paul captured my sentiment/intent.
I can write efficient relaiable apps in several languages. I'm especially good at real-time back-end processing apps and diagnostic tool. I know MFC very well. But I know next to nothing about the .Net platform.
I recently started a new job and will be converting an MFC app to C# with Windows Forms. I expect in a year or so to be very good with C#.
If you have a solid grasp of programming theory, switching between languages and tools is just a matter of learning the syntax and the Object Model (and coding conventions for that language).
My colleagues learned C++ via a book or two, then got some C/C++ related jobs, later we entered the same company and his salary was $150,000/year while I was only $30,000. I gave up because I envied, that saddened me deeply.
I left the company promising myself that I would master the language. It "nearly" [yet to self-claim 'mastering-level'] works, I grasp the basics, know a couple of random people and pour my advice all over the place.
It took me only 2-3 months.
Begin by wondering why 'struct' is different stuff in C#. :)
Well, seriously, that can be stated if have never seen C++ code written by Java programmers or never dealt with (plain) C code after years of C++ programming. Not mentioning .NET programmers (yet)...
Otherwise, can reformulate a little bit: "although different languages may have pretty different syntax and may use pretty different coding conventions and object models, it's much easier to switch between them if you have a solid general programming background".
[ continued ]
This thread demonstrates that for many people, switching between languages is not just "a walking in the park".
Or course, if want to write programs and not only a bunch of lines of code. ;)