Skip to content

Commit 217ed3a

Browse files
author
Michael Foord
committed
Updates
1 parent 9bad3c6 commit 217ed3a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+3300
-3284
lines changed

.gitignore

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
.idea
2-
_site
3-
.DS_Store
4-
.jekyll
5-
.jekyll-metadata
6-
.bundle
7-
.sass-cache
8-
Gemfile
9-
Gemfile.lock
10-
node_modules
11-
package.json
1+
.idea
2+
_site
3+
.DS_Store
4+
.jekyll
5+
.jekyll-metadata
6+
.bundle
7+
.sass-cache
8+
Gemfile
9+
Gemfile.lock
10+
node_modules
11+
package.json

404.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
---
2-
layout: page
3-
title: 404 - Page not found
4-
permalink: /404.html
5-
---
6-
7-
Sorry, we can't find that page that you're looking for. You can try again by going [back to the homepage]({{ site.baseurl }}/).
8-
9-
[<img src="{{ site.baseurl }}/images/404.jpg" alt="Constructocat by https://github.com/jasoncostello" style="width: 400px;"/>]({{ site.baseurl }}/)
1+
---
2+
layout: page
3+
title: 404 - Page not found
4+
permalink: /404.html
5+
---
6+
7+
Sorry, we can't find that page that you're looking for. You can try again by going [back to the homepage]({{ site.baseurl }}/).
8+
9+
[<img src="{{ site.baseurl }}/images/404.jpg" alt="Constructocat by https://github.com/jasoncostello" style="width: 400px;"/>]({{ site.baseurl }}/)

LICENSE

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
The MIT License (MIT)
2-
3-
Copyright (c) 2015 Barry Clark
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy of
6-
this software and associated documentation files (the "Software"), to deal in
7-
the Software without restriction, including without limitation the rights to
8-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9-
the Software, and to permit persons to whom the Software is furnished to do so,
10-
subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2015 Barry Clark
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy of
6+
this software and associated documentation files (the "Software"), to deal in
7+
the Software without restriction, including without limitation the rights to
8+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9+
the Software, and to permit persons to whom the Software is furnished to do so,
10+
subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2020
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

README.md

+120-120
Large diffs are not rendered by default.

_advanced-python.md

+139-139
Original file line numberDiff line numberDiff line change
@@ -1,139 +1,139 @@
1-
---
2-
layout: page
3-
title: Advanced Python
4-
permalink: /advanced-python/
5-
---
6-
7-
A three day course covering advanced language features and various aspects of the wider
8-
Python ecosystem. Tooling, best practises and common use cases for the Python programming
9-
language. A fast paced course with plenty of lab driven exercises to ensure attendees
10-
really learn the material and techniques for themselves.
11-
12-
This is a course offered by Agile Abstraction, either in house on your site or on our
13-
premises. For more details and pricing get in touch [[email protected]](mailto:[email protected]).
14-
15-
This course makes a great follow up from [Practical Python](/practical-python) or courses
16-
like Python for data science that teach you the basics of the langauge. It's had great
17-
feedback from Developers, Testers, Data Scientists, Financial modellers and analysts
18-
who already use Python on a day-to-day basis, but need to know how to get even more
19-
out of the language.
20-
21-
This advanced Python training course will teach you additional techniques and features
22-
relevant to Python to help you realise its full potential as an elegant language for
23-
rapid development of test scripts and applications. Python is a dynamic object-oriented
24-
programming language. It offers strong support for integration with other development
25-
languages and tools, and comes with extensive standard libraries.
26-
27-
Python also serves as a great introduction to Functional Programming, allowing us to
28-
explore topics such as closures, comprehensions, generators and decorators. And of
29-
course one of the great strengths of Python is the extensive set of libraries. We take
30-
a tour of some of the more interesting libraries and frameworks available in Python.
31-
32-
1. REGULAR EXPRESSIONS AND STRING PROCESSING
33-
34-
Various advanced examples of using Python for working with text processing, including
35-
the absolute minimum every developer should know about unicdoe and byte-strings,
36-
everything the string class has to offer and how to make the best of regular
37-
expressions for pulling structured data of text and byte oriented data.
38-
39-
Discussion of other standard library packages and techniques for more powerful
40-
text processing including templating library and full blown parsers.
41-
42-
2. Understanding Python Assignment
43-
44-
Python namespaces, why they are such an important and key part of Python and how
45-
understanding Python assignement and Python namespaces makes it easier to understand
46-
Python the language.
47-
48-
3. ADVANCED OBJECT ORIENTATION
49-
50-
The full Python object model. Python from the inside out. Really understand Python
51-
objects and classes.
52-
53-
Inheritance, including multiple inheritance and the method resolution order (mro) and
54-
why it matters to you.
55-
56-
Language features like:
57-
58-
* class methods
59-
* bound methods
60-
* properties
61-
62-
and how they tie together, including real world use cases.
63-
64-
Metaprogramming, operator overloading and the Python magic methods. Really understanding
65-
Python as a language, bringing all the parts together. Build your own containers in Python,
66-
understand the power and limitations of the built-in containers and how to customize the
67-
behaviour of your own Python objects for easier use.
68-
69-
4. MODERN APPROACHES TO EXCEPTION HANDLING
70-
71-
Full Python syntax and features for exception handling, how best to handle exceptions
72-
including best practises for development and topics like logging.
73-
74-
75-
5. INSTALLING, DEPLOYING and DISTRIBUTING PACKAGES and SYSTEMS
76-
77-
``pip`` and ``pip freeze``, what every developer should know. A discussion of other
78-
Python tools like code coverage and alternative package installation and management
79-
tools.
80-
81-
82-
6. AGILE DEVELOPMENT WITH TDD IN PYTHON
83-
84-
The advantages of the Test Driven Development approach (test first) and writing effective
85-
unit tests with both unittest and py.test and using mock objects.
86-
87-
7. Organising Your Code
88-
89-
When code gets beyond a certain size using standard Python structural tools to
90-
better organise your code for refactoring, understanding, thinking about and
91-
distributing your code. Python modules, packages, API design and migrating between
92-
them.
93-
94-
8. ADVANCED LANGUAGE TECHNIQUES
95-
96-
Decorators, decorator factories, class decorators, iterators, generators and more.
97-
98-
9. FUNCTIONAL PROGRAMMING
99-
100-
A highly practical approach to functional programming in Python and why these are
101-
such important every day concepts in Python programmings. Both the theory and the
102-
practise.
103-
104-
* lambda functions
105-
* Higher order functions
106-
* nested functions
107-
* currying and partial applications
108-
* closures
109-
110-
10. A Data Science Overview
111-
112-
A brief overview of working with Numpy, Pandas, OpenPyXl, MatplotLib, and so on.
113-
114-
11. NETWORKING:
115-
116-
The requests library, the HTTP request response cycle, accesssing APIs and building API
117-
clients, Stream Sockets and server clients, Datagrams and UDP server and clients and
118-
more. Powerful techques for inter-process communication when working with concurrency.
119-
120-
12. WEB DEVELOPMENT
121-
122-
A full introduction to modern web development with the Flask web development framework
123-
including URL routing, view functions, templating with the Jinja2 library, security considerations, web forms and database
124-
integration with the SQLAlchemy ORM. How to write and create simple cross-team tools
125-
delivered across private networks following modern best practises.
126-
127-
13. THREADS AND CONCURRENCY
128-
129-
Threading and Multiprocessing libraries and the dreaded GIL. Why it matters and when it
130-
doesn't matter, including how to avoid the pitfalls with multiprocessing and with
131-
custom C/C++ extensions.
132-
133-
A dicsussion of distributed computing using techniques like message queues and distributed
134-
task libraries like celery.
135-
136-
14. WORKING WITH DATABASES
137-
138-
Connecting directly to databases from Python and using an ORM like SQLAlchemy to avoid the pain.
139-
1+
---
2+
layout: page
3+
title: Advanced Python
4+
permalink: /advanced-python/
5+
---
6+
7+
A three day course covering advanced language features and various aspects of the wider
8+
Python ecosystem. Tooling, best practises and common use cases for the Python programming
9+
language. A fast paced course with plenty of lab driven exercises to ensure attendees
10+
really learn the material and techniques for themselves.
11+
12+
This is a course offered by Agile Abstraction, either in house on your site or on our
13+
premises. For more details and pricing get in touch [[email protected]](mailto:[email protected]).
14+
15+
This course makes a great follow up from [Practical Python](/practical-python) or courses
16+
like Python for data science that teach you the basics of the langauge. It's had great
17+
feedback from Developers, Testers, Data Scientists, Financial modellers and analysts
18+
who already use Python on a day-to-day basis, but need to know how to get even more
19+
out of the language.
20+
21+
This advanced Python training course will teach you additional techniques and features
22+
relevant to Python to help you realise its full potential as an elegant language for
23+
rapid development of test scripts and applications. Python is a dynamic object-oriented
24+
programming language. It offers strong support for integration with other development
25+
languages and tools, and comes with extensive standard libraries.
26+
27+
Python also serves as a great introduction to Functional Programming, allowing us to
28+
explore topics such as closures, comprehensions, generators and decorators. And of
29+
course one of the great strengths of Python is the extensive set of libraries. We take
30+
a tour of some of the more interesting libraries and frameworks available in Python.
31+
32+
1. REGULAR EXPRESSIONS AND STRING PROCESSING
33+
34+
Various advanced examples of using Python for working with text processing, including
35+
the absolute minimum every developer should know about unicdoe and byte-strings,
36+
everything the string class has to offer and how to make the best of regular
37+
expressions for pulling structured data of text and byte oriented data.
38+
39+
Discussion of other standard library packages and techniques for more powerful
40+
text processing including templating library and full blown parsers.
41+
42+
2. Understanding Python Assignment
43+
44+
Python namespaces, why they are such an important and key part of Python and how
45+
understanding Python assignement and Python namespaces makes it easier to understand
46+
Python the language.
47+
48+
3. ADVANCED OBJECT ORIENTATION
49+
50+
The full Python object model. Python from the inside out. Really understand Python
51+
objects and classes.
52+
53+
Inheritance, including multiple inheritance and the method resolution order (mro) and
54+
why it matters to you.
55+
56+
Language features like:
57+
58+
* class methods
59+
* bound methods
60+
* properties
61+
62+
and how they tie together, including real world use cases.
63+
64+
Metaprogramming, operator overloading and the Python magic methods. Really understanding
65+
Python as a language, bringing all the parts together. Build your own containers in Python,
66+
understand the power and limitations of the built-in containers and how to customize the
67+
behaviour of your own Python objects for easier use.
68+
69+
4. MODERN APPROACHES TO EXCEPTION HANDLING
70+
71+
Full Python syntax and features for exception handling, how best to handle exceptions
72+
including best practises for development and topics like logging.
73+
74+
75+
5. INSTALLING, DEPLOYING and DISTRIBUTING PACKAGES and SYSTEMS
76+
77+
``pip`` and ``pip freeze``, what every developer should know. A discussion of other
78+
Python tools like code coverage and alternative package installation and management
79+
tools.
80+
81+
82+
6. AGILE DEVELOPMENT WITH TDD IN PYTHON
83+
84+
The advantages of the Test Driven Development approach (test first) and writing effective
85+
unit tests with both unittest and py.test and using mock objects.
86+
87+
7. Organising Your Code
88+
89+
When code gets beyond a certain size using standard Python structural tools to
90+
better organise your code for refactoring, understanding, thinking about and
91+
distributing your code. Python modules, packages, API design and migrating between
92+
them.
93+
94+
8. ADVANCED LANGUAGE TECHNIQUES
95+
96+
Decorators, decorator factories, class decorators, iterators, generators and more.
97+
98+
9. FUNCTIONAL PROGRAMMING
99+
100+
A highly practical approach to functional programming in Python and why these are
101+
such important every day concepts in Python programmings. Both the theory and the
102+
practise.
103+
104+
* lambda functions
105+
* Higher order functions
106+
* nested functions
107+
* currying and partial applications
108+
* closures
109+
110+
10. A Data Science Overview
111+
112+
A brief overview of working with Numpy, Pandas, OpenPyXl, MatplotLib, and so on.
113+
114+
11. NETWORKING:
115+
116+
The requests library, the HTTP request response cycle, accesssing APIs and building API
117+
clients, Stream Sockets and server clients, Datagrams and UDP server and clients and
118+
more. Powerful techques for inter-process communication when working with concurrency.
119+
120+
12. WEB DEVELOPMENT
121+
122+
A full introduction to modern web development with the Flask web development framework
123+
including URL routing, view functions, templating with the Jinja2 library, security considerations, web forms and database
124+
integration with the SQLAlchemy ORM. How to write and create simple cross-team tools
125+
delivered across private networks following modern best practises.
126+
127+
13. THREADS AND CONCURRENCY
128+
129+
Threading and Multiprocessing libraries and the dreaded GIL. Why it matters and when it
130+
doesn't matter, including how to avoid the pitfalls with multiprocessing and with
131+
custom C/C++ extensions.
132+
133+
A dicsussion of distributed computing using techniques like message queues and distributed
134+
task libraries like celery.
135+
136+
14. WORKING WITH DATABASES
137+
138+
Connecting directly to databases from Python and using an ORM like SQLAlchemy to avoid the pain.
139+

0 commit comments

Comments
 (0)