Each year I participate in the Advent of Code challenge. Yes, it's an advent calendar for geeks! Every day at midnight, a new puzzle unlock, and people compete to solve it as fast as possible completion counts toward the global leaderboard. Don't worry if you don't want to compete with the world; it's also possible to create a private leaderboard with your friends and colleagues. It's what we do each year at Nexus Innovations. This year more than 20 people participated, including an agile coach, the president, and VP of Corporate Services.

The fact that each problem is language-agnostic is the thing I like to most about it. It brings a lot of people from different dev communities all around the world together. Each puzzle has its subreddit page where people can discuss their approach to the problem and how they solved it. I've always been curious about other programming languages, but there's so much time in life to learn them all. I like going to the subreddit pages and discovering how people solve the same puzzle in a different language, leveraging the best features and libraries of that language.

My challenge

Like most of you, my day to day job requires me to work with C# and javascript most of the time. Every year, I give myself the challenge to get out of my comfort zone and complete the challenges with F#. It forces me to google a lot and discover different aspects of the language; its strengths, weaknesses, what's good, and what's not. Moreover, F# is based on the idea of functional programming, which is itself a different way of approaching a problem.

I believe that this kind of exposure to other languages genuinely makes you a better developer as you now see different ways to solve a problem. As the saying says:

If you have a hammer, everything looks like a nail

As developers, it's essential to stay curious and keep up with our industry's new developments. Not even 20 years ago, there was no mobile, no cloud, and the internet was a brand new thing. Can you imagine how quickly things have changed?

It's not too late

The best time to plant a tree was 20 years ago; the next best time is now

It's never too late to learn something new, and the great thing with Advent Of Code is that the challenges are available all year long, even those from previous years. Give it a shot!

Conclusion

If you read this blog often, you probably know that I like to share everything I learn, so I posted all my solutions online on my Github account, for those of you who are curious about F#. I find that the best way to learn is to take a look at others' code. It's how I learned all I know about F# in the past years. So now, I hope to give back the same thing to the community.

Happy new year!