Learn Python Summer 2017

Are you sitting around thinking to yourself, golly, the bloggers at Commons Knowledge have not tried to convince me to learn Python in a few weeks, what’s going on over there? Well, no worries! We’re back with another post going over the reasons why you should learn Python. And to answer your next question no, the constant Python promotion isn’t us taking orders from some sinister serpentine society. We just really like playing with Python and coding here at the Scholarly Commons.

Why should I learn Python?

Python is a coding language with many applications for data science, bioinformatics, digital humanities, GIS, and even video games! Python is a great way to get started with coding and beef up your resume. It’s also considered one of the easier coding languages to learn and whether or not you are a student in LIS 452, we have resources here for you! And if you need help you can always email the Scholarly Commons with questions!

Where can I get started at Scholarly Commons?

We have a small section of great books aimed at new coders and those working on specific projects here in the space and online through the library catalog. Along with the classic Think Python book, some highlights include:

Python Crash Course: A Hands on Project-Based Introduction to Programming

Python Crash Course is an introductory textbook for Python, which goes over programming concepts and is full of examples and practice exercises. One unique feature of this book is that it also includes three multi-step longer projects: a game, a data visualization, and a web app, which you can follow for further practice. One nice thing is that with these instructions available you have something to base your own long term Python projects on, whether for your research or a course. Don’t forget to check out the updates to the book at at their website.

Automate Boring Stuff with Python: Practical Programming for Total Beginners

Automate Boring Stuff with Python is a solid introduction to Python with lots of examples. The target audience is non-programmers who plan to stay non-programmers; the author aims to provide the minimum amount of information necessary so that users can ultimately use Python for useful tasks, such as batch organizing files. It is still a lot of information and I feel some of the visual metaphors are more confusing than helpful. Of course, having a programming background helps, despite the premise of the book.

This book can also be found online for free on this website.

Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code

Although focused on Python 2, this is a book about teaching programming skills to newbie coders. Although the author does not specifically use this term this book is based on what is known in psychology as deliberate practice or “the hard way,” which is described in Cal Newport’s blog post “The Grandmaster in the Corner Office” (Newport, 2010).  And Learn Python the Hard Way certainly lives up to the title. Even the basic command line instructions prove difficult. But based on my own learning experiences with deliberate practice, if you follow the instructions I imagine you will have a solid understanding of Python, programming, and from what I’ve read in the book definitely some of your more techie friends’ programming jokes.

Online Resources

If the command line makes you scared or if you want to get started right away, definitely check out PythonAnywhere, which offers a basic plan that allows users to create and run Python programs in their browser. If PythonAnywhere isn’t your speed, check out this article, which lists the 45 best places to learn to code online.

Interested in joining an online Python learning group this summer?

Definitely check out, Advent of Python, an online Python co-learning group through The Digital Humanities Slack. It started Tuesday May 30 with introductions, and every week  there will be Python puzzles for you to help you develop your skills. IT IS NOT TOO LATE TO JOIN! The first check-in and puzzle solutions will be June 6. The solutions and check-ins are going to be every Tuesday, except the Fourth of July — that meeting will be on Wednesday, July 5.  There is a Slack, a Google Doc, and subreddits.

Living in Champaign-Urbana?

Be sure to check out Py-CU a Maker/Hacker group in Urbana welcome to coders with all levels of experience with the next meeting on June 3rd. And obligatory heads up, the Urbana Makerspace is pretty much located in Narnia.

Question for the comments, how did you learn to code? What websites, books and resources do you recommend for the newbie coder? 

Works Cited:

Newport, C. (2010, January 6). The Grandmaster in the Corner Office: What the Study of Chess Experts Teaches Us about Building a Remarkable Life. Retrieved May 30, 2017, from http://calnewport.com/blog/2010/01/06/the-grandmaster-in-the-corner-office-what-the-study-of-chess-experts-teaches-us-about-building-a-remarkable-life/

Online Resources for Learning Digital Humanities Skills

Learning new skills doesn't have to be a headache!

Learning the skills required for the digital humanities may require patience, but the payoff can be huge.

Learning a coding language or technical skill can seem daunting, especially when you’re not someone with a computer science background. All of the jargon, technical terms, and math may be a barrier to entry for people with a more traditional humanities background who may otherwise want to embark on a digital humanities project. Even for those who start, it’s easy to get stuck when you feel like every tutorial you try has you learning tricks for things you know you’ll never use, while you never seem to find any information about what you do want to learn.

While no tutorial is going to be the panacea to all your problems, here are a few places you can start your techy journey, created for people who may want to start slow and learn specific skills.

  • The Programming Historian — Full disclosure: I love the Programming Historian. Their lessons are written for humanities scholars by humanities scholars. No piece of jargon is left undefined, and their lesson format is both helpful for learning basics, but also explains why you will want to know this skill, and how it will be useful and relevant for the future. Lessons are presented textually, with pictures as examples. They also periodically offer practice questions for you to gauge your comprehension throughout many of their lessons.
    • Pros: Written by people who understand the way that you think, and explains the importance of learning these skills as you go along.
    • Cons: Presented as text. You do the work separately, and there’s no way to have your work checked by a program like it would be at Codecademy, or similar sites.
  • Tooling Up for Digital Humanities: Begun at Stanford, Tooling Up for Digital Humanities includes great overviews of text and spatial analysis, databases, pedagogy, and data visualization. If you need a place to serve as a glossary for terms, or just want brief overviews of what exactly the digital humanities are, and what you can do with the digital humanities, this is a great place to start.
    • Pros: Concise information regarding the main flagpoles of the digital humanities, presented in a familiar, unadorned style. Easy to read and digest, and includes introductions to major software and linking to further reading for what you may be interested in.
    • Cons: Started in conjunction with a series of workshops in 2011, the site is no longer maintained, and some information may be out of date.
  • TEI By Example: TEI By Example consists of online tutorials created to help humanists use TEI (Text Encoding Initiative). Tutorials are divided by subject, starting with the basics of TEI, then moving on to different humanity subjects, including prose, poetry, drama, primary sources, and critical editing. Each tutorial is split between the tutorial itself, an example, a test, and exercises. The really great thing about TEI By Example is that you can either go through all of the tutorials, or pick and choose what you want to learn based on either your expertise, or your interest.
    • Pros: User-intuitive and specific to the needs of digital historians. Presents information in a digestible but thorough way, and checks your work for you.
    • Cons: Stopped being maintained in 2010, and the user-interface shows its age. Information could also be out of date.

There are so many projects that a digital historian can take on, and nothing should stop you except for your imagination (or maybe your lack of grant money, but that’s a different story). While you need to learn the basics, that’s no reason you can’t tailor your experience to help you focus on what you really need, and keep from frustrating you with things that you don’t.

Remember, if you want to get started with a digital humanities project, or need help with a current one, you can always come to the Scholarly Commons, open 9 AM – 6 PM, Monday-Friday, or email our digital humanities experts, Eleanor Dickson and Harriett Green.

Explore coding and other technical skills with free online resources

Computer programming and other technical skills are increasingly in demand, both in academia and the private sector. Fortunately, as these skills have become more central to all sectors and industries, a wide variety of resources for learning these skills have emerged. In this post, we’d like to highlight just a few resources for getting started with programming

Codecademy is one of the better known online resources for learning programming languages and other technical skills. When you explore the site, you’ll see that it has courses divided into different categories, including web developer skills, languages, and simple projects (for instance, how to create an animation of your name). Each course is divided into several units, which are further divided into lessons that are built in a step-by-step manner. Lessons often begin by introducing the basics of a concept, and then having you apply the concept by walking through a simple procedure. For instance, the JavaScript course introduces functions, and then has you create a simple “rock, paper, scissors” game that is built out of functions.

One downside to Codeacademy is that, due to its step by step design, you may feel that you aren’t acquiring an understanding of the relevant concepts at the level you desire. So depending on your learning style, you might want to consider supplementing Codecademy with other resources.

One option would Lynda.com. Lynda offers video tutorials on a wide variety of topics and skills, with a focus on software and technical skills. For many topics, beginner level tutorials are offered. These provide a general overview of the subject matter, along with accessible explanations of key concepts. Lessons of this sort may serve as a nice complement to a more hands on, step by step, setup, such as that offered in Codecademy. University of Illinois students, faculty, and staff have free access to Lynda’s resources. To log in with your Illinois credentials, visit go.illinois.edu/lynda.

If you’re simply interested in familiarizing yourself with common programming terms and concepts, check out MIT’s Scratch. Scratch is a programming language and online community where you can create your own interactive stories, games, and animations. Scratch is, admittedly, designed with children in mind (in fact, it’s a project of the MIT Media Lab’s Lifelong Kindergarten group). Nevertheless, it can serve as a wonderful resource, especially for those completely new to coding (and I can report from first-hand experience that it is used in at least one class at the iSchool at Illinois). It can also be a lot of fun!

An image of a simple (and very clunky!) maze game I made for one of my classes using Scratch.

A simple (and very clunky!) game I made for one of my classes using Scratch. Scratch is developed by the Lifelong Kindergarten Group at the MIT Media Lab. See http://scratch.mit.edu.

If you would like some one-on-one assistance with programming projects, you can drop by the Scholarly Commons for Data Help Open Hours, a joint service of the Scholarly Commons and the Research Data Service. In addition to getting help with Python coding, you can get help with R, SQL, and XML. If you’re ready to go more in-depth, check out our reference collection which contains books on Python, Java, R, and many more topics.

Do you know of any other good resources for learning to program? Let us know in the comments below!