* https://dabeaz-course.github.io/practical-python/Notes/Conte... by David Beazley --> covers foundational aspects of Python programming with an emphasis on script writing, data manipulation, and program organization
* https://python-patterns.guide/ by Brandon Rhodes --> inspired from Gang of Four book
* https://github.com/satwikkansal/wtfpython (this is more of a collection) --> Exploring and understanding Python through surprising snippets
Also, my ebook Python re(gex)? covering re and regex modules is free to read online: https://learnbyexample.github.io/py_regular_expressions/ (pdf/epub is paid, available via leanpub/gumroad)
It's published in dead tree form by O'Reilly, but the authors also made it available online and gave it a CC-By-NC-ND license.
Full disclosure: I haven't read this deeply, but I've skimmed it, and it looks interesting enough that I want to read it deeply.
For example, chapter 1 discusses regex for searching (and potentially replacing) patterns in texts.
For Python I think you're lucky in how versatile and ubiquitous it is. I've found the best way for applying Python is "I want to learn x" and oftentimes 'x' is suitable or desired with Python.
In your case I can see search (as mentioned by someone else) as being useful. Also being able to make API requests for cases/documents that you may want to search or maybe save to a local db for later indexing. Speaking of indexing, maybe you may start looking into a bit of NLP.
My biggest piece of advice would be that if you really want to use Python, use it in a situation where it makes sense but could be accomplished a different way. Maybe that document request form that you were going to fill out via the UI can be done via an API endpoint you can write in Python. Instead of searching via 'Ctrl-F' write a small script that you pass document(s) to search and term(s) to search for.
Some potential areas of exploration you can think about:
- Natural Language Processing (nltk and SpaCy) - there are a lot of people trying to build tools to parse contracts, judgments, legislation and much else besides. You got a big pile of documents and you want to find every single mention of a company name in a stack of thousands of documents: time for named entity recognition. Similarly, in policing and in private sector fraud detection, natural language processing is being used to parse through the hundreds of pages of emails/texts collected from the average person's phone or laptop.
- automate work around office files - openpyxl lets you open Excel files, python-docx for Word files
- Simple web applications with Django. Django was built initially for making small projects to support journalists to enter data using an admin panel, then display it on a website. If you need a simple data collection tool, a small Django app may just do the job.
- If you're doing contract review or transactional work, DocuSign has an API. Automating workflows around that could allow you to be more efficient.
- I've ended up writing code to automate some of my email handling. Accessing your email using imaplib means you can write scripts that'll process email in ways that go beyond the simple email filters in Gmail/Outlook.
- If you're dealing with governments or regulators in pretty much any capacity, you'll probably end up wanting to do screen scraping eventually to automate the processing of data published on the web. Requests, BeautifulSoup and Scrapy are your friends for this.
- Notifications: if something is running in the background and takes more than a few minutes, I don't want to waste my time sitting and waiting for it or remembering to check it. On Mac, Linux and Windows there are tools to let you send yourself notifications... or you can use APIs to send yourself notifications via messaging apps like Telegram/Facebook Messenger, or (for a cent or two per pop) by SMS. There's APIs like Pushbullet and Pushover to plumb together mobile notifications for iOS/Android too.
- Time tracking: if I find myself having to account for my activities in, uh, small billable chunks at some point in the near future, you can bet I'm doing what I can to automate the hell out of that.
Before "life hack" meant "a silly thing you learned on BuzzFeed that you'll never actually do", it was used to refer to the often rather hacky set of tools and scripts used by software developers to be productive, and to glue together and make sense of their information dense lives. There are non-tech professionals who are using coding skills to automate their professional practice - like accountants building their own homemade document processing systems by cobbling together Dropbox/Google Drive/etc. with little scripts and cron jobs (etc.), and if you can get good at that, you've basically got a superpower that many of your colleagues won't have, and you've also got domain knowledge software developers don't have.
- NLP applications, many practitioners and judges may not trust the software especially if implemented by a hobbyist and prefer many paralegals review manually. I'd pursue this more out of interest or to solve a personal workflow issue but be wary of generalising unless it becomes your main focus.
- Integrations with word/excel can definitely be useful. I wrote a bunch of simple VBA add-ons in Excel to help with mundane parts of managing a large e-discovery. But I found it a real slog to learn the word/excel specific stuff, so wouldn't recommend it as a first hobbyist project.
- Learning how to ingest various docs and do regex saved me the most time. If you do a lot of e-discovery and your firm's platform of choice supports regex just learning that grammar is probably the best bang for buck. Downloading and searching a smaller number if files locally can also be good. Was always disappointed when the files I wanted were in a "secure" dealroom so I couldn't legitimately download or scrape them.
Getting text automation software wrong can have pretty horrible consequences. AI/ML tools should be an aid to proper review of documents, not a replacement for it.
It is not free, however.
Review here :
Personally I like a combination of a book and YouTube tutorial. For shell/Linux stuff I like to go to YouTube first, learn a little bit, and then go to the docs.