Learning coding update
June 19, 2016
I have neglected this blog for a long time but I have been keeping busy.
First of all I finished my dissertation, something I will talk about in another post. Alongside finishing up my dissertation I have also been working on a couple of other projects. I have recently had a lesson published on the Programming Historian. The lesson is an introduction to version control using GitHub Desktop. I found the experience of writing something for Programming Historian to be a useful insight into potential for alternative forms of publishing. I also learned more about trying to write useful technical lessons though I could still do with more practice. I would heartily recommend the site for anyone wanting to explore digital humanities tools. The site also has a lot of information that would be relevant for librarians.
In an old post written as part of my City course I mentioned that I was keen to learn some basics of coding. In particular I tried to understand some Javascript in the post. Since then I have made a fair bit of progress with learning to code and make more effective use of computers more generally. This includes:
- getting to grips with using the command line
- making use of loads of command line tools
- understanding version control using git - though there are still more complicated aspects of this that I could do with understanding better.
- the basics of Python
One of the things I spent quite a bit of time considering when I first started out was where to begin. I was keen to learn skills that would be useful to me in a professional context and although there are some resources out there for librarians wanting to learn to code they are still fairly limited. This is something I am keen to contribute towards addressing in the future but I found the following things useful as a starting point.
Learning the command line
Although not essential, understanding how to use the command line will make using so many other tools so much easier. It will also open you up to a ton of tools that are only possible to use from the command line. Even just learning the basic unix tools one the command line can save so much time over the ‘traditional’ manual way of carrying out many tasks like renaming or organising a big collection of files. Many digital humanities tools, or small tools for doing things like converting marc files can be easily installed and used on the command line once you are familiar with the common syntax. Learning to use the command line will also give you a better understanding of how your computer works and is organised.
Understand version control
A basic understanding of version control is a useful skill to have. Version control won’t often give you much instant gratification but it is a skill that will prove useful in the long run.
A programming language
A lot of time can be wasted googling ‘what programming language to learn first’. I’m definitely guilty of having done this. I think the best way to decide is to see what languages tools you like are written in. If there are no tools you particularly want to use then I would think about what you want to do with code. If you are interested in doing web stuff then Javascript is an obvious choice. If you are interested in doing almost anything else I would go with Python. There are a bunch of reasons for this. Firstly, it is very widely used for digital humanities and digital library tools. Beyond this it has a huge library of packages available (existing code that you can build upon). This makes Python very versatile. I have focused a lot on the data and text analysis side of Python but you can also write web apps, make useful scripts and do most things you could do in other languages. There is also a great community and loads (really loads and loads) of free and paid for resources covering both the general features of the language and more specific applications.
I am planning to write up a list of resources in another page and will link when I have uploaded that. In the meantime a google search will get you started. Diving into a codeacademy is a good way to get a feel of Python before finding some more focused and practical resources.
Hopefully the above is useful for people keen to get stuck into coding in a library/digital humanities context.