[Curiosity] What does the "average" C++ developer work on?
-
That is correct. And a time will come when the "tools" will become so easy that anyone with a diploma will be able to write applications. You will no longer be required to study all the 'boring' details. Just get a diploma in a language and start cranking out code... like a monkey. It is happening right now.
NULL
Mechanical wrote:
And a time will come when the "tools" will become so easy
Well, if you take .NET it doesn't seem to be getting easier but more complex. The languages raise their abstraction but then the complexity shifts to the frameworks and techniques. And then you get the ever merciless tyranny of version-itis. E.g., "must have six months commercial experience of Silverlight 4." "Done 2 years of Silverlight 3? Tough. We consider you to have zero experience." Speaks a cynical unemployed programmer. :(
Kevin
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
I loved coding in C++ prior to getting a job, I guess because it was fun to work so close to the metal, allowed for heavy optimization and there were lots of nice tricks that could be achieved with things like macros and templates. Out in the real world though I've never come across a C/C++ job, and for over 95% of the projects I've worked on (for money) C++ would have been a worse choice than C#/.NET. It's usually faster to write something in .NET and I don't see any real benefit to spending longer writing common run-of-the-mill applications in C++, even if it was to use some framework such as MFC. My guess is the main reason to use it would be for low level device drivers. And possibly games - I'm not an expert in the pros/cons of writing a game using C++ and DirectX versus XNA framework, but I still think C++ would be a good choice for games anyway.
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
Super Lloyd wrote:
So I wonder what does this strange beast do for a living?
Look at the job descriptions for C++ coders at any job site, or job postings of big software companies like Microsoft, Adobe or AutoDesk and you'll get a pretty good idea. Anyway, i don't know why you think C++ develpers are rare and strange creatures. Pretty much all the software you run on your computer is written in either C or C++.
-
Mechanical wrote:
And a time will come when the "tools" will become so easy
Well, if you take .NET it doesn't seem to be getting easier but more complex. The languages raise their abstraction but then the complexity shifts to the frameworks and techniques. And then you get the ever merciless tyranny of version-itis. E.g., "must have six months commercial experience of Silverlight 4." "Done 2 years of Silverlight 3? Tough. We consider you to have zero experience." Speaks a cynical unemployed programmer. :(
Kevin
By requiring years of experience, they can dictate what they are going to pay you. And most importantly the majority of applicants are kids who can barely write a 'Hello World' program. Talent is not so common these days and when a manager finds someone with talent, he tries to demean the person and assaults his experience and questions it. The Real ProgrammerTM fails while someone with a fast tongue gets the job.
NULL
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
Super Lloyd wrote:
So I wonder what does this strange beast do for a living?
I wrote these VST plugins[^] in C++. FWIW.
-
CListCtrl
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
"Average" C++ developers can no longer find employment -- you need to be a "rock-star" C++ developer nowadays. :cool:
-
By requiring years of experience, they can dictate what they are going to pay you. And most importantly the majority of applicants are kids who can barely write a 'Hello World' program. Talent is not so common these days and when a manager finds someone with talent, he tries to demean the person and assaults his experience and questions it. The Real ProgrammerTM fails while someone with a fast tongue gets the job.
NULL
Mechanical wrote:
By requiring years of experience, they can dictate what they are going to pay you.
No, by requiring years of experience they can dictate whether they are even going to hire you at all.
Mechanical wrote:
The Real ProgrammerTM fails while someone with a fast tongue gets the job.
Maybe that's why I'm unemployed? :laugh:
Kevin
-
Super Lloyd wrote:
So I wonder what does this strange beast do for a living?
Look at the job descriptions for C++ coders at any job site, or job postings of big software companies like Microsoft, Adobe or AutoDesk and you'll get a pretty good idea. Anyway, i don't know why you think C++ develpers are rare and strange creatures. Pretty much all the software you run on your computer is written in either C or C++.
Nemanja Trifunovic wrote:
Pretty much all the software you run on your computer is written in either C or C++
...including of course the higher level languages and runtimes that are currently in more demand than C++. :) C++ will always have a niche for certain problem domains. It covers the areas where "if you can't do it in anything else, you can do it in C++."
Kevin
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
C, not C++. I work on an automated material handling system. On one end it controls conveyors, scanners, PLCs, stacker cranes, sortation systems and the occasional blinking light. On the other, user applications that allow receipt, selection and delivery of goods, stock inspection and workflow planning.
-
"Average" C++ developers can no longer find employment -- you need to be a "rock-star" C++ developer nowadays. :cool:
-
peterchen wrote:
so that the C# kids can do their magic
These days kids think that bringing data from a Database makes them "Programmers". And using an ActiveX control to do all the work makes them Magicians. A few years ago, displaying data wasn't "Programming". Now we have PHP Programmmers, ASP.NET Programmers, Javascript Programmers, Flash Programmers, Silverlight Wizards,...
NULL
This is not your first post praising C++ over other languages. Where does this attitude of superiority code from? Harder is better? I work with a compiler, an IDE, a source control system on an OS running on millions of transistors I couldn't build myself. Maybe I could one of these myself if I would spend a significant part of my life on it - but what would be gained? I do have a measure of better: Solving problems "they" can't solve. I do believe that is one of C++' strengths still. But it's not an accident that in C# displaying database results is easy: It's easy because these are the problems requiring a solution. In the end it's not the language. It's the programmers. The fundamental weakness of C++ is it's complexity and long learning curve before you can checkin non-pair-programmed non-test-driven non-code-reviewed production code. That means there won't be enough C++ programmers at all. (and the reason I am not afraid of my pension...)
Agh! Reality! My Archnemesis![^]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server. -
This is not your first post praising C++ over other languages. Where does this attitude of superiority code from? Harder is better? I work with a compiler, an IDE, a source control system on an OS running on millions of transistors I couldn't build myself. Maybe I could one of these myself if I would spend a significant part of my life on it - but what would be gained? I do have a measure of better: Solving problems "they" can't solve. I do believe that is one of C++' strengths still. But it's not an accident that in C# displaying database results is easy: It's easy because these are the problems requiring a solution. In the end it's not the language. It's the programmers. The fundamental weakness of C++ is it's complexity and long learning curve before you can checkin non-pair-programmed non-test-driven non-code-reviewed production code. That means there won't be enough C++ programmers at all. (and the reason I am not afraid of my pension...)
Agh! Reality! My Archnemesis![^]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server.peterchen wrote:
Where does this attitude of superiority code from?
I have no feeling of superiority. I am, however, sick of correcting and sometimes rewriting kids' code written in PHP, ASP, Flash, Javascript and I have seen that kids these days cannot code (or at least the ones I worked with).
peterchen wrote:
In the end it's not the language. It's the programmers. The fundamental weakness of C++ is it's complexity and long learning curve before you can checkin non-pair-programmed non-test-driven non-code-reviewed production code. That means there won't be enough C++ programmers at all.
Totally agree.
NULL
-
All in the title.. Never worked with MFC, read a book about it in 1998, tried it and couldn't get into it. Peruse a few C++ book, never found them that appealing. I did write a Uniscribe wrapper in ManagedC++, an ObjectiveC/GNUstep wrapper in ManagedC++ and some OpenGL setup code in C (tapped in with interop), that's about it for my native / C development. Neither did I work with C++ developers. So I wonder what does this strange beast do for a living?
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
Diplomatic answer: I'd suggest "average" is a meaningless concept in as diverse a profession as software development, and doubly so among developers using a language like C++. Honest answer: Quite frankly average implies, well, crap,* and that's not at all ideal, really. * That might be in part because I'm just coming down from #accu2010[^], which always reminds me what "Advanced" or "Expert" can really mean. Most of us have a long, long way to go to reach that level.
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
-
By requiring years of experience, they can dictate what they are going to pay you. And most importantly the majority of applicants are kids who can barely write a 'Hello World' program. Talent is not so common these days and when a manager finds someone with talent, he tries to demean the person and assaults his experience and questions it. The Real ProgrammerTM fails while someone with a fast tongue gets the job.
NULL
Mechanical wrote:
someone with a fast tongue gets the job
Only if your prospective boss is a woman.
-
Diplomatic answer: I'd suggest "average" is a meaningless concept in as diverse a profession as software development, and doubly so among developers using a language like C++. Honest answer: Quite frankly average implies, well, crap,* and that's not at all ideal, really. * That might be in part because I'm just coming down from #accu2010[^], which always reminds me what "Advanced" or "Expert" can really mean. Most of us have a long, long way to go to reach that level.
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
A bit touchy, are you?! ;) For the sake of your understanding, in this case, average means those who are NOT working on OS development or other marginal but necessary task that are most likely going to be a mixture of ASM, C, C++
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
-
A bit touchy, are you?! ;) For the sake of your understanding, in this case, average means those who are NOT working on OS development or other marginal but necessary task that are most likely going to be a mixture of ASM, C, C++
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
Not at all. Buzzing, in fact. :) My reference is merely to the fact that if you spend any time out there learning outside of the typical environments most of us only get a chance to experience, you very quickly realise that the "average" bar is pretty damn low. In an average environment, the devs don't even begin to fulfill their true potential because of corporate intertia, lack of awareness that "there may be a better way" and so on. The result is one we're all familiar with: far too much untestable, bug ridden, crappy code, and devs who are terrified of merging changes, let alone refactoring to patterns or learning how to use the Standard Library properly. It's a human problem rather than a technical one, which means far too many devs (and their managers, and the organisations employing both) run away from it. Those who do try to effect change to improve things are frequently shouted down or ignored. But then, having spent a week hanging around with leading developers at the Conference my perspective is somewhat different from the days before I started going and thought MFC was a good idea...
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
-
A bit touchy, are you?! ;) For the sake of your understanding, in this case, average means those who are NOT working on OS development or other marginal but necessary task that are most likely going to be a mixture of ASM, C, C++
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
Not at all. Buzzing, in fact. :) I did write a long reply to this, but lost it. :doh: However, the gist was that if you get out there and learn from those who get the time to actually figure out what really works in our industry (reading lots of tech books is a start), you're well above average. Quite soon you'll realise that the "average" bar is set very low indeed. Most devs rarely learn anything they aren't told to, and that's just tragic. The result is crappy, untestable code, poorly designed UIs and a strong resistance to organisational change. Quite frankly the contents of a copy of "Modern C++" would terrify many of them. Templates? Well designed interfaces and APIs? Design by contract? Fat chance. I've been there, and I'm sure that in the past I've been as much part of the problem as anyone. Fortunately, we all have a choice, and I've chosen to actively work to change that. :rose: So, do you still want to do what "average" folks do, or do you want to do what exceptional folks do? It's what you make of it, not what you work on.
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
-
Not at all. Buzzing, in fact. :) I did write a long reply to this, but lost it. :doh: However, the gist was that if you get out there and learn from those who get the time to actually figure out what really works in our industry (reading lots of tech books is a start), you're well above average. Quite soon you'll realise that the "average" bar is set very low indeed. Most devs rarely learn anything they aren't told to, and that's just tragic. The result is crappy, untestable code, poorly designed UIs and a strong resistance to organisational change. Quite frankly the contents of a copy of "Modern C++" would terrify many of them. Templates? Well designed interfaces and APIs? Design by contract? Fat chance. I've been there, and I'm sure that in the past I've been as much part of the problem as anyone. Fortunately, we all have a choice, and I've chosen to actively work to change that. :rose: So, do you still want to do what "average" folks do, or do you want to do what exceptional folks do? It's what you make of it, not what you work on.
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
I guess I could simply look at Seek[^] to answer my own question! I am not really looking at excellence ... but just at the job market and if it was worth it.. Recently I stumbled upon a C++ article and I wondered, should I have a new go at C++? Would it help me find a job or do a "better" job at what I'm doing now.. (mostly C#/WPF/Silverlight/WCF dev)(as in same development productivity but more performant code) and as I am thinking that it would be just a bad idea to do what I do in C++ I am looking for proud C++ developer who can tell me why working in C++ was the best thing that happen to them! Incidentally that will give me an idea of what new opportunity C++ experience can open to me!
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.
-
Not at all. Buzzing, in fact. :) I did write a long reply to this, but lost it. :doh: However, the gist was that if you get out there and learn from those who get the time to actually figure out what really works in our industry (reading lots of tech books is a start), you're well above average. Quite soon you'll realise that the "average" bar is set very low indeed. Most devs rarely learn anything they aren't told to, and that's just tragic. The result is crappy, untestable code, poorly designed UIs and a strong resistance to organisational change. Quite frankly the contents of a copy of "Modern C++" would terrify many of them. Templates? Well designed interfaces and APIs? Design by contract? Fat chance. I've been there, and I'm sure that in the past I've been as much part of the problem as anyone. Fortunately, we all have a choice, and I've chosen to actively work to change that. :rose: So, do you still want to do what "average" folks do, or do you want to do what exceptional folks do? It's what you make of it, not what you work on.
Anna :rose: Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
Also.. I had a few poke at C++ many times in the past but it did not fit my idea of fun, which requires to be able to spin a nice GUI on top of whatever mad algorithm I'm playing with.
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.