83. Get used to some programming paradigms

Object oriented programing is probably the most established and popular paradigm in creating software. Most of the popular programming languages support it and it’s probably one of the things you’ll learn in the beginning of your programming journey. So be sure to learn it by heart!

Get familiar with the concept of types and their instances – objects. Keep the single responsibility principle in mind! Play around with composition and inheritance patterns. Check how to set various access modifiers. Learn the difference between static and non-static fields and methods. Learn differences between value and references types. Discover object oriented patterns: singleton, factory, facade, adapter, composite.

Another popular and “trending now!” paradigm is functional programming. It features many useful concepts even if you mostly write object oriented code. Pure functions are one of them. Similar is modifying and returning collections instead of changing them in place. Functional paradigm results in code oriented on processing data, not managing state. It greatly simplifies the logic and usually limits the length of the code.

Feel free to explore other paradigms. Most of the languages support many of them. Many paradigms are rather a way of designing a solution or using code and frameworks to achieve some effect. I’d suggest looking up: concurrent and distributed programming as well as reactive and event-driven programming.

The first two are a must in writing modern applications. More and more often programs need to wait for some heavy processing in the background or just for a web response.

Reactivity and events are what drives the modern front-end – users want quick results with a few clicks. Reactive UIs helps to process new data and display the changes. Events simplify running multiple processes that needs to happen as a response to actions performed either by user or the system itself.

Leave a comment

Your email address will not be published. Required fields are marked *