4 ms·
I think it's true, as the blog author notes, that although is a great deal of intro python material, there is a lack of discussion of what useful stuff can be d
by borepop 6y ago
I think it's true, as the blog author notes, that although is a great deal of intro python material, there is a lack of discussion of what useful stuff can be done with intermediate python skills. I've tried studying python three times now. Each time I get a little further, but also each time after a while I start to go "but what the heck can I do with this in my own life that is actually useful?" Probably it's a failure of my own imagination and/or simply a function of the fact that I work as a lawyer and so don't have any obvious examples in my head of how I'm going to use the code, but if I can't see even a potential application down the line I find it difficult to slog through the tedious work. I had originally got going in this area because I had a data-mining idea in mind, but that fell by the wayside.
- osdotsystem 6y agoYou have to get going with a project that gets you excited. Automate the boring stuff is one such book!
- borepop 6y agoAutomate the Boring Stuff is one of the sources I have used. I think perhaps I just need to be patient and keep at it and trust that I will find an application for the techniques.
- osdotsystem 6y agoPython has many many ways to be useful, it might just be a script. I have seen people with far less py skills than me use Python for a small Gui app or a simple script and they are very happy as it helped them. Try teaching what you know, it can make a big difference to someone and ... you will get new insights. You tried OpenSource?
- auxym 6y agoSince you are a lawyer: http://codingforlawyers.com/ http://codingforlawyers.com/ For example, chapter 1 discusses regex for searching (and potentially replacing) patterns in texts.
- borepop 6y agoInteresting, thank you.
- dandersh 6y agoI think your comment on intermediate skills is an important one. Personally it seems like there is often a dearth of intermediate resources to better understand and utilize the language. Maybe it's more complex use cases, patterns and best practices, advanced syntax (looking at you, Haskell), etc. 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.
- lawtalkinghuman 6y agoProgrammer turned law student here. 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.