This article was originally written by me for CodeCast.
If you’re just entering the world of development, one of the first things you will likely notice is how much jargon there is. I know when I first started, it felt like there was at least one word in every sentence that I had never heard before. Like any field, there is very specific jargon related to the field of development. With coding, there is specific jargon for different types of programming as well as jargon that is unique to specific languages, libraries, and frameworks.
I know I've looked up what words mean only to be more confused after reading the definition. It can all feel a little daunting to start, so our goal in this post is to introduce some of the broader and more commonly used terms in coding to help get you started on your coding journey!
Developer/Programmer
Even in the small amount of text you’ve already read, both of these things have come up. They’re mentioned basically everywhere, and one of the most common questions from people new to coding is "what is the difference between a programmer and a developer". Essentially, within the industry, these two terms are used almost interchangeably. There are some technical differences between them, but even that meaning can shift from company to company. But generally speaking, a programmer has a more specific task or workload than a developer. A programmer will be working on a project in a much narrower scope, instead of having the hands in many different pieces of the pie like a developer.
But for simplicity's sake, especially when you’re just starting out, it’s safe to understand that when you read ‘programmer’ or ‘developer’, they are meaning ‘someone who codes’.
Front-End/Back-End/Full Stack
One of the first things you will be introduced to (and likely already have been) when you look into the world of coding are front-end and back-end developers. This is one of the easier concepts to grasp, as it’s quite simple in what the roles are.
Front-End Developer: Someone who codes the aspects of a web application that a user directly interacts with. This includes all the visual aspects of the application, as well as the interactivity and functionality. They’ll be the ones to make the requests to the back-end and implement the information the back-end provides to them. Because of all this, the front-end is known as the “client-side”.
Back-End Developer: Someone who is responsible for the “server-side” logic of the application. Essentially, they’ll use the requests made by the front-end to return information from things like a database or an API that the front-end can use. We’ll get more into what these two terms mean later.
Full-Stack: You may have already guessed this one, but a full-stack developer is someone who works on both the client and server-side. Generally, most programs or bootcamps will teach coding as full-stack because even if someone prefers to work in either the front or back-end, and eventually seeks jobs only doing one, you need a solid understanding of the other side to know what your code is doing.
Database: A database is simply a collection of data. It’s where all the information is stored, like users' emails, passwords, names, birthdays, etc. It’s what the server extracts data from to obtain the specific information a client may be requesting.
API
An API stands for Application Program Interface. Clear as mud right? API’s are one of the things I struggled with wrapping my head around in my bootcamp because they can be a bit difficult to grasp as a beginner. In very simple terms, an API is something that allows you to communicate with a separate piece of software. It allows you to make a request to an entirely different piece of software than you’re currently working on, and receive a specific piece of data or information back. Often this is a third-party API and there will be clear documentation on how to make the requests to get back the desirable information.
API’s are a bit difficult to wrap your head around, but understanding will come as you use them. Think of this example. You visit a website for a restaurant and you click on a specific location, which brings up a small map showing you the location. The website (almost definitely) didn’t create a match from scratch, but instead, made a request to an API (like Google Maps API) with a location, and the API gave it back the information needed to render out the map on the page.
If you want to read more into APIs, I personally really like this article by How To Geek, as they really try to simplify it while going deeper into what APIs are.
Language/Library/Framework
This one is a bit more difficult, at least in my opinion, to wrap your head around. I will do my best to explain it in a simplified version. These terms are vast and can vary (annoyingly so!). So think of these definitions as a guide to get you understanding the concepts as a whole, as opposed to the hard and fast rules of what they are.
Language: The language is all the syntax, grammar, and rules for how you write different parts of code, like functions, variables, classes, etc. The language is just a set of rules for how something needs to look syntactically to work.
Library: A library is a collection of individual pieces of pre-written code. Many languages have pre-set libraries that are built by the people who developed the language. These are called standard libraries. There are also third-party libraries that people have written to make coding in a specific language easier. You can think of a library as something that provides you with ‘helper functions’, something that has a consistent output that you don’t have to write yourself.
Framework: A framework is essentially what we know the word to mean in common speech: a foundation which you can build on top of. The framework is the base on which you add your own code to. Most frameworks have a collection of libraries that provide structure and common tools to begin building your code. Frameworks define how the base and structure of the code should work, making less room for errors.
Again, this is a highly simplified version and as your journey progresses, they will likely get a bit more complicated, but so is the life of a developer!
Alright, for now, I think this is a good place to start. These are some of the broad and vague concepts and terms used within the industry and are important to know when learning how to code. I intend to continue this series, so keep an eye out for more blog posts coming later!