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.

22 DBA Responsibilities You Should Know About


Being a Database Administrator (DBA) is a tough job, and knowing what responsibilities are involved before you commit to that career can be very important.

In this article by Craig Mullins, we get his list of 22 DBA responsibilities:

  1. General database management.
  2. Data modeling and database design.
  3. Metadata management and repository usage.
  4. Database schema creation and management.
  5. Capacity planning.
  6. Programming and development.
  7. SQL code reviews and walk-throughs.
  8. Performance management and tuning.
  9. Ensuring availability.
  10. Data movement.
  11. Backup and recovery.
  12. Ensuring data integrity.
  13. Procedural skills.
  14. Extensible data type administration.
  15. Data security.
  16. Database auditing.
  17. General systems management and networking skills.
  18. Business knowledge.
  19. Data archiving.
  20. Enterprise resource planning (ERP).
  21. Web-specific technology expertise.
  22. Storage management techniques.

You can read the entire article, part 1 and part 2, to get all the details.

5 Reasons Your Best People Might Quit in 2017

Communication - SeniorDBA

As a manager, you have to be thinking about the people that work for you all year long, but the first of the calendar year can be a time when some of your people decide to make a career move.

Understanding their motives and reasoning for this thinking, you have to look at the most common reasons for moving to a new job.

  1. Lack of Communication – Good communication can mean different things to different people. Some people might need much more face-time than some of your other people. This is a significant risk at the end of the year when the traditional holiday season might distract your team and prevent the same level of communication as they might get during the rest of the year. If you’ve been neglecting your team, apologize to them explain how you plan to be a better communicator this year.
  2. No Transparency – We all say we value transparency and make everyone to be authentic and honest. We need to look at how we communicate with our team and make sure we are keeping them in the loop about what is happening in the company. While everyone understands their must be some information they just can’t know about today, your team must feel you aren’t keeping secrets from them. Verify you use clear and open communication with everyone on your team, and stress that they can come to you about any concerns they have.
  3. Boredom – It can be easy to keep your best people assigned to perform the the same tasks every day. You can’t wait for someone on your team to request new or challenging tasks. You should be constantly nudging your team members to do something new or something that makes them unsure about their skills. Great employees want to be challenged and you want great employees. Look for ways to force individuals to expand their skills or use their skills in a different way.
  4. Flexibility – People are always looking for more flexibility in the way management deals with them and their relationship with the company. This includes the ability to work remotely, the ability to use new tools, or a desire to explore more workplace perks. Talk to your people and make sure you understand what is important to them and them work help make it possible.
  5. Stagnation – While some people are perfectly happy in their current position, many want to grow and learn new skills so they can seek promotion and greater responsibility. You will need to find a way to help them grow by providing constant feedback and, when possible, a mentor to help your people realize their dreams.

Your 10 Favorite SeniorDBA Blog Posts of 2016

Top 10 - SeniorDBA

Here’s the top 10 items you clicked on the most in 2016:

  1. 20 SQL Server DBA Interview Questions – Some sample questions you might be asked about in an interview for a DBA position. Also used by the hiring managers to make sure they have some relevant questions during your interview.
  2. Comparing SQL Server vs. Oracle License Cost – Looking at the difference in cost between SQL Server and Oracle.
  3. SQL Server and Windows 10 Compatibility – Quick instructions on using SQL Server Management Studio on a Windows 10 desktop.
  4. SQL Server Trace Flag List – List of available trace flags for use in SQL Server.
  5. Using PowerShell to Manage Audits – Using PowerShell as a powerful scripting tool that can manage your SQL Server audits.
  6. SQL Server TCP and UDP Ports – This post lists the ports and protocols required to communicate with an instance of SQL Server. This can be very helpful if you need to create or manage firewall rules blocking unauthorized access.
  7. SQL Server End-Of-Life Schedule – This is a useful reference if you need to know if your version of SQL Server is still supported, and when it will no longer be supported.
  8. Common Database Design Mistakes – I short list of common database design mistakes, and how to avoid them in your environment.
  9. Free eBooks from Microsoft Blog – A list of free ebooks from Microsoft, in a wide range of technical topics from SQL Server, Windows, Azure, etc.
  10. Reset Password and Disable SQL Server SA Account – With auditors wanting all user accounts to have passwords that change at least every 90 days, or the account must be disabled, this provides some guidance on how to make that work with the SA account.

Happy New Year! I hope you will continue to visit this site for helpful information on a variety of topics.

Microsoft Open-Source and Cross Platform Development

.Net Framework - SeniorDBA

The Microsoft .Net framework has been around for about 14 years. While C#, C++, VB.NET, and F# seem to be the most supported and used languages to build .NET applications, there are close to 50 languages that are supported by the .NET framework.

In 2014, Microsoft moved to open-source .NET by introducing .NET Core. Most of the .NET components (compilers, languages, libraries, and tools) are now open-source and available in Github.

The new open-source component of .NET is named .NET Corevand has even more developers embracing what Microsoft is doing with .NET and the associated programming languages. Microsoft has acquired Xamarin and its products so developers can now use C# to build Android, iOS, and Windows mobile apps.

Is now the time to seriously consider the Microsoft .Net framework for your development?

Tips and Tricks for Active Directory Management

Active Directory - SeniorDBA

Managing Active Directory is essential for your network security. Here are a few tips to help you better manage your Active Directory:

  1. Disable the default Guest Account – This is a security best practice recommended by Microsoft. Disabling the guest account can protect you from simple and very basic attacks. It is also an item that security auditors look for to verify you are using security best practices.
    1. Log on as a member of the Domain Admins group, and then open Active Directory Users and Computers.
    2. In the console tree (left pane), click Users.
    3. In the details pane (right pane), right-click Guest, and then click Rename.
    4. Type the fictitious first and last name and press Enter.
    5. Right-click the new name, and then click Properties.
    6. On the General tab, delete the Description “Built-in account for guest access to the computer/domain” and type in a description to resemble other user accounts (for many organizations, this will be blank).
    7. In the First name and Last name boxes, type the fictitious names.
    8. On the Account tab, type a new User logon name, using the same format you use for your other user accounts, for example, first initial and last name.
    9. Type this same new logon name in the User logon name (pre-Windows 2000) box, and then click OK.
    10. Verify that the account is disabled. The icon should appear with a red X over it. If it is enabled, right-click the new name, and then click Disable Account.
  2. Rename the default Administrator account – This is an essential security best practice. One of the first things a malicious user or hacker will do is look to compromise the default administrator account. You want to hide the default account by renaming it to something other than the default name. It is also an item that security auditors look for to verify you are using security best practices.
    1. Log on as a member of the Domain Admins group, and then open Active Directory Users and Computers.
    2. In the console tree (left pane), click Users.
    3. In the details pane (right pane), right-click Administrator, and then click Rename.               Actrive Directory Users and Computers
    4. Type the fictitious first and last name and press Enter.
    5. In the Rename User dialog box, change the Full name, First name, Last name, Display name, User logon name, and User logon name (pre-Windows 2000) values to match your fictitious account name, and then click OK.                                                 Rename User
    6. In the details pane (right pane), right-click the new name, and then click Properties.
    7. On the General tab, delete the Description “Built-in account for administering the computer/domain” and type in a description to resemble other user accounts (for many organizations, this will be blank).                                                  Karen Berg Properties
    8. On the Account tab, verify that the logon names are correct.
  3. Maintain Physical Security – People will often focus on system security when thinking about ways to secure your Active Directory, but physical security is also required. Make sure people can’t just walk up to your Domain Controllers and attempt to bypass your security. If there are places where you can’t prevent physical access then consider turning that instance into a Read-Only Domain Controller.
  4. Disaster Planning – Disasters will happen, and I’m not just talking about fires, hurricanes, earthquakes, and tornadoes. What will you do if you find out an entire OU, containing 100 users, was deleted by mistake last night? Do you have a plan on how to resolve that issue, or are you expecting to just know all 100 users names, security settings, etc. as well as making the time to contact each user and help them log into the network with their new password and verify their network security setting are resolved? This could take days to resolve and it would be a PR nightmare.
  5. Prohibit Shared Accounts – Never allow anybody to share accounts, especially if the account has administrator privileges. It is almost impossible to determine who performed what action if multiple people are sharing a network account. It also creates security problems when someone is terminated that might know the password.
  6. Documentation – You can’t allow the Active Directory structure to grow uncontrolled and without a plan. Document the system, and keep the document updated. By creating a structure with basic logic and control, you are less likely to allow random changes that make no sense and people will never understand. Use the description fields in the tool to make this easier, but also an external document that explains the current status and reason for the structure.
  7. Delegate Responsibilities – Don’t allow just one person to perform all the Active Directory work. Even if your backup resource is only available one or two days a week, at least they are familiar with your AD structure and corporate procedures. One day you will find that backup resource a safely net that could save the day.
  8. Single Purpose Servers – You Domain Controller should be used only for user authentication, which is Active Directory and even DNS. Don’t install other applications or utilities, including products that can lead to security vulnerabilities like Adobe Reader, Microsoft Office, and Java.
  9. Beware Storing Extra Data – There are many fields available in Active Directory, including fields like address, telephone numbers, etc. It can serve a business purpose to complete some of these fields, but you must be careful when making a decision about who should have access to this data to prevent privacy or security issues.
  10. Delay Changes – Never allow yourself or others to make changes to your Active Diretcory before the weekend. Unless it is a required change that must be made on a Friday afternoon (a user termination is a good example) then wait until Monday to make the change. It can take days for a mistake to be uncovered, and you would rather deal with those mistakes during the week than on your precious weekend.