October 12, 2024

Lightdiodes

The Techno Universe

Three Programming Languages and Three Source Control Systems to Ace for Your Job Interview

The other day some people who participate in forum discussions asked me this interesting question: what if you are in the market for a technology job, what are some of the technologies in demand these days?

A. Top three programming languages

According to TIOBE’s Software website, the first three programming languages by market share are presently Java, C and C++ (in this order).

1. Java

Java continues to be the leader of the programming languages. His object oriented and platform agnostic nature, fairly straight forward syntax, safer memory allocation mechanisms make it a very popular and largely adopted programming language. My assessment is that, despite the competition, Java will remain the leader of the market for a while. Things like the Oracle acquisition of Sun and Android development will strengthen Java’s position as well.

So, if you don’t know it already, learn Java because it definitely makes you more employable.

2. C

The old C remains in the second place. Some people are surprised with this. I am not. C is a solid traditional procedural programming language. It’s been around for more than four decades and there is plenty of legacy code written in C. Until ported, that code will not go away. Plus there are popular full blast Operating Systems wrote in C such as the Unix based OS-es.

C is a good programming language to know. And, if you don’t like those pointers and memory leaks, don’t worry: you’ll get used with them.

3. C++

C++ makes it to the third place. Its object oriented nature, its historic well known and fairly popular C based syntax, his adoption in large corporations over the last couple of decades, all these contribute to the presence of this programming language in the first three. Even if there are some objections to C++ syntax and you lately hear critical voices that demand a more flexible, less verbose programming language, C++ will be with us for a while as well.

No matter if you know C or not, learn C++. It will teach you solid object oriented programming and code re-usability concepts and it will help you write better, faster, more efficient code.

As a side note, PHP and C# rank on the fourth and fifth places. They are both rising in popularity over the last decade. Objective-C and F# are languages that gained a lot of popularity as well: the first one due to Apple’s success in the mobile world and the second one due to the growth in demand for functional programming.

B. Top three source control systems

According to Forrester Research and as published on some of their blogs, the first three source control systems as of 2010 are svn, vss and cvs.

1. svn

svn is by far the leader of the source control systems used in the market place. Its relatively robust functionality (compared to other open source systems), straight forward labeling and branching command line syntax, the open source philosophy as well as the adoption by enterprise make subversion the source control system of the day.

Subversion is also helped by a certain cumbersome-ness or a certain lack of reliability of its main competitors, cvs and vss respectively.

2. vss

VSS is one of the older source control systems promoted and maintained by Microsoft. The initial versions of tools were rather primitive (with a local sources repository rather than client-server). In time the tool became more sophisticated and it’s still very popular in Microsoft intensive environments even though it has reliability issues and a fairly un-sophisticated way to branch, merge and mitigate conflicts at merge time.

We lately see a lot of migrations from vss to tfs or svn.

3. cvs

CVS, initially designed as a collection of scripts to control the source code developed by teams on Unix environments, became a popular and widely adopted source control system about ten years ago. It is a classy centralized-control system, it has a fairly robust check-in / check-out / label / branch / merge set of features and a series of open source developed GUIs. Its cumbersome command line syntax and versioning of the files intimidate some of the developers.

In the field we usually see migrations from cvs to svn.

Some “rising stars” in the source control arena are TFS (of Microsoft) and Perforce (of Perforce Software) whereas depending on where you work you might run into things like PVCS, Cleacase (an IBM product) and StarTeam (Borland). Non-centralized source control systems such as Linus Torvald’s Git or a product called Mercurial are getting some traction lately as well.

It might seem a lot to be familiar with seven or eight different source control systems but good news is that from a developer’s stand point these are easy to learn how to use tools. With your hands on, you can get to learn a new one pretty much every week.

Make it a great day!

Adrian