How to Learn a New Programming Language Effectively

Learning a new programming language does not have to be boring or difficult.

Developers can and should learn to study smartly when they attempt to learn a new programming language. The ability to learn a new programming language effectively will scale and become more pronounced as the developer continues to invest their time and effort into sharpening their skills.

The days of monoglot programming are behind us.

If you examine job posts for developer jobs, they usually list at least two languages and also a working knowledge of multiple frameworks.

Therefore, the need to continue learning new frameworks and programming languages will continue to exist into the near foreseeable future.​

In this post, I wish to address developers that are already proficient at one or more languages.

Unlike the other posts, where I go into extreme depth, I will aim to keep this post short and concise.

If readers want more detailed content, I might add a "read more" tab with details in this post later on. Let me know via comments :).

Continue reading

How to Write Clean Code – Become a Better Programmer

Clean code is an elusive concept due to the varying opinions of developers.

However, I believe that there are few common points that most developers (if not all) can agree on.

I will be discussing both the common points and also my own opinion on what clean code is.

You might be asking:

Why write a post on clean code when so many highly acclaimed people such as Uncle Bob wrote books on this topic?

Well, my answer is simple:

I am highly passionate about writing clean code, because nothing frustrates me more than code that reads like code.

You dig right?

By finding these common grounds, the discerning and pragmatic programmer can write code that not only works like a well-oiled machine, but also reads like a well-written book.Continue reading

How to Become Better at Coding – A Revitalizing Journey

Every programmer wants to become better at coding. There is absolutely no doubt about it.

However, there are so many people who are either clueless or lack the discipline and motivation to better themselves.

This article is aimed to address the following points

  • Propose reasons why you are not improving at your desired rate.
  • Provide practical, actionable steps towards becoming better at coding.

This article is aimed at programmers that want to improve, find motivation or become better at coding by conducting a thorough diagnosis. 

I will systematically bring you through a journey where you evaluate your rate of growth, identify bad habits and practices that are holding you back from becoming better at coding.

We will end the journey with tips and advice (derived from personal experience) on how to become better at coding.  

Hopefully, this list will help you as a reader become better at coding. I plan on continuously updating the post as I continue to ponder about ways to become better at coding (and of course with your feedback as well).

Without further ado, let us begin this journey of refinement, growth and self-discovery!

Continue reading

Unraveling Map Filter Reduce in Functional JavaScript

Map filter reduce are considered the fundamental functions in functional programming with JavaScript. In the previous post on the JavaScript Map function, we explored the map function in detail. How map works behind the scene, implementing the map function and using map() to create utility functions to make our lives easier.

We also discussed the concept of deep vs shallow copy, the identifying reference and value types, as well as their behavior in JavaScript.

Needless to say, we covered a lot of ground in the last two posts on functional programming. If you have been following through my series on functional programming, give yourself a pat on the back. Great job!

If you don’t know what functional programming is, read an introduction to functional programming before proceeding. I also recommend reading my post on map (link attached in the first sentence of this post) and going through the exercises.

You need to understand how map() and forEach() works on an intimate level to get the most out of this tutorial.Continue reading

Quick Sort Algorithm | Language Agnostic QuickSort Guide

The quick sort algorithm (sometimes known as QuickSort or partition-exchange sort) is a very useful sorting algorithm that employs the divide and conquer approach.

Before proceeding, if you do not understand how the merge sort algorithm works, I recommend reading up on how the merge sort algorithm works before proceeding.

This will help you conceptualize the quick sort much more quickly.

Other topics that will help you conceptualize the quick sort algorithm include a knowledge and understanding of how recursive data structures such as the binary search tree works.

Once again, this post will be language agnostic. I will be writing out the logic in pseudo code so that regardless of programming language, you will be able to follow along.

At the end of this post, the source for the quick sort algorithm will be provided in JavaScript, C++, Java and Python.Continue reading

JavaScript ES6 The Best Parts

JavaScript ES6 has revolutionized the programming language, adding new features that make the language better suited to handling a variety of cases, especially after JavaScript can now be run on the server via Node.js.

For each JavaScript ECMAscript 6 (henceforth, referred to as ES6) features, I will be explaining exactly why I believe that the mentioned feature is a great addition to the language.

For now, I am going start off with 5 features (there are a few more that I want to add to the list, but those will come in the near future).

This post is meant to be a summary of what I think are the best parts of ES6 and a summary of why I think it is. Therefore, unlike most of my other posts, I will not be diving into the specific behavior, theory and idiosyncrasies of each of the features mentioned in this post.

For the aforementioned reason, I would like to point out that this is not a detailed guide on each of these new ES6 features.

Rather, it is a overview of what I think are the best features that were shipped in ES6.

Continue reading