Does LaTeX count as “programming”?

Today I wanted to talk about a common question I come across: Does LaTeX count as programming? Many people dismiss this question directly with a no. But I say the answer is not that simple and depending on how you practice LaTeX can definitely be ‘yes’ much more than you might think! Also, something I really don’t appreciate is people meaning to  degrade LaTeX when saying using LaTeX has nothing to do with programming (because it does and most people who think that way have just never seen LaTeX being used more like programming). LaTeX is, strictly speaking, a programming language and Turing-complete. Or rather, LaTeX is a macro package for TeX which is the actual Turing complete programming language. The typesetting-specific tools LaTeX provides probably can’t, however, be considered a full programming language on their own anymore. You could theoretically do anything with it, though it might just not be the easiest possible way to accomplish your ends (unless

read more Does LaTeX count as “programming”?

Learning to program: Failing fast and error messages

Today I wanted to talk about error messages and why you should learn to love them. If your mission is to learn programming, they show you your weakness and tackling a weakness is always the fastest way to learn. This is why the whole discussion of fixing error messages quickly turns into a philosophical discussion of a way of life: Walking the  path of the Ninja requires you to fail fast, early on, and often. Let me tell you why… Should you care about error messages and warnings? Are they secret messages from the universe? Yes, they are. If you’ve never given a hoot about errors and warnings in your life, congratulations. I don’t either. That is, until the thing doesn’t compile anymore. I am at awe with respect for people who fix mistakes before they become a problem. But I’m not one of them. What does this mean, however, with regard to your attitude towards failure? It probably means

read more Learning to program: Failing fast and error messages

Looking at data with the eyes of a Humanist: How to apply digital skills to your Humanities research questions

In my recent post on how to get started doing DH, I basically said that the essence of being DH is looking at data with the eyes of a Humanist and gave some tips on how to get started in just 10 days. However, it’s not that easy. Learning digital skills and the problem of skill transfer A problem I see a lot is that H people fail to transfer their newly won practical DH skills to their own research questions. They don’t know how to look at their own material as data. They don’t know how to leverage digital methods to help answer their own research questions. But if it isn’t compatible with their own research, they’ll never deepen their knowledge enough to actually profit from their DH skills. If you don’t use them, they are forgotten quickly. So how do you make this transfer which I think is, so far, being neglected as a skill which has to

read more Looking at data with the eyes of a Humanist: How to apply digital skills to your Humanities research questions

Learning Programming from Video Tutorials

In these times of corona crisis, I have been receiving many offers for online programming tutorials in my inbox, so I wanted to give my views on one type in particular, that is learning from videos. I’ll share what I think are pros of learning programming watching videos, as opposed to, for example, text-based tutorials like blog entries or books, or also in-person trainings. Pro: Learning by imitation or watching someone else do it at first is a natural way to learn Using video tutorials, you don’t need to run the code yourself to see its results, which is fair, I think, when just quickly going through a tutorial or you’re at the very beginning of your programming journey where even installing a new software might still seem daunting. Generally, you should experiment for yourself and try to tweak example programs but at the same time, you don’t need to overdo it for something you just quickly want to look

read more Learning Programming from Video Tutorials

Formulating Research Questions For Using DH Methods

In the feedback forms I did on the DH classes I have taught over the last years, I got one feedback I didn’t expect: People were extremely grateful I had practiced with them how to formulate valid research questions which, apparently, no one had ever (really) done with them before. I found that quite astonishing because the DH are all about methods and methods are like specizalized tools. You need to know what you can use them for. So here’s the crashcourse. The Hammer and the Nail I want to start off with an analogy. A hammer is a specialized but not an extremely specialized tool. You can use it for a range of tasks, however, not all tasks are going to work equally well. Some might work but would actually require a more specialized tool if you had one. You can really use the hammer on about anything and almost always, something is going to happen. For example, you

read more Formulating Research Questions For Using DH Methods

A Book Review of ‘Ultralearning’

Today, I wanted to share a little book review: Scott Young, Ultralearning: Master Hard Skills, Outsmart the Competition, and Accelerate Your Career, Harper Business 2019. (Book website) It won’t be an exhaustive review, but mostly about my one key insight and some reflection on it. If you want a summary, there are countless ones readily available out there already. The following quote sums up the spirit (and main claims) of the book quite well, but it’s really a book packed with solid methods, not just promises: Is it really possible to get an MIT-level education without attending MIT? Or to learn a new language to the point of becoming fluent and conversant in just three months? Or to develop your own video game from scratch and make it a commercial success without being a professional game developer working for a big studio? (source) Apart from the fact that the whole philosophy of ‘Ultralearning’ can be seen as somewhat problematic (see

read more A Book Review of ‘Ultralearning’

Learning to program: What to do if the program doesn’t compile

In this new year, I wanted to make an introduction to programming which mentions all the parts which (albeit being quite essential) many of the other tutorials, books and teaching documents tend to leave out. Things like “How do I even start debugging?” or “How to not lose it if my program doesn’t compile or when nothing works anymore?”. I was fortunate to get taught these skills by friends and helpful colleagues but if you’re a remote-only learner and don’t have access to such people – this series is for you. In this first post, I’ll address the problem that you’re in a situation where your program does not work at all. In the case of LaTeX, this means it won’t compile. Other programming languages which are not compiled will just not run. So what do you do in that dire situation? Step 1: Take a deep breath Stay calm. I repeat, stay calm. Take a deep breath. It’s just

read more Learning to program: What to do if the program doesn’t compile

Strategically Using Search-And-Replace for LaTeX documents. Part I

In an earlier post, we talked about the perks of using search and replace wisely on XML documents. Here I want to argue that search and replace might be even more powerful when used in LaTeX.   The power of search and replace Imagine your thesis advisor decides last minute that they don’t like the way images are typeset in your thesis. It happens. We are speaking from our friend the Noob’s experience here. So imagine your advisor decides the images in your archaeological catalogue are too small, at the very last minute. In Microsoft Word, problem No. 1 you would have already encountered before now is that the document probably wouldn’t even open anymore (what with 200 pages full of images etc.). The second problem would be that you’d have to change each image size by hand, clicking and dragging around, cleaning up after the horrible mess and destruction your changes are leaving behind. In LaTeX, thanks goodness we

read more Strategically Using Search-And-Replace for LaTeX documents. Part I

Tracking your progress to make New Year’s Resolutions stick

Many people make New Year’s resolutions. Whether they are to lose weight, exercise more or learn a new skill, they often fail. In this post I want to show what pitfalls can be and suggest some good ways of making resolutions stick. Problem: Not having clear actionable goals If you’re not following through on your goals, that might simply be due to a lack of clarity about what they are. For example, “Learn X” is a bad goal because it doesn’t state what exactly you’ll do to learn X, which methods you use, how long you’ll practice or when and where. Swap unclear goals like these with something very concrete and plan when you’ll do it. Is it supposed to become a habit part of your pre-existing daily routine (recommened) or do you see it like an appointment? Then put it in your calender (on auto-repeat so it gets scheduled every week). (You can read some more about this here.)

read more Tracking your progress to make New Year’s Resolutions stick

Understanding Scalability and Relative Values

What is the difference between 12pt and “format as heading“? Between 50px or 0.5\textwidth? Most of us know that we should always prefer relative to absolute values. But many who are new to webdesign or LaTeX don’t really get why. All of us who typeset papers and conference proceedings know that years of using MS Word does not necessarily teach you that difference either. This short post will try to remedy this in a quick and painless way 😉 In a WYSIWYG texteditor: Fontsize 12pt or “Format as Heading” In the case of a text editor, it is advisable to use the format templates rather than manually changing headings and so on for simple reasons: The information is stored as markup and if we tell the program what we want formatted as a heading, the machine gets semantic information about the text. Most people will understand that something is meant to be a heading when the font size is manually

read more Understanding Scalability and Relative Values

Learning from ‘Computer Books’

I just uncovered this book review on William E. Shotts Jr., The Linux Command Line: A Complete Introduction (No Starch Press 2012) I left as a half-done draft months ago. In it, I found a long collection of thoughts on learning programming from books and what common problems are. The book review will still follow at some point, but these are some of the examples of common problems with ‘computer books’. The typical computer book: a long detail-rich, reference-like read I like the Intro to the Linux commandline a lot, but also found that it was very long in pages but the content isn’t super dense. So it was a very long read and I’m always ambivalent about books which are reference-like and super-long. I am a person who likes to read and even I put off reading this book for a long time. I read a chapter every morning while having breakfast. Some chapters I just skimmed because they didn’t contain

read more Learning from ‘Computer Books’

Algorithms, Variables, Debugging? Intro to Programming Concepts

Since I am about to prepare a workshop on natural language processing and a pre-workshop-workshop where I need to quickly/crashcourse introduce my (non-digital) Classicist friends to some basics on programming, let me share a list of programming concepts I compiled with you. I would be happy for your suggestions and comments regarding mistakes. I will probably publish this together with some key concepts of quantitative text analysis (blogpost to come) on a cheatsheet or as slides for you later 😉 Intro to key concepts of programming This list of concepts is not super-structured and meant to work as a ‘reference tool’ as well as a text to be read, so I tried to give it a more or less useful ‘chronology’, meaning that later parts kind of build on earlier ones. I start off with what a computer program or algorithm actually is and how we translate between source code (the code we write) and the code which gets fed

read more Algorithms, Variables, Debugging? Intro to Programming Concepts

Is learning how to program like learning a foreign language?

Is learning how to program like learning a foreign language? Well, it’s a definite “yes and no” from me. I think many people oversimplify this. And then they say that their programmer friends think the same way to ‘prove the point’. Mostly I bite back the question of how many ‘real languages’ the programmer friends have learned or even learned to a native-like level. Because I think that there are some quite important differences. Since I just read this brilliant article The Ancient Case Against Programming “Languages” by Patrick J. Burns on Eidolon (Apr 24, 2017), I thought I could contribute some of my thoughts on the topic as well. They stem less from the interest in not losing funding for second language education, but rather from some of my own experiences in “second language programming education” or whatever one might call it – the act of learning programming (in your 20ies at earliest) after having learned multiple natural languages as

read more Is learning how to program like learning a foreign language?

A systematic training progression for programming?

As some of you might know, I am currently a fellow, aka at my personal writing retreat at Wolfenbüttel. And I decided to combine this with some sort of a training camp for my bouldering progress because you do need to have some breaks from writing during the day anyway and I can’t always watch Bones or create CV templates. You might have been following some of my bouldering on epigrammetry, the blog, or epigrammetry, the Twitter.   Training progressions in sports Also very few of you might know as well, I used to train a lot for long-distance running (10k) during my teens. So I know what training progressions are. I used to have detailled training plans, eating regimes, supplements to take and all that jazz. I stopped at some point because my immune system kept bullshitting me and as an ambitious person, I couldn’t take the idea of having to start from scratch after a half-year of being

read more A systematic training progression for programming?