IDC: 40 Percent of Developers Are 'Hobbyists' 148
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."
Huh? (Score:1)
Is anybody actually surprised at this?
Re:Huh? (Score:5, Insightful)
Not me, coding for fun and 10 hours a month is way better than 40 hours a week on stuff you don't really care about.
Re: (Score:2)
What do you do in those 40 hours a week and why do you think you could only care about a job if it doesn't involve coding?
Re: (Score:1)
Coding is a hobby and I prefer to keep it that way. I'm a hospital pharmacist and there is no way I could sit in front of a computer 40 hours per week.
Re:Huh? (Score:4, Interesting)
The pharmacy billing software company I work for hires people like you to be product owners.
Re: (Score:2)
Guys, get a room!! ;-)
Who's the doofus that modded this "offtopic"? It should be modded "funny."
Re:Huh? (Score:5, Insightful)
You are mistaken, I'm a 40 hour a week programmer, and I enjoy the code, just not the resulting application. I achieve more in 10 hours a month when I'm making something interesting than I ever could with 40 hours a week on the job.
Re: (Score:2)
You've forgotten the 600 hours a month of unnecessary meetings, but yeah.
Too narrow a definition (Score:5, Interesting)
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.
Re: (Score:1, Informative)
As an actual software developer who has had to occasionally deal with code written by "research/data scientist[s]" before, believe me, we wouldn't even classify you as high as a hobbyist.
Re: (Score:2)
Compared to many of the people that manage to have the job title of "developer" in corporations, a "hobbyist" would be a step up.
Re: (Score:2)
Re:Too narrow a definition (Score:4, Insightful)
Another recent /. post (about scientific data loss) makes me think that little, if any, research code is really `throwaway'. That code -- along with the data it processed -- represents part of the work effort leading to the published results. Data without that code is almost useless because the next researcher who wants to built upon his predecessor's work will likely want to know how you went from the data to your result. Without the code all they can assume is that some magic was involved. Or, if they go through the process of re-processing the raw data and get different results draw the conclusion may be that the original results were faked.
Re: (Score:2)
While I agree that it's nice to distribute the code that generated your results, this is hardly the only way for other researchers to know how to go from data to results.. This is the entire purpose of the published paper, to describe what you did, in words and math, sometimes in psuedo-code.
Re:Too narrow a definition (Score:4, Informative)
I can recall an incident where a number of Ph.D. dissertations were called into question because of a bug that had been discovered in a mainframe statistical package they had used. If memory serves, the University was contacting graduates and asking them to revisit their results to ensure that the bug didn't adversely affect the content of their work. Perhaps, nowadays, the University wouldn't care so much though I'd hope they would if for no other reason than to maintain the school's reputation.
I wouldn't call pseudo-code a reliable indication of what actually processed the data. It's pretty much the same thing as writing a specification and getting a faulty interpretation of that spec. We've all had an idea of what we wanted a piece of code do only to find that it didn't quite live up to our expectation due to some subtle bug (round-off error, etc.). I've spotted weird coding in other colleagues' code that introduced problems in the results. Perhaps that experience is why I'd still like to see the code. YMMV
Re: (Score:2)
I can recall an incident where a number of Ph.D. dissertations were called into question because of a bug that had been discovered in a mainframe statistical package they had used. If memory serves, the University was contacting graduates and asking them to revisit their results to ensure that the bug didn't adversely affect the content of their work. Perhaps, nowadays, the University wouldn't care so much though I'd hope they would if for no other reason than to maintain the school's reputation.
I wouldn't call pseudo-code a reliable indication of what actually processed the data. It's pretty much the same thing as writing a specification and getting a faulty interpretation of that spec. We've all had an idea of what we wanted a piece of code do only to find that it didn't quite live up to our expectation due to some subtle bug (round-off error, etc.).
Pseudo-code should not be used to validate research or its results. Further independent research is the only way to validate the research. Forcing later researchers to implement the experiment themselves help improve the result of their validation. Your anecdote about a school using the same statistical package for a large amount of research is just one example of a problem if too much code is shared between research projects.
One of the important reasons that research code is throw away code is so that bugs
Re: (Score:2)
Another recent /. post (about scientific data loss) makes me think that little, if any, research code is really `throwaway'. That code -- along with the data it processed -- represents part of the work effort leading to the published results.
That is not what I meant. What I meant was that perhaps a significant portion of the code that these people develop for the research at hand is not reused in further research. It's not throwaway in the sense that "we can delete it now" - it should be published, and reviewed, and used in verification of the research, but it probably won't be in a shape for someone turn it into a reusable library with the same level of attention that, say, LAPACK gets.
Re: (Score:2)
Data without that code is almost useless because the next researcher who wants to built upon his predecessor's work will likely want to know how you went from the data to your result.
A well written research paper should give just enough information to allow others to replicate the work, but not enough so that later researchers implement the experiment the same way. Implementing research in different ways is a great way to give validity to the results. If two people with two completely different code bases come to the same conclusion that is much better than two people just running the same code on different machines.
Publishing code is still helpful as a way of performing code review and
Re: (Score:2)
Re: (Score:3, Interesting)
There isn't an engineer, statistician, physicist, etc. out there who hasn't written or doesn't write a significant amount of code in the course of their using a computer as a tool. They're hardly hobbyists. One has to wonder if IDC doesn't think that the code these people write should really be written by 'professionals'. (I'm thinking of the early mainframe days when only members of the Priesthood were allowed to approach the Sacred Iron and perform the Holy Incantations.)
It's likely a fairly useless lit
Re: (Score:2)
You took your definition, or connotation, of hobbyist, and objected when someone else's definition did not match yours.
There are plenty of definitions; feel free to share yours. Meanwhile, the study here is not making changes to theirs.
The result is valid for those scenarios where the definition matches. I would expect a data scientist to be better at this sort of thing, but here we are.
nonsensical (Score:2, Informative)
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...
What about me? (Score:5, Interesting)
Re: (Score:2)
Software Developer vs programmer (Score:2)
'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?
Re: (Score:2)
But what am I if I spend a couple hours a week mowing my lawn and planting my garden?
A closet homosexual?
Re: (Score:2)
But what am I if I spend a couple hours a week mowing my lawn and planting my garden?
Someone who cares about their lawn more than I do. I try to minimize lawn work as I would rather do other things.
But but but shortage! (Score:2)
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!
Re: (Score:2)
Spending a bit of time doing it as a hobby doesn't mean you're either qualified or even want to work as a professional developer.
I've got a fish tank that I enjoy looking after but I don't exactly consider myself qualified nor am I interested in becoming a marine biologist.
Re: (Score:2)
I could work as a programmer, however since the pay as an analyst is much better that is where I am.
The work is still coding, though the it is different and involves a lot more math and statistics than regular app development.
My tools also differ. I use PostgreSQL and R mostly, but I still find my self using C or ruby when the situation requires it.
I'm not considering my self a hobbyist programmer though. This is what I do for a living :)
You left out hobbyist coders (Score:5, Funny)
who do it for the groupies.
I never liked this title:Hobbyist (Score:4, Insightful)
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.
Can it be deducted? (Score:2)
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 [irs.gov].
'Hobbyists'? (Score:2)
Re: (Score:2)
Yep! (Score:2)
Yep!
End product is all that matters. (Score:1)
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.
Financial stability and platform availability (Score:2)
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.
Other employees (Score:2)
I am (Score:2)
Another way to look at it... (Score:2)
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
Re: (Score:2)
I should clarify, I don't think Free Software as a movement is a dangerous idea. What I am saying is that there are huge numbers of people out there that truly expect from 100's of man hours of work to simply get done in less than a week for peanuts. Free Software was never about the idea that people shouldn't get paid for their work, and those who think it is were missing Stallman's point.
As someone who has been paid for the last ten years to write open source software (mainly through research grants), w
Just trolling here... (Score:2)
Roughly 40 percent of programmers are so-called hobbyist programmers
Well, someone has to develop Linux too.
Re:1% (Score:5, Insightful)
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.
Re:1% (Score:5, Insightful)
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.
Re: (Score:3)
Re:1% (Score:5, Informative)
Re: (Score:3, Funny)
100% of chan pedos would pass that test in 20 languages.
Re: (Score:1)
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.
Re: (Score:2)
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 wi
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:3, Insightful)
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 di
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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 t
Re:1% (Score:5, Interesting)
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.
Re: (Score:2)
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.
Re: (Score:2)
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 n
Re: (Score:3, Interesting)
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
Re: (Score:1)
I had someone try this on me; joke was on them: I had finished the solution before they got back.
Re: (Score:2)
areas of specialization (Score:3)
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.
Re: (Score:2)
Fizzbuzz has nothing to do with areas of specialisation, it's about the most basic elements of computational logic and flow that are common to all areas of development.
Re: (Score:2)
Yes, that makes sense. But all that is orders of magnitude more complex than the FizzBuzz program, which merely requires that one is familiar with a loop and the modulo operation. So I think the parent's question still stands.
Re: (Score:2)
The point is Modulo is not that commonly used in interpreted languages.
I beg to differ. An import of a large data set into a database may commit the transaction or update a progress indicator after every n rows.
Re: (Score:1)
counter = 0
start loop
do work
counter ++
if counter = x
commit/update
counter = 0
end if
end loop
if counter > 0
commit/update
end if
I would think this might use less CPU doing a increment and comparison instead of a division every iteration.
Re: (Score:1)
I don't know about Python either, although I've been wanting to get into it. Of course, I wouldn't apply for a Python job in the first place. On the other hand I'm sure I've missed job opportunities sometimes because I tend to underestimate my abilities and only apply if I'm sure I can do the job, unlike those people i kan reed was talking about earlier.
Re: (Score:2)
doesn't matter - you can divide the input number by 3 and if its exactly zero, then print fizz out. Obviously you have to remember to put the input number into a floating point one, and it isn't necessarily going to be the most efficient... but that's not the point. The point of the test is to weed out the people who simply have zero clue.
Hell, if they took the number, converted it to a string and then compared the string to a lookup table of fizz values, that'd be acceptable in terms of passing the test; t
Re: (Score:2)
doesn't matter - you can divide the input number by 3 and if its exactly zero, then print fizz out
Then you would fail. The instructions are if it's divisible by 3 AND 5, then print "fizzbuzz".
:-)
But thanks for playing!
Re: (Score:1)
doesn't matter - you can divide the input number by 3 and if its exactly zero, then print fizz out.
What it? Result? It's only 0 if the input number was 0. You are probably thinking of remainder and in that case you would need to use modulo. There are various ways to get around of not using modulo, but that's not one.
Re: (Score:2)
oh yeah.. serves me right for posting with a pint in me! Guess I failed that interview... maybe this shows that even the simplest interview questions aren't so useful.
Re: (Score:2)
To be fair, I work in a bunch of languages and I know the modulo in c and c++, but have not come across it in others. If someone asked me for a python version, I would probably fail unless it was %.
The point is Modulo is not that commonly used in interpreted languages.
It is %, but the basic problem is that any employer that asks you to bang out a piece of code without access to documentation is asking you to do a ridiculously artificial thing. Who cares if the applicant knows that the modulo operator is % in Python? It takes less than 20 seconds to look up.
It would be better to hand applicants a small program that has one bug and several problematic things about it and have the applicant first debug it and then suggest improvements and refactorings.
Re: (Score:2)
I most regularly write in Python and System Verilog. I mix basic operators up all the time. After two weeks of vacation, I'm probably worse off than normal. It doesn't take long to type 'python operators' into Google.
But ask me about cryptography and I can bore you to tears with unnecessary details. The concepts are qualitatively different to the names of primitive operators in programming languages.
Re: (Score:2)
Re: (Score:2)
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 m
Re: (Score:3)
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?
Re: (Score:2)
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.
Re: (Score:2)
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_div
Re: (Score:1)
Re: (Score:2)
"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 develope
Re: (Score:3)
Re: (Score:2)
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.
Re: (Score:1)
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, Mana
Re: (Score:1)
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!
5 years of experience on 3 year old product (Score:2)
Re: (Score:2)
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.
Re: (Score:1)
Re: (Score:2)
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!
Re:I find the term "hobbyist" to be offensive (Score:5, Insightful)
Not really, hobbyist isn't a synonym for bad.
Re: (Score:3)
Re: (Score:2)
Re: (Score:3)
ve picked up some PHP to build myself a CMS for a personal website project
RUN!
Dear gods, run for your soul! Run like the devil himself is at your heels.
Re: (Score:3)
Ah... but you see HR screeners will deem your learning experience inadequate because you didn't attend `training' classes and cough up $2,500 each (more and more on your dime, of course) for the Beginner, Intermediate, and Advanced programming courses. Pursuing something on your own, devouring a couple of texts on a language (that might set you back a whopping $45 each), and fully immersing yourself in it to complete a project that you care about doesn't count. Not a bit. At least not any any place I've eve
Game consoles (Score:2)
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.
Re: (Score:2)
Re: (Score:2)