5 Technical Terms That Even Senior Programmers Confuse With (And It’s Embarrassing!)
Generated with DALL-E 3

5 Technical Terms That Even Senior Programmers Confuse With (And It’s Embarrassing!)

These are 5 important programming terms that confuse many software engineers, be they beginner or experienced.

But not anymore!


1. Encryption vs. Hashing vs. Encoding

Encryption is a process of scrambling data so that only authorized parties can unscramble it using a key.

It is used to share sensitive information over non-secure communication channels.

Hashing is a one-way transformation of data into a fixed-size string. Modern hashing techniques (e.g. SHA-256) are impossible to reverse.

Its use cases are:

  • to verify the integrity of data (in version control software)
  • to securely store passwords in a database
  • in data structures such as hash tables

Encoding is the process of converting data into a different format using a set of rules (e.g. ASCII or Unicode).


2. Concurrency vs. Parallelism

Concurrency is the ability of a system to handle multiple tasks at the same time (even when it has only one CPU core).

Concurrent tasks on one CPU core appear to run simultaneously, even though they may not be. This is because of very fast context switching performed by the CPU between them.

Another technique for performing concurrent operations is Asynchronous programming.

Parallelism is the ability of a system to actually execute multiple tasks simultaneously as in the case of multi-core processors, or in distributed systems using different machines.

All parallelism is a form of concurrency, but not all concurrency is parallelism.

3. Library vs. Framework

A Library is simply a collection of pre-written code that is used to perform common tasks.

It provides developers with functions/ methods that they can use to execute tasks without building things from scratch.

Examples of libraries are jQuery & Keras.

A Framework is pre-written code that provides a foundation/ blueprint for building applications.

It often includes libraries, tools, and APIs needed to create applications.

Examples of Frameworks are Angular & Django.

A fundamental difference between them is described using the Inversion of Control (IoC) principle.

When using a Library, our application code controls the flow of the program by invoking library methods whenever needed.

With a Framework, it instructs where to put our application code, and calls our code as required based on events or conditions.


4. Artificial Intelligence vs. Machine Learning

Artificial Intelligence is a broad area of computer science that aims to build machines capable of performing tasks that usually require human intelligence.

Machine Learning is a subset of AI that uses algorithms to help machines learn from data to identify patterns and make decisions with minimal human intervention.

Its subsets are Supervised, Unsupervised and Reinforcement Learning.

While all machine learning is AI, not all AI is machine learning.

Some AI methods that are not included in ML are:


5. Malware vs. Virus

Malware is any malicious software that is designed to harm a programmable device, service or network.

Some of its examples are Viruses, Trojan Horses, Adware, Spyware, etc.

A Virus is a type of malware that mimics biological viruses in producing copies of itself and inserting them into other programs or executable files without the system administrator’s permission.

It can then spread using those files, and alter and delete data on the computer system.

Malware is a broad category that includes all types of malicious software, including viruses.


Join my newsletter mailing list along with hundreds of other curious individuals who read it weekly!

要查看或添加评论,请登录

Dr. Ashish Bamania的更多文章

社区洞察

其他会员也浏览了