Programming Languages
While it's important to allow for flexibility in languages used, it's also important to stick to a relatively small set of established languages within an organization, since it encourages proficiency within the selected languages while limiting potential for skill isolation, which can occur when too many different languages/frameworks are used across a small user base.
By the way, if you end up doing a decent amount of coding, you'll almost certainly need to learn multiple languages. This can sound intimidating, but don't worry, the difficult part is learning the fundamental concepts and to think like a programmer—once you've got those down and learned one language, other languages will be relatively easy to pick up.
This section includes descriptions of several languages recommended for programming at Steer.
TIP
Most programming languages are not limited to their core features, but also allow third-party extensions, called packages, libraries, or by other names, depending on the language.
Python
Python is one of the most popular programming languages, and its advantages include relatively simple syntax and versatility. Python can be used for everything from machine learning to server-side web application development. It is also easy to learn and has a very strong ecosystem. If you're just starting to code, and you're not planning to focus on web development, Python is a great first language to learn.
Python packages are available at the Python Package Index.
R
R is a programming language focused on statistical computing, and is mostly used by statisticians and data analysts/scientists. R is an open-source alternative to SAS, SPSS, and Stata. In addition to being great for working with data, R has strong visualization capabilities, and can be used for literate programming (where code and outputs are interspersed with text), and simple web applications. While R is widely used, its ecosystem is much smaller than that of Python and JavaScript, due to its greater level of specialization.
R packages are available at the Comprehensive R Archive Network.
TIP
Some R packages need to be compiled from source code (don't worry if that doesn't mean anything to you). If you need to use any of these packages, you'll want to install Rtools, which is available from the Steer Software Center.
Stata
Stata is a general-purpose statistical software package that is largely code-driven although it also has a graphical user interface. It has two languages, the main “Stata” language and also an advanced programming language called Mata. Stata is semi-open software: the core is closed source and requires a license, but users can program their own Stata packages and share these with other Stata users. Stata was initially designed to focus on one primary data object at a time. The benefit of this approach is that Stata syntax is simple and intuitive. Stata could be a good choice if you are familiar with the requirements and need to get results quickly.
Stata packages are available from various sources including the Statistical Software Components library hosted by the Boston College Department of Economics.
JavaScript
JavaScript is the most popular programming language today. It is the dominant language used in web browsers to execute client-side code and has also become extremely popular for server-side web application development with Node.js. If you're planning to do any web development, you'll need to learn some JavaScript, along with HTML and CSS, which are described below. JavaScript has an enormous ecosystem.
JavaScript packages are available at npm.
TIP
Don't confuse JavaScript with Java. They are two completely different languages!
SQL
Structured Query Language (SQL) is a domain-specific language used to access and manage data in relational databases. At least basic SQL knowledge is essential for anyone who plans to work extensively with data.
More about SQL in the Databases section below.
HTML
HyperText Markup Language (HTML) is the markup language used to define the content of websites. It's quick and easy to learn the basics, and HTML knowledge is a must for anyone developing for the web.
CSS
Cascading Style Sheets (CSS) is the language that defines the styles used to present documents written in markup languages like HTML. Learning the basics of CSS is a core skill for anyone developing for the web.