I don't think I can stay in software much longer.
"...something to be desired. I do work in a pretty edge case kind of field though (geospatial analytics), that has a good bit more math than your average business dev work."
"While this is probably true for some people, especially above average people who have only worked at small companies where they are the best developer with no real competition I think there's a second problem that can make good people appear like that:"
"If rock stars programmers work with genuine peers, the diva part of them will be suppressed. It is hard to feel superior when working with people against whom you are just average. Some of them can still lack in social skills(*), but you can often minimize the damages that could cause. Of course as a company you still need to be able to afford top talent and have a project that challenges or otherwise interest them."
Above average. Below average. Senior developer. Junior developer. Rockstar programmer. Cowboy programmer. What do ANY of you know about "average"? What constitutes below average, and what constitutes above average? It's complete and utter subjective nonsense.
Do you want to go by lines of code written? Do you want to go by number of licenses sold? Do you want to go by pay? Do you want to go by your GPA in college (though I'm sure some of these "rockstar programmers" are not computer scientists or even college graduates).
You have no metrics, no basis. So stop using the word average. Software has become egomaniacal and elitist.
The measure of worth for a developer has become so utterly blurred and has been replaced with elitism, egos and exclusivism.
As I go on through my career in software, should it last that long, I will measure my worth by number of successful projects. You all can use whatever you like- pay, lines of code, size of teams, IQ...I don't care.
For this reason I'm looking to get out of software. I've only just begun my career but I already want out. The whole mindset is different in hardware. Because in hardware, it has to work. If it doesn't work, people are at risk. In software, you get angry calls. The mindset is different with hardware engineers and embedded developers- they don't think about rockstars or cowboys...They work together to make things work.