Welcome to the LingHacks Resources page! Below is a growing collection of natural language processing/computational linguistics-related resources, primarily for students (though many may be applicable to non-students as well). Have a resource you think the community would find helpful? Let us know via this form!

Learn NLP

Before (or while) jumping into NLP-related activities, it might be helpful to learn some introductory material. Below are some free resources that you can use to get up-to-speed on NLP.


Before learning computational linguistics, it would be beneficial to have a baseline level of familiarity with introductory computer science/programming. The maintainers of this resource page mostly use Python, so that's what this page will be centered around, but NLP resources in other programming languages do exist as well. We also include some references to Python software packages commonly used in NLP.

Math and Statistics

For a precise understanding of the quantitative workings of NLP systems, it helps to understand some [multivariable] calculus, linear algebra, probability, and statistics. It is possible to understand some basic algorithms with less mathematical background, but these areas of math and statistics become more important as NLP systems--particularly deep learning systems--become more complex. We recommend doing calculus (single-variable then multivariable), followed by linear algebra, followed by probability, followed by statistics (though high school AP-level statistics is helpful and can be done before or at the same time as single-variable calculus), but this is by no means a strict ordering requirement.

Machine Learning

NLP can be considered a subfield of machine learning, so it's beneficial to have a general understanding of the machine learning field before diving into the specifics of applying machine learning to language.


Understanding linguistics--the science of language--isn't strictly necessary to do many computational linguistics-related things, but we still think it's helpful to grasp some basic terminology and concepts and ground your study of NLP in linguistic principles.

Natural Language Processing

At last, some courses and reference sites specific to NLP!

NLP Research

Whether you're interested in pursuing a research career or just want to be familiar with some hot topics in NLP, here are some websites where you can read the latest NLP research:

Caring About the World

NLP does not exist in a vacuum. Here are some resources that you can use to learn how/why that is and what you can do about it. Some of these resources extend to AI/tech in general as well.

NLP Activities

You're probably here to ultimately add to your resumé. So, here's how you can do that.