A journey to functional JavaScript: Part 1 – fundamentals

JavaScript has a quite fascinating history. Brendan Eich created on his own the first language prototype in just ten days. Its implementation was highly influenced by the concepts of first-class functions from Scheme and prototypes from Self. Initially it was developed under the name Mocha, but released as LiveScript. The latter name didn’t last long either. Java was so hot back in 1995, that Netscape decided to take marketing move and rename their new language to JavaScript. This decision has greatly influenced the way JavaScript has been perceived for many years. Outward similarities to Java promoted imperative, object-oriented style among developers using it. Ideas borrowed from Scheme have always enabled using functional programming styles as well. However it was never the case until it started to get momentum a few month ago.

Continue reading A journey to functional JavaScript: Part 1 – fundamentals

Exploring functional JavaScript

I started exploring functional programming (FP) concepts over a year ago. I have already shared my initial learning materials in one of the previous posts. It was only the beginning of my journey and today I would like to give you a much more detailed update on that topic. I picked the most interesting resources I discovered in the recent months. They helped me understand how functional programming can improve the developer’s experience when you work with JavaScript.

Continue reading Exploring functional JavaScript

Recap: Advanced TDD workshop with Uncle Bob

Earlier this week I attended a three day Advanced TDD workshop delivered by Uncle Bob Martin. The course explained the principles and practices of Test-driven development as described in his book, Agile Software Development, Principles, Patterns, and Practices. It was an amazing experience, packed with great knowledge, so I couldn’t resist sharing my notes.

Uncle Bob (Robert C. Martin):

He has been a programmer since 1970. He is the Master Craftsman at 8th Light inc, an acclaimed speaker at conferences worldwide, and the author of many books including: The Clean Coder, Clean Code, Agile Software Development: Principles, Patterns, and Practices, and UML for Java Programmers.
– Skills Matter

Continue reading Recap: Advanced TDD workshop with Uncle Bob

Learning functional programming

Lately I wanted to explore more in-depth functional programming concepts. When I was looking for resources I found an interesting bundle (with 60% discount) from O’Reilly :

It turned out they are really nice because they present code examples for the different programming languages like: Java, Scala or Closure. That approach gives you a bigger picture how functional programming can be applied. I’d say that the book contains almost everything you can see in the related video, plus it’s more up to date and it contains a bit more details. On the other hand the video is much more interactive.

Continue reading Learning functional programming

Programming interview glossary

This blog post explains most of the popular keywords I was asked about during interviews for various software engineering roles. They are presented in an alphabetical order. Personally I find this glossary very useful when preparing for another interview.

Agile Software Development

In 2001 a group of industry experts created statement of values called The Manifesto of the Agile Alliance:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Continue reading Programming interview glossary