├── .DS_Store ├── README.md └── images ├── .DS_Store └── pfllogo.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thisisthejay/Programming-for-Lawyers/90631792d31e0a0fecea13d3666dca2bab6b2334/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Programming for Lawyers 2 | 3 | An introduction to programming for lawyers! 4 | 5 | _N.B. This programme is open to everyone but has been designed with an emphasis on helping lawyers at Thrings LLP learn how to code._ 6 | 7 | ![Banner](/images/pfllogo.png) 8 | 9 | ## Welcome 10 | 11 | Hello and welcome to the programme. This repository will evolve as we progress and is intended to be shaped to our collective needs. I hope to collaborate with lawyers who are either experienced programmers and those who are ready to explore new ways or working and, importantly, new ways of *thinking*. 12 | 13 | I wrote an article about why I think lawyers have the ability (at least in theory) to be good programmers. You can read it [here](https://medium.com/datadriveninvestor/why-lawyers-should-make-great-developers-155f73304d0). I have since met and connected with lots of lawyers who code, coders who practice law, lawyers who (like me) have started LegalTech companies and everyone in between! 14 | 15 | At a high level, I hope to explore the following disciplines with you which are *shaping the future* of legal work: 16 | 17 | - automation 18 | - artificial intelligence 19 | - smart contracts 20 | 21 | 22 | The objective of this programme is not to become a software developer. There are better resources for that if you are so inclined which I will mention below. Rather it is to spark your enthusiasm for programming and ultimately, empower you to become a **_more effective lawyer_**. 23 | 24 | So, let's begin. 25 | 26 | #### A little bit about me 27 | 28 | I'm Jay, a lawyer and coder. I'm not particularly keen on titles but I gravitate towards what some people describe as a "legal techologist". I read Economics at university and started my career in law as a paralegal shortly after graduation. I've since qualified and practice as a Private Client lawyer. I began my coding journey a few years ago and it has been extremely rewarding and fulfilling. I now work in the Private Client and Blockchain teams at Thrings. For the latter, being able to read and interpret smart contracts will be invaluable (more on that in later chapters). But this isn't just about my journey - it's about yours! 29 | 30 | I'd love it if you connected with me on Twitter - my handle is [@_thisisthejay](https://twitter.com/_thisisthejay) - and on [LinkedIn](https://www.linkedin.com/in/jermainepaulsmith/) if you have a profile. 31 | 32 | ### Equipment you will find helpful 33 | 34 | In order to access the resources shared in this programme, I recommend that you have: 35 | 36 | - a computer 37 | - a smartphone 38 | - a fast internet connection 39 | - headphones 40 | - a notebook 41 | 42 | ### Setup recommendations 43 | 44 | The initial part of the programme won't require any installation of software. But you may want to work at your own (perhaps faster) pace so I have set out some options below. 45 | 46 | *N.B. You can come back to these recommendations later and get started with [Chapter 1](#chapter-1) after creating your GitHub account and only if you are ready to dive in.* 47 | 48 | #### Create a GitHub Account 49 | 50 | You should setup a [GitHub](https://github.com/) account. GitHub is platform where code is stored and shared for projects big and small - just like this one. Having an account will be useful as you can use it as a gateway to a large number of programming resources. By having a GitHub account you won't have to have uniqiue login credentials for other websites you use where GitHub authentication is supported. 51 | 52 | You'll discover as we progress that GitHub is referred to in a lot of resrouces and it is important to become comfortable with it and the underlying *version control* protocol itself called Git. 53 | 54 | #### Install a code editor 55 | 56 | You can write code in simple text editors but your experience will be enhanced if you use a code editor. There are some such as [repl.it](https://repl.it) and [codepen](https://codepen.io) which are browser based where you don't have to download anything to your computer to write code. These are really useful tools particularly for small examples, sharing code or where you are working on a work laptop and cannot install applications yourself. We will explore browser based code editors where needed. 57 | 58 | You may find that eventually you reach the contraints of browser based code editors and want to install something locally. _I recommend that you install_ [VS Code](https://code.visualstudio.com/download) - it is a superb free code editor and has a lot of tools and plugins to boost your productivity. 59 | 60 | #### Preparing for success 61 | 62 | Most people are very capabe of learning new complex subjects. What stops the majority of people from achieving meaningful results is not their learning aptitude but their ability to manage their time and motivation. 63 | 64 | If, like me, you have a number of other commitments (such as work, family life and maintaing your health) it can be overwhelming to begin a new challenge - particularly one which is self-led. 65 | 66 | Here are my top 3 tips: 67 | 68 | **(1) Code little and often** 69 | 70 | It is better to code for 5 hours over 5 days than to spend all day on a weekend bingeing. Developing a regular *habit* will serve you well and make learning more manageable. 71 | 72 | I recommend that you read or listen to [Atomic Habits](https://jamesclear.com/atomic-habits) by James Clear. 73 | 74 | Setting aside a regular time in your day or throughout the week will help you and manage the expecations of other people around you. My most productive learning phase was when I used my lunchbreaks for around a year to complete freeCodeCamp's JavaScript exercises. 75 | 76 | **(2) Determine "why" you want to learn to code** 77 | 78 | Focus on *why* you want to learn to code. Don't just do it because you think it's cool or because you don't want to focus on another important goal. 79 | 80 | My own "why" was that I was extremely frustrated at: 81 | 82 | - being unable to build my ideas without paying someone to help me 83 | - not leveraging resources I had access to at work 84 | - not maximising my productivity 85 | 86 | Once you understand *your* "why" you will give it the priorty it deserves (or move on to something else more important). 87 | 88 | **(3) Be accountable** 89 | 90 | If you are able to, I recommend that you pair-up with a friend or colleague to learn with. Learning with someone provides a point of reference for sharing ideas, challenges and some external pressure to keep you motivated. 91 | 92 | There are two further concepts which helped me become accountable. These are: 93 | 94 | - taking the [**#100DaysOfCode**](https://www.100daysofcode.com) challenge (coding for 1 hour a day every day and tweeting your progress) 95 | - learning in public [**#learninpublic**](https://www.swyx.io/writing/learn-in-public/) (publicly sharing the knowledge you acquire as you learn) 96 | 97 | 98 | ## Chapter 1: An introduction to Python 99 | 100 | *This Chapter should take around 7-10 hours to complete.* 101 | 102 | If we are going to learn how to code, we must pick a programming language! Python is an excellent choice for, particulalry for lawyers. Python is an appealing choice for a number of reasons, for example it: 103 | 104 | - has a shallow learning curve 105 | - is versatile 106 | - is popular for automating tasks 107 | - has large number of libraries 108 | - can be used for AI and data science 109 | 110 | ### Learning the fundamentals 111 | 112 | It is important to start with the fundamentals when learning any programming language, particularly if you've never written code before. 113 | 114 | **Required**: Take this [free online Python course on Codecademy](https://www.codecademy.com/learn/learn-python). This course uses Python 2 but will be sufficient for learning the fundamentals. 115 | 116 | **Optional**: Take this [free online Python course](https://scrimba.com/course/gpython) on [Scrimba](https://scrimba.com). Scrimba is a hybrid video tutorial / code editor. It's important to get used to typing code and Scrimba allows you to do this while you follow along. 117 | 118 | **Recommended**: The University of Harvard released a free Computer Science video series covering Computer Science topics. The videos are targeted at lawyers and will provide a solid foundation. You can watch the videos for free on [Youtube](https://www.youtube.com/playlist?list=PLhQjrBD2T380CIOjHCjIAugO3ryncp6IW) (10+ hours). 119 | 120 | **Bonus**: If you want more video resources then I recommend this [Python Crash Course](https://youtu.be/JJmcL1N2KQs) by Brad Traversy. You should also read this [Python Handbook](https://www.freecodecamp.org/news/the-python-guide-for-beginners/) on [freeCodeCamp](https://www.freecodecamp.org) alongside the above course. 121 | 122 | 123 | *N.B. I will be learning along with you as I only recently began exploring Python. We are in this together!* 124 | 125 | ## Chapter 2: Your first (small) project 126 | 127 | The best way to learn how to code is to build applications. Having explored the fundamentals of Python, you are now ready for your first small project. 128 | 129 | ### Getting data from an API 130 | 131 | The first project is to use your IP address to confirm when the International Space Station will pass over your (or your servers!) location. 132 | 133 | _Hint:_ I created a [repl](https://repl.it/@mrjaypeasmith/Python-API-demo) to show you the code. 134 | 135 | **Watch** [this video](https://www.youtube.com/watch?v=eBnnOwjcHw4&t=13s) first and then try re-creating your own. You can create the same application or, for extra credit, find an API on [this list](https://github.com/public-apis/public-apis) to create something with. 136 | 137 | 138 | ## Chapter 3: Automating tasks at work 139 | 140 | .....coming soon 141 | -------------------------------------------------------------------------------- /images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thisisthejay/Programming-for-Lawyers/90631792d31e0a0fecea13d3666dca2bab6b2334/images/.DS_Store -------------------------------------------------------------------------------- /images/pfllogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thisisthejay/Programming-for-Lawyers/90631792d31e0a0fecea13d3666dca2bab6b2334/images/pfllogo.png --------------------------------------------------------------------------------