My Recent Learning Challenge

Ogedengbe Babatunde
3 min readMay 13, 2019

Anyone that wants to accomplish great things must be ready to face challenges and overcome them. Three weeks ago, I embarked on a journey to build an application that allows individuals to quickly get cash from a lending platform.

I always knew that a solution to a problem comes with a price. As I reflected on how to solve these challenges, it was clear to me that I needed more than just what I already knew to achieve the desired result. Commitment and hard would help but love to learn and resilience is essential for great accomplishment.

Change is constant. Learning never ends

Building the User Interface

The first hurdle I had to overcome was the UI design concept. I realized that I needed to:

1. Make the user interface display meaningful information that aligns with the purpose of the solution.

2. Sketch layouts and decide on the project structure

3. Make the UI pleasing to the eyes.

My path to creating a good UI design

Having a clear understanding of the problems and solutions is the first building block to creating a good user interface.

In the ADC(Andela Developers Challenge), I noticed that user design specifications and data structures are provided which greatly informed what my UI should look like.

Having read and understood the expectations in the ADC, I grabbed a pen and a paper and sketched out the layout for each page. On each page, I identified the UI component and placed in position.

Also, I visited another website that provides a similar solution in order to get ideas of what my design should look like.

Another interesting aspect which I learned about UI design is color selection and matching. After long research, I understand that the human eye perceives only a few color combination as “Harmonic”. One good resource that helped me was W3school color picker. Later, during the Pre-Bootcamp session for frontend development, I was introduced to Palleton.com which looks very pleasant for color selection and matching.

Palleton color pallette

The use of functional programming.

Before the Pre-Bootcamp, I did not know the importance of javascript higher-order function.

The first fundamental concept I learned when I want to understand functional programming is pure functions.

So how do we know if a function is pure or not? Here is a very strict definition of purity:

  • It returns the same result if given the same arguments (it is also referred to as deterministic)
  • It does not cause any observable side effect

const calculateBalance = (balance, amountPaid) => balance — amountPaid;

Higher-order functions

When we talk about higher-order functions, we mean a function that either:

  • takes one or more functions as arguments, or
  • returns a function as its result

Examples are array methods like filter, Map, and reduce.

In functional programming data never changes. Data is immutable. A variable can never be changed. To update its value, you create a new variable. Instead of changing an array, to add a new item you can create a new array by concatenating the old array, plus the new item.

I have so much to discuss, but time is not on my side. In a nutshell, I believe learning never ends. I see challenges as a stepping stone to a greater height and also use the knowledge I have gained to produce a high-quality job.

--

--