Coding, or programming is, ultimately, giving instructions to a computer to get a task done. Those instructions (or programs) can be written in any of a huge number of languages, and depending on the task, sometimes more than one language is used to solve the problem.

There’s no one “best” language: just like tools in a toolbox or knives in the kitchen, different ones are good for different problems. Also, most coding is a process of using building blocks (usually called libraries) that other people have written, so that you can focus on just the parts that are unique to your situation. Sometimes the best language for a problem is the one which has the right libraries available.

When you’re starting, it’s a good idea to choose a language that people around you use, to increase the odds that you can get some help when you need it. After you’ve done some programming, it’s a lot easier to learn another language.

Around Knight Lab, we mostly use two programming languages: Python and JavaScript. Another language, R, is primarily used for data analysis: see Learn how to analyze data for more about learning R.

Fundamentals

While these may use specific languages, they are oriented towards absolute beginners, and may be a good starting point.

Python

Python is a general purpose language with a huge number of libraries available. At Knight Lab, we use it to analyze data and to serve websites, among other things. It has great libraries for machine learning/artificial intelligence.

Here are some resources we’ve found that might help you get started with Python.

Python Books (online)