5 Computer Programming Terms To Know

Posted by

Unsure what a software development-related concept entails? Is it a term commonly used but never explained? Here, we’ll touch on 5 such terms and help you update common computer programming terms.


1. Responsive Web Design(RWD)


Put simply: if you find yourself having to pan and zoom repetitively around a site, then it probably isn’t designed using RWD. Responsive Design is a programming approach that uses a website’s CSS functions to gauge the dimensions of the browser it’s running in, and resize, crop and move assets and text around based on that size. This should be done on-the-fly if a user decides to resize their browser, but is primarily used to allow viewing the same site on multiple devices (PCs, phones, tablets etc.) without having to design a separate “mobile” version of the site.


Computer programming responsive design
www.pixabay.com computer programming responsive design

2. Object-Oriented Computer Programming


This is a computer programming model focusing on objects to be defined instead of actions to be taken (the latter is the traditional “procedural programming” model). To compare it to traditional models, a “program” in traditional methods is just a procedure of logic where input data is processed and outputted in some way. In OOP, the focus is on the objects you want to manipulate rather than the logic needed to do so. Objects may be categorized into generalised “classes”, which include “attributes” (these tell the program the features of the object) and “methods” (the logic used to manipulate objects). Properties such as inheritance allow “type-of” relationships between objects. (i.e. “VW is a type of Car” given a car base class and a VW derived class)

3. Agile Software Development


Certainly a popular term the past few years, the “agile” approach to software development seeks to change the ‘traditional’ paradigm of code design. In the past, rigid steps (as in the Waterfall Model) had to be followed if software was to actually get to market. Code would be written, tested completely, and signed off before the next stage began. Plenty of form-filling and rigidity was the norm here. Agile methods instead championed developers
responding quickly to change, and encouraging changes of plan, having frequent client-developer interactions, and using new methods like pair programming and self-motivation as opposed to set deadlines, to build software.

computer programming Agile Development
Img: https://d2myx53yhj7u4b.cloudfront.net/sites/default/files/agile-lifecycle.png computer programming Agile Development

4. Compiler/Linker

Usually a part of an IDE, but can be used on its own. The compiler is the software portion that takes the high-level language you’re coding in and translates it into something lower-level, to be understood by the computer you’re compiling on. This lower-level language is referred to as machine code.


The linker is the helper to the compiler. Once the compiler has generated the machine code from the high-level language, it stores the machine code in some form of generic object. The linker’s purpose is to aggregate the objects generated by the compiler, as well as any dependencies the program needs (read: the includes you added in your file or the libraries it needs to use) into one neat package.

5. Patching

This is common for large software projects. A patch is a piece of code, or some new executable, which is created in response to a deficiency in existing code. Patches often correct bugs discovered by users in software, or could treat vulnerabilities in code which are endangering the security of users. Patches do not have to be the optimal solution, but simply the stop-gap measure for an issue (these are often known as “hotfixes”).


How many of these terms were you already familiar with? Was there anything new you learnt? Comment with your views on this article in the comments section below, and follow Hyperion Hub developments in the future if you’d like to see more articles like these for the South African market. Now that you’ve read this piece, you might be interested in reading front-end vs back-end web development

About the Author

Matthew de Neef is a final year student studying towards his BSc Computer Engineering degree at UKZN, South Africa. He is a member of Golden Key International Honour Society as well as a student member of the IEEE (South Africa). He originally hails from Wageningen, The Netherlands, but is currently based in Durban, South Africa. He has a passion for technology, and is Hyperion Hub’s Technical Journalist and Content Editor.