I'm a PhD in English student, and I'm interested in (but very new to) DH. I will start working with TEI soon through a digital archive project I'm working on, so there's that. What other avenues should I explore in my quest to learn coding for the sake of DH research?
How did you learn to code?(9 posts) (7 voices)
Hi Leah - it helps to have a pretty good sense of what it is you want to be doing, I think. Otherwise, all of the tutorials one might follow quickly become too abstract.
Some folks have found codeacademy.com very helpful; it might be more useful for you, to start, to look at some 'how did they make that?' videos or articles: http://miriamposner.com/blog/how-did-they-make-that-the-video/ and http://dhcommons.org/journal/issue-1
The Programming Historian has lots of great stuff, and we're setting up a kind of community work-through-the-tutorials-and-annotate-them-where-things-get-tricksy (see http://literaturegeek.com/2016/02/02/DHannotates ). Depending on where you're starting from, you might also find things like workbook.craftingdigitalhistory.ca or themacroscope.org helpful (things I've written for my own class).
Here are a couple of tips:
1. Begin by learning html and css to code your own website (there are plenty of online tutorials, including codeacademy.com). After you get the basics, decide what else you would like to do and then Google "How do I do _________ in html/css"? (You fill in the blank.) You'll find plenty of answers online. Get used to this Google procedure; it's the best way to learn. Look especially for answers on stackoverflow.com.
2. TEI is overwhelming, and most projects only use a tiny bit of the schema. So it is best to have a specific project which requires only a few elements that are easy to understand. Eventually, you'll come across a situation that is not so clear, and for this you'll have to start reading the TEI guidelines. One helpful tip I've found is to go to a definition of an element like unclear in the index, scroll to the bottom to see an example, and then back to the top to click on the links to the chapter discussion. That's how I've gradually become much more familiar with how to apply the TEI Guidelines.
Hi, Leah! You might be interested in reading this collection of "how I got started" stories from the participants at a recent symposium on DH development (the NEH-funded UVa Scholars' Lab's Speaking in Code): http://codespeak.scholarslab.org/starting/ Some of these are more origin stories than steps to get started, but some might have some information that's useful (especially since the conference was focused on making tacit DH development knowledge more public).
There's also a Digital Humanities Slack (an online chat forum with specific rooms for chatting about DH questions, coding, teaching DH, etc.) you're very welcome to join via http://www.TinyUrl.com/DHSlack. It's a good place to ask questions if any come up as you're coding—or if you want recommendations for tools to build on or programming languages to use.
Replying to @Amanda Visconti's post:
As an add-on to Scott's #1: the Firebug extension (available for Firefox, can't remember if there's a Chrome version currently) is both a great way to learn about website HTML and CSS, and a fantastic tool to use everyday as a web designer. It lets you click on specific pieces of a webpage to see how they're coded, and it also lets you temporarily make changes to the webpage by playing with the existing HTML and CSS (e.g. you can visit the New York Times' webpage and alter its font type or color, change how articles are spaced, etc.). Sometimes taking an existing site and trying to alter it a bit is a good way of learning how it was built.
Wow, thank you all for the wonderful advice and resources. I am in a DH course at LSU right now, and I shared your responses with my classmates, who were also very happy for the practical tips. I have a network visualization project in mind, and I found beginning lessons on Programming Historian, so I might start there. If you are interested in what we're up to at LSU, we have a class website at http://engl7121s16.laurenacoats.org/, which includes our syllabus and weekly posts about our digital explorations. Thanks again!
I started my PhD last year and have been learning to code for it. My research is using R and I've taken a couple of online courses, I also found Matthew Jockers' book Text Analysis With R for Students of Literature helpful. There is a great online community for R with tutorials and how to videos, and Stack Exchage has been great for specific problems.
With TEI practice is key, working or volunteering on a project which uses TEI really helps. I've helped on the Letters of 1916 project which uses TEI encoding. Anyone can log in and transcribe letters, the transcription desk uses a small number of tags which helps you become familiar with a few before moving onto more complex examples.
There may be application/programming clubs on your campus that can be a valuable resource to help you learn a concepts, navigate coding issues, and expand your network of knowledgeable programmers.
As for resources.. here is a list our app club came up with during a meeting:
Learn to code links:
HTML & CSS
2. http://www.codeavengers.com/ websites, apps, games
learn realworld skills - pay for courses
programming in 3d env.
make iOS games. some of it is free but leads to paid courses. demo environment.
learn code by gaming -
Back end resources jsp tutorial java's answer to asp
high and low level programming tutorials
1. Jeroo. http://home.cc.gatech.edu/dorn/jeroo High school oop and java syntax
2. Grid world - (wikipedia) computer program case study written in Java for use with the AP Computer Science program. It serves as an example of object-oriented programming (OOP) http://apcentral.collegeboard.com/apc/public/courses/teachers_corner/151155.html
3. UIL competition (University Interscholastic League)
1. https://www.destroyallsoftware.com/screencasts 15 min informationally dense screen casts about a number of programming topics. Destroyallsoftware.com with Gary Bernhardt for the Batman funny video “Wat.”
2. http://www.mybringback.com/ very advert heavy but quick tutorials. popup blocker plugin reccomended for this website.
3. Obj.co did not get a link or description for this.
4. http://nshipster.com/ dovetail information about obj-c swift, cocoa
1. Pearson books
2. Murach series
3. one I missed (maybe O'Reilly in Nutshell series?)
4. http://www.sitepoint.com/ occasionally has good deals on subscription based e-books.
5. Stay away from "for dummies"
6. https://www.railstutorial.org/ web development with ruby on rails
hybrid mobile apps
C# and Xamarin
4. Cordova - APIs that allow a mobile app developer to access native device function
micro web-framework for Python
python microframework based on werkzeug and Jinja
web framework "for perfectionist"
pylon community for the framework
web app framework obj-j
building scalable network apps
platform for JVM-based systems and applications
Other links mentioned
Core data programming - automated solutions to common tasks associated with object life-cycle and object graph management, including persistence
$29 dollar a month tech/creative library
I've been unsure how to respond to this question, because it's so big and complicated.
All the tools and resources mentioned are right on, and you'll discover how useful they are for your specific purposes as you go along.
But, at the risk of bouncing off my personal experience, that doesn't say much about how I learned to code. I worked from a pile of O'Reilly books, and wish that I had all of the resources that are now available online. That's not how I learned, though. Those are tools to help give info and examples.
So. How did I learn to code?
First. Get to know how you learn. (skipping the 'to code' part)
Do you learn from following examples? Or do you learn from studying the abstract principles, and learning how to apply them? Or something else? The point is that the basic 'how do I learn' seems most important.
Okay, then, 'how do I learn to code' (which seems like the question underlying what you stated)
I'm a big fan of instant gratification. However you go at it, trying something that'll produce quick results that you can see and be proud of is great fun. It's not like an article for a journal where you wait ages for feedback. You can produce your own feedback by trying something and seeing immediately what the result is. Even if it doesn't seem directly related to upcoming project(s), that's a great way to learn. The more you do it, the more you'll be able to tackle bigger things, with more deferred payoff. It's like going through the training rounds in a game.
Be comfortable not knowing things. Then experiment to taste to learn them.
Maybe even take a cue from the creative writers, and seek out/form a coding group, just like writers get into writing groups. That's not something I did, but some experiences were close, and DH is ready to have those. Forums or dev lists for software or projects are a good approximation.
When in doubt, try it out!
You must log in to post.