Since we recently announced our $10001 Binary Battle to promote applications built on the Mendeley API (now including PLoS as well), I decided to take a look at the data to see what people have to work with. My analysis focused on our second largest discipline, Computer Science. Biological Sciences (my discipline) is the largest, but I started with this one so that I could look at the data with fresh eyes, and also because it’s got some really cool papers to talk about. Here’s what I found:
What I found was a fascinating list of topics, with many of the expected fundamental papers like Shannon’s Theory of Information and the Google paper, a strong showing from Mapreduce and machine learning, but also some interesting hints that augmented reality may be becoming more of an actual reality soon.
The top graph summarizes the overall results of the analysis. This graph shows the Top 10 papers among those who have listed computer science as their discipline and chosen a subdiscipline. The bars are colored according to subdiscipline and the number of readers is shown on the x-axis. The bar graphs for each paper show the distribution of readership levels among subdisciplines. 17 of the 21 CS subdisciplines are represented and the axis scales and color schemes remain constant throughout. Click on any graph to explore it in more detail or to grab the raw data.(NB: A minority of Computer Scientists have listed a subdiscipline. I would encourage everyone to do so.)
1. Latent Dirichlet Allocation (available full-text)
LDA is a means of classifying objects, such as documents, based on their underlying topics. I was surprised to see this paper as number one instead of Shannon’s information theory paper (#7) or the paper describing the concept that became Google (#3). It turns out that interest in this paper is very strong among those who list artificial intelligence as their subdiscipline. In fact, AI researchers contributed the majority of readership to 6 out of the top 10 papers. Presumably, those interested in popular topics such as machine learning list themselves under AI, which explains the strength of this subdiscipline, whereas papers like the Mapreduce one or the Google paper appeal to a broad range of subdisciplines, giving those papers a smaller numbers spread across more subdisciplines. Professor Blei is also a bit of a superstar, so that didn’t hurt. (the irony of a manually-categorized list with an LDA paper at the top has not escaped us)
2. MapReduce : Simplified Data Processing on Large Clusters (available full-text)
It’s no surprise to see this in the Top 10 either, given the huge appeal of this parallelization technique for breaking down huge computations into easily executable and recombinable chunks. The importance of the monolithic “Big Iron” supercomputer has been on the wane for decades. The interesting thing about this paper is that had some of the lowest readership scores of the top papers within a subdiscipline, but folks from across the entire spectrum of computer science are reading it. This is perhaps expected for such a general purpose technique, but given the above it’s strange that there are no AI readers of this paper at all.
3. The Anatomy of a large-scale hypertextual search engine (available full-text)
In this paper, Google founders Sergey Brin and Larry Page discuss how Google was created and how it initially worked. This is another paper that has high readership across a broad swath of disciplines, including AI, but wasn’t dominated by any one discipline. I would expect that the largest share of readers have it in their library mostly out of curiosity rather than direct relevance to their research. It’s a fascinating piece of history related to something that has now become part of our every day lives.
4. Distinctive Image Features from Scale-Invariant Keypoints
This paper was new to me, although I’m sure it’s not new to many of you. This paper describes how to identify objects in a video stream without regard to how near or far away they are or how they’re oriented with respect to the camera. AI again drove the popularity of this paper in large part and to understand why, think “Augmented Reality“. AR is the futuristic idea most familiar to the average sci-fi enthusiast as Terminator-vision. Given the strong interest in the topic, AR could be closer than we think, but we’ll probably use it to layer Groupon deals over shops we pass by instead of building unstoppable fighting machines.
5. Reinforcement Learning: An Introduction (available full-text)
This is another machine learning paper and its presence in the top 10 is primarily due to AI, with a small contribution from folks listing neural networks as their discipline, most likely due to the paper being published in IEEE Transactions on Neural Networks. Reinforcement learning is essentially a technique that borrows from biology, where the behavior of an intelligent agent is is controlled by the amount of positive stimuli, or reinforcement, it receives in an environment where there are many different interacting positive and negative stimuli. This is how we’ll teach the robots behaviors in a human fashion, before they rise up and destroy us.
6. Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions (available full-text)
Popular among AI and information retrieval researchers, this paper discusses recommendation algorithms and classifies them into collaborative, content-based, or hybrid. While I wouldn’t call this paper a groundbreaking event of the caliber of the Shannon paper above, I can certainly understand why it makes such a strong showing here. If you’re using Mendeley, you’re using both collaborative and content-based discovery methods!
7. A Mathematical Theory of Communication (available full-text)
Now we’re back to more fundamental papers. I would really have expected this to be at least number 3 or 4, but the strong showing by the AI discipline for the machine learning papers in spots 1, 4, and 5 pushed it down. This paper discusses the theory of sending communications down a noisy channel and demonstrates a few key engineering parameters, such as entropy, which is the range of states of a given communication. It’s one of the more fundamental papers of computer science, founding the field of information theory and enabling the development of the very tubes through which you received this web page you’re reading now. It’s also the first place the word “bit”, short for binary digit, is found in the published literature.
8. The Semantic Web (available full-text)
In The Semantic Web, Tim Berners-Lee, Sir Tim, the inventor of the World Wide Web, describes his vision for the web of the future. Now, 10 years later, it’s fascinating to look back though it and see on which points the web has delivered on its promise and how far away we still remain in so many others. This is different from the other papers above in that it’s a descriptive piece, not primary research as above, but still deserves it’s place in the list and readership will only grow as we get ever closer to his vision.
9. Convex Optimization (available full-text)
This is a very popular book on a widely used optimization technique in signal processing. Convex optimization tries to find the provably optimal solution to an optimization problem, as opposed to a nearby maximum or minimum. While this seems like a highly specialized niche area, it’s of importance to machine learning and AI researchers, so it was able to pull in a nice readership on Mendeley. Professor Boyd has a very popular set of video classes at Stanford on the subject, which probably gave this a little boost, as well. The point here is that print publications aren’t the only way of communicating your ideas. Videos of techniques at SciVee or JoVE or recorded lectures (previously) can really help spread awareness of your research.
10. Object recognition from local scale-invariant features (available in full-text)
This is another paper on the same topic as paper #4, and it’s by the same author. Looking across subdisciplines as we did here, it’s not surprising to see two related papers, of interest to the main driving discipline, appear twice. Adding the readers from this paper to the #4 paper would be enough to put it in the #2 spot, just below the LDA paper.
So what’s the moral of the story? Well, there are a few things to note. First of all, it shows that Mendeley readership data is good enough to reveal both papers of long-standing importance as well as interesting upcoming trends. Fun stuff can be done with this! How about a Mendeley leaderboard? You could grab the number of readers for each paper published by members of your group, and have some friendly competition to see who can get the most readers, month-over-month. Comparing yourself against others in terms of readers per paper could put a big smile on your face, or it could be a gentle nudge to get out to more conferences or maybe record a video of your technique for JoVE or Khan Academy or just Youtube.
Another thing to note is that these results don’t necessarily mean that AI researchers are the most influential researchers or the most numerous, just the best at being accounted for. To make sure you’re counted properly, be sure you list your subdiscipline on your profile, or if you can’t find your exact one, pick the closest one, like the machine learning folks did with the AI subdiscipline. We recognize that almost everyone does interdisciplinary work these days. We’re working on a more flexible discipline assignment system, but for now, just pick your favorite one.
These stats were derived from the entire readership history, so they do reflect a founder effect to some degree. Limiting the analysis to the past 3 months would probably reveal different trends and comparing month-to-month changes could reveal rising stars.
To do this analysis I queried the Mendeley database, analyzed the data using R, and prepared the figures with Tableau Public. A similar analysis can be done dynamically using the Mendeley API. The API returns JSON, which can be imported into R using the fineRJSONIO package from Duncan Temple Lang and Carl Boettiger is implementing the Mendeley API in R. You could also interface with the Google Visualization API to make motion charts showing a dynamic representation of this multi-dimensional data. There’s all kinds of stuff you could do, so go have some fun with it. I know I did.
Career, Salary and Education Information
Top 3 Software Developer Jobs
- Lead Software Developer, BNAS - Bloomberg BNA - Arlington, VA
Plan, design, and implement software development for products, product
- Lead Software Developer - AppleTree Early Learning Public Charter School - Washington, DC
Used in schools around DC, This instructional model is comprised of several components that help leaders and school leaders better understand what to
- Software Developer - Ecosystems - McLean, VA
Create web applications with intense focus on data visualization and user experience • Ecosystems is more about the 'who' than the 'what', but the
See all Software Developer jobs
What Software Developers Do[About this section] [To Top]
Software developers are the creative minds behind computer programs. Some develop the applications that allow people to do specific tasks on a computer or another device. Others develop the underlying systems that run the devices or that control networks.
Duties of Software Developers
Software developers typically do the following:
- Analyze users' needs and then design, test, and develop software to meet those needs
- Recommend software upgrades for customers' existing programs and systems
- Design each piece of an application or system and plan how the pieces will work together
- Create a variety of models and diagrams (such as flowcharts) that show programmers the software code needed for an application
- Ensure that a program continues to function normally through software maintenance and testing
- Document every aspect of an application or system as a reference for future maintenance and upgrades
- Collaborate with other computer specialists to create optimum software
Software developers are in charge of the entire development process for a software program. They may begin by asking how the customer plans to use the software. They must identify the core functionality that users need from software programs. Software developers must also determine user requirements that are unrelated to the functions of the software, such as the level of security and performance needs. They design the program and then give instructions to programmers, who write computer code and test it.
If the program does not work as expected or if testers find it too difficult to use, software developers go back to the design process to fix the problems or improve the program. After the program is released to the customer, a developer may perform upgrades and maintenance.
Developers usually work closely with computer programmers. However, in some companies, developers write code themselves instead of giving instructions to programmers.
Developers who supervise a software project from the planning stages through implementation sometimes are called information technology (IT) project managers. These workers monitor the project's progress to ensure that it meets deadlines, standards, and cost targets. IT project managers who plan and direct an organization's IT department or IT policies are included in the profile on computer and information systems managers.
The following are examples of types of software developers:
Applications software developers design computer applications, such as word processors and games, for consumers. They may create custom software for a specific customer or commercial software to be sold to the general public. Some applications software developers create complex databases for organizations. They also create programs that people use over the Internet and within a company's intranet.
Systems software developers create the systems that keep computers functioning properly. These could be operating systems for computers that the general public buys or systems built specifically for an organization. Often, systems software developers also build the system's interface, which is what allows users to interact with the computer. Systems software developers create the operating systems that control most of the consumer electronics in use today, including those used by cell phones and cars.
Work Environment for Software Developers[About this section] [To Top]
Software developers, applications hold about 831,300 jobs. The largest employers of software developers, applications are as follows:
|Computer systems design and related services||35%|
|Finance and insurance||10|
|Management of companies and enterprises||5|
Software developers, systems software hold about 425,000 jobs. The largest employers of software developers, systems software are as follows:
|Computer systems design and related services||31%|
|Finance and insurance||6|
In general, software development is a collaborative process, and developers work on teams with others who also contribute to designing, developing, and programming successful software. However, some developers work at home.
Software Developer Work Schedules
Most software developers work full time, and additional work hours are common.
How to Become a Software Developer[About this section] [To Top]
Get the education you need:Find schools for Software Developers near you!
Software developers usually have a bachelor's degree in computer science and strong computer programming skills.
Education for Software Developers
Software developers usually have a bachelor's degree, typically in computer science, software engineering, or a related field. Computer science degree programs are the most common, because they tend to cover a broad range of topics. Students should focus on classes related to building software to better prepare themselves for work in the occupation. Many students gain experience in software development by completing an internship at a software company while in college. For some positions, employers may prefer that applicants have a master's degree.
Although writing code is not their first priority, developers must have a strong background in computer programming. They usually gain this experience in school. Throughout their career, developers must keep up to date on new tools and computer languages.
Software developers also need skills related to the industry in which they work. Developers working in a bank, for example, should have knowledge of finance so that they can understand a bank's computing needs.
Advancement for Software Developers
Software developers can advance to become information technology (IT) project managers, also called computer and information systems managers, a position in which they oversee the software development process.
Important Qualities for Software Developers
Analytical skills. Developers must analyze users' needs and then design software to meet those needs.
Communication skills. Developers must be able to give clear instructions to others working on a project. They must also explain to their customers how the software works and answer any questions that arise.
Creativity. Developers are the creative minds behind new computer software.
Detail oriented. Developers often work on many parts of an application or system at the same time and must therefore be able to concentrate and pay attention to detail.
Interpersonal skills. Software developers must be able to work well with others who contribute to designing, developing, and programming successful software.
Problem-solving skills. Because developers are in charge of software from beginning to end, they must be able to solve problems that arise throughout the design process.
Software Developer Salaries[About this section] [More salary/earnings info] [To Top]
The median annual wage for software developers, applications is $100,080. The median wage is the wage at which half the workers in an occupation earned more than that amount and half earned less. The lowest 10 percent earned less than $58,300, and the highest 10 percent earned more than $157,590.
The median annual wage for software developers, systems software is $106,860. The lowest 10 percent earned less than $64,650, and the highest 10 percent earned more than $163,220.
The median annual wages for software developers, applications in the top industries in which they work are as follows:
|Finance and insurance||101,520|
|Management of companies and enterprises||98,020|
|Computer systems design and related services||97,720|
The median annual wages for software developers, systems software in the top industries in which they work are as follows:
|Finance and insurance||108,720|
|Computer systems design and related services||105,250|
Most software developers work full time, and additional work hours are common.
Job Outlook for Software Developers[About this section] [To Top]
Employment of software developers is projected to grow 24 percent over the next ten years, much faster than the average for all occupations. Employment of applications developers is projected to grow 30 percent, and employment of systems developers is projected to grow 11 percent. The main reason for the growth in both applications developers and systems developers is a large increase in the demand for computer software.
The need for new applications on smart phones and tablets will help increase the demand for applications software developers.
The health and medical insurance and reinsurance carriers industry will need innovative software to manage new healthcare policy enrollments and administer existing policies digitally. As the number of people who use this digital platform increases over time, demand for software developers will grow.
Systems developers are likely to see new opportunities because of an increase in the number of products that use software. For example, more computer systems are being built into consumer electronics and other products, such as cell phones and appliances.
Concerns over threats to computer security could result in more investment in security software to protect computer networks and electronic infrastructure. In addition, an increase in software offered over the Internet should lower costs and allow more customization for businesses, also increasing demand for software developers.
Job Prospects for Software Developers
Job prospects will be best for applicants with knowledge of the most up-to-date programming tools and for those who are proficient in one or more programming languages.
|Occupational Title||Employment, 2016||Projected Employment, 2026||Change, 2016-26|
|Software developers, applications||831,300||1,084,600||30||253,400|
|Software developers, systems software||425,000||471,000||11||46,100|
Careers Related to Software Developers[About this section] [To Top]
Computer and Information Research Scientists
Computer and information research scientists invent and design new approaches to computing technology and find innovative uses for existing technology. They study and solve complex problems in computing for business, medicine, science, and other fields.
Computer and Information Systems Managers
Computer and information systems managers, often called information technology (IT) managers or IT project managers, plan, coordinate, and direct computer-related activities in an organization. They help determine the information technology goals of an organization and are responsible for implementing computer systems to meet those goals.
Computer Hardware Engineers
Computer hardware engineers research, design, develop, and test computer systems and components such as processors, circuit boards, memory devices, networks, and routers.
Computer Network Architects
Computer network architects design and build data communication networks, including local area networks (LANs), wide area networks (WANs), and Intranets. These networks range from small connections between two offices to next-generation networking capabilities such as a cloud infrastructure that serves multiple customers.
Computer programmers write and test code that allows computer applications and software programs to function properly. They turn the program designs created by software developers and engineers into instructions that a computer can follow.
Computer Support Specialists
Computer support specialists provide help and advice to computer users and organizations. These specialists either support computer networks or they provide technical assistance directly to computer users.
Computer Systems Analysts
Computer systems analysts, sometimes called systems architects, study an organization's current computer systems and procedures, and design solutions to help the organization operate more efficiently and effectively. They bring business and information technology (IT) together by understanding the needs and limitations of both.
Database administrators (DBAs) use specialized software to store and organize data, such as financial information and customer shipping records. They make sure that data are available to users and secure from unauthorized access.
Information Security Analysts
Information security analysts plan and carry out security measures to protect an organization's computer networks and systems. Their responsibilities are continually expanding as the number of cyberattacks increases.
Mathematicians and Statisticians
Mathematicians and statisticians analyze data and apply mathematical and statistical techniques to help solve real-world problems in business, engineering, healthcare, or other fields.
Postsecondary teachers instruct students in a wide variety of academic and technical subjects beyond the high school level. They may also conduct research and publish scholarly papers and books.
Web developers design and create websites. They are responsible for the look of the site. They are also responsible for the site's technical aspects, such as its performance and capacity, which are measures of a website's speed and how much traffic the site can handle. In addition, web developers may create content for the site.
*Some content used by permission of the Bureau of Labor Statistics, U.S. Department of Labor.