Coding Blog


Learning to Code at Flatiron School

Explaining the Object Oriented Hate

Assuming I am not the only one who googles randomly about programming paradigms, many have seen the intense hate Functional developers seem to hold for Object Oriented programming. Before continuing, I would like to share two very important facts. Probably the most famous quote used by Functional developers describing OOP was “You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” by Joe Armstrong. The most popular programmer joke would probably be the optimst, the pessimist, and the programmer vs half glass of water. The programmers responce was the glass is twice as big as it needs to be.


React.js: forceUpdate()

I remember my first day of learning React.js: learning about Components, their properties and state. I had a task to create a button where onClick will update state. Without any knowledge, I naively typed this.state.key = updatedKey and expected that to work. I found that nothing was changed and it was then I had to ask my AMAA (Ask Me Anytime) coding mentor: Google how to update this.state (and yes I was too dumb to read the documentation). Surprisingly, the first link I found taught me to add a forceUpdate() post this.state.key = updatedKey.


Basic Algorithms: Time Complexity

What is algorithms and what does it have to do with programming? According to the omnipotent Wikipedia, an algorithm is a self-contained sequence of actions to be performed. Algorithms are generally accounted for completeness and optimization. Completeness means how well a certain algorithm addresses a problem and optimization means how efficiently can a problem be solved. Optimization or efficiency of an algorithm in programming are being rated by time and space complexities. Space complexity are the pointing to memory tax (RAM usage), while time complexity refers to iterations necessary (CPU usage).


Learning to Love Code

There is a Chinese teaching originating from the Analects of Confucius, 知之者不如好之者 好之者不如乐之者。 In English, that translates to “One who is has knowledge of such is inferior to a practitioner of such. A practitioner of such is inferior to one who derives pleasure from such.” Is that to say, one who enjoys a subject will innately be more skilled that one who only participates?


Encapsulation in Ruby

The 3 pillars of Object Oriented Programming: Inheritance, Polymorphism, and Encapsulation. My first step as a developer was picking up “Headfirst Java 2nd edition” from Goodwills. Everytime I experience technical difficulties programming, I would think back to the first programming book I read. As a beginner, it was so difficult to understand, I had to re-read the book several times to understand it. It can be said that it was one of the books that taught Object Oriented Programming before anything else.