Today’s post is a quick introduction to version control as a concept and version control systems. It explains what they are and why you should be using them. I was just sending one of my best old-timey blogposts to a friend (How to quit MS Word for good), ended up re-reading it and realized that therein, I had promised that I would write a blog post on version control some day. And, if I’m not mistaken, I never followed up on that. So here you are, a short post on version control just to keep things going on the blog. What is Version Control? So I read this book a few years ago. The Complete Software Developer’s Career Guide: How to Learn Programming Languages Quickly, Ace Your Programming Interview, and Land Your Software Developer Dream Job by John Sonmez (Simple Programmer 2017). While I’m not that fond of its author anymore since I realized that he uses his platform to
Learning to program
This category is meant as a quick way to access the series on learning how to program. It’s useful for people wanting to learn LaTeX but, essentially, works just the same for any other programming language or computer skill as well.
The Right Mindset for Learning Challenging New Skills
In today’s post, I wanted to pick up again on a topic I had adressed previously in The most important book to read if you want to learn Digital Humanities, Computer Science, Maths, Programming or LaTeX. The general gist was that when you want to learn a new skill which you perceive as challenging or difficult, maybe even anxiety-inducing (up to a degree that you’re seriously doubting your ability to learn it all), the most important thing to work on before doing anything else is changing your mindset. Today I will elaborate what your self-image and/or identity has to do with that and how you can use it to your advantage when learning daunting new skills. Do you enjoy posts on learning and skill building? Let me know! I feel that people are actually enjoying my posts on learning how to learn because they generate likes months after they have been posted. I guess there really isn’t enough material out
read more The Right Mindset for Learning Challenging New Skills
The most important book to read if you want to learn Digital Humanities, Computer Science, Maths, Programming or LaTeX
Today I wanted to share a tiny book review of the book I claim to be the most important book you should read if you want to learn any technical topic but are unsure if you are up for it. The book I’m talking about is not Donald Knuth (although his books are highly recommended, especially if you’re a (La)TeX nerd!). It’s not even a computer book! I’m talking about: Mindset: The New Psychology of Success by Carol Dweck (New York: Random House 2006). The fixed mindset versus the growth mindset This will be a short post because Dweck’s message is simple. There are two mindsets, the ‘fixed mindset’ and the ‘growth mindset’ and which one you have greatly impacts your success in learning and self-development. The ‘fixed mindset’ assumes your abilities and talents are fixed. Thus, you are proud of what you’re good at because you link it to your personality (“I’m a person who is good at…”). But
Learning to program: Debugging – Where to start?
After a long hiatus, I’m back today with a post on how to develop the debugging skill. If you’re new to programming, we refer to the process of finding and solving errors in the code as “debugging”. It can be difficult to acquire this skill as a newbie when you have no idea what you should even look for. This post will help you out with a few hints. Why should I learn debugging? Most people who attend a programming class for the first time get quite the culture shock. Often, their identity had encompassed something like “good with computers”. Then they see what it’s actually like to interact with a computer as a superuser, i.e. someone who interacts with the computer not only in the way intended for users by product designers, i.e. mostly the Graphical User Interface (GUI). Often computer usage the superuser way means it’s entirely text-based (although you can learn the first steps to programming with
The most important tip for confident LaTeX newbies: Don’t reinvent the wheel! (and try a Minimal Working Example instead)
Today I wanted to address a common issue I see in troubleshooting LaTeX errors, on StackOverflow and in personal questions. It usually stems from newbies who aren’t yet aware of all the functionality provided by standard packages and thus, try to reinvent the wheel when something doesn’t work the way they expect. Why reinventing the wheel is a problem In my experience, even from me helping people with packages that I’m not all that familiar with myself, it’s always best not to reinvent the wheel (even if you succeed, the result is likely sub-par unless you’re actually really good at what you’re doing). Ask yourself if the functionality you want is something that’s likely to be a common problem. Then maybe somebody has already solved it in a comprehensive way! That’s what packages are for and that’s why they’re (hopefully) maintained by people who have given the problem at hand a good bit of thought. It is very likely that
Where can I *actually learn* programming? (as DH and otherwise)
To my great surprise, lots of people regularly ask me where I learned to program. I have lots of posts on the subject and even multiple categories on the blog concerning the topic but maybe they’re “too disguised” under obscure titles for willing learners to actually find them. So I decided to give you a short summary with the key takeaways of what I’ve written on the topic so far and the most important links – boths to my other detailled blogposts and also on the resoures I would recommend as of now. However, before the “short summary” of takeaways and suggestions for willing learners, let me start with a deep dive into the very personal side of the question “Where did you actually learn to program?”. Now where did I actually learn to code? A Disclaimer To answer the question “Where did I actually learn to program?”, we need to talk about my journey first. And.. Well, in order
read more Where can I *actually learn* programming? (as DH and otherwise)
Create your Tweepy/AWS-powered Twitter bot in a day
This post wants to convince you to try out creating a Twitter bot using Python Tweepy and AmazonAWS Lambda because it’s easy and fun. Of course, you can use any other utilities but Tweepy and AWS Lambda are the ones I tried. This is not a full tutorial but I can make one if anyone is interested. Inspired by the #100DaysofDH challenge In this post, I will just give you some basic Twitter knowledge, links for what you need to know to get it done and a link to the github of my #100DaysofDH challenge for which I implemented such a bot. If you want more guidance, please let me know. Also, read the post on the challenge because I noted down some restrictions I realized the Twitter automation guidelines impose on bots as I went along. In my example, I think I’m in fact doing one or two things which you actually shouldn’t do (I think bots shouldn’t like
read more Create your Tweepy/AWS-powered Twitter bot in a day
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 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 (a list of resources for these scenarios was already discussed here). 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
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
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