5 Programming Languages Every Successful Freelance Developer Should Learn

5 Programming Languages Every Successful Freelance Developer Should Learn
Image credit: unsplash.com

Some things – like writing and image manipulation – rarely change whereas there seems to be a new programming language every other week and, annoyingly, they are all just a little bit different from everything else out there. That means that a freelance developer have to be on their toes to be able to use them all properly.

Technically, a programming language is any formal set of commands that can be used in a series to produce some kind of output.  Generally, high end programming languages are composed of certain instructions that can be read by a computer and make it run specific algorithms to accomplish a task. That means they can be short and succinct or very, very long, depending upon the task required.

But different languages handle data in different ways and may have subtle nuances and differences that can trip the freelance developer up if they are not careful. While there are so many languages it is difficult to keep up, there are some which are a given, like the following:

C++

Because so much runs on this flexible language, to not learn it would leave a freelance developer in a very poor position.  That’s not to say that you have to be an utter expert in all aspects of it, but if you can’t manipulate the C++ code, you will be severely limited. C++ is controlled by the International Standards Organisation (ISO) where a working group known as JTC1/SC22/WG21 regulate it. So far, it has been published in four revisions and they are currently working on the next revision, referred to as C++17 as it is due in 2017. The current version, ISO/IEC 14882:2014, was released in 2014 – see, it says 2014 at the end.

C++ is a general-purpose language that forms the basis of many computer programs and applications. It has imperative, object-oriented and generic programming features, while also providing low-level memory manipulation facilities. Designed for system programming, C++ is useful in the contexts of resource-constrained applications including server applications such as web-search, SQL, and e-commerce products. C++ consists of two distinct parts: the core language and the standard library. C++ developers expect the library on every major implementation of the language; it includes vectors, lists, maps, standard algorithms, sets, queues, stacks, arrays, tuples, I/O facilities, and smart pointers for automatic memory management.

While C++ is used universally, there has been some criticism of its slow compiling times and protracted error messages, though that’s actually a bit of nit-picking rather than genuine concerns.

New to C++? Google has a good course which can get you started with C++ and you can find it here.
Looking for C++ specification? Read more about it here.

PHP

This server-side scripting language is mainly used in form-collection applications, the generation of dynamic page content, and for writing desktop applications. That itself makes it a fairly important language but it also has strong text processing abilities, including Perl Compatible Regular Expressions (PCRE).  These are a set of regular functions that use expression pattern matching features using common syntax and semantics. PHP is mostly found running web-servers, where the code is the basis of dynamic web pages or parts of the same thing. Because of its inherent flexibility, it is a major part of many web-content management systems including WordPress, SilverStripe, Joomla, and Moodle.  Websites which feature PHP include Facebook, Tumblr, Slack, and Daily Motion.

PHP allows for the authoring of custom extensions in either C or C++ and has found its way into around 240 million websites. There have been some concerns about its security as approximately 30% of website vulnerabilities listed since 1996 have been linked to PHP-driven sites, but that is, in part due to its vast proliferation compared to other languages.

Here’s some nice tutorials and courses to get you started with PHP:

Looking for the PHP language reference? Find it here.

Javascript or JS

Listed alongside HTML and CSS, JavaScript is one of the main elements of the World Wide Web, and is generally used to make webpages interactive as well as providing online games and programs. Perhaps of all the programs mentioned – and many of those not – JavaScript is one of the fundamental languages that a freelance developer should learn, simply because it does so much.

JavaScript had its foundation in Netscape, the world’s first popular graphical web browser, which found extensive use in making the emergent Web far more dynamic than it had been, heralding in the start of Web 2.0 with its interactive elements.  Microsoft furthered its use by incorporating a reverse-engineered version of it in Internet Explorer 3, making it a staple part of an increasing number of webpages.

JavaScrip has a huge number of features that make it one of the most flexible and dynamic languages used on the internet, and is now supported by every web browser. Capable of supporting frameworks and libraries, JavaScript has found substantial use outside of web browsers in the form of server-side JavaScript platforms and applications. JavaScript use has been further increased by the use of single page applications which are built to increase the user-experience.

New to JavaScript? Check out these cool tutorials and courses:

Looking for the JavaScript language reference? Find it here.

Perl/Python

While many will tell you that Perl is an acronym for “Practical Extraction and Reporting Language” it actually isn’t. Perl was developed by a Unisys worked named Larry Wall.  He created it as an alternative to  the C language – the forerunner of C++ – but with greater emphasis on procedures within programming being based on variables, assignment statements, subroutines, and expressions.

The alternative language Python – it was named after the UK TV show Monty Python – is very similar in syntax to Perl and they share many attributes and are often used in tandem. The flexibility of both the languages has attracted many mainstream uses, including: 

  • Amazon runs on Perl.
  • Perl is used extensively in aircraft and train simulator software.
  • Many ticket management systems use Perl as their basis.
  • The ‘Movable Type’ blogging software is constructed in Perl.
  • Both Perl and Python are used in mobile SDK apps.

Those factors make Perl and Python two very important languages for a freelance developer to learn as not being able to understand them would leave the developer unable to complete many jobs. Perl is used for a lot of system administration work because of its flexibility, but has been criticised for its inelegance. This has led to it being labelled, rather cruelly, “the duct tape of the Internet”.

Get started with Perl and Python:

Ruby

The author and instigator of Ruby, Yukihiro Matsumoto, was driven to develop the language having encountered Perl4 and thinking it a bit infantile – which it is.  Because Ruby was developed after usage of other high-end languages, it was designed to have a lot of features that Matsumoto believed were either missing or were not effective in them. Because of this, Ruby is:

  • Thoroughly object-oriented with inheritance, mix-ins and meta-classes,
  • Succinct and flexible syntax that reduces syntactic noise and serves as a basis for domain-specific languages,
  • It focuses on expressions, dynamic reflection, exception handling, lexical closures, iterators and generators, and block syntax. While it’s based on Perl, it is more an all-round language.

The Ruby on Rails – usually abbreviated to just ‘Rails’ is a variation of the basic Ruby language which is predisposed to server-side web application framework systems and provides structures for many online databases, web services, and actual web pages. Like Ruby, it uses the model–view–controller-type structure as an architectural pattern to organize application programming, where it maps to a database and responds to external requests.

Want to learn Ruby? Here’s some links to get you started:

To be a relevant and effective freelance developer, you need to know these and other languages inside out, and be able to use them in to create compelling applications and succinct code that works with the minimum of fuss and no system crashes.  If you can do that, you will be highly employable.

Enjoyed this article? Show some support by sharing it with your friends.