IDC: 40 Percent of Developers Are 'Hobbyists'
itwbennett writes "A new IDC study has found that 'of the 18.5 million software developers in the world, about 7.5 million — roughly 40 percent — are so-called hobbyist developers,' which by IDC's definition is 'someone who spends 10 hours a month or more writing computer or mobile device programs, even though they are not paid primarily to be a programmer.' Lumped into this group are students, people hoping to strike it rich with mobile apps, and people who code on the job but aren't counted among the developer ranks."
Is anybody actually surprised at this?
people who code on the job but aren't counted among the developer ranks
This part makes this whole result pretty absurd, imo. My job title is research scientist, though I'm more of a data scientist. In any case, you can't do my job without a fair amount of coding. I would certainly not classify myself as a hobbyist.
See, we have reduced the number of unemployed!
I question the definitions in the study. Is a person who used to be a professional developer but is now a manager no longer a developer. But they could be again?
Where is the meaning in this data, I can not seem to find it.
95% of everything is crap. I don't know if you've tried to interview people for serious programmer positions lately, but about half of applicants seem to outright fabricate their credentials.
If your candidate can't write you a basic program/script (when provided with the necessary tools) to random requirements given by you, from scratch/memory, then they're worthless irrespective of the no. of bits of paper they collected/claimed to...
Which is why you give a programming test onsite.
I "spend 10 hours a month or more [a day in my case!] writing computer programs, even though not paid primarily to be a programmer [i don't make any money from it... yet!]", so... i am a pro-"hobbyist"!
I spend time -few years- in a non IT related occupation, and i saved money so i could live while working -the last few years- in what i do now - i understand what a hobbyist programmer may be, but that 40 percent includes people like me that invest TIME (and even money - and time is money!) as professionals do when working on a project hopping to collect someday the profits from their work.
I haven't done any hiring yet in my career, but just hearing this line so often blows my mind. How does one complete a Computer Science or Software Engineering degree, and make it through over a year of employment as a programmer without being able to write a Fizz Buzz program in his or her language of choice?
Apparently wizard is not a legitimate career path, so I chose programmer instead.
10 hours?
That's what someone committed would do in a single day after a 9-5 dev job, twice. Jesus, it's just 10 hours and your 9-5 job isn't actual time.
Shit, I've done 48 hours marathons twice per week for years not even complaining, but now I got a family and a life to care for, yet I still manage to pull 5 hour for my pet projects after the kids sleep and I still have time to fuck my wife twice in the wee hours. Christ...get it together.
Every engineer in the building writes some amount of code. Instrument control for test automation, number crunching and analysis, logistics process automation, etc. We are mechanical, electrical, and industrial engineers. I am the only one with a CS degree, and I write less LOC/month then most other engineers.
Stupid, nonsensical, devoid of purpose or logic. Go ahead slash-puke, make my day...
I was once accused of lying about my credentials, and everything I have down is 100% true. It's those bad eggs that give the rest of us a bad name. I imaging hiring personnel see a lot of fabricated credentials, which in turn leads them to expect a certain percentage of most applicants' credentials to be forged.
Still I refuse to lie on my resume.. If I really wanted to add some new credential, I'd rather get experience in it first. It seems beyond stupid to put things down you're completely unfamiliar with.
I'm paid primarily to write software. Then I go home and write more software.
Any number of which I'd probably fail as pulling random function names/jargon out the air isn't my forte. OTOH, I've been coding for 35 years, know where to find the answers to anything I need to know and can crank out pretty much bug free code until the cows come home. As an e.g., last task I was given was to monitor an IBM MQ for SWIFT payments, parse them, pull out the good stuff, validate it and put it in an oracle DB. Wrote it in ProC. Never used ProC (had used C though), Oracle or MQ before yet amazingly it went through testing with only one minor bug and that was a problem with the spec rather than the code. I even threw in diagnostic modes you could select with switches at run time to give verbose logging. Last count I've used 20+ languages from Assembler to 4GLs, across various Unix, DOS, Windows and VMS. As I said though, I'd be amazed if I could answer more than a handful of questions on the spot even though I was (so long ago..) a MCSD or whatever the MS dev training used to be called.
I want a list of atrocities done in your name - Recoil
'of the 18.5 million software developers in the world, about 7.5 million — roughly 40 percent — are so-called hobbyist developers,' which by IDC's definition is 'someone who spends 10 hours a month or more writing computer or mobile device programs, even though they are not paid primarily to be a programmer.'
So if I get paid primarily to to write software I'm a programmer. But If I just hack out a few lines of semi-working code a month I'm a Software Developer? Thanks for clearing that up.
But what am I if I spend a couple hours a week mowing my lawn and planting my garden? A Landscape Developer?
Plus everythng I write is commented to death with notes about how something works, why it was done like that, things to watch for if changing it later etc.
I want a list of atrocities done in your name - Recoil
Anyone agree with me here?
Someone I was talking to a few months ago claimed that around half of the applicants they get fail to be able to write fizzbuzz in their interview. This is just a function that has to take an input number, print fizz if it's divisible by 3, buzz if it's divisible by 5 (fizzbuzz if it's divisible by both), or the number otherwise. It's a trivial use of simple flow control and if you can't remember the name of a print function in your language of choice (no marks deducted for using printf instead of puts) then there's really no hope for you.
I am TheRaven on Soylent News
I'm pretty sure they don't work 40 hours a week on this.
if they do, I want the job, so that I could have a job where I could be high on sniffing gasoline all day long and still keep the job!
world was created 5 seconds before this post as it is.
The test doesn't have to be "sit at this computer without internet and write this code in 15 minutes". It can be open book, sudo code, whatever. There are ways to test somoene without trusting their resume.
Remember folks, despite having this legion of potential recruits with the interest and aptitude, lacking only training and education, there simply aren't as many programmers as there should be at the price where demand meets supply, We need government intervention, stat!
95% of it 'is' crap. Software in 2013/2014 is atrocious and embarrassing, and none of it was written by the guy that didn't get the job. The 'serious programmer' has done enough damage. One should require an IQ test rather than a programming test. But alas, we'll undoubtedly throw another design acronym at the problem instead
who do it for the groupies.
Look, a lot of people are trying to start a business, it should be treated the same as work experience.
The funny designation people say when talking with HR is,"Oh, you actually made money with this home business, then I guess it counts as work."
It doesn't matter you busted your tail for 10 years in projects that failed, suddenly the less ambitious one you did that made a couple bucks actually counts as work.
So lets drop the hobbyist title. If someone is working a home business that isn't yet profitable because there is an awful lot of overhead to code first, they've been working that time.
God spoke to me
The 40 percent consists only of PHP "programmers" :)
Ask me to write a red-black tree from scratch and I'd probably have to look it up. It's been 15 years since I had to care about it since every project I've worked on has already had basic infrastructure available.
On the other hand, I've rewritten parts of the linux process scheduler, tracked down DMA bugs in eth drivers, added new syscalls, tracked down and fixed bugs in locking primitives in glibc, worked in mips/powerpc/arm/x86 assembly, etc.
In your case you might be over qualified. So, don't list things companies can't pay for, just include what you know you're great at without mentioning your leading role at cert or what ever the hell it might have been. I dunk those CVs in the bin right away.
In many cases, it's pointless to actually give the programming test.
Just tell the candidate that you're giving them a programming test. Have a system set up with developer tools. Have them sit there with a problem description for while you leave the room. Then come back in a couple minutes later and say, "Nevermind, we don't need you to do this." Make sure it's in a "this is silly, you obviously have skills and this problem is beneath you" way, not in a "we've already filled the position and you're wasting our time" way. (Remember, flattery, even if it's false, is a good way to get people to open up and show you how they really feel.) If they're relieved, show them the door and never call them back. If they're disappointed, give them an offer on the spot. Everyone else is a possible candidate.
You want someone eager to get the job done that isn't afraid of the task they're assigned.
Now, if you have a situation that requires more skill than just code-monkeying as part of a dev team, give them the full treatment before hiring them. (At a minimum, let them finish the test exercise.)
I preffer "Code Tinker"
100% of chan pedos would pass that test in 20 languages.
Every "developer" who has no idea of what the complexity of a program/algorithm is - and there are a lot - should be counted in the 'Hobbyists' league.
Slashdot, fix the reply notifications... You won't get away with it...
Possibly relevant to your experience.
Ezekiel 23:20
This. So many people whom developed an app for the iPhone or wrote a webpage that did something then spin themselves as a software architect or advanced developer, etc. Or you get the people whom compile Android for their phones calling themselves "developers" because they can get the build chain to work and perform some Git cherrypicks.
My other pet peeve is infrastructure people applying for development positions. I don't know how many applications I get whose biggest experience in "Configuring, Managing and Deploying Cisco routers" applying for my hardcore developer positions. I'd say it's at least 80% of my applicants.
I had someone try this on me; joke was on them: I had finished the solution before they got back.
Well I had never heard of the Fizz Buzz program but have been asked in every interview to write some sort of code or pseudo code to do something. Some were to see if you had the most basic understanding of programming while others were to see if you could thing through a problem.
Time to offend someone
Yep!
Uh, Linux geek since 1999.
Would be more accurate?
"The 'serious programmer' has done enough damage."
This is because of two things:
1) The serious programmer has to contend with the reality of often being told what to do, rather than necessarily doing what's right to produce quality software
2) Even many "serious programmers" suck, because there is a genuine shortage of real talent, but a massive need for developers, so the bar is set low for who gets a job out of desperation - an atrocious developer is still going to get your project further than no developer. Companies need someone to at least make a start so they'll hire the best they can get, and the best the can get may be crap if they're not big enough to compete with the big boys on salaries etc.
Thats funny, I keep getting hired at places as a system engineer/admin but for some strange reason pretty quickly they find out I can automate and write tools and somehow I go from doing system admin type work to writing web portals for our NOC and automating and interfacing with 3rd party apps. These days I'm more familiar with HTML/CSS/Javascript/jQuery and other javascript frameworks as well as 3d party APIs than I am with actually sys admin things. I still don't really consider myself a developer.
Stability + Performance = All that the end user will care about.
Doesnt matter who made it, or what their background is.
As long as the program runs stable, and, with respectable performance, the end user wont think twice about who made it.
If your HR department requires five years of experience on a product that has been available to the public for three years, of course people are going to fabricate credentials. The only way someone could have that much experience is if he was actually on the team that developed the product. Are HR departments really trying to poach from such a company?
So lets drop the hobbyist title. If someone is working a home business that isn't yet profitable because there is an awful lot of overhead to code first, they've been working that time.
Then you'll have to get half of the House of Representatives and half of the Senate to amend the definition of hobby in the part of the tax code related to business expense deductions.
Okay, I'm a computational physicist, not a CS guy, so my knowledge of programming is limited to what's needed to make the thing work. But isn't this ... extremely, painfully trivial? Like, when I taught Baby's First Computational Physics Course For Freshmen, we made them compute the first million prime numbers as part of the week 1 homework, right after Hello World and the Fahrenheit/Celsius converter.
Do people really graduate and not know how to do this?
but about half of applicants seem to outright fabricate their credentials.
Not sure why that wouldn't get vetted out in the interview process. Asking someone to describe their most elaborate program, or explain what their most difficult language to learn was should give you some good indicators of aptitude. Another good one is ask them what their most enjoyable problem was they solved with code. Those three can be asked on the phone quite quickly.
Join the Slashcott! Feb 10 thru Feb 17!
hobbyist isn't a synonym for bad.
Video game console makers seem to think it is. They have preferred developers to be established companies with a dedicated office, not 1-man startups out of someone's home.
Stability + Performance = All that the end user will care about.
Doesnt matter who made it, or what their background is.
A lot of companies use financial stability of the developer as a heuristic for guessing the developer's level of quality control and the stability of maintenance of the product.
As long as the program runs stable, and, with respectable performance, the end user wont think twice about who made it.
It has to 1. run stable, 2. perform respectably, and 3. run on the end user's preferred platform. A lot of platform gatekeepers have historically had anti-hobbyist policies, such as video game console manufacturers.
I've maintained a goofy little firefox plugin for a few years now and put together a few simple Android apps. It helps me keep my programing skills up while I'm working in IT, and the plugin's big enough I do a little project management on it :). Besides, I get bored playing video games all day long :).
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Amazon accused me of cheating on a phone interview. I guess pausing to think about a good solution before answering a question means, "he's looking up the answers on the web." Afterwards I explained to them I would have been more than happy to have made the trip to their office to whiteboard the interview questions rather than work through it over the phone. Jakes on them anyway brahs, I was chilling on my deck while I was on the phone with them. Then I moved on and landed a much better position in every way imaginable. Sometimes it's a blessing in disguise. Who the fuck wants to write hadoop code with a bunch of hoo-hah's who believe that stopping to think about a problem before answering a question automatically means someone is scouring the web for answers?
While it wasn't *the* reason, it was one of many reasons I said fuck off to Tech companies and haven't looked back. I can get much more interesting work as a scientist (for far less money) and nobody bugs me on the weekends and I can sit in my own office without dealing with the enormous amounts of bullshit I encountered in the 15 years I did vanilla sysadmin/developer work.
Still get calls from the clueless about shit jobs like that Amazon one. Yeah buddy, I'll just drop my research to write you a gay web app that let's retards take dick photos and post them up to other retards on their mobiles. Besides, writing research software is much more satisfying, no maintenance, no wiki bullshit, get some results on an interesting problem and move on to the next one. No manager complaining a font is the wrong kerning or whatever the fuck they bitch about now a days. Sure it has its own problems, but they are a set of problems far more amenable to having a life outside of work and not having to deal with bullshit. Now I get to call some other faggot at 3am and have him go reboot a server or install a printer. FTGE!
Yeah, I know, but that argument falls on its face because the "what's a hashtable?" crowd actually does have prior experience in the field. Someone is hiring them.
HR?
"Faggot"? Are you 12?
I agree here - but only to a point. At an interview you have to demonstrate some ability, and as there are so many idiots with bullshit CVs, you have to give some sort of test. Fortunately the tests don't (and should not) be very hard.
However, one test I had given to me a while ago was a code review. They gave me a visual studio project and said "review that, tell us what you think", and of course it had a couple of glaring bugs, a bit of very lazy coding, duplicated code that could be refactored into a common function, and similar. It wasn't about what variable names to call things (except the file called MyClass1.cs). It didn't require me to remember all the stuff I've consigned to Google's stewardship over the years and gave me the opportunity to explain my thinking.
I think such tests are vastly improved over coding tests that you end up writing differently to what the interviewer expected (and therefore he considers "wrong"). When you did tests at school, the teacher never really cared about the right answer - they cared about the working. An interview test that asks you to review code is pretty much the same principle.
My math is a little rusty but if I got the formulas anything is possible!
I have one that just requires they return the number of elements. Bit better than 50%, but we're pretty careful with resume screening. Still, the number of people that fail is always surprising.
and if you can't remember the name of a print function in your language of choice (no marks deducted for using printf instead of puts) then there's really no hope for you.
The language you will be using on the job (or even in the interview) isn't always your choice.
Do people really graduate and not know how to do this?
Yes. Including many in your class. They had a friend do the coding for them, or they paid someone to do it. When I was in college, I earned a lot of beer money by writing/fixing code for other students, including trivial programs for graduating seniors.
I deal with 5-7 different languages on a daily basis (not to mention a myriad of different pieces of technical software, build systems, databases, client applications, etc). Off the top of my head, I can't tell you what the syntax is for the mod command in any of those languages.
Hell, before reading up on Fizzbuzz, I didn't know about mod because I have never needed it.
Fizzbuzz is a stupid test that's only going to find you people who know (and have used) mod in the language of choice. If you need people with critical thinking skills, motivation to self-improve, and ability to research and find solutions in unfamiliar platforms, nothing beats an in-person interview.
If you just want someone who's a heads-down developer who can't see the forest for the trees, by all means, give the Fizzbuzz.
I'm out of my mind right now, but feel free to leave a message.....
Sorry, but lack of familiarity with the basic constructs of your language of choice is definitely a bad indicator. Being a good programmer means more than just knowing how to do the things you've already done. You need to know your language, platform, etc., so that you can spot issues or create solutions. Fizz Buzz is only a stupid test because it is so easy. It sounds like you think the "ability to research and find solutions" means that you can find a solution to your problem to copy+paste off of Stack Overflow.
Apparently wizard is not a legitimate career path, so I chose programmer instead.
Well I had never heard of the Fizz Buzz program but have been asked in every interview to write some sort of code or pseudo code to do something. Some were to see if you had the most basic understanding of programming while others were to see if you could thing
Syntax error, program halted
You don't need to use mod for fizzbuzz. It's likely the most effective (besides precomputed tables), but there are several alternatives. To name some:
1. Create your own mod function (you can most likely leave out dealing with negatives and overflows as long as you just point that out). Given dividend X and divisor Y, while X>=Y: X=X-Y and finally return X.
2. Take human approach and convert the number to string. Skip 0/print it depending on definition. If last number is 0 or 5, it's dividable by 5. For dividable by 3, you loop thru the string and sum the numbers. Repeat until the length of string is 1. Now compare it to 3, 6 and 9 (you can convert it back to number or just compare the string of those). If it's true, it's dividable by 3.
Surely you could create at least one of those in some language you know?
But isn't this ... extremely, painfully trivial? Do people really graduate and not know how to do this?
I am not a programmer, the last time I did any programming was back in High School...and one PL/C class, but that's it and it was almost 30 years ago, and I was thinking the same thing.
Wouldn't a FizzBuzz program look like something this:
For input check to see if input is a number and not letter or symbol, if true, then continue. If false, return and get a new input.
Declare subroutine "check_evenly_divisible_sub" for checking if a number has anything to the right of the decimal point, if so, then evenly_divisible_var = false. else evenly_divisible_var = true
Take input, divide by 3, send result to ."check_evenly_divisible_sub"
If evenly_divisible_var = true then set fizz_status_var = fizz, else fizz_status_var ="" (null string)
Take input, divide by 5, send result to "check_evenly_divisible_sub".
If evenly_divisible_var = true then buzz_status_var = buzz, else buzz_status_var ="" (null string)
print "fizzbuzz status for", input, "is" fizz_status_var, buzz_status_var, \n
next input;
We should also look at who produces most of the code. If we simply slap the label of developer on anyone who writes code, we may come away with the idea that because 40% of DEVELOPERS are hobbyists, that 40% of actual DEVELOPMENT/implementation is done by hobbyists. It would be like saying 80% of authors, defined as someone who spends 10 or more hours a month writing text (could be emails, could be text messages, etc.), are hobbyists.
Considering just how skewed productivity is among programmers, it wouldn't surprise me if this 40% collectively gets much less done than the pro's. That's not saying we shouldn't encourage people to make coding a hobby, but I think it's dangerous to present the idea to the world that code is a freely available resource that can easily be obtained for an extremely low cost or for free. I have to fight this quite a bit as a professional, because the expectations of some customers and employers is just incredibly out of line. Many of them will expect a project that requires 50K+ lines of code (and as a result, potentially hundreds of man hours of work)to take a couple of weeks and cost maybe $500 (to see what I mean look at sites like rentacoder).
I ... can crank out pretty much bug free code until the cows come home.
In my experience, one never stops creating bugs, they just get more subtle and harder to find. Nothing personal against you of course, but the statement above calls to mind the study that demonstrated how the less a person knew about a particular topic, the higher his level of confidence about his competence in that topic.
Hey, Windows users, there is no such thing as "forward" slash, there is only slash and backslash.
LOL, +5 funny. I love it when people use "whom" to be pretentious but use it incorrectly. Both instances should be "who". He who, him whom. Simple. "Who does the bell toll for? For whom does the bell toll?
Now you can be pretentious without making a fool of yourself!
Any number of which I'd probably fail as pulling random function names/jargon out the air isn't my forte.
Things like fizzbuzz tests aren't random out-of-the-air tests. Or say, a "hot-potatoe" game, or any other thing that involves a different action based on two or three counters inside a loop. Any competent programmer should be able to do that without having to rely on esoteric, obscure. seldom used programming trivia.
It is not like people are asking "code me a machine learning algorithm that does clustering in, I dunno, prolog" or "can you write a recursive function that approximates the square root of a number" or "write a lambda calculus interpreter" or "develop a markov chain upper-shit in LOLCODE".
People are asking very simple, dumb-as-fuck programming tests that involve nothing more than a bunch of loops and some if-statements, and people that claim to be programmers are failing.
A person that claims an extensive programming experience should be able to complete such silly code tests. Moreover, those silly code tests are much simpler to administer than a more realistic, work-related scenario (.ie. "develop a service which supports both REST and WS-* interfaces, and that can persist its input on a database").
That is why employers use such silly tests, and why expert developers should be able to do them without significant effort.
It helps to "sharpen the sword" working on projects OTHER than work-related ones is why (broadening your skillset) & it can even MAKE you a few "extra bucks" on-the-side as well: BONUS!
(Which you'd NEVER KNOW, until you 'stick your neck out there' & try it... & yes, "been there/done that" a dozen times in my professional career as a programmer, some code even going into commercial wares later from such efforts)
Soooo - you NEVER know, until you try, in other words... it CAN & DOES happen (with a little work, luck, & perseverance)... but, you have to MAKE it happen, too.
* :)
(So, do I believe this? Absolutely - I lived it, & imo @ least? The BETTER coders, do the same... & like it. Without that "last ingredient"?? I'd recommend going into another line of work - you've got to enjoy what you do, imo, in order to be successful @ it!).
APK
P.S.=> I haven't coded FULL-TIME in, oh... nearly 4 yrs. now, due to getting into OTHER means of income (to which coding jobs were merely a financial 'stepping-stone' like college investment was for coding, for me & for example) - but I did like it most of the time (sure, had 'writers-block' etc. @ times too, hating it also), & would I go back? Sure, IF the "price was right"... however , in the meantime?? Yes - I still do "sharpening the sword", ala -> http://start64.com/index.php?option=com_content&view=article&id=5851:apk-hosts-file-engine-64bit-version&catid=26:64bit-security-software&Itemid=74
Roughly 40 percent of programmers are so-called hobbyist programmers
Well, someone has to develop Linux too.
A sufficiently large company has enough other employees to cover for one employee's "just one major medical event or job loss".
Don't do it! I was really good at math before I sniffed gasoline one summer.
or skip mod entirely. have 'next_three' and 'next_five' vars, initialize to 0 or 3/5 as appropriate, if your index matches one or both print the appropriate output and update the values.
are really developers
My thoughts we that doing two divisions might work for a single case, but it isn't really scalable in this age of nosql and hadoop clusters.
Why not count up two counters +1 +2 (for the threes case) and +1 +1 +1 +2? Count up the smaller of the two counters until it passes the other. If you miss a value, print it out, fizz on the one counter and buzz on the other.
Instead of demanding the user enters numbers, it tells the user which numbers will work.
Scalable and parallelizable. With some thought, you could make it thread safe also. No divisions required.
I should use this sig to advertise my book ISBN-13 : 978-1501515132.
Sorry, but lack of familiarity with the basic constructs of your language of choice is definitely a bad indicator. Being a good programmer means more than just knowing how to do the things you've already done. You need to know your language, platform, etc., so that you can spot issues or create solutions. Fizz Buzz is only a stupid test because it is so easy. It sounds like you think the "ability to research and find solutions" means that you can find a solution to your problem to copy+paste off of Stack Overflow.
I heartily agree. There's no excuse for not knowing what mod is, even if you've never happened to need it in a program. I wouldn't hire someone who didn't know what mod is or couldn't explain it to someone else.
If you've never written software using mod, then you've never implemented a lockless data structure, or likely written any low-level code. In fact, I'd find it pretty hard to think of what category of software you are writing where you never need to do it. It's not something I use every day, but I'd expect to see it at least once every thousand lines of code. I've no idea what you do, but if you think you've managed to become a competent programmer without ever having to use mod then you're such a statistical outlier that it's not likely to be a problem to accidentally not hire you. If you don't know the basic arithmetic and logical operators in your favourite language, then you are probably not worth hiring.
I am TheRaven on Soylent News
I thought it was 85% and recursive, the series converges slower, that is for Sturgon :-)
Wow, really? I haven't really programmed anything since a Turbo Pascal class I had back in high school (sophomore year, so that'd be 1997-1998).
I'd do something like
Input yournumber
if yournumber/5 = int(yournumber/5) then
if yournumber/3 = int(yournumber/3) then print fizzbuzz
else print buzz
elseif yournumber/3 = int(yournumber/3) print fizz
There's probably a better, more awesome efficient way to do it, but I think that pseudocode passes. Also, I think elseif is a thing?