The Full-Stack Developer Vocabulary(The Full List!)
Tags: webdev, javascript, programming, react
Published: 2022-01-01 14:49:12

####Jamstack? Docker? DOM? Serverless?
###WTF is everyone talking about???
If you're new to this whole full-stack development thing and get confused by some of the words people use when talking about full-stack development, then stick around because here, I'll be compiling the most common words and phrases related to full-stack development. Of course, it will take much more time to learn the details of each of the things I'll be mentioning. Each of the words and phrases will be summarized to give you an idea of what these words and phrases mean, so that you can understand what people are referencing with them when talking about certain areas of full-stack development.

**********
#Part 1: The essentials

**1. Front-end**
The part of an application or website with which the user interacts directly.

**2. Back-end**
The part of an application or website with which the user cannot see or interact with directly.

**3. Full-stack**
The entirety of an application or website, comprising both the front end and the back end.

**4. DOM**
The Document Object Model (DOM) is a programming interface for web documents. It represents the page so that programs can change the document structure, style, and content.

**5. API**
API stands for: Application Programming Interface. It's purpose is to provide a way for programs to easily access and exchange data.

**6. Encryption**
The process of converting information or data into a code, especially to prevent unauthorized access.

**7. Decryption**
While encryption converts information into a code, the purpose of decryption is to convert the same information's code back to it's original form. 

**8. HTTP**
Hypertext Transport (or Transfer) Protocol, the data transfer protocol used on the World Wide Web.

**9. HTTPS**
Basically the same as HTTP, but uses encryption methods to secure the data passed to and from webpages.

**10. CI/CD**
CI/CD stands for: Continuous Integration, Continuous Delivery, 
and the purpose of CI/CD systems is to deliver code changes to an application or website more frequently and reliably.

**11. UI**
UI stands for: User Interface. UI developers try to make a website's interface easy to use and navigate.

**12. UX**
UX stands for: User Experience. UX developers focus on making a website's design more appealing to it's visitors.

**13. Serverless**
As written on the [cloudflare blog](https://www.cloudflare.com/learning/serverless/what-is-serverless/): Serverless computing is a method of providing backend services on an as-used basis. A serverless provider allows users to write and deploy code without the hassle of worrying about the underlying infrastructure. A company that gets backend services from a serverless vendor is charged based on their computation and do not have to reserve and pay for a fixed amount of bandwidth or number of servers, as the service is auto-scaling. Note that despite the name serverless, physical servers are still used but developers do not need to be aware of them.

**14. Backend operations**
These are operations that are performed in the backend because they're either too time or memory intensive for the front-end, or these operations simply cannot be performed in the frontend because they require libraries or frameworks that only work on the backend.

**15. Request/Response**
The way the frontend and backend communicate with each other is with requests and responses. A frontend script can request data from the backend, and a script in the backend can then send that data as a response.

**16. Cache**
The cache is where data can be temporarily stored on a browser or computer in order to save time loading the same data over and over again every time it is required.

**17. Command-line**
The command-line is an interface for typing commands directly to a computer's operating system. This is the most direct and fastest way to perform operations on a computer's operating system like launching a PHP server, creating directory, executing scripts, changing file permissions and much more...

**18. Virtual machine**
A virtual machine is a computer system that emulates a physical, remote machine in order to perform operations on that machine like hosting a website, or storing data.

**19. AWS**
AWS, which stands for: Amazon Web Services, is currently the biggest provider of these virtual machines, plus many other services like file storage.

**20. Database**
A database is a structured collection of data, most of the time databases are needed for storing high volumes of user data.

**************
#Part 2: The more advanced

**1. XML**
XML stands for eXtensible Markup Language. XML plays an important role in many different IT systems and is often used for distributing data over the Internet. Read [This article](https://www.w3schools.com/XML/xml_whatis.asp) to get a better understanding of XML.

**2. JSX**
JSX stands for JavaScript XML. JSX allows you to write HTML in ReactJS.

**3. JSON**
JSON is an acronym for JavaScript Object Notation. It is an open standard format, which is lightweight and text-based, designed explicitly for human-readable data interchange. It is a language-independent data format. It supports almost every kind of language, framework, and library.

**4. Firewall**
A network security system that monitors and controls incoming and outgoing network traffic based on predetermined security rules.

**5. IP Address**
An IP address is a unique string of characters that identifies each computer using the Internet Protocol to communicate over a network. IP addresses come in 2 types: IPv4 and IPv6.

**6. IPv4**
IPv4(IP version 4) addresses are 32-bit integers which will be expressed in decimal notation. Example- 192.0.2.126 could be an IPv4 address. IPv4 addresses are most common.

**7. IPv6**
IPv6(IP version 6) is the improved version of IPv4. IPv6 addresses are more unique than IPv4 addresses and therefor offer more address variations. In addition to offering more addresses, IPv6 also implements features not present in IPv4. It simplifies aspects of address configuration, network renumbering, and router announcements when changing network connectivity providers.

**8. Proxy Server**
This is a server that acts as an intermediate between a client and its destination server. A proxy server can let you make web requests through a different IP address. Proxies are most popularly used in VPNs and are useful if you want to hide your location, personal data or your overall identity on the web.

**9. VPN**
VPN stands for “virtual private network”. VPNs protect your internet connection and privacy online. They create an encrypted tunnel for your data, protect your online identity by hiding your IP address using proxy servers, and allow you to use public Wi-Fi hotspots safely.

**10. Nginx**
Nginx, pronounced like “engine-ex”, is an open-source web server used for processing web requests.

**11. Apache**
Apache is the most widely used web server software similar to Nginx.

**12. Jamstack**
Jamstack is an architecture designed to make the web faster, more secure, and easier to scale. It builds on many of the tools and workflows which developers love such as ReactJS. The core principles of pre-rendering and decoupling enable sites and applications to be delivered with greater confidence and resilience than ever before.

**13. Sudo**
Sudo, standing for "SuperUser DO" is used to access restricted files and operations. By default, Linux systems restrict access to certain parts of the system preventing sensitive files from being compromised. The sudo command temporarily elevates privileges allowing users to complete sensitive tasks without logging in as the root user.

**14. Web Scraping**
Web Scraping is the process of extracting data from external websites. Some of the most popular Web Scraping libraries include: [Puppeteer](https://github.com/puppeteer/puppeteer), [Selenium](https://www.selenium.dev/) and [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/).

**15. Git**
Git is used for tracking changes in files and directories. Git is usually used for coordinating work among developers collaboratively developing source code during software development.

**16. Cron jobs**
Cron jobs are jobs scheduled by the backend to run at set intervals. Cron jobs are mostly used for managing back-end jobs created by users through the front-end.

**17. Responsive Web Design**
Responsive web design, also referenced as RWD design, is a modern web design approach that allows websites to render (or display) on all devices and screen sizes by automatically adapting to the screen, whether it’s a desktop, laptop, tablet, or smartphone.

**18. MySQL**
MySQL is a relational database management system (RDBMS) developed by Oracle that is based on structured query language (SQL). A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or a place to hold the vast amounts of information in a corporate network.

**19. NoSQL**
NoSQL is famous for its high functionality and ease of development with a performance at scale. NoSQL is called a non-relational database. It does not follow the rules of relational database management systems (RDBMS), and hence does not use traditional SQL statements to query data. 2 famous examples of NoSQL systems are [MongoDB](https://www.mongodb.com/) and [Neo4J](https://neo4j.com/).

**20. Environment variables**
An environment variable is a variable whose value is set outside a program, typically through the operating system. Environment variables eliminate the need to define and redefine variables through programs.

************
# Part 3: The languages, tools and frameworks

**1. ReactJS**
You've probably heard a ton about React on dev.to, but what exactly is ReactJS?
React is currently the most popular javascript front-end framework.
Developed by Facebook in 2013, React is used to build interactive user interfaces.

**2. Angular**
Angular is a development platform, built on TypeScript. As a platform, Angular includes:

A component-based framework for building scalable web applications
A collection of well-integrated libraries that cover a wide variety of features, including routing, forms management, client-server communication, and more
A suite of developer tools to help you develop, build, test, and update your code
With Angular, you're taking advantage of a platform that can scale from single-developer projects to enterprise-level applications. Angular is designed to make updating as straightforward as possible, so take advantage of the latest developments with a minimum of effort.

**3. Docker**
Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. Using Docker, you can quickly deploy and scale applications into any environment and know your code will run.

**4. Kubernetes**
Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services.

The name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the "K" and the "s". Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.

**5. Rust**
Rust is a statically-typed programming language designed for performance and safety, especially safe concurrency and memory management. 

**6. TensorFlow**
TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.

**7. Solidity**
Solidity is a statically-typed curly-braces programming language designed for developing smart contracts that run on Ethereum.

**8. Laravel**
Laravel is a PHP framework with expressive, elegant syntax. It is the most popular PHP framework.

**9. Go**
Go language is a programming language initially developed at Google in the year 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language having syntax similar to that of C. It provides garbage collection, type safety, dynamic-typing capability, many advanced built-in types such as variable length arrays and key-value maps. It also provides a rich standard library. The Go programming language was launched in November 2009 and is used in some of Google's production systems.

**10. jQuery**
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and AJAX much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.

**11. AJAX**
Ajax stands for Asynchronous Javascript And XML. Ajax is just a means of loading data from the server and selectively updating parts of a web page without reloading the whole page.

Basically, what AJAX does is it makes use of the browser's built-in XMLHttpRequest(XHR) object to send and receive information to and from a web server asynchronously, in the background, without blocking the page or interfering with the user's experience.

Ajax has become so popular that you hardly find an application that doesn't use Ajax to some extent. The example of some large-scale Ajax-driven online applications are: Gmail, Google Maps, Google Docs, YouTube, Facebook, Flickr, and many more.

**12. NodeJS**
Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser. Node.js lets developers use JavaScript to write command line tools and for server-side scripts to produce dynamic web page content before the page is sent to the user's web browser. Consequently, Node.js represents a "JavaScript everywhere" paradigm, unifying web-application development around a single programming language, rather than different languages for server-side and client-side scripts.

**13. NPM**
NPM is two things: first and foremost, it is an online repository for the publishing of open-source Node.js projects; second, it is a command-line utility for interacting with said repository that aids in package installation, version management, and dependency management. A plethora of Node.js libraries and applications are published on npm, and many more are added every day. These applications can be searched for on [their website](https://www.npmjs.com/). Once you have a package you want to install, it can be installed with a single command.

**14. CSS**
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.

CSS is designed to enable the separation of presentation and content, including layout, colors, and fonts. This separation can improve content accessibility; provide more flexibility and control in the specification of presentation characteristics; enable multiple web pages to share formatting by specifying the relevant CSS in a separate .css file, which reduces complexity and repetition in the structural content; and enable the .css file to be cached to improve the page load speed between the pages that share the file and its formatting.

**15. Git**
Git is a software used for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different systems). 

**16. AWS**
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide a variety of basic abstract technical infrastructure and distributed computing building blocks and tools. One of these services is Amazon Elastic Compute Cloud (EC2), which allows users to have at their disposal a virtual cluster of computers, available all the time, through the Internet. AWS's virtual computers emulate most of the attributes of a real computer, including hardware central processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM memory; hard-disk/SSD storage; a choice of operating systems; networking; and pre-loaded application software such as web servers, databases, and customer relationship management (CRM).

**17. Google Cloud**
Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search, Gmail, Google Drive, and YouTube. Alongside a set of management tools, it provides a series of modular cloud services including computing, data storage, data analytics and machine learning.

**18. Microsoft Azure**
Microsoft Azure, often referred to as Azure, is a cloud computing service operated by Microsoft for application management via Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) and supports many different programming languages, tools, and frameworks, including both Microsoft-specific and third-party software and systems.

**19. Selenium**
The selenium package is used to automate web browser interaction from Python. It is often used to make bots and web scrapers.

**20. Django**
Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.

*********
That's it for **The Full-Stack Developer Vocabulary**.

##Have a nice 2022!