Image for post
Image for post
Photo by Shahadat Rahman on Unsplash

I started learning Python a year back and implemented some simple scripts to automate some manual tasks.

E.g:

  • Read CSV files and analyzing
  • Download YouTube videos by giving the link
  • Updating Webpages through Rest API

So, while implementing all theses I have gone through the keywords like Module, Package and Library. I was bit confused why there are different names used and browsed over the Internet to clear my doubt.

At then end, I cleared and able to manage with some of my colleagues and juniors regarding what these words really meant. …


In the last article we explored about Abstract Factory Pattern.

In this article we are going to learn about a new Decorator Pattern which is belongs to Structural Design Pattern. The Decorator Pattern allows users to add new functionalities to an existing object without making any changes to previously written classes/code structure. This pattern act as a wrapper to the existing class/classes.

According to Open-closed principle classes should be open for extension, but closed for modification. The main thing we need to consider when writing code is to allow classes to be easily extended to incorporate new behavior without modifying…


The Abstract Factory is called a factory of factories. In the previous article, we have seen the Simple Factory and Factory Method patterns. This patter too comes under the Creational Pattern category. This provides one of the best ways to create an object.

Abstract Factory relies on object composition. Object creation is implemented in methods exposed in the Factory interface.

Intent of the Abstract Factory Pattern is to create families of related objects without having to depend on their concrete class.

Let's take an example of a scenario to implement this pattern in real-word.

I want to implement a system for the Cloth showroom where Men and Women wares sold. To get particular…


In the last article, we have seen about Singleton Factory which belongs to Creational Patterns (Creational Patterns are mainly focused on creating Objects). Today, we are going to have a look at another type of Creational Pattern called Factory Pattern.

The word itself illustrates its functionalities.

What is Factory?

A place where things are created/produced. In factories things are created/produces according to the requirements/orders. Similarly, in the Software development Factory Pattern is implemented to create and execute objects according to the parameters passed.

The Factory Method Pattern encapsulates to object creation by letting sub-classes to decide what objects to create at run-time (while…


In our day-to-day coding occurrences, we may have come across some implementations where a class needs to be instantiated only once and no need to instantiate again and again.

Image for post
Image for post
Photo by Luca Bravo on Unsplash

Some example instances are as follows

  • Objects used for logging
  • Objects that act as device drivers to devices like printers and graphic cards
  • Objects containing registry settings and caches related details

For these kinds of instances if we allowed instantiating objects many times we may have to run out of resources or may get into some troubles like incorrect program behavior. …


Have you ever wondered how big applications or software are working? Imagine while you are playing video games you may have seen some occurrences where changes occur concurrently like meter measurements or the moving objects in the display. These won’t happen at the same time. Each action is executed under a Thread. But those thread execution changes within milliseconds, to our naked eye we can’t observer what’s happening

Image for post
Image for post
Photo by Olliss on Unsplash

An application can have multiple processes, the process can have multiple threads.

To know about Threads we need to know about Process.

Refer the following Wikipedia Definition for Thread and Process

In…


I have been coding from 2017, related to web-development and automating boring stuff with Python. While coming across some cool stuff in Software Engineering I got to know about “Design Patterns”.

Image for post
Image for post
Photo by Markus Spiske on Unsplash

I saved that in my learning list last year. But I was not able to catch those patterns principle and how they are working, finally, in the academics syllabus, a module in Object-Oriented Programming contained Design Pattern. So, I give a shot and tried to learn those things.

These are some of the coolest things I learned in my learning period. So, I wanted to share it with you…


Have you ever seen a file with the extensions .yml | .yaml? If yes, You may have opened it to explore what it is and what will it do? If no. No worries lets take a look at that what it is?

What is YAML?

YAML Ain’t Markup Language (YAML)

YAML is a human friendly data serialization standard for all programming languages. Yes, it can work with most of the programming languages without any hastle. — Wikipedia

Image for post
Image for post
Courtesy: Wikipedia

Have you used XML and JSON? Have you ever tried these two? Let’s compare these 3 at a glance.


Deadlock is a condition where each process holding a resource and waiting to acquire a resource held by another process.

Image for post
Image for post
Geeksforgeeks.com

According to the illustration,

Resource 1 is allocated to Process1 and Resource 2 is allocated to Process 2. At the same time, Process 1 is waiting for Resource 2 which was assigned to Process 2 still. So, Process 1 will be in the waiting state to release Resource 2 by Process 1. Similarly, Process 2 is waiting for Resource 1 which was already assigned to Process 1. So, Process 2 will be in the waiting state.

A process in the…


Image for post
Image for post
Photo by Dariusz Sankowski on Unsplash

This was written on my freecodecamp article for the same title.

Object Oriented Programming is one of the most widely used programming paradigms. The name itself defines how it works. “Object Oriented” — the Object plays an important role. Manipulating objects and getting the results is the ultimate goal of Object Oriented Programming.

The languages that use Object Oriented Programming paradigms are known as Object Oriented Programming Languages. They are mostly high level languages such as

  1. Java
  2. C#
  3. Python — Python is both a Scripted/Structured & Object Oriented Language

To program in Object Oriented Programming, concepts called “Object Oriented Concepts”…

Parathan Thiyagalingam

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store