We all heard the name of Stack Overflow. A well-known term for the programmers and developers. It is an online Q&A site. People crowd there when they face any problem related to programming, development, API usage and for other purposes. Asked a question and get answers from well and experienced programmers, developers and people related to technical subjects. As a beginner, developers and programmers face some problems like which platforms are trending, which programming language programmers should select, for which platform stack overflow is most helpful etc. These are the burning questions for all. Our work is about considering the facts. Our work is to find out which platforms are preferable for a developer as a beginner and which programming languages are used most and among them which one is popular. We used a Stack Overflow dataset. In our work, we found out some interesting things about Stack Overflow. We calculated numbers of commit occurs, minimum response time needed for any type of questions, vote according to accepted answers and we also kept track on programming languages programmers mostly used and all the calculation happened on the basis of different types of platforms.
We have done a survey on some well-experienced developers and programmers and found out the helpfulness of stack overflow. 90 percent said that when they faced any problem in programming, developing and a problem occurs in any API use they were trying to solve it using stack overflow. They depend on stack overflow. Another 5 percent don’t have any idea about any Q&A sites. When they faced any problem they just googled it and get the solution from any Q&A sites and apply it. Sometimes they took help from stack overflow, but we didn’t consider them as a regular stack overflow user. Rest 5 percent solved their problems by their experience or they needed someone help to solve their problem.
We were motivated by some other studies. For example, Abdalkareem, Shihab, Rilling qualitatively analyzed over Stack Overflow related commits and their research purposes were to find out what reasons developers resort to stack overflow, what areas crowds are most helpful for developers and what areas have the longest response time. However, the basic differences in our study were that we researched programming languages and development platforms. This research gives us confidence in some issues. First, Stack Overflow helps programmers and developers over particular code commit of crowds. Second, this research helps us to analyze a large dataset. Third, this research was over both language and platform which is helpful for all kinds of programmers and developers about their career.
We read some papers published in different types of conferences or journals. We mentioned some papers related to our work. Abdalkareem, Shihab, Rilling mentioned how developers use crowds for their development purpose. They also found out  how developers reuse code over Android from Stack Overflow. Barua, Thomas, Hassan found that web and mobile development are most popular in Stack Overflow and they also proposed a semi-automatic approach to study general topics. Rosen and Shihab shows how mobile developers get helps from Stack Overflow. Vasilescu, Filkov, Serebrenik shows how Stack Overflow effect on developers. Zagalsky, Teshima, German, Storey, Poo-Caamano analyze on the use and effect of Stack Overflow over the programmers.
We motivated to research over Stack Overflow after reading these papers. Our research had some kinds of similar goals for developing purposes. But there were many differences between these research and ours. We decided to find out which language should a programmer choose for different purposes. Moreover, we give a decision over their career by analyzing over the platforms.
Our goal was to give a decision to programmers and developers about their learning programming and developing careers. We analyzed Stack Overflow related commits and determined which platform is most helpful, which platform has more commits, in which language programmers are more involved, which language is most helpful. To determine this we first collected Stack Overflow related commits, analyzed them and found out helpfulness and response time.
From all selected commits, we had to isolate Stack Overflow commits. To do so, we performed a string pattern matching technique. According to this technique, we searched all the commits which consist of the term ‘stackoverflow’. After performing the string pattern matching technique, we found 1418 Stack Overflow related commits. We removed duplicate, irrelevant, inconsistent and noisy data through manual inspection over all Stack Overflow related commits. After removing these inappropriate data, we got 1139 commits. All of these commits contained Stack Overflow commit link. Every commit represents a query of users.
After collecting all the Stack Overflow related commits, we inspected all the links from these commits. We analyzed every commit iteratively and it helped us to categorize which type of question it is. We read every Stack Overflow commits and it helped us to decide, how to categorize them. This categorization based on ‘platform’ where developers are mostly involved. We ended up with 10 different types of platforms, in which a programmer or developer can step forward to his future movement.
We also categorized these commits based on different programming languages. We inspected every commit link and categorized these commits based on the languages that the user asked. We identified languages from tags related to each question. Among all the commits we got about 656 commits related to programming languages. Table I shows all the programming languages and their corresponding commits.
In human nature, they give the biased opinion. We wanted to check the validity and accuracy of this classification. For that, we followed a reliable statistical method to find out the inter-rater agreement for qualitative items. We used Cohen’s Kappa coefficient to evaluate the level of agreement between the two annotators. To examine the validity and accuracy of this classification, we got one Ph.D. student and one BSc (Honors) student. We took their perception of the classification and evaluated Cohen’s Kappa coefficient on the basis of their perception. The measuring coefficient is scaled to -1.0, 0, + 1.0. Here -1 represents lower than chance agreement, 0 represents the exact chance agreement and +1 represents higher than the chance agreement. We got the value of Cohen’s Kappa coefficient is +0.84, which is the level of agreement between the two annotators. This result considered as excellent agreement.
Our next target was to measure the helpfulness and response time of individual platforms and programming languages to find out the best one. The votes (signed by a green mark) of the accepted answer denotes the helpfulness of a commit. Our intuition is that if an accepted answer is helpful to a developer or a programmer then they will give it an upvote, which means that this accepted answer is helpful. When an accepted answer gets more vote, we can consider it more helpful. After measuring individual post’s votes, we divided them into different platforms and languages. We calculated the median of the votes of individual’s platforms and languages.
The delay time was calculated by the difference between the asking time and the time of accepted answer. The delay time to get an answer of a commit was calculated in the hour as a unit. The larger response time means a larger delay time and it is negatively perceived. After collecting the delay time to get an answer of a commit, we separated the commits in the same type of language and platform. The median of delay time was calculated for each language and platform.
To determine which platform and language developers or programmers should choose according to Stack Overflow, we divided our research into some main parts. We associate a question for each part of our research:
RQ1.What are the main platform developers involved to Stack Overflow?
RQ2.Which platforms are most helpful to developers in? What platforms has the longest response time to attain answers from the crowd?
RQ3.What languages have less response time to achieve answers from the crowd?
RQ4.Which language has more probability to get an accepted answer?
RQ1 helps us to determine which platform developers are more involved so that we can understand that, these platforms are now on trending. Answering RQ2 helps us to understand for which platform crowd is more helpful to developers. We can understand which platform is more responsive and which one can be easily developed by getting help from Stack Overflow. Answering RQ3 helps us to understand which language has less delay time. Answering RQ4 we can find out which language has more probability to achieve the accepted answer. It helps us to understand, on which language programmers have more probability to get a solution to their faced problem.
We mentioned earlier that, we examined each commit post and classified them into different platforms. We read every commit and understood, which platform it was. We incremented the value of the count for each platform when we got a new commit related to the corresponding platform. Then we grouped them according to their platform name.
We made 10 different platforms for these commits. We have grouped these platforms into 4 high-level categories, like ‘Mobile Application’, ‘Web’, ‘Database’, ‘Desktop Application’. Among all the commits, some commits were platform related and some were non-platform commits. We considered the platform related commits for our purpose. Table-II shows that individual platforms commit percentage among all the platform related commits. From Table-II we found that developers resort to the crowd on Stack Overflow mainly for ‘Web’ purpose. In ‘Web’ section ‘Web development’ has 32.2%, ‘Web framework’ has 27.37%, ‘Web design’ has 7.87% and ‘Web server’ has 1.61% of platform related commits.
Also, we found that ‘Mobile Application’ gets the 2nd highest platform related commits. In ‘Mobile Application’ section ‘Android’ has 8.77% and ‘iOS’ has 5.37% of platform related commits. Developers also involve to ‘Desktop Application’ platform, where both ‘Windows’ and ‘Linux’ has 4.83% and ‘MAC’ has 2.69% of platform related commits. ‘Database’ related commits are 4.47% of the platform related commits.
We identified different platforms where developers asked their questions to the crowd. We calculated the helpfulness and the response of these platforms. Table-III shows the number of questions, the median number of votes, the number of accepted answers and median of response time (hours) to obtain an accepted answer for each platform. From this table, we can see the ranks of platforms, according to the votes and response time. Here, we considered voting as helpfulness. Ranking of helpfulness is in ascending order based on the median of the votes. The raking of delay is based on the median of response time (hours).From Table-III, we can say that web design, web development, MAC, etc. platforms have a maximum median number of votes. Web server, windows application, android, etc. have less number of the median of the votes. So, web design is more helpful for developers. Web design, Database, Linux, etc. platforms have less number of the median response time. So, web design is more responsive to the developers. Web server, iOS, web framework has a huge median of response time.so, they have a long delay to give an answer.
We combine ranking of both helpfulness and response time of platforms in Figure 1. We use bubble plot in Figure 1, that plot the rank of helpfulness vs. rank of response time for each platform of Stack Overflow. The size of the bubble represents the total number of commits for a particular platform. From this plot, we can say that ‘Web Design’ is better, according to both helpfulness and response time. From Figure 1 we also can see ‘Web Development’ has the most number of commits and good helpfulness. ‘Web Server’ has very less number of helpfulness and also very high delay. ‘Windows’ and ‘iOS’ has respectively less helpfulness and high delay. In such situations, developers can search for answers to their questions in other resources because the crowd on Stack Overflow may not be the right resource. The x-axis of the plot shows the ranking of helpfulness (median of the votes) and the y-axis shows the ranking of the median of response time (hour) of all platforms. The size of the bubble represents the number of commits.
When we examined every commit, we noticed that the maximum of the commits were related to different types of programming languages. We separated them and grouped them according to their corresponding languages. We collected response time (hour) of each commit. Then we calculated the median of the response time of every programming language. Figure 2 shows that ‘Java’ is the most responsive language. ‘C++’, ‘C’ have also comparatively lesser response time than other languages. ‘Scala’ has a huge delay time. In such a case, programmers can get help from other resources because the crowd on Stack Overflow take more time to answer in this sector.
Our next goal was to find out which language has more probability to get an accepted answer. These findings helped us to determine what experts are more involved in that language and gathering knowledge in this language becomes more beneficial for the programmers. We collected a number of accepted answers for all languages. We considered those languages which have 40 or more commits. For increasing the efficiency rate, we discarded languages which have a small number of commits and sometimes we could see its magnitude is quite high. Also, we considered 40 commits as a standard, languages which are mostly used and more popular than others.
From Figure 3 we can make a decision that ‘Python’, ‘C++’ have more probability to get an accepted answer than others. All of these languages have similar kinds of probability because these languages have almost the same popularity level and programmers are more engaged in these languages.
At the end of our research, we discovered three key observations which will impact on developers and programmers career decisions based on Q&A websites. The first observation may be helpful for developers to take their decisions about career according to the Q&A website. The second observation can help the developers with the reasons they can get a proper solution to their question. From the third observation, programmers can get the exact knowledge about different programming languages.
Our research result shows that ‘Web Development’ has the most number of commits and a large number of accepted answers. So, if a developer wants to make his career in web development, then crowds on Stack Overflow turns into a big helping hand for him. Because a large number of commits are related to web development means a huge number of developers engaged in it. From our research, ‘Web Design’ covers a strong area where helpfulness is high and it takes very less response time. If anyone feels an interest in web design, then it takes a very short time to become a complete web designer through Stack Overflow.
In Stack Overflow, there is not only commits related to platforms and programming languages, but also a huge number of commits related to non-platform. Areas like API usage, development tools, etc. have a huge number of commits. Stack Overflow is equally helpful for the platform and non-platform region. So, a developer can use the crowds on Stack overflow to gain knowledge about some areas which are not related to any platforms or languages and we consider Stack Overflow informative for these kinds of areas.
The working procedure of this research has some lacks. We worked with the 2015 GHTorrent dataset, it is our research drawback. If we work with the latest dataset, there may be a certain change in our research result. As a human, for some reason, we gave the biased opinion. Sometimes in our research, we made a biased decision in some fact where it is difficult to determine. We used GHTorrent dataset because it is free and available. If we used another dataset, there could be some change in our research result.
In this research, we investigated the most helpful language for a programmer and the most helpful platform for a developer. Nowadays the importance of the Stack overflow is increasing more and more. Most of the cases, our research seems very helpful for those users who are attached to technical tasks like programming and developing. Our research result will lead to the new Stack Overflow users to determine, what they should learn. It provides a better way to take the decision to build an efficient and bright career opportunity.
Disclaimer: This essay has been submitted by a student. This is not an example of the work written by our professional essay writers. You can order our professional work here.
Sorry, copying is not allowed on our website. If you’d like this or any other sample, we’ll happily email it to you.
Your essay sample has been sent.
Want us to write one just for you? We can custom edit this essay into an original, 100% plagiarism free essay.Order now