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:
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.
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:
- PHP 5 Tutorial
- PHP Tutorial
- Learn PHP
- Learn PHP in 15 minutes (video)
- Beginner PHP and MySQL Tutorial (udemy.com)
- Beginner PHP
- PHP Training and Tutorials (lynda.com)
Looking for the PHP language reference? Find it here.
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:
- Learn Perl: A modern programming language
- Learn Perl in about 2 hours 30 minutes
- Perl Tutorial
- Perl 5 Essential Training (lynda.com)
- Learn Python on learnpython.org
- Python for Beginners
- Python Training and Tutorials (lynda.com)
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:
- Ruby Documentation
- Learn Ruby the Hard Way (book)
- Got 15 minutes? Give Ruby a shot right now!
- Ruby Training and Tutorials (lynda.com)
- Getting Started with Ruby on Rails
- Ruby on Rails Tutorial
- Ruby on Rails Training and Tutorials (lynda.com)
- Learn Ruby on Rails from Scratch (udemy.com)
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.