Having authored a computer language for attorneys, you might think my answer to the question of whether attorneys should learn to code is an unqualified “Yes.” In truth, my answer is “It depends.” It depends on what you mean by code. It depends on who you mean by attorneys, and it certainly depends on what’s behind that should.
This is the first in a three-part series. The second part is here. If you make it all the way through, you will be a coder.
Disruptors, Liberal Arts Majors, and Pragmatists
Champions of the idea that attorneys should learn to code fall along a spectrum. On one end you have the Disruptors. They see the disruption that software and coding has inflicted on other industries and adhere to the mantra “disrupt or be disrupted.” If you push, they might admit that attorneys need not include all attorneys. However, they’ll be quick to point out that those who learn to code will find themselves with a competitive advantage. For the Disruptors, coding is a force multiplier, allowing one to become faster, better, stronger. For the Disruptors coding means doing what the professionals do: building production-ready scalable products that might just be the next big thing.
On the other end of the pro-coding spectrum stand the Liberal Arts Majors. For the Liberal Arts Majors, coding is logical thinking made concrete. They see the structure of coding as an analog to the law and legal argument. It sharpens the mind and so improves one’s lawyering. For them, asking if attorneys should learn to code is like asking if attorneys should read fiction. Although they may use their skills to automate repetitive tasks and streamline workflows, the impetus behind learning to code is one of self-improvement. They’re not rolling their own CMS.
It’s easy to dismiss arguments at the ends of a spectrum; after all, that’s where we find straw men. There are may ways for Liberal Arts Majors to sharpen their minds that do not require learning to code, and there is something to be said for leaving the construction of tools to the experts instead of Lawyer-Disruptors.1
It’s not often framed this way, but attorneys are information workers. Consequently, information technology is not some unrelated field. IT tools are quite literally the tools of our trade. We should strive for an ideal articulated by Tim Hwang, the “philosophy that the specialist should control their tools and not the other way around.”
This brings us to a point somewhere in the middle—that of the Pragmatists. For them, it’s important to know enough about how things work to call BS and separate the snake oil salesmen from the true miracle workers. Just as important, however, is that they have an understanding of what’s possible. This allows them to become faster, better, and stronger by seeking out the best of what already exists and helping the “experts” to build better tools. For the Pragmatists, learning to code is about literacy, not mastery. It’s about understanding the lay of the land, and this framing is harder to argue against than the extreme view embodied by Disruptors. After all, when we say everyone should learn to write, rarely are we arguing that everyone should write novels.2
Luckily for us, Disruptors, Liberal Arts Majors, and Pragmatists interested in learning more all start their journeys in roughly the same spot, even if their paths quickly diverge. So all are welcome here.
Learning to Code
We’ll set you up with a sandbox to play in. Then you’ll learn by doing. We’ll marry Google Form data with MS Word (think document automation), and you’ll get a chance to build your own Twitter bot (think @LOLSCOTUS).
Along the way, you’ll be introduced to Python, Jupyter Notebooks, APIs, and regular expressions, which, if you ask your coding friends, are all pretty big deals. To be clear, doing the homework accompanying these posts will make you a coder in the same way that jotting down a shopping list makes you a writer. Mostly, you’ll be learning nomenclature and following recipes. Small steps? Yes, but steps nonetheless. Where you go from there, and which camp you eventually join, is up to you.3
The next post will be coming out in two weeks, so you better get on top of your homework. It’s a simple “Hello, World!” That is, it’s a program with the sole task of printing the words “Hello, World!” Mostly it’s a way to make sure you have everything you need for the next post when we start to get “fancy.” If you have any issues following along, please let me know in the comments or on Twitter @Colarusso.
Homework: Install and Test Drive Project Jupyter
We’re going to be doing most of our coding in notebooks. Basically, a notebook is a programming interface that lives in your web browser. To run your notebook, you’ll need to install some software because although the interface lives in your browser, the code doesn’t run on the web. It runs on your computer. This will give us a good amount of freedom. Among other things, it will allow software on your computer, like Word, access to your work. So let’s get started.
- Download Anaconda. We’ll be using Python 3.5. Pick the version of the visual installer that corresponds to your computer’s operating system (i.e., Windows or OS X). If you have an older PC and aren’t sure whether your OS is 32 or 64 bit, you can check by following these instructions. Chances are, if you have a newer computer it’s probably 64 bit. Note: when you click to download the installer, you’ll probably see a prompt asking for your email. This is optional.
- Start the installation of Anaconda by double clicking on the file you just downloaded,
.exein Windows or
.pkgin OS X. This will launch an installation wizard. The default selections should work for our purposes though you may want to opt out of creating desktop shortcuts as we won’t be using them.
- After installing Anaconda, open your terminal (Mac) or command prompt (Windows) and type
jupyter notebook. Hit the enter/return key. If you don’t know how to open terminal/command prompt, here are some instructions for Mac and some for Windows.4 This will open Project Jupyter in your default web browser.
- In your Jupyter window, navigate to the file folder where you want to save your work. In the top right of your window, you’ll see a drop-down menu labeled “New.” Click on it and choose “Python 3.” Note: this will create a
.ipynbfile in the currently selected folder and open an Untitled notebook.
- You should see something like the image below. The cell preceded by
In [ ]:is where you will type your code.
- As you know, today’s program is simple. All we want to do is print the output “Hello World!” In Python 3, this is done by typing
print ()with your desired output inside the parentheses. So go ahead and type
print ("Hello World!")into the cell. Text has to go inside quotation marks.
- To run your code, make sure that your cursor is in the cell. Hit the run code button, the one that looks like the ‘next track button’ on CD player (right arrow with bar). This will run your code, and directly below your cell, you’ll see your output.
Congratulations! You have successfully run your first program. To exit, choose File and then click Close and Halt. Then close your terminal/command line.
If you want to play some more, see what happens when you type and run the following.
output = 1 + 2print (output)
Wait for it …
See you in two weeks.
Featured image: The Great Red Spot from NASA’s Voyager space probe, public domain.
I fear, however, those who argue against the Disruptors by equating information technology with other areas of expertise are missing something important. Eddie Hartman wonders why lawyers have the sense to hire carpenters but want to “build” virtual structures in code. Yet software is different. The analogy isn’t really that of homeowners and carpenters, but carpenters and tools. To be fair, Hartman did also point out that all humans should learn to code.
Hartman’s concern, I think, is that coding for lawyers, as pitched by the Disruptors, is a distraction and that it’s more likely to result in bad code than major breakthroughs. He worries that lawyers hear “learning to code” as implying that we won’t need or interact with coders. ↩
FYI, the Disruptors are house Slytherin. Not that there’s anything wrong with that. ↩
If you’re using Linux, I assume you’ve got this. ↩
Read the next post in this series: "Online Forms Meet Local Document Automation (Cut-and-Paste Coding)."