Learning to program: How to master a programming language fast

I’ll write a summary about my experiences at this weekend’s TeXUsersGroup conference (#TUG2020) soon but today I wanted to share this post I had already prepared and scheduled: about ways to accelerate mastering a programming language. Of course, I can’t guarantee this will work for you and ‘fast’ is always relative. You can do a fast 3-day-binge but not really have mastered the language (obviously). Fast in terms of actual programming language mastery could mean a year or two, depending on your previous knowledge with programming. But enough of the disclaimers, let’s get to it! Learn as you go My first tip is to learn as you go, that means on the one hand that you jump into it without expecting from yourself to acquire all possible theoretical knowledge first. This ensures you get practice fast. It will let you use the language rightaway and only learn things you’ll actually use. That’s how I suggest you start using Linux by

read more Learning to program: How to master a programming language fast

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

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

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

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

How to improve at programming when your current position doesn’t require it & Online Learning Resources

fHave you ever felt like you would like to get better at programming, maybe even get a position involving more programming some day but the fact that you currently don’t really need it at your current position seems to hold you back? This post is for you. Daily practice is key for improvement You need daily practice if you actually want to improve. You already need daily practice just to keep your skills sharp during a time where you don’t need to use them. Also, if you don’t even have programming skills yet, you probably are too tired after work to sit down and work on a private programming project for a meaningful amount of time. But you should. Programming is a skill which takes a long time to learn. That is, if you want to reach a decent skill level. This means that you have to start regular practice long before you actually need that skill or need to

read more How to improve at programming when your current position doesn’t require it & Online Learning Resources