Other stuff it's useful to know
[ << ]
Finally, a few other words you might come across, in no particular order.
- Source code:
- The code you write which is then changed into binary for running.
- Libraries/packages:
- Code for people to use which does jobs not built straight into a given computer language. For example, you might have a Javascript library specifically for drawing maps on webpages, something the basic language doesn't have built in. Libraries make it easy to do more complicated jobs.
- Interpreted vs. Compiled languages:
- Some code is compiled, that is, the computer makes the binary code once and you run this as many times as you like. Word, for example, is built like this. The advantage for companies is you can't look inside it and see how it was written. The disadvantage is it only works on one type of computer because it is binary. Interpreted languages go from the code you write to a running program each time you run the program. The advantage is that people can see the code you write and check they trust it.
- Scripting languages:
- Some languages are set up for beginners writing short programs to do limited jobs. They tend to be easy to use, but restricted in what they can do (Javascript, for example, is generally limited to webpages). They are often not so well set up for writing very large programs (for which you may need a fuller language like Java). Some scripting languages have made the jump however – Python in particular is very widely used because people have written lots of libraries for it.
- API ("Application Programming Interface"):
- This is the words used in code to connect different bits of code together. If, for example, you wanted to take where you were from your mobile phone and plot it on a map on Facebook, you would need to know how to talk to your mobile phone; how to talk to Facebook; and how to talk to the mapping software. Each would have an API to do this talking and this would usually be listed somewhere. Essentially APIs are the procedures built into each language and library which you can use to do jobs with it. Many languages have APIs to talk between different bits of the software. For example, you might have a program that wanted to both read something from a file on a computer and pop open a window to dislay it. The language would usually have a file reading API and a Windows display API you could use that helped you access the libraries needed.
- Open Source Software:
- This is software where the writers have released the source code for anyone to use and develop. There is usually an "Open Source License" or "Creative Commons License" with the code, saying what you can and can't do with it. Usually this is limited to making you promise your own code using it will be open source. Open Source software is often stored online on websites where anyone can download the code and upload changes, like Github.
- HTML ("HyperText Markup Language"):
- This is the 'code' used to write webpages. Webpages are made up of the stuff you see, plus "markup" code to say
how it should be displayed, and Javascript code for making it do stuff. HTML is the markup, and is mainly made of <tags>around stuff</tags>. For example, to make something look like code, you might put code tags around it like this:
<CODE>around stuff</CODE>
, which would be displayed like this:around stuff
. You can see the HTML behind webpages by choosing your browser's "View Source" option or similar. Although making HTML is not programming as such, a lot of people think it is a key skill for any coder. Most of the generic resource pages listed before include lessons on writing HTML, but you can find a brief walkthrough of the basics here (ignore the bits about getting your files online; the cheapest way to do this is on Github). More advanced tutorials can be found on w3Schools. - Hackathons / social coding:
- Social coding is a movement encouraging coders to spend time building socially useful software or train others in their spare time. This is often done in "Hackathons" – loosely organised gatherings of "Hackers" (people interested in coding and hardware exploration – not always evil computer breakers, who the community generally call "crackers"). The most notable organiser of Hackathons for children in the UK is Young Rewired State, but there is also the more education-focused AppsForGood. Hacking clubs can include hardware hacking ("Maker") groups like Leeds Hackspace or even Biology/Genetics hacking groups like DIYBio.
That's it. Finally, here's a page of contact details and some example code.