Lost in Translation
Despite everyone owning one, computers still make people glaze over especially when it comes to the
technical stuff! It also means the stereotypes of software developers won't be going anytime soon!
On this page I have tried to briefly explain what software development is all about.
What are programming languages?
Programming languages provide a way to give instructions to a computer. They are surprisingly similar to
natural languages: the instructions, equivalent to sentences, are only fully understood if the syntax (grammar),
semantics (meaning) and lexical data (the words) are properly used. Whatsmore, most popular languages offer
an almost natural English programming experience!
There are several different types of language although most fit into two categories: compiled or interpreted.
In a compiled language, the code is converted (compiled) into binary (0s and 1s) before it can be run.
Interpreted languages, often known as scripted languages, are where the code is run line by line as it is read.
and loads more! Programs and apps on your computer and smartphone such as Microsoft Office, Google Chrome or Angry Birds
are written using compiled languages. Windows apps are often written using C# or Visual Basic (the languages I
specialise in), Mac and iOS apps in Objective-C and Android apps in Java.
My Programming CV
I have a variety of experience of different platforms and languages although I am most confident with the
Microsoft .NET platform, a large software framework which comes as part of Windows and Windows Phone, and its
languages of C# and Visual Basic. In addition to Windows apps .NET powers web sites via ASP.NET, another
technology I am confident with and which also powers this site.
I have also had experience in development for Mac and iOS using Objective-C and for Android using Java. Whilst
the tools and languages are identical, developing for a mobile device is very different from a desktop
application, especially where user interaction and interface navigation are concerned. On the web front, in
annoying popups, almost anything can now be done using it! One similar language I have always found elegant is
ActionScript, the language of Adobe Flash!
On the less practical front (but very useful for understanding how comptuers work!) I have some knowledge of the
x86 and ARM assembly languages, the lowest human-readable and programmable level where each instruction is an
individual command to the processor; a simple process of printing text to the screen, 1 line in the example
below, could be up to 10 separate instructions in assembly!
A Coding Example
Let's look at a really simple code example: a computer program which asks the user for their age then prints
the year he/she was born and whether he/she can vote. Tasks the program will perform include:
- A request for input: Ask the user for his/her age.
- Simple arithmetic: Calculate the user's birth year.
- Printing text to the screen: Print the user's birth year to the screen.
- Choice depending on the input: Print whether the user can vote depending on
The code below is the program in BBC BASIC, a variant of the BASIC langauge developed in Britain in the
1980s for the BBC Computer Literacy project and BBC Micro computer by Acorn Computers. Visual Basic is
another modern variant of BASIC developed by Microsoft.
INPUT "Please enter your age: ", userAge
birthYear = 2014 - userAge
PRINT "You were born in ", birthYear
IF userAge >= 18 THEN
PRINT "You can vote!"
PRINT "You cannot vote yet!"
The following code is the same program but in C# (slightly simplified), a language developed by Microsoft and my main language!
Console.Write("Please enter you age: ");
int userAge = int.Parse(Console.ReadLine());
int birthYear = 2014 - userAge;
if (userAge >= 18)
Console.WriteLine("You can vote!");
Console.WriteLine("You cannot vote yet!");
If a user entered an age of
25 then the output would be:
You can vote!