Three Habits That Will Slowly Make You a Better Developer

There are lots of ways to improve as a developer quickly—keeping track of what’s going on in the industry, reading books, maintaining outside projects, and watching talks are some of the obvious ones. But there are a few habits you can adopt in your day-to-day work that will slowly improve a different set of skills over time. Read more on Three Habits That Will Slowly Make You a Better Developer…

How to Get the Most Out of Your Side Projects without Going Crazy

Lots of developers have side projects, but if you ask about them, they’ll probably say, “I’ve got a bunch of ideas and a few things in progress, but nothing I’ve finished.”

It seems to be a common theme. Lots of interesting problems and big ideas, but not enough follow-through. A lot has been written about how to break through this barrier—how to manage your time, how to hold yourself accountable, how to maintain motivation and interest… It all starts to sound an awful lot like work. Read more on How to Get the Most Out of Your Side Projects without Going Crazy…

Make Monkey Patching in Ruby Less Risky with Refinements

Ruby makes it easy to extend its built-in classes, which can be very convenient and lead to more readable code—but it can also be dangerous. This practice, known as “monkey patching,” is common in the Ruby world, and since Ruby 2, it’s been possible to mitigate some of the risks using refinements. Read more on Make Monkey Patching in Ruby Less Risky with Refinements…

An Introduction to Property-Based Testing with JavaScript

Property-based testing is a powerful technique that’s been widely and successfully applied to functional-style codebases for a long time. As functional programming continues to get more and more popular among JavaScript developers, the value of this style of testing is becoming more obvious to a wider audience. Read more on An Introduction to Property-Based Testing with JavaScript…

A Simpler Case for Functional Programming & “Elegant” Code

A lot has been written about the benefits of functional programming, but little of it is accessible to a newcomer. Some of the benefits are easy to understand from an inexperienced perspective (e.g. “it makes concurrency easier”), but others are pretty nebulous.

Chief amongst the inscrutable properties of functional programming is its “elegance.” It isn’t immediately clear what that word actually means in this context. Read more on A Simpler Case for Functional Programming & “Elegant” Code…

How to Read Code (Eight Things to Remember)

“I hate reading other people’s code” is a common refrain among software developers of all experience levels. However, it’s a necessary skill, especially for developers rolling onto existing codebases, and if you approach it with the right perspective and the right tools, it can be an enjoyable and enlightening experience. Read more on How to Read Code (Eight Things to Remember)…

Using Decorators to Declaratively Extend Functions

The decorator pattern gained fame in the object-oriented world after being featured in the classic 1994 Gang of Four book, Design Patterns. Since then, it’s been used extensively in traditional object-oriented programming as an alternative to inheritance. What’s really going on behind the scenes though, is composition, which means decorators are also great for cleaning up some functional programming boilerplate.

We’re going to look at decorators in JavaScript, along with some proposed syntax sugar coming in ES2017 that will make it easier to use them. Read more on Using Decorators to Declaratively Extend Functions…

Lazy Sequences with ECMAScript 6 Generators

Generators are an ES6 feature that started receiving a lot of attention a few years ago because of their potential to ease some of the pain associated with writing asynchronous code. However, with the emergent async/await proposal (mere syntax sugar around generators and promises), some of the shine has worn off, and generators aren’t getting the same amount of attention they used to.

This is a shame, because even if you disregard their uses in asynchronous code, generators are still pretty cool in their own right. I’m going to explore some of the ways you can use them to implement lazy sequences.
Read more on Lazy Sequences with ECMAScript 6 Generators…