A poll of more than 25,000 developers reveals the technology jobs that pay big bucks, that are fun and those that plain suck.
Finding a role that is both satisfying and well-paid can be challenging, especially in a field as fast moving as software development.
To keep pace, developers typically have to refine their skills and learn new technologies throughout their careers, so knowing where to focus their efforts is important.
The programming Q&A site StackOverflow polled more than 26,000 developers worldwide about which computing roles are financially and intellectually rewarding, and which are less so. The results seem to be weighted towards web technologies but the sample size is large enough to throw up some interesting results.
As might be expected in a market that relies on supply and demand, the languages most widely used by developers are not those that attract the highest pay and perks. Competency in Objective-C, the language used to code iPhone apps among other things, remains the most highly-rewarded skill among the popular languages, with an ability to work with the relatively new Node.js environment also generously compensated.
The truly big bucks are reserved for know-how relating to more niche technologies, generally used in the fields of big-data analytics and cloud computing.
The web appears to provide employment for most respondents - with the most common occupation listed as "full-stack web developer" - a role that requires working knowledge of front-end browser-based technologies, server-side languages and databases. Overall, the proportion who class themselves as web and mobile developers was up, while desktop developers fell.
Somewhat surprisingly, it seems executives are among the most satisfied with their roles, with CTOs, CIOs and the like rating their job the highest on a scale of one to five. Interestingly, being an iOS programmer is not only one of the best-paid jobs, it also scores highly for satisfaction. When it comes to thankless tasks, product managers top the list, with graphics programmers and data warehousing experts also less content than their peers.
The programming languages and technologies that generate the most excitement among developers tend to be the more recent creations, such as Apple's Swift and Mozilla's Rust, although the venerable C++ also scores highly. The cloud-based CRM platform Salesforce is the technology that developers most loathe working with, alongside Microsoft's Visual Basic programming language and the blogging platform WordPress.
There's good news for those who want to work with computers but don't have formal training. Almost half the respondents don't have a degree in computer science. System administrators were the most likely to be self-taught, while machine-learning developers and data scientists are over 10 times more likely than other coders to have a PhD.