diff --git a/README.md b/README.md index a2eefac..31ebeb1 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,85 @@ -## Welcome to GitHub Pages +# Practical Python Programming -You can use the [editor on GitHub](https://github.com/dabeaz-course/practical-python/edit/master/README.md) to maintain and preview the content for your website in Markdown files. +When I first learned Python nearly 25 years ago, I was immediately +struck by the ease at which I could productively apply it to all sorts of messy +work projects. Fast-forward a decade and I found myself teaching +others the same fun. The result of that teaching is this +course--A no-nonsense Python course that has been actively taught to more than 400 +in-person groups since 2007. Traders, systems admins, astronomers, +NASA rocket scientists, and even a few software engineers--they've all +taken this course. Now, the course is available for all. Enjoy! -Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files. +--David Beazley (http://www.dabeaz.com) -### Markdown +## Prerequisites and Target Audience -Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for +The material you see here is the core of an instructor-led Python +training course. It is typically taught in-person over the span of +three or four days--requiring approximately 25-35 hours of work. This +includes the completion of approximately 130 hands on coding exercises. -```markdown -Syntax highlighted code block +The target audience is scientists, engineers, and programmers who +already have experience in at least one other programming language. No +prior knowledge of Python is required, but knowledge of common +programming topics is assumed. Most participants find the course +challenging--even if they've already been doing a bit of Python +programming. -# Header 1 -## Header 2 -### Header 3 +The goal of this course is to cover foundational aspects of Python +programming with an emphasis on script writing, data manipulation, and +program organization. The course does NOT focus on Python tooling, +IDEs, or third-party packages (i.e., it's not focused on using data +science libraries in Jupyter Notebooks or on how to deploy web apps). +It IS a course that aims to cover fundamental ideas about how Python +programs work and how they are organized. Students WILL have to write +functions and classes, work with code spread across multiple source +files, deal with modules, and solve various problems related to +refactoring. -- Bulleted -- List +To complete this course, you simply need a basic installation of +Python 3.6 or newer and time to work on it--especially the latter. -1. Numbered -2. List +## What This Course is Not -**Bold** and _Italic_ and `Code` text +This is not a course for absolute beginners on how to program a +computer. It is assumed that you already have programming experience +in some other programming language or Python itself. -[Link](url) and ![Image](src) -``` +This is not a course that aims to cover everything there is to know +about Python. There is only so much material you can cover in 3-4 days +before heads start to explode. If you're working through the material +and wondering "why isn't X being covered?" there's probably a good +reason--it was once included and it made everyone's head explode. -For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/). +This is not a course that simply covers reference material, tricks, or +recipes that you could just look up on [python.org](https://python.org), +Google, or Stack Overflow. Yes, there is a certain amount of reference +material to be functional, but the course is more focused on how to +work with and think about Python coding. -### Jekyll Themes +This is not a course for software engineers on how to write or +maintain a one-million line Python program. I don't write programs +like that and neither should you. Delete something already! +Python is a great language for personal productivity, prototyping ideas, +and hacking cool things together. The course is about doing THAT in +a way that's both practical and not too "hacky." -Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/dabeaz-course/practical-python/settings). The name of this theme is saved in the Jekyll `_config.yml` configuration file. +## Take me to the Course Already! -### Support or Contact +Ok, ok. Point your browser [HERE](Notes/Contents)! -Having trouble with Pages? Check out our [documentation](https://help.github.com/categories/github-pages-basics/) or [contact support](https://github.com/contact) and we’ll help you sort it out. +## Acknowledgements + +Llorenç Muntaner was instrumental in converting the course content from +Apple Keynote to the online structure that you see here. + +Various instructors have presented this course at one time or another +over the last 12 years. This includes (in alphabetical order): Ned +Batchelder, Juan Pablo Claude, Mark Fenner, Michael Foord, Matt +Harrison, Raymond Hettinger, Daniel Klein, Travis Oliphant, James +Powell, Michael Selik, Hugo Shi, Ian Stokes-Rees, Yarko Tymciurak, +Bryan Van de ven, Peter Wang, and Mark Wiebe. + +I'd also like to thank the thousands of students who have taken this +course and contributed to its success with their feedback and +discussion.