Programming paradigms

A programmer can follow different approaches, also known as programming paradigms, when writing code.  Two of the most important programming paradigms are the procedural and the Object-Oriented ones.

Usually a programming language falls under one paradigm like  Ruby , that is mainly an OOP language. But some other languages as JavaScript can be multi-paradigm and support procedural, object-oriented (prototype-based) and functional programming styles.

The main difference between them is how you organise your code:

-In a procedural approach your code is a list of instructions or steps to be carried out.

-In an Object-Oriented approach your code is organised using objects and classes.

Reading about the different paradigms I found lots of new and very complicated concepts as: modularisation as a main trait of the procedural paradigm, and data abstraction, encapsulation, polymorphism, inheritance and serialisation-marshalling as traits for the Object-Oriented paradigm.

Apart from the desire to look the other way, I decided create some short and easy to understand definitions. Maybe the next time I find these concepts I don’t feel so uncomfortable!

  • Modularisation: It is used for reducing the complexity of a system subdividing a computer program into modules  or separate software components.
  • Data abstraction: It is the reduction of data to a simplified representation of the whole.  In OOP the programmer would just keep the relevant data inside the object hiding everything else. Data hiding is a software development technique.
  • Encapsulation : It is the inclusion within an object  of all the data and methods need for the object to function.
  • Polymorphism: It is the ability to present the same interface (Shape) for differing data types (square, circle, etc).
  • Inheritance: It enables new objects (subclasses or derived classes) to take on the properties of existing objects (superclasses or base classes).
  • Serialisation and marshalling:  Both are for transforming objects into series of bits. In particular, marshalling is about getting parameters from here to there, while serialisation is about copying structured data to or from a primitive form such as a byte stream. What is byte stream? A sequence of bits. What is a bit? It is the smallest unit of data in a computer. And what am I doing right now? Yak shaving!

About me

Hi! My name is Diana and my professional background is in the Art Market.

I have a degree in Clarinet Performance, studied Art History in University and have a Masters degree in Art Market studies and management of related companies, all in Spain.

I moved to London after finishing my master’s degree and have held posts across the art world where I strengthened my knowledge of the commercial aspect of contemporary art with established artists and learned more about the avant-garde and experimental work of younger and emerging artists.

Following the birth of my daughter in 2017 I decided to change career and retrain as a web developer. This change was motivated by the possibility of using my creativity in a technical context and having an intellectually challenging job where the learning process is crucial.

Nowadays I am doing the Online Software Engineering Bootcamp at Flatiron School and I am busy creating a website using Bootstrap and writing a game registration web app for a local sports team’s website. For this last project I am learning a little bit of PHP and MySQL.

Before applying to my programming bootcamp I have been doing some readings and completing various online education courses in order to get the basics on HTML, CSS and JS. Here is a list of what I have done so far:

Online education courses:

OpenClassrooms

  1. Understanding the Web
  2. Manage your code with Git and GitHub
  3. Learn the command line in Terminal
  4. Learn to Code with JavaScript
  5. Use JavaScript in your web projects

Code Academy

  1. Introduction to HTML
  2. Learn CSS

Flatiron School

  1. Coding Bootcamp Prep

Books:

  1. Coding with JavaScript for Dummies
  2. Eloquent JavaScript
  3. Static Site Generators

Exercises:

GitHub.io where I include my work.