2016 Stack Overflow Developer Survey Results(stackoverflow.com) |
2016 Stack Overflow Developer Survey Results(stackoverflow.com) |
But I would guess that those 10% of students are heavily skewed to students in their final year of study. Second point is that not all undergraduate courses are 4 years, some are 3 years, so probably closer to 7.5% of students on SO graduate every year.
Which might indicate that the software development field is growing in terms of people active in the field.
*Then again software development is a young persons game, so "retirement" out of the industry might be higher since a lot of people will retire to other fields / management positions.
But in the graph masters was second to "mentorship program"
Can someone give an example of one of these programs? Is this just another name for an internship?
Here are some sources to go with it: http://www.slate.com/blogs/moneybox/2012/05/01/why_big_macs_...
http://latitude.blogs.nytimes.com/2011/11/24/argentinas-big-...
The one thing that isn't taken into account is things like tax wastage. I'd say easily 70 to 80% of our tax money is wasted by our inept government. So we have to fork out so much cash for basic things that other countries take for granted. It sort of feels like I pay tax twice. Once to the government which might as well be the money equivalent of /dev/null and another for private services which the municipality/government should be supplying, but what is offered is just too shitty to use.
So we may have the best purchasing power, but we have the least amount of money, so it doesn't help much.
Yeah, can you believe how much more expensive domestic help has become? /s
I think the SA government's biggest sin is failing to grow the middle class. The inequality is a ticking time bomb
Might be a loaded question, but doesn't full-stack mean just "web developer"? From the survey, "Full-stack developers are comfortable coding with 5 to 6 major languages or frameworks (vs. 4 for everyone else)" -- with knowing a bit of Wordpress that's fairly easy to collect: php, sql, html, javascript, css. Done.
Or full-stack is the new ninja?
Ah, good wit. Very nice write up!
I have to say I severely cringe every time a recruiter says "Rockstar" or "Ninja" (in a job description or ask if I am one). Just imagine using those terms for a talented medical doctor or lawyer. "Microservice" is quickly becoming another new recruiting term that I am beginning to despise. At least "agile" is mostly dead... mostly...
Speaking of which what ever happened to "Scotty", "Rocket scientist" or "Macgyver" (those were the sexy euphemisms back when I started software dev). They were far more apropo.
Intellij - 17%
PhpStorm - 7.4%
PyCharm - 6.8%
RubyMine - 1.7%
WebStorm - 1.6%
---
Total - 34.5%
This makes the Intellij IDE the third most used environment surveyed. If you're not using a text editor, chances are you're using a JetBrains IDE. I'd be interested in seeing the text editor vs IDE breakdown (broken down by age and experience) once the full data is released.
http://blog.jetbrains.com/idea/2013/05/intellij-idea-and-and...
If I want to do a large enough project, the Jetbrains suite really can't be beaten in terms of just getting things done IMO.
That being said, their personal licensing is so affordable that I wouldn't blink to buy it out of my own pocket it if my company didn't pay for it. If you don't need IDEA, I think most of the smaller ones are $50 for a personal license.
I used Eclipse for Java and Komodo for Python/PHP for years. Then Komodo 8 was so bad that I gave PHP Storm a try and liked it so much I gave IDEA a try for Java and never looked back.
- JS ranks high in 'wanted' to develop
- JS doesn't appear in 'love' developing
- CoffeeScript ranks high in 'dread' to continue to develop
Big discrepancy in appeal for people on the outside looking in compared to those using it!Though - without checking the original questions - that still suggests an element of "came for JS; stayed for Node".
This ofcourse being entirely subjective.
On one hand it looks like there is a drastic difference: Developers in Finland and Sweden don't care about their salary! But looking at the Y axis reveals that the difference from the mean is about 15 percentfigures.
On the other hand, even that is quite a lot. It also allows us to make sweeping statements like Finland's coders are undervalued (?) or that over half of the Developers in Finland or Sweden did not value Salary.
cool cool!
[1]https://stackoverflow.com/research/developer-survey-2016#mon...
And poorly utilized. When is the rest of the software world gonna catch up to this?
Is this the distribution in the global developer population as well ? Or is this a bias due to Stackoverflow which by its very nature is web centric ?
I know a lot of people don't like the extra translation effort to debugging, and some aren't fond of significant whitespace, but I'm surprised that that's enough to make it into the top 5 most dreaded. Is there something else I'm missing?
CoffeeScript is shit, CoffeeScript is ok, CoffeeScript is great, CoffeeScript is ok, CoffeeScript is shit
(I personally prefer coffeescript)
It doesn't appear at all in the "most popular technologies, not even in back-end, and it lost 6% in "trending tech". It also doesn't appear in any other metrics.
Is it really a trend or that SO's community is not representative of Ruby practitioners ?
I know that isn't exactly what this question was measuring but I'd expect engagement for Ruby in general to fall on SO. Compare that to the current wild wild west of JS frameworks where everyone seems to be doing their own thing.
And I think that is the biggest problem with the Ruby communities in general, NO one cares about Ruby is dying. Not Matz, not DHH.
I'm not convinced this conclusion applies to the software development community as a whole. s/earth/Stack Overflow/
One thing this survey doesn't really touch on is the way the rise of Javascript is related to a fall in software quality. We write a lot more code now. More people write code. And a lot of that code sucks and it's a shame someone foolishly considers it productive labor output. And a lot of that code, the sucky stuff, is Javascript.
Refusal to use Javascript is still a signal of a smart and quality-focused developer. Similar to refusal to use Mongo.
I wish the SO survey didn't just measure what tech is popular among employers or what tech is paid well. Employers are notorious for incorrectly investing in the wrong tech, shoehorning things in, and declaring 'victory' when they deploy a bug-ridden, 1-star app or something. That kind of situation, which is common, should be down-weighted in the survey results, if only it were easier to collect that data.
I suspect that accounts for the overwhelming majority of developers now. I doubt that it means that majority is also writing the majority of their code in it.
But, sure, SO is extrapolating here.
Does anyone else find this concerning given all the talk of age bias in tech?
2013 - 44.7%
2014 - 37.6%
2015 - 31.6%
2016 - 30.9%
Looking at the number of responses to that question, there are lots more people taking the survey in the last two years!
2013 - 8042
2014 - 6537
2015 - 21982
2016 - 49397
http://stackoverflow.com/research/developer-survey-2016#tech...
There are a ton of developers that will choose whatever language they have available and if developers are switching to mac they wont be reaching for C#. Then you have those that have moved on to F#. Objective-C has the same problem for those that have moved to swift. It is weird to think that next year perhaps 1/3 of SO developers will be on OS X. That is such a huge amount.
And in the last decade Linux has absolutely won the server market. It is going to take some time for the clr on Linux project to stop the bleed from projects that moved off c# just to move off of Windows servers.
Link to the full answers about tech from parent: http://stackoverflow.com/research/developer-survey-2016#tech...
+1
This syntax feels so right to me, but I feel bad about myself when I use it. No longer!
It is absolutely fantastic the gender issue is being thought about at long last.
But it is absolutely horrifying the ageism issue is not. Or worse, is as glibly explained away as past discrimination used to be.
(And also, our proportion of female developers was way, way higher than 5%.)
Older developers are certainly out there, but they're woefully underrepresented in open source.
Both Atom and VS Code are built on Electron so it seems that web tech for building code editors and IDEs is getting really popular.
But Developer is the runaway choice here. It’s our top choice, too."
Good. This has always been a very silly thing to have to argue about. The people who care a lot about this topic are saying more about themselves by caring so much than any of the above titles would say about what they do.
1. Rust 2. Swift
That's interesting and cool. I have to agree myself.
1. Rust
2. Swift
3. F#
4. Scala
5. Go
Pretty sure the math doesn't add up, though:
* 5.8% of the 56,033 respondents were women
* 49,525 overall specified an occupation type, so let's assume 88% of the women did as well
* 11.6% of the women specified QA
* .1% overall specified machine learning
That's 56033 * .058 * .116 * .88 ~ 331 women QA alone, compared to 49525 * .001 ~ 49 machine learning developers.
> We received 59 responses from Windows Phone Mobile Developers (.1%).
1.7% of respondents are WP users (10% x 17%), and only 0.1% of respondents are WP developers.
But this is always hard to interpret : does it mean that all basic questions have been asked so there is less activity or is it due to a drop in questions because lack of interest ?
Huh, interesting question. I think a "web developer" could focus more on front end or back end; I usually identify as "full stack web developer" to indicate I do both.
However, if I read your question another way: are you asking if "full stack" could apply outside the web realm? Can you be a "full stack"... erm compiler developer? I know compilers generally have a "front end" and a "back end", but I'm not sure if I've heard the terminology used that way. I'd be curious to know if "full stack" is used in other niches of software development than just the web.
But I see your point, the commentary suggests full-stack developers are more skilled.
So basically a web developer then. Right.
But I still want some sense of awareness of the many layers on which web systems rest.
"Oh you're a full-stack developer? Great! In this job interview we will be designing a new TCP retransmission algorithm, configuring a CI/CD pipeline, debugging CPU microcode, negotiating with a law enforcement agency, and testing the FM200 system in the DC"
I don't think people writing some scripts in PHP would have considered themselves full-stack or back-end.
Let's say you work in a place with a "microservices" architecture. You write in Java or Ruby or another language. Which occupation are you on this list?
Why is there a "backend web developer" but not "backend developer"?
I tend to avoid jobs which self describe as backend as I have no interest in web development and my experience is if it is listed as "backend developer" that it's probably too geared towards web development for my tastes.
e.g., using common options:
- A front end web developer would be HTML/CSS.
- A back end web developer would be HTML/CSS/MySQL/PHP (or equivalent).
- Full-stack all of the above plus Apache and Linux.Then we deployed a web service written in Java (because at the time any web server we had was *nix) to create some additional functionality and hooked the desktop apps up to it.
Then we swapped out the desktop apps because too many people were not upgrading and getting all kinds of errors. Or desktop support was getting too many calls because the end user had a borked environment.
This was all many moons ago and happened in the span of 18 months.
I started out as a desktop and server API application developer. Today I haven't written an exe since I left that job but to build UIs over the years I had to learn HTML/CSS/JS. That is, I feel, we got the 'original' full stack developer.
However, they are plenty fields from machine learning, to robotics that are also likely on the rise that would require some SW development skills.
Also, as mentioned by d0lph, I believe the high churn in web technology makes more people relying on SO, compared to let's say someone coding in C99.
But my view is probably skewed by working in embedded SW.
Not to mention web apps being the new big thing.
To further that I think a lot of devs that tinker with things outside of work tend to tinker with web stuff more.
Actual new tech is in the mobile sphere now imho, or server side AI, very little of this is web development except for the occasional front end for said apps.
But if the age distribution of people is such that the median age of humans were 27, it shouldn't concern us that the median age of this population of survey respondents is 27. I don't know what the human population distribution is but I took a quick peek at the US census bureau and it seems to indicate much more young people than older. I suppose that shouldn't really be surprising.
It wouldn't surprise me if tech doubles every 5 years, so 27 is not unrealistic.
Ageism is indeed a very serious problem and the same personality types that didn't want to fix bias problems in the past are resisting addressing the age problem with equal vigor today.
It's just a really flexible language, while it has its warts, I feel they almost got it in combining the best of FP and OO.
I was a SharePoint developer in previous life. End-users love SharePoint, but it's a headache to maintain and debug. I think there is only a very small use-case where you will actually need some *.wsp developed. I use Nintex Workflow + Forms the rest of the time.
That being said, SharePoint devs gets paid well :)
The tools I use now are significantly more crude in the business domain/for line of business stuff than I was using in the days of Delph 5.
Personally, give me something that can run Qt (or something like it) and Python in the browser and I'm 95% to been in heaven.
Caveat #1: far from the only factor.
Caveat #2: increased risk of decision paralysis and (paradoxically) micromanagement.
The editors and IDEs I do use likely all have very advanced text editing ability but I just never reach for them! Not once have I felt "now I'd really like 3 cursors". What are the normal use cases? Maybe I'm leaning on auto-formatting and refactorings more that lets me do things you would otherwise do with e.g regexes, multiple cursors?
But one thing it's really useful for is making bulk replacements on the fly without having to think too hard about what to match on. Instead of fiddling around trying to create a perfect regex to match the right cases, you can just step through instances of a loose match, choosing the right ones, and then make your edit.
Overall, for me it just feels like a much more intuitive ad-hoc style of editing.
I can't stand it when people ask about a "devops team". That's not devops then! That just means your sysadmins can code too.
Now, if they are asking about a devops software team, that's a different story.
It introduces indirection and complexity, while adding zero value. As such it's on overall a negative value proposition, and that's everything it takes for me to decide something is not worth it.
I find it a perfectly rational decision and attitude.
While I'm not a fan per se, at least other transpired languages like typescript and clojurescript at least adds new capabilities to justify the additional complexity.
Anyways, I do appreciate the response.
The modern misguided infatuation with Javascript is just another boring chapter in the same repeated story. In 15 years it will be something else.
My point isn't to convince anyone of anything. Indeed, most people who just want a job and just don't care will simply comply with whatever is popularized by enterprise bureaucracy.
But thoughtful people ought to remember there's no need for anxiety. Great developers survived the 90s and made lots of money without ever writing a single line of Java or enterprise C++. Great developers survived the 00's and made a lot of money without ever writing a line of enterprise C# or even ever opening Visual Studio.
And great developers will survive the 2010s and 2020s and make a lot of money without ever writing a line of Javascript.
Great developers are great because they love what they do, they're critical thinkers, and they've got an ability to find creative solutions to problems. Great developers are not great because they hate 'the man' and refuse to write code in the languages put forth by 'the bureaucracy'.
Bureaucrats didn't invent any of these languages or technologies. Developers (some of them great) did. You know who guides technology platforms in companies? The developers and the software architects. If Java and C# couldn't get the job done well for writing services and applications, nobody would use them.
If JavaScript wasn't the best we had available to us to create dynamic UIs in the biggest distribution platform in the history of civilization, we'd be using something else.
People that stand on the sidelines bitching about how GREAT PEOPLE don't do that without joining the fray and making it great to work with them often get left behind and forgotten.
Help make it better or get out of the way, but it's not a conspiracy by Big Company bureaucrats to trick us into creating the most engaging applications deployed to the most users easier than we've ever had it.
Sublime = $70
Notepad++ = free
Just an anecdotal example, before JetBrains switched to their subscription model I was paying individual licenses for IDEA, PyCharm, and ReSharper. So if I had already spent over $300 p/a for IDE and tooling, another $70 will seem like an excess.
The other thing is that, as a Windows developer, I spend a lot of time in my IDE. Whenever I try to use Emacs I quickly get sucked into the fact that the most productivity gains you get from it are when you use it for as much as possible, like OrgMode, reading emails, etc. It's advantage is that you can write elisp plugins to customize it for your workflow. As a standard corporate "textbox over data" developer, I have the full suite of Office and Visual Studio at my disposal, so I don't see any benefit to use Emacs. Also, Emacs on Windows is definitely a second rate experience. You can't launch a daemon process, and it requires setup to get copy/paste from the OS to work well.
Vim is great, and it works well on Windows, but again, most of the time I am editing code, it's in Visual Studio. If I need text manipulation or searching, it's a real loss to paste into Vim, and then have to switch over to remembering Vim commands.
I've come to the realization that tools like Vim, Sublime, and Emacs are awesome if you do the majority of your work on them. The more tasks you can pile into them, the less context switching you have, and more consistent experience you get.
On Windows, Notepad++ fits that niche perfectly, it uses the Windows commands, present a consistent interface, and it has the power to do powerful text manipulation when needed.
I love Emacs, but it took a deliberate, determined effort and time sacrificed to get productive in it, so that I didn't feel like I was handicapping myself.
Don't get me wrong, the idea of Emacs is awesome: a configurable text editor using a dialect of Lisp? This is great, not only can I shape the tool to my needs, I also get to use a great language. However, at some point I do need to get my work done.
This is circular: "Because we use the thing, it's the best. If it weren't the best, we wouldn't use it. We use it because it's the best."
Companies use non-best things all the time, even when the better options are cheaper, easier, faster, safer, etc. Political control, gate keeping, nepotism, kickbacks, drumming up showy re-orgs and migrations and initiatives for short-term executive bonus optimization ... there are endless reasons why executives and management couldn't care less what "the best" solutions look like and will use unequivocally crap solutions, solutions that are demonstrably wasteful and inefficient, if it gets them their short term bonus or promotion, or whatever.
> Help make it better or get out of the way...
Complaining is perhaps the most useful tool there is for effecting positive social change. It's not only helpful, but necessary and vital that we keep whining incessantly about how unreasonably poor a tool Javascript is, and how most of the work people choose to do with it or choose to invest in is clouded by mistaken impressions about the usefulness of that work.
Most of what we have done to the "biggest distribution platform in history" is to utterly destroy the value it held, to make it a cumbersome, psychologically manipulative stream of noise that, while still providing value, doesn't provide nearly as much value as it could if we just simply stopped fucking it up with poor web development priorities.
It seems we won't rest until there's an ad tagged to every single transmitted bit. And we can't slow down at all, lest short term bonuses be lost, so we have to evolve our way to every-bit-an-ad using whatever bad tools there are now (Javascript) as opposed to stepping back a bit to think critically about what we're doing, and what good tools would be to actually solve the problems we should solve.
Instead, libertarian brogrammer founders and VCs just spew Randian nonsense that no, this is the market economics, and if every-bit-an-ad via bad Javascript is what makes money, then it must be what the world at large wants. Ugh...
In some ways all the C/C++ I've written for my various robots and gadgets have been easier than even web development UI code because my button is LITERALLY a button, my screen resolution is a 2 row LCD, and I'm designing the system my code will run in. Don't get me wrong, I'm half kidding, but my point is that a good developer is a good developer in whatever area of development they want to work in.
You take a good web app developer and move them in to robotics, they'll be good quickly. At first they're obviously not as familiar with the domain, so there is a curve. But they will get strong eventually- assuming the EE side of things doesn't drive them away.
The upside for people that do this, as I alluded to, is that if you have these skills and want to do a new thing in a new field, it's an option. Things like SO will help you play with the new thing in the new field where you might otherwise not have any help.
I hope not.
There's nothing like a well-done desktop GUI EXE for richness of UI / UX. And desktop GUI apps can still connect to back-end services over HTTP or other technologies.
Both Steve Jobs and Bill Gates disagree with you[1].
How could you be more efficient using vim ? That's something I don't understand. I always suspect vim and emacs user saying it because it makes them feel like super programmer.
Start by reading this StackOverflow answer[0] titled, "Your problem with Vim is that you don't grok vi."
Like that poster states, when you are using Vim correctly you are speaking a language as you are editing. You provide it an action and then you tell Vim what to apply the action to. This is usually either a motion command, or a text object. Combining these concepts allows you to have a level of expressiveness that non-modal editors cant easily replicate.
If you are just using Vim as you would use a non-modal editor you aren't going to see any gains. But if you embrace the "language" idea of Vim, learn to spend most of your time in command mode, and start combining actions + motions/text objects, you will start to see the real power of Vim.
"Joy explained that the terse, single character commands and the ability to type ahead of the display were a result of the slow 300 baud modem he used when developing the software and that he wanted to be productive when the screen was painting slower than he could think."
Taken from: https://en.wikipedia.org/wiki/Vi
An example to me, of how something pragmatic (wanted to avoid round trips) took on a life of its own.
Pretty much anything you could do in a native Windows app in 2007, you can do in a webapp now, except pwn your computer. Only problem is that the goalposts have moved: now everybody expects you to be able to do it on a phone as well, as well as access the camera, accelerometer (which you can do on the web, actually), contacts, calendar, and bluetooth hardware.
Seriously... what are you even talking about? Why do you even mention them? You read single threaded and thought "Quick, I must come up with an answer! I can't let a stranger on the Internet change my opinion!"?
Web Workers are exactly this model, applied to the web. It's a dispatch queue running inside a threadpool. To update the DOM, you postMessage back to the UI thread and make your modifications there.
Are you willing to let a stranger on the Internet change your opinion?