Demystifying Computer Science: Simplifying Key Concepts for Beginners- Part II

Sanket S Ganorkar
7 min readAug 20, 2024

--

This page aims to make the terms associated with computer science and software engineering more understandable . When I started learning computer science, I encountered a few terms that were used frequently and I found them difficult to understand because I had no familiarity with the subject during my school years. Thus, regardless of domain, this article covers the top ten computer science phrases.

In order to make these concepts easier for you to grasp and remember, I have simplified and defined them. This article focuses on making the terms simpler rather than providing the correct technical definition.

Do check the first part too :- https://medium.com/@sanket200503/demystifying-computer-science-simplifying-key-concepts-for-beginners-part-i-bd8fe9f4f982

1) Version control system — A version control system (VCS) is like a shared online recipe book that multiple chefs can work on together. It allows everyone to contribute their own recipes or improve existing ones without messing up the main book. In technical terms , it is a tool that enables multiple developers to collaborate on the same project. It tracks changes to the codebase, allowing each developer to contribute new features or enhancements without affecting the stable version of the project.

It has the following benefits :-

  • Collaboration: Imagine you and your friends are writing a cookbook together. Each of you can add new recipes or suggest changes to existing ones. In a VCS, multiple developers can work on the same project simultaneously, adding new features or making improvements to the existing codebase.
  • Versions: Every time someone makes a change, the VCS saves a new version of the book. If a new recipe or change isn’t quite right, you can easily go back to an earlier version, like rewinding time to before the change was made. A VCS keeps a history of all changes made to the code. Each change is saved as a “commit,” allowing developers to revert to previous versions if needed.
  • Branches: Suppose you want to experiment with a new type of pasta dish without affecting the rest of the recipe book. You can create a “branch,” which is like a separate section of the book just for your pasta experiments. Once you’re happy with the new dish, you can merge it back into the main recipe book. Branches in a VCS allow developers to create separate copies of the codebase to work on new features or experiments. Once the changes are finalized, they can be merged back into the main codebase.

2) IDE — IDE stands for Integrated Development Environment. It’s a powerful tool that programmers use to write, test, and manage their code. Think of it as a fully equipped kitchen in a restaurant where chefs have everything they need to prepare delicious meals.

It consists of the following things :-

  • Code Editor: This is like the main cooking station where chefs prepare the dishes. It’s equipped with knives, cutting boards, and ingredients. In an IDE, the code editor is where you write your code, with features like syntax highlighting (which is like having clear labels on your ingredients) and auto-completion (which is like having a sous-chef helping you chop and prepare).
  • Debugger: This is similar to a taste tester or quality control chef who checks the food for any mistakes. The debugger helps you find and fix errors in your code by allowing you to run your code step-by-step and see what’s going wrong.
  • Compiler/Interpreter: This is like the oven or stove that cooks your food, transforming raw ingredients into a delicious dish. In an IDE, the compiler/interpreter translates your code into a language that the computer can understand and execute.
  • Extensions and Plugins: These are like special kitchen gadgets and tools that make cooking easier, such as a food processor or a spice rack. In an IDE, you can add plugins to help with version control, code formatting, or support for specific programming languages.

3) Cloud — Imagine you want to start a new company, but you don’t have enough money to buy all the equipment you need, like computers, servers, and storage. Instead of purchasing and maintaining this hardware yourself, you can use cloud computing services. These services allow you to rent the computing resources you need, such as processing power (CPU), memory (RAM), and storage, over the internet. This way, you only pay for what you use, just like renting an office or equipment.

For example, instead of buying physical servers and setting them up in your office (which would require significant upfront costs and ongoing maintenance), you use cloud services like Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform. These platforms provide virtual servers and other resources on-demand, allowing you to scale up or down based on your needs. You access these resources via the internet, which means you can start your company without the heavy initial investment and only pay for the services you use.

You must have came across a famous meme related to cloud , which says

“There is no such thing as the cloud, it’s just someone else’s computer”

This means that when we talk about “the cloud,” we’re actually referring to physical servers owned and operated by cloud service providers. It’s like using a computer that belongs to someone else, but you interact with it remotely, accessing its “brain” (processing power, storage, etc.) without having the physical machine in front of you.

4) HTTP — HTTP, or Hypertext Transfer Protocol, is like a set of rules that every website follows to interact with servers. It’s the language websites and servers use to communicate. Just as people use rules for effective communication, HTTP defines how information is requested and exchanged between your web browser and a website’s server. When you visit a website, your browser sends an HTTP request to the server, asking for web pages, images, videos, or other resources. The server responds with HTTP, delivering the requested content back to your browser. This process ensures that websites can be accessed and information can be exchanged smoothly across the internet.

5) JSON — JSON, or JavaScript Object Notation, is a way to represent data that servers send back to clients. It typically contains messages for users in key-value pairs.

For example, in a bookstore app, if a user’s ID doesn’t match the database, the server might respond with:

{“message”: “Please enter your correct credentials”}

6) Encryption — Encryption means protecting our data as it travels across different places, ensuring it’s safe from threats like malware and unauthorized access, minimizing the risk of data loss or theft.

7) Compiler — Compiler is a tool that takes code written in programming languages and translates it from human-readable form into machine-executable form. For instance, if you write a C++ program, the compiler converts it into an executable file format like .exe. This file format allows the system to run the program, producing outputs based on the code’s instructions.

Compilers are crucial because computers can’t directly understand high-level programming languages like C++ or Java. These languages are designed for human understanding and are written in a way that’s logical and intuitive for programmers.

8) Deployment— Deployment is the process of taking an application or a website that is developed on a local (developer’s) computer and making it accessible to users over the Internet.

Imagine you’ve built an application or a website . Initially, this application only runs on your own computer or a local server, where you can test and develop it. However, if you want others to use your application, you need to deploy it.

Deployment involves several steps:-

  • Hosting: You need to host your application on servers that are connected to the Internet. These servers store your application’s files and data, making them available to users worldwide.
  • Configuration: You setup the servers to ensure that your application runs smoothly and securely in the online environment. This includes setting up databases, configuring web servers, and managing security settings.
  • Accessibility: Once deployed, your application or website becomes accessible to users via their web browsers. They can interact with your application, access its features, and benefit from its services.

In summary, deployment transforms a locally developed application into a fully operational system that users can access globally via the internet.

9) Cache :- Caching is the process of storing data in a temporary storage space so it can be quickly accessed later. This helps make things faster because the system doesn’t have to retrieve the data from its original source every time.

Imagine you’re in a hurry to go to the office and can’t find your car keys. Instead of searching the whole house, you first look in the places where you frequently visit or where you last remember having them. There’s a good chance they’re there, which saves you time. Similarly, caching stores data where it can be quickly found, speeding up the process.

10) Bandwidth :- Bandwidth refers to the maximum amount of data that can be transmitted over an internet connection in a given amount of time. It’s like the width of a highway: the wider the highway, the more cars can travel on it at the same time, making the traffic flow smoother.

For example, if you are streaming a video, higher bandwidth means the video can load and play without buffering. Lower bandwidth would result in frequent pauses and a poor viewing experience.

In conclusion, thank you for your time and attention to this post . I hope this information has proven valuable. I encourage you to share your thoughts or any lingering questions in the comments section below. Additionally, for those interested in further exploration of computer science concepts, please consider following my account for future insights and discussions.

--

--

Sanket S Ganorkar

Final year engineering student looking for opportunities to expand my knowledge and contribute meaningfully to the tech community.