Image for post
Image for post

Civis R&D Bookshelf: Learning A New Language

by Liz Sander

Civis Analytics
Feb 2, 2018 · 3 min read

The Bookshelf series usually focuses on a few fairly quick reads around a theme. But this week, I want to use my post to make a pitch to you, dear reader.

I think you should learn a new programming language. Something off the beaten path. How does Erlang sound? Haskell? Prolog?

Why do this? It might sound useless at first. But as data scientists, we have to spend a lot of time interacting with code, from relying on others’ software to automating our own workflows, and maybe even writing dashboards, apps, and packages. If you’re already comfortable with R or Python, there’s a lot you can learn by exploring another language. Different languages have different perspectives on programming, and having a passing familiarity with several will give you a lot of different ways you can look at a problem. For example, R likes to focus on functions. It’s easy to pass functions around in R, or create temporary functions and ``apply`` them across different chunks of your data. Python prefers to think about objects and classes with methods and attributes. And a lower-level language like C forces you to think about memory. I’ve worked with all three of these languages, and each of them has taught me new ways to think about programming.

My big recommendation for this week is the book Seven Languages in Seven Weeks, by Bruce Tate. This book walks through seven programming languages, many of them unusual or lesser-known, and each of them introducing unique ways to look at programming. You don’t have to try them all, but even spending a weekend on one will help broaden your horizons and make you a better programmer. Plus, it’s fun! I recommend the chapter on Prolog, an esoteric language that shares some DNA with SQL.

If you’re learning a new language, you’ll need something to code. There are two coding exercises I go to give myself basic language fluency: Conway’s Game of Life (Life for short) and the Project Euler. Life isn’t the board game, it’s a cellular automaton; basically, a grid of cells that can take different states over time according to a set of rules. Based on Life’s simple rules and a starting position, the simulation can display some really complex behavior, but more importantly for language learning, it’s a satisfying toy problem. Project Euler is a set of mathematical/computational problems that get more challenging as you go. One ambitious programmer has even tried a couple in LaTeX. Choose a language, and give them a try yourself!

This post is part of our Bookshelf series organized by the Data Science R&D department at Civis Analytics. In this series, Civis data scientists share links to interesting software tools, blog posts, scientific articles, and other things that they have read about recently, along with a little commentary about why these things are worth checking out. Are you reading anything interesting? We’d love to hear from you on Twitter.

Civis Analytics helps the country's largest companies and…

Civis Analytics

Written by

Building a Data-Driven World | civisanalytics.com

The Civis Journal

Civis Analytics helps the country's largest companies and nonprofits identify, attract, and engage loyal customers and employees with a blend of proprietary data, software solutions, and an interdisciplinary team of data and survey science experts.

Civis Analytics

Written by

Building a Data-Driven World | civisanalytics.com

The Civis Journal

Civis Analytics helps the country's largest companies and nonprofits identify, attract, and engage loyal customers and employees with a blend of proprietary data, software solutions, and an interdisciplinary team of data and survey science experts.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store