Why Did I Become a Developer?

It’s tough to tell when exactly and why I decided to become a developer because it was long ago. I started learning programming in high school at the age of 15. I wrote my first basic program in Turbo Pascal at the computer science class. It took maybe two or three years until I started exploring how to build a website. The idea that you can put something online and people worldwide can see it seemed thrilling.

Continue reading Why Did I Become a Developer?

React Native EU 2017 – my selective recap

I had an opportunity to attended React Native EU 2017 conference last month. This 2 days long event took place in my hometown Wrocław, Poland. It was a very interesting experience for me because I’m a frontend developer. I don’t have any working experience with React Native and the only mobile project I worked on was built using Apache Cordova. Anyway, I found many of the talks very attractive and I wanted to highlight some of them in this post.

Continue reading React Native EU 2017 – my selective recap

Different types of software testing

Software testing helps protect code from incoming bugs and improves general quality of the functionalities exposed to the users. When you look at it from the developer’s standpoint the first thing that comes to mind is unit testing. However it turns out tests come in many flavors. I have already shared in the recap from Advanced TDD workshop with Uncle Bob what kinds of tests a professional team should use to ensure that the application remains intact. The following items create a hierarchy:

Continue reading Different types of software testing

Functional Light JavaScript workshop

Functionite company did an impressive job bringing JavaScript expert Kyle Simpson to their hometown Warsaw, Poland in September last year. He led You Don’t Know JS Workshops, 5 days of JavaScript classes focused on learning new skills and the best practices. I joined on the last day to attend an excellent workshop titled Functional-Light JavaScript. In this post, I wanted to share slides and my coding exercises from this course. If you are curious what topics related to functional programming were covered I strongly recommend checking notes from a similar workshop shared by Beth Allchurch.

Continue reading Functional Light JavaScript workshop

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 from 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. In addition, 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 the various software engineering roles. They are presented in an alphabetical order. Personally I find this glossary very useful when preparing for the upcoming interview.

Agile Software Development

In 2001 a group of industry experts created a 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