As the legal industry is rapidly embracing legal technologies, lawyers now need to be technologically literate. Some of the largest firms have begun to offer prospective trainees the opportunity to create legal technologies and collaborate with developers. To get into this exciting industry, it helps to learn some geeky jargon! This article, part one of four, will expose you to a range of high-level terms, from A to Z, that almost all software developers would know nowadays.
API – stands for Application Programming Interface. It refers to a defined set of functions and tools for communicating between various components. Programmers ‘call’ APIs to get a certain set of data that they cannot retrieve themselves (either because it may be too complex to do so or because some data is hidden away for security purposes). For example, to display details of a company registered in the United Kingdom on a website, you would call the Companies House API using the search keyword function from your web server. The API would return the relevant search result for you without any styling or too much complexity. It is then up to you to decide how you would like to manipulate or display this data item. You won’t have to deal with a large database and implement a search function yourself.
Bug – is a synonym to software error. This could be a software failure (ie, crashing), the software not doing what it is expected to do or a loophole allowing hackers to obtain unauthorised access. Most bugs are caused by mistakes made in the source code or software design. Because bugs can have a ripple effect, causing disasters and deaths, software developers could be liable for negligence. Obviously a buggy program is not desirable, so rigorous testing (eg, unit tests or integration tests) is required; debugging is the process of locating and fixing bugs. However, it is important to note that no program is without bugs – we can only minimise the number of bugs.
C++ – is one of the most common programming languages used. Many household brands were built using this language, such as Adobe Systems, Amazon.com, Bloomberg, Facebook, Google and Microsoft. It is often known as one of the harder languages to learn as a beginner but learning it will help you understand many computing concepts that are now pervasive in newer programming languages.
Data structures – is a way data is organised so that it can be accessible, edited and removed from computer memory efficiently. Depending on the type of data, different data structures may be used, and using the right one can make algorithms significantly more efficient by orders of magnitude. The most common types are arrays, linked lists, hash maps and binary trees. Very often trees are used to parse sentences, allowing the ability to truncate sentences into shorter sections for further analysis.
Encryption – is the process of encoding a message into a piece of text that can be understood only by the intended recipient. Only after Edward Snowden’s disclosures did the public begin to take interest in encryption, and companies began to reassert their applications’ security due to end-to-end encryption. But it is best for consumers to understand how various encryption methods work in theory and not blindly believe in possible puffery and misrepresentation. One of the most well-known methods is AES (Advanced Encryption Standard), which uses a block cipher. Since it is a symmetric key encryption, intended recipients must be given the key. If the key is not shared securely, then anyone can decrypt the sent message. Another is RSA, which uses public-key cryptography. A message is encrypted using the public key but can only be decrypted using both the public and private keys. Although the key is larger, meaning it takes longer to decrypt a message, this enables sharing the public key over an insecure network.