{
"cells": [
{
"cell_type": "markdown",
"id": "2b28d1d2",
"metadata": {},
"source": [
"# Parting words\n",
"\n",
"## Where to go from here\n",
"\n",
"Now that you've made it to the end, perhaps you're wondering where to go\n",
"from here. Programming is perhaps the easiest skill to learn using only\n",
"the internet, so there are many options. There's also always room for\n",
"improvement and learning new things, it's a lifelong journey. In lieu of\n",
"parting words, here are some tips on where to get started, at least in\n",
"the world of Python.\n",
"\n",
"Thank you for reading so far, and if you have any suggestions for\n",
"improvement, additions, or just spotted a few typos, please [report them\n",
"on GitHub](https://github.com/v4py/v4py.github.io/issues)!\n",
"\n",
"## Books\n",
"\n",
"```{margin}\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"```\n",
"\n",
"As a general introduction to Python programming which focuses on\n",
"linguistic applications, I've already recommended [*Natural Language\n",
"Processing with Python: Analyzing Text with the Natural Language\n",
"Toolkit*](https://www.nltk.org/book/) by Steven Bird, Ewan Klein and\n",
"Edward Loper, and I'm going to recommend it again. It's a great\n",
"resource, all the more useful since it's freely available online. It\n",
"doesn't provide just recipes on how to use the latest and greatest fancy\n",
"stuff in\n",
"[NLP](https://en.wikipedia.org/wiki/Natural_language_processing),\n",
"treating the tools as black boxes, but rather focuses on understanding\n",
"algorithms and concepts and improving your programming skills. This\n",
"means that it often spends time on less cutting-edge methods, which are\n",
"however conceptually simpler and thus have better teaching value.\n",
"Depending on what your immediate needs are, this may be a strength or a\n",
"weakness, but in the long run, I would argue that every programming\n",
"linguist should spend some time honing their programming skills instead\n",
"of always blindly following how-to style recipes, because even\n",
"copy-pasting black box code can go seriously wrong if you don't have a\n",
"larger picture of what's going on.\n",
"\n",
"```{margin}\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
"```\n",
"\n",
"On perhaps a more practical note, I can definitely recommend Jake\n",
"VanderPlas's [*Python Data Science\n",
"Handbook*](https://jakevdp.github.io/PythonDataScienceHandbook/), an\n",
"other great resource which is also freely available online. This book is\n",
"not concerned with NLP per se but rather with data analysis, i.e. with\n",
"what happens after you've processed your text data and want to do some\n",
"statistical modeling or machine learning with it. This has traditionally\n",
"been the domain of [R](https://www.r-project.org/), especially among\n",
"linguists, but R is a very idiosyncratic language which encourages the\n",
"copy-paste, black box approach: while it sometimes provides pleasant and\n",
"easy-to-use abstractions (especially in the\n",
"[tidyverse](https://www.tidyverse.org/) third-party packages), building\n",
"them yourself or wiring them together can be challenging because the\n",
"underlying language is not really well-designed, edge cases and\n",
"surprising behaviors abound. Python is much easier to wrap your head\n",
"around, perhaps because it has always been intended as a more\n",
"general-purpose programming language, but by the same token, it can be\n",
"sometimes hard to know which libraries and techniques to use when\n",
"getting started with data analysis in Python. The *Python Data Science\n",
"Handbook* is there to help you with that.\n",
"\n",
"```{margin}\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
"```\n",
"\n",
"Finally, if you just want a fast-paced overview of Python syntax and\n",
"features, another great free resource, also by Jake VanderPlas, is [*A\n",
"Whirlwind Tour of\n",
"Python*](https://jakevdp.github.io/WhirlwindTourOfPython/). It's pretty\n",
"condensed and expects the reader to be reasonably familiar with\n",
"programming concepts terminology, but in exchange, it offers a\n",
"practical-minded and well-organized reference resource which you can use\n",
"to quickly refresh your knowledge on specific areas of Python\n",
"programming.\n",
"\n",
"## Videos\n",
"\n",
"Unlike conferences in linguistics, programming conferences are often\n",
"recorded and professionally produced videos (including presentation\n",
"slides) are subsequently made available, most often for free. For\n",
"tutorials and workshops, the materials often remain available long after\n",
"the conference via sites like GitHub, so you can follow along at your\n",
"leisure.\n",
"\n",
"Since conferences are popular, there's potentially *a lot* of watching\n",
"material, not all of it great. Some people are better programmers than\n",
"speakers or teachers, some are good at neither, but there are so many\n",
"conferences that they can accommodate all of them. Below is a collection\n",
"of videos that I either consider rare gems of the Python conference\n",
"circuit, or that are particularly relevant to the subject of analyzing\n",
"language data, or both.\n",
"\n",
"If you end up searching yourself, I can recommend almost anything by\n",
"either Raymond Hettinger, Ned Batchelder or David Beazley. Their\n",
"contributions are consistently extremely informative, well-prepared and\n",
"entertaining at the same time.\n",
"\n",
"### Improving your Python chops\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"```{margin}\n",
"A great tour of Python's built-in functionality, i.e. stuff that's\n",
"always available, without having to load any libraries, and tips and\n",
"tricks on how to use it. A great way to top off your Python initiation\n",
"and graduate to a proficient beginner.\n",
"```\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"```{margin}\n",
"This is perhaps the most useful intermediate Python talk ever. It'll\n",
"clear up any misconceptions about how variables work in Python that you\n",
"might have accumulated on your programming journey so far, and enable\n",
"you to work on more complicated and larger pieces of code with more\n",
"confidence.\n",
"```\n",
"\n",
"\n",
"```{div} full-width\n",
"