# IT - General Culture

# 👋 About
I've done this project as part of my Bootcamp, and because I had so much fun creating it, I decided to publish it. <br>
This article will include some key terms commonly used in the IT industry.
## 🧱Structure
- State the term
- Provide an easy-to-understand explanation.
- Mention a few of use-case applications.
- Redirect you to resources that you can use term-related.

> **__NOTE:__** If you prefer Notion, follow this [link](https://itzyahya.notion.site/General-Culture-7b31bf0a72ca4a77b4eea2458ec37e31).

---

# General concepts

### Artificial Intelligence (AI)


**Definition**
The simulation of human intelligence processes by machines,
particularly computer systems, which is known as artificial intelligence.

**Use case:** AI is now being applied in a variety of industries, ranging from your 
smartphone to disease diagnosis, to provide a high-performance and accurate
systems that work efficiently.

- Virtual Assistant or Chatbots
- Agriculture and Farming
- Autonomous Flying
- Retail, Shopping, and Fashion

**Get started:** [Learn with Google AI](https://ai.google/education/)

### Machine Learning


**Definition:** Machine learning is a branch of artificial intelligence that is defined
as a machine's ability to recognize intelligent human behavior.

**Use case:** Machine learning is applied in many apps on our phones, including search 
engines, spam filters, websites that generate personalized recommendations,
banking software that detects suspicious transactions, and speech recognition.

**Get started:** [Stanford University – Machine Learning](https://www.coursera.org/learn/machine-learning)


### Natural Language Processing

**Definition:** Natural language processing (NLP) is  a branch of artificial intelligence (AI)
concerning the ability of computers to understand the text and spoken words in 
the same manner that humans can.

**Use case:** NPL is used in a variety of applications, including grammar correction software,
voice assistants, and social media monitoring tools.

**Get started:** [Stanford CS224N](https://www.youtube.com/watch?v=8rXD5-xhemo&list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z)


### Reinforcement AI
    
 **Definition:** Reinforcement learning is a subset of AI algorithms that consists
    of three major components: an environment, agents, and rewards.
    
 **Use case:** Trading and finance, industry automation, in NLP, healthcare, engineering.
    
**Get started:** [Reinforcement Learning in 3 Hours | Full Course using Python](https://www.youtube.com/watch?v=Mut_u40Sqz4)
    
    
### Virtual Reality and Augmented Reality
    
    
**Definition:**
- **Augmented reality (AR)** enhances your surroundings by adding digital 
  elements to a live view, often using a smartphone's camera. 
- **Virtual reality (VR)** is a completely immersive experience that simulates a
  real-life environment.
    
**Use case:**
- **Augmented reality (AR):** Medical training is now using augmented reality. 
  Its applications range from MRI to performing extremely delicate surgery.
       
- **Virtual reality (VR):** entertainment (particularly video games), 
  education (such as medical or military training) and business
(such as virtual meetings).
    
**Get started:**
- **Augmented reality (AR):** [FreeCodeCamp](https://www.freecodecamp.org/news/augmented-reality-full-course/)

- **Virtual reality (VR):**   [Coursera](https://www.coursera.org/specializations/virtual-reality)
    
    
### Cybersecurity
    
   
**Definition:** Cybersecurity is the practice of safeguarding critical systems and 
sensitive data against digital attacks.
    
**Use case:** [EVERYWHERE](https://digitalguardian.com/blog/what-cyber-security#:~:text=Cyber%20security%20is%20important%20because,on%20computers%20and%20other%20devices.)
    
**Get started:** [Bootcamp](https://www.ironhack.com/en/cybersecurity)

    
### Blockchain

    
**Definition:** Blockchain is a method of storing data that makes it difficult 
or impossible to change, hack, or cheat the system.
    
**Use case:** Blockchain-based contracts are becoming increasingly popular as sectors 
such as government, healthcare, and real estate realize the benefits.
    
**Get started:** [Blockchain Full Course](https://www.youtube.com/watch?v=QCvL-DWcojc) 
    
    
### Internet of Things (IoT)
    

**Definition:** The Internet of Things (IoT) is a network of physical objects—"things"
embedded with sensors, software, and other technologies for connecting and exchanging
data with other devices and systems via the internet.
    
**Use case:** IoT is most prevalent in manufacturing, transportation, 
and utility organizations.
    
**Get started:** [IBM Blog](https://developer.ibm.com/learningpaths/iot-getting-started-iot-development/)

    
### Big Data
    

**Definition:** Big data is defined as data with greater variety, arriving in greater
volumes and with greater velocity.
    
**Use case:** It is now used in a variety of fields, including medicine, agriculture,
gambling, and environmental protection.
    
**Get started:**  [Big Data Full Course 2022](https://www.youtube.com/watch?v=KCEPoPJ8sWw)
 
    
### Cloud Computing


**Definition:** It refers to a global network of servers, each with a distinct function. 
The cloud is not a physical entity, but rather a vast network of remote servers located 
all over the world that are linked together and intended to function as a single 
ecosystem.

**Use case:** The internet as we know it today.

**Get started:** My primary source will be my preferred cloud provider. 

 **- [Microsoft Azure](https://docs.microsoft.com/en-us/learn/)**
 AWS and GCP are also viable options.


### Faas

**Definition:** FaaS, or Function as a Service, is a type of cloud computing service 
that enables developers to build, compute, run, and manage application packages 
as functions without having to maintain their own infrastructure.
**Services:** Microsoft Azure Function, AWS Lambda, Google Cloud Functions.
    
**Use case:** 
- Reminders and notifications.
- Scheduled tasks and messages.
- File processing.
- Data or data stream processing.
- Running background backup tasks.
- Computing backend calculations.
- Lightweight Web APIs and Proof of Concepts, MVPs.
    
**[Getting started with Azure Functions](https://docs.microsoft.com/en-us/azure/azure-functions/functions-get-started?pivots=programming-language-csharp)**

    
### SaaS
    

**Definition:** Software as a service (SaaS) is a software distribution model
in which a cloud provider hosts applications and makes them available to
end-users over the internet.
    
**Use case:** Zoom, the online Office, your mailbox, BigCommerce.
Google Workspace, Salesforce..
    
**Get started:** Learn about a cloud Provider

    
### PaaS


**Definition:** PaaS, or platform as a service, is a cloud-hosted platform that provides 
on-demand access to a complete, ready-to-use platform for developing, running, 
maintaining, and managing applications.

**Use case:** Reduced cost and capital investment, shorter time-to-market for new 
applications, and ease-of-use and convenience for your team in their daily work

**Get started:** Learn about a cloud provider.


### IaaS


**Definition:** IaaS is a type of cloud computing service that provides essential compute, 
storage, and networking resources on demand and on a pay-as-you-go basis.

**Use case:** IaaS, in essence, promotes access over ownership. This solution gives the
end-user flexibility in terms of hosting custom-built apps or standard software, 
as well as a general data center for storage.

**Get started:** Learn about a cloud Provider

An important thing to note about the (Iaas, PaaS & Saas)
=> [Shared Responsibility Model](https://docs.microsoft.com/en-us/azure/security/fundamentals/media/shared-responsibility/shared-responsibility.svg)


### Quantum Computing


**Definition:** Quantum computing is a field of study that focuses on the development 
of computer-based technologies based on quantum theory principles. 
On the quantum (atomic and subatomic) level, quantum theory explains the nature 
and behavior of energy and matter.


**Use case:** Quantum computers can be used in taking large manufacturing data sets on 
operational failures and translating them to combinatoric challenges that, 
when paired with a quantum-inspired algorithm, can identify which part of a complex 
manufacturing process contributed to incidents of product failure.

**Get started:** [Introduction to Quantum Computing for Everyone - Edex](https://www.edx.org/course/quantum-computing)

---

# Dev Culture

### Assembly

**Definition:** An assembly language is a low-level programming language designed 
to communicate directly with the hardware of a computer.
    
**Use case:** Assembly language is still used today for direct hardware manipulation,
gaining access to specialized processor instructions, and dealing with critical 
performance issues. 
Device drivers, low-level embedded systems, and real-time systems 
are common applications (see Current usage).
    
**Get started:** [Assembly Language & Computer Architecture](https://www.youtube.com/watch?v=L1ung0wil9Y)

    
### Compiler


**Definition:** A compiler is a special program that converts the source code of a 
programming language into machine code, bytecode, or another programming language. 
Typically, the source code is written in a high-level, human-readable language
such as Java or C++.

**Use case:** It is used to generate machine code or bytecode that the target host system 
can execute.

**Get started:** [WHAT COMPILERS CAN AND CANNOT DO](https://ocw.mit.edu/courses/6-172-performance-engineering-of-software-systems-fall-2018/resources/lecture-9-what-compilers-can-and-cannot-do/)


### Interpreter


**Definition:** An interpreter is a computer program that executes program instructions 
written in one of the many high-level programming languages.

**Use case:** A compiler or an interpreter is used to convert source code to machine code. 
Compilers and interpreters are both used to convert a program written in a high-level
language into machine code that computers can understand.

**Difference:** 
The interpreter only converts one program statement at a time into machine code. 
The compiler scans the entire program and converts it all at once into machine code.

**Get started:** [What Your Interpreter Can and Cannot Assume](https://www.coursera.org/lecture/programming-languages-part-b/what-your-interpreter-can-and-cannot-assume-QIhvF)


### Programming Language


**Definition:** A programming language is a set of grammatical rules and a vocabulary 
for instructing a computer or computing device to perform specific tasks.

**Use case:** Depends on the language, however, it is now reaching every edge of society's
needs.

**Get started:** [C Programming Tutorial for Beginners](https://www.youtube.com/watch?v=KJgsSFOSQv0)


### Libraries


**Definition:** A library is a collection of files, programs, routines, scripts, or functions.

**Use case: C**onfiguration data, documentation, help data, message templates, pre-written code
 and subroutines, classes, values, or type specifications.

**Get started:** [Python Libraries For Data Science Full Course](https://www.youtube.com/watch?v=Ee8dDnwq374)


### Packages

**Definition:** A package is a namespace that groups together a group of related classes
 and interfaces. Packages can be thought of conceptually as different folders on
 your computer.

**Use case: P**ackages help us avoid name conflicts and write more maintainable code.
Packages are classified into two types: Packages Included Customized Packages

Get started: [Packages In Java](https://www.geeksforgeeks.org/packages-in-java/)


### Frameworks


**Definition:** A framework is a physical or conceptual structure designed to support 
or guide the construction of something that expands the structure into something useful.
Frameworks are the initial set of tools used by many successful coding teams.

**Use case:** Web frameworks, specifically back-end web frameworks, assist developers 
in creating web applications, also known as dynamic websites. These are websites that 
are not created using only HTML, JavaScript, and CSS. 
Instead, they interact with a database using a programming language before generating 
the final content.

**Get started:** [Web Frameworks: How To Get Started](https://djangostars.com/blog/what-is-a-web-framework/)


### SDK


**Definition:** SDK is an abbreviation for software development kit. 
The SDK, also known as a devkit, is a collection of software-development tools for a
specific platform

**Use case:** includes building blocks, debuggers, and, in some cases, 
a framework or group of code libraries such as a set of routines specific
to an operating system such as Android SDK for mobile dev.

**Get started:** [Getting Started with SDK](https://www.elabjournal.com/doc/GettingStartedwithSDK.html)


### CMS


**Definition:** CMS is an abbreviation for content management system.
CMS is computer software or an application that manages all content through 
a database and can be used when creating a website.

**Use case:** While public websites and private intranets are the two most common use cases 
for a Content Management System (CMS), a CMS can also be used to manage content 
for mobile apps and Internet of Things (IoT) devices.

**Get started:** [LinkedIn Courses](https://www.linkedin.com/learning/topics/content-management-systems-cms)


### LMS


**Definition:** A learning management system (LMS) is a software application or web-based
technology used to plan, implement and assess a specific learning process.

**Use case:** a learning management system is a software application that provides 
the framework that handles all aspects of the learning process

**Get started:** [How to Use a Learning Management System (LMS)](https://www.youtube.com/watch?v=Gp7R-8zHE_A)


### E-Commerce

**Definition:** E-commerce (electronic commerce) is the buying and selling of goods
and services, as well as the transfer of funds or data, over an electronic network,
most notably the internet.
    
**Use case:** There are four traditional types of ecommerce, including B2C 
(Business-to-Consumer), B2B (Business-to-Business), 
C2B (Consumer-to-Business) and C2C (Consumer-to-Consumer). 
There's also B2G (Business-to-Government), but it is often lumped in with B2B.
    
**Get started:** [How to Make an E-Commerce Website](https://www.youtube.com/watch?v=8wA6uPEu9hM)

    
### E-Market


**Definition:** E-marketing is an advertising discipline that includes all marketing 
activities conducted by a business online using an electronic device or the internet. 

**Use case:**  internet marketing, online marketing, digital marketing, or web marketing: 
  => eBay, Amazon

**Get started:** [AMAZON Affiliate Marketing For BEGINNERS](https://www.youtube.com/watch?v=gXiWT4Ey_3Q)


### WordPress


**Definition:** WordPress is a free, open source publishing software that can be installed
locally on a web server and accessed via a proprietary web site or hosted in 
the cloud and accessed via the WordPress web site.

**Use case:** Social Network, Forum, Security, Shortcodes, E-Commerce Site, Project Management

**Get started:** [How to Make a WordPress Website](https://themeisle.com/blog/how-to-make-a-website/)


### WooCommerce


**Definition:** WooCommerce is a free WordPress plugin that allows you to create 
an online store by adding e-commerce functionality to your WordPress website.

**Use case:**  It lets you turn a WordPress website into an ecommerce store

**Get started:** [WooCommerce for Beginners](https://www.youtube.com/watch?v=agqLwJ7Mpzo)


### Moodle


**Definition:** Moodle is an online learning platform that allows you to create online courses, 
assign assignments, and track your students' progress.

**Use case:**  a well-prepared teaching platform

**Get started:** [The 15-Minute Guide for Teachers on Getting Started with Moodle](https://www.ispringsolutions.com/blog/getting-started-with-moodle) 


### SPA


**Definition:** A single-page application (SPA) is a Web app that is presented to the
user via a single HTML page in order to be more responsive and closely replicate
a desktop application or a native app. 
A single-page interface is another term for an SPA (SPI).

**Use case:** It interacts with the user by dynamically rewriting the current web page
with new data from the web server, as opposed to the web browser's default method 
of loading entire new pages such as Twitter & Facebook.

**Get started:** [How to Build A Single Page Application](https://clockwise.software/blog/single-page-applications-are-they-a-good-choice-for-your-project/)


### PWA


**Definition:** PWAs are web apps that use service workers, manifests, and other web-platform
features in conjunction with progressive enhancement to provide users with an experience
comparable to native apps.

**Use case:** PWAs provide a more responsive, dependable, and engaging version of your website
or eCommerce store. PWAs can perform most of the functions of native apps,
such as operating offline, accessing your camera and microphone if necessary,
GPS, and more. 

**Get started:** [Get started with Progressive Web Apps - Microsoft](https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/)


### ChatBots


**Definition:** A chatbot, at its most basic, is a computer program that simulates and 
processes human conversation (either written or spoken), allowing humans to interact
with digital devices as if they were speaking with a real person.

**Use case:** Chatbots assist businesses in asking contextually relevant questions, 
qualifying leads, and scheduling sales meetings on a large scale. 
Because people prefer conversations, bots convert 4x better than traditional lead 
generation tools. So, interact with your visitors 24 hours a day, seven days a week 
to generate more leads.

**Get started:** [Build Your Own Chatbot](https://www.ideta.io/chatbot-builder?gclid=CjwKCAjw14uVBhBEEiwAaufYx-lsTKka9qUK1ACS00jhgSUYJpGKo6A823-ksmUEGwwwdJLbJwGb0hoCp8QQAvD_BwE)


### WebAssembly
    
    
**Definition:** WebAssembly is a new type of code that can be run in modern web browsers;
it is a low-level assembly-like language with a compact binary format that runs with
near-native performance and provides a compilation target for languages such as C/C++,
C#, and Rust to run on the web.
    
**Use case:** WebAssembly makes it possible to create video, audio, graphics, 
3D environments, multimedia games, cryptographic computations, and even portable 
language implementations.
    
**Get started:** [An Introduction to WebAssembly - Linux Foundation](https://training.linuxfoundation.org/blog/an-introduction-to-webassembly/)
  
    
### Git

**Definition:** Git is a piece of software that tracks changes in any set of files. 
    It is commonly used to coordinate work among programmers who are collaboratively
    developing source code during software development.
    
**Use case:** Git is a source code management tool used in DevOps. 
It is a free and open-source version control system used to efficiently manage small
to very large projects. Git is a version control system that allows multiple developers
to collaborate on non-linear development by tracking changes in the source code.
    
**Get started:** [Computer Stuff They Didn't Teach You - Scott Hanselman](https://www.youtube.com/watch?v=WBg9mlpzEYU)

    
---

# In-depth Culture

### HTML & CSS

 
**Definition:** HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) are
    two of the most important technologies for creating Web pages. 
    HTML provides the page structure, while CSS provides the (visual and aural) layout
    for a variety of devices.
    
**Use case:** HTML is used by 94.6% of all websites.
    CSS is used by 97.0% of all websites. Inline CSS is used by 90.4% of all websites.
              
    
**Get started:** [Learn HTML and CSS with this free 11 hour course](https://www.freecodecamp.org/news/html-css-11-hour-course/)

    
### JS
    

**Definition:** Javascript (JS) is a scripting language that is mostly used on the 
    Internet. It is commonly found embedded in HTML code and is used to enhance HTML pages. JavaScript is an interpreted programming language. As a result, it does not need to be compiled. JavaScript is used to create interactive and dynamic web pages.
    
**Use case:** Creating web and mobile apps, Adding interactive behavior to web pages,
    Building web servers and developing server applications, Game development..
    
**Get started:** [Full JavaScript Course for Beginners](https://www.freecodecamp.org/news/full-javascript-course-for-beginners/)

    
### TypeScript
    
 
**Definition:** TypeScript is JavaScript with type syntax. TypeScript is a strongly
    typed programming language based on JavaScript that provides better tooling 
    at all scales. The editor double-checks.
    
**Use case:** Microsoft created and maintains TypeScript, a programming language.
    It is a strict syntactical superset of JavaScript and extends the language with 
    optional static typing. It is intended for large-scale application development and
    transpiles to JavaScript.
    
**Get started:** [TypeScript Documentation](https://www.typescriptlang.org/docs/)

    
### jQuery
    

**Definition:** jQuery is a lightweight, feature-rich JavaScript library
    It simplifies HTML document traversal and manipulation, event handling, animation, 
    and Ajax with an easy-to-use API that works across a wide range of browsers.

**Use case:** jQuery was created to make HTML DOM tree traversal and manipulation easier,
    as well as event handling, CSS animation, and Ajax.
    
**Get started:** [jQuery Full Course](https://www.youtube.com/watch?v=HgvIox6ehkM)
                 [jQuery Learning Center](https://learn.jquery.com)

    
### NodeJs
    

**Definition:** Node.js (Node) is an open source development platform for 
    server-side JavaScript execution.
    
**Use case:** Node is useful for developing applications that require a persistent
    connection from the browser to the server, such as chat, news feeds, and web push 
    notifications.
    
**Get started:** [Node.js Tutorial - W3SCHOOLS](https://www.w3schools.com/nodejs/)

    
### APIs
    

**Definition:** API stands for Application Programming Interface, and it is a software
    intermediary that allows two applications to communicate with one another.
    
**Use case:** An API is used every time you use an app like Facebook, send an instant 
    message, or check the weather on your phone.
    
**Get started:** [APIs for Beginners - freeCodeCamp](https://www.youtube.com/watch?v=GZvSYJDk-us)
 
    
### RestAPI
    
  
**Definition:** A REST API (also known as RESTful API) is a type of application
    programming interface (API or web API) that adheres to the REST architectural style 
    and allows interaction with RESTful web services.
    
**Use case:** A RESTful API is an architectural style for an application program interface
    (API) that accesses and uses data via HTTP requests. That data can be used to
    GET, PUT, POST, and DELETE data types, which refer to reading, updating, creating,
    and deleting resource-related operations.
    
**Get started:** [REST API Crash Course](https://www.youtube.com/watch?v=qbLc5a9jdXo)

    
### SOAP
    

**Definition:** SOAP (Simple Object Access Protocol) is a message protocol that allows
    distributed application elements to communicate with one another. 
    SOAP can be delivered using a number of standard protocols, including the web-based
    Hypertext Transfer Protocol (HTTP).

    
**Use case:** You can transmit SOAP messages in any way that the applications require, 
    as long as both the client and the server use the same method.
    
**Get started:** [Object Access Protocol Overview - Oracle](https://docs.oracle.com/cd/A97335_02/integrate.102/a90297/overview.htm)
  
    
### GraphQL
    
**Definition:** GraphQL is a syntax that describes how to request data and is commonly
    used to load data from a server to a client.
    
**Use case:** GraphQL is great if you want to work in a declarative style because it
    enables you to select only the information or operations you need.It can even be 
    deployed within an integrated development environment (IDE) known as GraphiQL.
    
**Get started:** [Getting Started With GraphQL.js](https://graphql.org/graphql-js/)

    
### Angular
    

**Definition:** Angular is an HTML and TypeScript-based platform and framework for
    developing single-page client applications. TypeScript is used to write Angular. 
    It provides core and optional functionality as a collection of TypeScript libraries
    that you can import into your applications.

**Use case:** building single-page client applications, building single-page client
    applications, using POJO in Angular will help you to develop an intuitive,
    lightweight, and specialized app.
    
**Get started:** [Getting started with Angular](https://angular.io/start)

    
### Reactjs
    

**Definition:** React. js is an open-source JavaScript library used to create user 
    interfaces for single-page applications. It handles the view layer for web apps. 
    React also enables us to create reusable user interface components.

**Use case:** web development to build interactive elements on websites.
    
**Get started:** [React Course - Beginner's Tutorial for React JavaScript Library](https://www.youtube.com/watch?v=bMknfKXIFA8)
    
    
### React Native
    
 
**Definition:** React Native is a JavaScript framework for creating natively rendered 
    mobile apps for iOS and Android. It's based on React, Facebook's JavaScript library
    for creating user interfaces, but instead of being aimed at browsers,
    it's aimed at mobile platforms.
    
**Use case:** Multi-OS mobile development
    
**Get started:** [the Complete React Native Course 2021 : from Zero to Hero](https://www.youtube.com/watch?v=ANdSdIlgsEw)
    
    
### Flutter
    
**Definition:** Google's Flutter is a free and open-source UI framework for developing 
    native mobile applications.
    
**Use case:** IOS/Android mobile development
    
**Get started:** [Flutter Course for Beginners – 37-hour Android App Development Tutorial](https://www.freecodecamp.org/news/learn-flutter-full-course/)

    
### Ionic
    
  
**Definition:** Ionic offers a set of tools for developing native iOS and Android apps, 
    as well as mobile-ready Progressive Web Apps, using familiar web libraries, frameworks,
    and languages.
    
**Use case: T**urn any web project into a native iOS or Android mobile application.
    
**Get started:** [Ionic 4 Crash Course for Beginners - Build an App](https://www.youtube.com/watch?v=qTdwUpQRptc)
    
 
    
### Electronjs
    

**Definition:** Electron.js is a runtime framework that allows the user to create
    desktop-suite applications with HTML5, CSS, and JavaScript.

**Use case:** Pexels Electron app, Slack desktop app, WhatsApp Electron app

**Get started:** [Learn Electron in Less than 60 Minutes - Free Beginner's Course](https://www.youtube.com/watch?v=2RxHQoiDctI)
  
    
### Python
    

**Definition: P**ython is a general-purpose programming language, meaning it can be used
    to create a variety of different programs and isn't specialized for any specific 
    problems.
    
**Use case:** build websites and software, automate tasks, and conduct data analysis.
    
**Get started:** [Python Tutorial - Python Full Course for Beginners](https://www.youtube.com/watch?v=_uQrJ0TkZlc)

    
### Web Scraping
    
 
**Definition:** Web scraping is the process of extracting content and data from a website
    using bots. Web scraping, as opposed to screen scraping, which only copies pixels
    displayed onscreen, extracts underlying HTML code and, with it, data stored in
    a database.
    
**Use case:** price monitoring, enriching machine learning models, financial data
    aggregation, monitoring consumer sentiment, news tracking,
    
**Get started:** [Web Scraping with Python - Beautiful Soup Crash Course](https://www.youtube.com/watch?v=XVv6mJpFOb0)
 
    
### Django


**Definition:** Django is a Python web framework that allows for the rapid development 
of secure and maintainable websites. Django, which was created by experienced developers, 
takes care of much of the hassle of web development, allowing you to focus on writing your
app instead of reinventing the wheel.

**Use case:** Suitable for both frontend and backend

**Get started:** [Python Django Web Framework - Full Course for Beginners](https://www.youtube.com/watch?v=F5mRW0jo-U4)


### Java

**Definition:** Java is an object-oriented programming language used to create software 
    for a variety of platforms.
    
**Use case:** write applications for different platforms that run JRE and supports 
    applications that run on a single device like a desktop or mobile phone. 
    Java can also be used to develop applications that work in a distributed manner.
    
**Get started:** [Java Full Course | Java Tutorial for Beginners | Java Online Training](https://www.youtube.com/watch?v=hBh_CC5y8-s)

    
### JavaFX

**Definition:** JavaFX is a collection of graphics and media packages that allow
    developers to create, test, debug and deploy rich client applications that work
    consistently across multiple platforms.

**Use case:** Space, Dispatching, Manufacturing execution systems
    
**Get started:** [JavaFX GUI Course ☕【𝙁𝙧𝙚𝙚】](https://www.youtube.com/watch?v=9XJicRt_FaI)
 
    
### Java Swing
    

**Definition:** Swing in java is part of Java foundation class which is lightweight
    and platform-independent.
    
**Use case:** It is used for creating windows-based applications
    
**Get started:** [Java Swing GUI Programming Tutorial](https://www.youtube.com/watch?v=mDxEGtMNPtA)

    
### SpringBoot
    

**Definition:** Pivotal maintains an open-source micro-framework known as Spring Boot.
    It provides a platform for Java developers to get started with an auto-configurable 
    production-grade Spring application.
    
**Use case:** It is targeted specifically towards building web applications and 
    microservices.
    
**Get started:** [Spring Boot Tutorial | Full Course [2021]](https://www.youtube.com/watch?v=9SGDpanrc8U)
    
    
### Ruby
    
   
**Definition:** Yukihiro Matsumoto created Ruby, an open source, interpreted, 
    object-oriented programming language, with the gemstone's name implying "a jewel
    of a language." Ruby is intended to be straightforward, complete, extensible, 
    and portable.
    
**Use case:** Ruby is an excellent programming language for creating desktop applications,
    static websites, data processing services, and even automation tools. 
    It is used for web servers, DevOps, as well as web scraping and crawling.
    
**Get started:** [Ruby Programming Language - Full Course](https://www.youtube.com/watch?v=t_ispmWmdjY)
    
    
### Ruby on rails
    

**Definition:** Ruby on Rails (also known as RoR) is the most widely used open-source 
    web application framework. It is written in the Ruby programming language.
    
**Use case:** Rails can be used to help you build applications ranging from simple
    to complex; there are no limits to what you can achieve with Rails!
    
**Get started:**  [Learn Ruby on Rails - Full Course](https://www.youtube.com/watch?v=fmyvWz5TUWg)

    
### C#
    

**Definition:** C# is a type-safe, object-oriented programming language. 
    C# allows developers to create a wide range of secure and robust applications
    
**Use case:** used in. NET, C# has its roots in the C family of languages and will be 
    immediately familiar to C, C++, Java, and JavaScript programmers.
    
**Get started:**  [C# Get Started](https://www.w3schools.com/cs/cs_getstarted.php#:~:text=C%23%20IDE,com%2Fvs%2Fcommunity%2F.)
    
    
### DotNet Core
    

**Definition:** NET Core is a new version of .NET Framework, which is a free, 
    open-source, general-purpose development platform maintained by Microsoft.
    
**Use case:** It is a cross-platform framework that runs on Windows, macOS, 
    and Linux operating systems.
    
**Get started:**  [What is .NET?](https://www.youtube.com/watch?v=bEfBfBQq7EE)
   
    
### Kotlin

**Definition:** Kotlin is a static type, object-oriented programing (OOP) language 
    that is interoperable with the Java virtual machine, Java libraries and Android.
    
**Use case:** Android Development
    
**Get started:** [Kotlin Course - Tutorial for Beginners](https://www.youtube.com/watch?v=F9UC9DY-vIU)
    
    
### Go
    
    
**Definition:** Go (also called Golang or Go language) is an open source programming 
    language used for general purpose.
    
**Use case:** Go was originally built for programs related to networking and infrastructure.
Today, Go is used for a variety of applications like cloud and server-side applications,
    DevOps, command-line tools, and much more.
    
**Get started:** [Golang Tutorial for Beginners | Full Go Course](https://www.youtube.com/watch?v=yyUHQIec83I)
    
    
### Rust
    
    
**Definition:** Rust programming language is a computer language with object-oriented 
    characteristics that's often prized as an alternative to traditional C++.
    While it's syntactically similar to C++, it also has its own range of features that
    make it a multi-paradigm programming language that's getting a lot of attention.
    
**Use case:** operation systems or microcontroller applications.
    
**Get started:** [Rust Programming Course for Beginners - Tutorial](https://www.youtube.com/watch?v=MsocPEZBd-M)
    
---    

# Database Stuff

### SQL
    
    
**Definition:**  Structured Query Language (SQL) is a standardized programming language 
    that is used to manage relational databases and perform various operations 
    on the data in them.
    
**Use case:** SQL is used to communicate with a database, a relational database.
    
**Get started:** [SQL Tutorial - Full Database Course for Beginners](https://www.youtube.com/watch?v=HXV3zeQKqGY)
    
    
### NoSQL
    

**Definition:** NoSQL is an approach to database management that can accommodate a wide variety of data models, including key-value, document, columnar, and graph formats.
    A NoSQL database generally means that it is non-relational, distributed, flexible 
    and scalable.
    
**Use case:** SQL is used to communicate with a database, a non-relational database.
    
**Get started:**  [NoSQL Database Tutorial – Full Course for Beginners](https://www.youtube.com/watch?v=xh4gy1lbL2k)
    
    
    
### Postgres
    
 
**Definition:** PostgreSQL is a powerful, open-source object-relational database system
    that uses and extends the SQL language and includes numerous features for safely 
    storing and scaling the most complex data workloads.
    
**Use case:** Postgres is used to communicate with a database, a relational database.
    
**Get started:** [Learn PostgreSQL Tutorial - Full Course for Beginners](https://www.youtube.com/watch?v=qw--VYLpxG4)

    
### MySQL
    

**Definition:** MySQL is a relational database management system (RDBMS) developed
    by Oracle that is based on structured query language (SQL).
    
**Use case:** For WordPress sites, that means it helps you store all your blog posts, 
    users, plugin information, etc. It stores that information in separate “tables” and connects it with “keys”, which is why it's relational.
    
**Get started:**
    
    
### MongoDB
    
   
**Definition:** MongoDB is an open-source NoSQL database management program.
    
**Use case:** useful for working with large sets of distributed data.
    MongoDB is a tool that can manage document-oriented information, and store or retrieve
    information.
     
**Get started:** [MongoDB Full Course | MongoDB Tutorial](https://www.youtube.com/watch?v=lBBtq3Oawqw) 
   
    
### CasandraDB
    
 
**Definition:** Apache Cassandra is a distributed database management system
    
**Use case:** Handle large amounts of data across multiple data centers and the cloud.
    
**Get started:** [Crash Course | Introduction to Cassandra for Developers](https://www.youtube.com/watch?v=jgqu1BcSKUI)
    
### Redis
    
**Definition:** Remote Dictionary Server, is a fast, open-source, in-memory,
    key-value data store. The project started when Salvatore Sanfilippo, the original 
    developer of Redis, wanted to improve the scalability of his Italian startup.
    
**Use case:** enables you to write traditionally complex code with fewer, simpler lines.
    
**Get started:** [Redis in 100 Seconds](https://www.youtube.com/watch?v=G1rOthIU-uo)
    
    
---

# Server Stuff

### VPS
    

**Definition:** A virtual private server (VPS) is a virtual server that appears to 
    the user as a dedicated/private server despite being installed on a physical 
    computer running multiple operating systems. A virtual dedicated server is another
    name for a virtual private server (VDS).
    
**Use case:** better reliability, security, and performance than shared hosting.
    
**Get started:** [Getting started with a VPS](https://docs.ovh.com/us/en/vps/getting-started-vps/)
   
    
### RDP
    

**Definition:** The Remote Desktop Protocol (RDP) is a protocol or technical standard, 
    for using a desktop computer remotely.
    
**Use case:** Desktop Computer such as a virtual machine
    
**Get started:** [What is the Remote Desktop Protocol (RDP)?](https://www.cloudflare.com/en-gb/learning/access-management/what-is-the-remote-desktop-protocol/)
    
    
### DevOps
    
    
**Definition:** Simply put, DevOps is about breaking down barriers between traditionally
    siloed teams, such as development and operations. A DevOps model requires development
    and operations teams to collaborate throughout the software application life cycle, 
    from development and testing to deployment and operations.
    
**Use case:** Companies such as Microsoft, Google & Amazon 
    
**Get started:**  [What is DevOps? REALLY understand it | DevOps vs SRE](https://www.youtube.com/watch?v=0yWAtQ6wYNM)
    
    
### Virtual Environment
    

**Definition:** A virtual environment is a networked application that allows a user 
    to interact with both the computing environment and the work of other users.
    
**Use case:** Email, chat, and web-based document sharing applications are all examples 
    of virtual environments.
    
**Get started:** [What are virtual environments?](https://dl.acm.org/doi/10.1109/38.250914)
   
    
### Docker
    
    
**Definition:** Docker is a software platform that simplifies the process of building, 
    running, managing and distributing applications
    
**Use case:** package applications into containers, combining application source code 
    with the operating system (OS) libraries and dependencies required to run that code
    in any environment
    
**Get started:**  [Docker Tutorial for Beginners](https://www.youtube.com/watch?v=pTFZFxd4hOI)
 
    
### Kubernetes
    

**Definition:** Kubernetes is a system that manages containers (containerized applications)
    where a container could be explained as a lightweight virtual machine
    
**Use case:** Containers management
    
**Get started:** [Kubernetes: Getting started](https://azure.microsoft.com/en-us/overview/kubernetes-getting-started/)
    
    
### Docker Swarm
    
   
**Definition:** Docker Swarm is a clustering and scheduling tool for Docker containers.
    
**Use case:** establish and manage a cluster of Docker nodes as a single virtual system.
    
**Get started:** [What is Docker Swarm: Modes, Example and Working](https://www.simplilearn.com/tutorials/docker-tutorial/docker-swarm)
 
    
### Apache
    
   
**Definition:** Apache is the most widely used webserver software and runs on 67% of 
    all websites in the world.
    
**Use case: a** web server to host applications
    
**Get started:** [What Is Apache? What Is a Web Server? - WPBeginner](https://www.wpbeginner.com/glossary/apache/)
 
    
### Nginx
    
 
**Definition:** NGINX is open-source software for web serving, reverse proxying, caching, load balancing, media streaming, and more.
    
**Use case:** high performance, almost infinite configurability
    
**Get started:** [What is NGINX?](https://www.nginx.com/resources/glossary/nginx/#:~:text=NGINX%20is%20open%20source%20software,for%20maximum%20performance%20and%20stability.)
    
    
### Single Thread
    
 
**Definition:** the execution of an entire task from beginning to end without interruption.
     
**Use case:** the open-source audio encoder
    
**Get started:** [What is a single thread performance? - Quora](https://www.quora.com/What-is-a-single-thread-performance)
   
    
### Multi-Thread
    
    
**Definition:** Multithreading is a CPU (central processing unit) feature that allows 
    two or more instruction threads to execute independently while sharing the same
    process resources.
    
**Use case:** allows the execution of multiple parts of a program at the same time.
    
**Get started:** [What Is Multithreading: A Guide to Multithreaded Applications](https://totalview.io/blog/multithreading-multithreaded-applications)
    
    
### CI/CD
    
   
**Definition:** Continuous integration and continuous delivery/continuous deployment are
    abbreviated as CI and CD, respectively. In its most basic form, continuous integration
    (CI) is a modern software development practice in which incremental code changes 
    are made frequently and reliably.
    
**Use case:** Modern Software Development
    
**Get started:** [CI/CD Pipeline: Everything You Need To Know](https://harness.io/blog/continuous-delivery/ci-cd-pipeline/)
    
