Highest paid jobs in programming for 2017


Stack Overflow has asked developers each year since 2011 about their favorite technologies, coding habits, and work preferences. This includes how they learn, share, and earn more money. This year over 64,000 developers took their annual survey.

They learn something new every time they perform the survey, and this year is no exception:

  • A common misconception about developers is that they’ve all been programming since childhood. In fact, we see a wide range of experience levels. Among professional developers, 11.3% got their first coding jobs within a year of first learning how to program. A further 36.9% learned to program between one and four years before beginning their careers as developers.
  • Only 13.1% of developers are actively looking for a job. But 75.2% of developers are interested in hearing about new job opportunities.
  • When we asked respondents what they valued most when considering a new job, 53.3% said remote options were a top priority. A majority of developers, 63.9%, reported working remotely at least one day a month, and 11.1% say they’re full-time remote or almost all the time.
  • A majority of developers said they were underpaid. Developers who work in government and non-profits feel the most underpaid, while those who work in finance feel the most overpaid.

So what can you learn from the answers collected during this survey? How about what languages pay the most, or are in the highest demand?

Most Popular:

Image: Stack Overflow


Highest Salary:

Image: Stack Overflow


You can get much more detail directly from the Stack Overflow survey results.


TIOBE Index for April 2017

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

This month Visual Basic.Net has moved up sightly, but the big news is the PHP replacement language called Hack.

The TIOBE Top 10 for this month:

Apr 2017 Apr 2016 Change Programming Language Ratings Change
1 1 Java 15.568% -5.28%
2 2 C 6.966% -6.94%
3 3 C++ 4.554% -1.36%
4 4 C# 3.579% -0.22%
5 5 Python 3.457% +0.13%
6 6 PHP 3.376% +0.38%
7 10 change Visual Basic .NET 3.251% +0.98%
8 7 change JavaScript 2.851% +0.28%
9 11 change Delphi/Object Pascal 2.816% +0.60%
10 8 change Perl 2.413% -0.11%

Read the entire results at this site.

Top Programming Languages in 2017

Computer Languages - SeniorDBA

What computer languages will be the most popular in 2017? This is actually a relevant question for new and long-time programmers if they want to make sure they are learning and using a popular (an potenially marketable) computer language.

In this article byMahesh Chand, we see his research into what the most popular languages are for now:

The most in-demand programming language can be directly proportional to the number of jobs available in the market. Based on the data gathered from Indeed, a report published on CodingDojo lists the languages, given below, as the most in-demand in 2016:

  • SQL
  • Java
  • JavaScript
  • C#
  • Python
  • C++
  • PHP
  • Objective-C/Swift
  • Ruby/Ruby on Rails

Business Insider ranks the languages, given below, as the most in-demand.

  • Java
  • PHP
  • Perl
  • C
  • Objective-C
  • JavaScript
  • Visual Basic
  • Ruby
  • Python
  • CSS
  • R

TIOBE Index for September 2016

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

This month C has moved to an all time low, but is still in second place. Java is still strong in the number 1 spot. High performance Assembly is still holding onto it’s recent top 10 spot.

The TIOBE Top 10 for this month:

Aug 2016 Aug 2015 Change Programming Language Ratings Change
1 1 Java 19.010% -0.26%
2 2 C 11.303% -3.43%
3 3 C++ 5.800% -1.94%
4 4 C# 4.907% +0.07%
5 5 Python 4.404% +0.34%
6 7 change PHP 3.173% +0.44%
7 9 change JavaScript 2.705% +0.54%
8 8 Visual Basic .NET 2.518% -0.19%
9 10 change Perl 2.511% +0.39%
10 12 change Assembly language 2.364% +0.60%

Read the entire results at this site.

C# Best Practices

Writing your programs using C# in Visual Studio assumes you understand the best practices that make your program maintainable and well structured. In this article by Eman Mughal, we get his take on some of the general best practices to make you a better programmer.


  • Simplify your code
    • First point in simplification of your code is that does anyone with 2 or 3 years of experience can understand your code? Depending on experience programmers can write much elegant and beautiful code with in fewer lines but does that code understandable with a person with less experience?
  • Method should only do one thing
    • Normally we write methods those can perform more than one tasks, So its better to split your tasks into smaller sub methods so that each method can do only one task.
  • You should be consistent with your naming conventions.
  • During the construction of your application think about classes and design patterns you can take advantage from.
  • Use properties instead of public variable
    • Properties can give you access methods getters and setters.
    • So by using getter and setters you can have validations in Set method or you can use threading support by using Lock statement in get method. Performance wise they are same but using properties and getters and setter allows your application to be extendable.
  • Use Runtype vs compile time constants
    • Use readonly instead of const keywords. It provide flexibility at runtime while const keyword define constants at compile time. 

Using string

  • Format() or Stringbuilder class
    • String concatenation operations are expensive. When we do concatenation a new copy of string is created in memory.
    • If you are using single concatenation like string + string then its fine. But if you are going to use complex concatenations like, looping through and building complex strings then use string builder class or string.format method.
  • Use String.IsNullOrEmpty
  • Use String.IsNullOrWhiteSpace rather than mannualy checking for null or empty
  • Use Foreach loop instead of index based loops
    • Using foreach loop compiler will generate optimized code
    • Foreach also allows you to work better with collections of particular type. It provides you maintainability. If you want to change the type of collection then maintaining this change is more easy and less error process in foreach loop, but on the other hand if you will write loop with integer counter, in that case, you will need to rewrite the entire loop logic and rewriting loop will open the doors of errors as well. So by using foreach loop it is good practice.
  • User variable initializers instead of initializing variables in contructors
    • Initializer
      • Public class Customer {
      • Private string Name = “Will”;
    • Assignment
      • Public employee() {
      • Name = “Will”;
    • It’s not related to performance it’s related to maintainability issue. So in constructor initialization if you want to add multiple constructors then you need to repeat initialization code in each and every constructor. But if you will initialize your variable right away then you will not need to repeat same initialization code again and again for each constructors. Yes you might be thinking that we can call one initialization constructor from each constructor. That is true, but again there are chances that you might miss, and secondly in case of variable initializer you do not even need to call initialization constructor with each of your other constructors.
  • Casting is one of those things that can get you in trouble
    • Customer customer = (Customer)user;
    • //this can throw an exception
    • If (user is Customer)
      • customer = (user as Customer); //it will return null when exception occurs
    • So in the above example using “is” and “as” will be best practice instead of casting.
  • using” keyword manages object disposal
    • Using (MyClass myclass = new MyClass() ) {
      • //use MyClass
      • } //MyClass is Disposed
    • So above code is more cleaner and elegant instead of calling Dispose() method explicitely.
    • So by in order to use “using” statement you need to implement IDisposable interface with your classes. And then provide the implementation of Dispose method in your classes. By using this technique you can use “Using” statement. Which will automatically call Dispose() method of your class. And In that class you can write code to free external resources like connection objects, streaming object, file handlers etc.

You can read the entire article here.

Using Unreal Engine in Visual Studio

Unreal Engine is designed to integrate with Visual Studio, allowing you to quickly and easily make code changes in your projects to immediately see results upon compilation. Setting up Visual Studio to work with the Unreal Engine can help improve efficiency and the overall user experience for developers using this powerful tool.

You can read some step-by-step instructions for installing the Unreal Engine in Visual Studio in this article from The Visual Studio Blog.

The Unreal Engine is a cross-platform game engine targeting DirectX 11 and 12 for PC and Xbox, OpenGL for iOS, OS X and Android, and WebGL for the Web.  Console development on Xbox One and PlayStation 4 is also available on the Unreal Engine for registered developers of those platforms. Unreal Engine also supports virtual reality development targeting platforms including Oculus, PlayStation VR, SteamVR and Gear VR.

Unreal Engine games can be programmed using C++ and Unreal’s visual scripting framework called Blueprints.  Visual Studio serves as a powerful code editor and debugger when using C++ for Unreal development.

Unreal C++ code inside Visual StudioUnreal C++ code inside Visual Studio

Visual scripting with BlueprintsVisual scripting with Blueprints

RedMonk Programming Language Rankings for Q3 2016

Looking a how popular a programming language is on Stack Overflow and the popularity of those same languages on GitHub allows for a analysis of what languages are most popular. The article by Stephen O’Grady reads: “The idea is not to offer a statistically valid representation of current usage, but rather to correlate language discussion (Stack Overflow) and usage (GitHub) in an effort to extract insights into potential future adoption trends.”

  • To be included in this analysis, a language must be observable within both GitHub and Stack Overflow.
  • No claims are made here that these rankings are representative of general usage more broadly. They are nothing more or less than an examination of the correlation between two populations we believe to be predictive of future use, hence their value.
  • There are many potential communities that could be surveyed for this analysis. GitHub and Stack Overflow are used here first because of their size and second because of their public exposure of the data necessary for the analysis. We encourage, however, interested parties to perform their own analyses using other sources.
  • All numerical rankings should be taken with a grain of salt. We rank by numbers here strictly for the sake of interest. In general, the numerical ranking is substantially less relevant than the language’s tier or grouping. In many cases, one spot on the list is not distinguishable from the next. The separation between language tiers on the plot, however, is generally representative of substantial differences in relative popularity.
  • GitHub language rankings are based on raw lines of code, which means that repositories written in a given language that include a greater amount of code in a second language (e.g. JavaScript) will be read as the latter rather than the former.
  • In addition, the further down the rankings one goes, the less data available to rank languages by. Beyond the top tiers of languages, depending on the snapshot, the amount of data to assess is minute, and the actual placement of languages becomes less reliable the further down the list one proceeds.

Top 20 Languages as reported by RedMonk

  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. C#
  6. C++
  7. Ruby
  8. CSS
  9. C
  10. Objective-C
  11. Shell
  12. R
  13. Perl
  14. Scala
  15. Go
  16. Haskell
  17. Swift
  18. Matlab
  19. Visual Basic
  20. Clojure