Skip to content

Latest commit

 

History

History
175 lines (125 loc) · 3.26 KB

index.rst

File metadata and controls

175 lines (125 loc) · 3.26 KB

Advanced Python

This coursebook is for you if you want to write programs with more than 1000 lines.

You feel comfortable with writing basic Python code, but have realized that creating a piece of software is more complex. You are facing questions like:

  • How to organize code into functions, classes and modules?
  • How to clean up my code?
  • How to make sure my program works?
  • How to keep the program running over time?
  • How to install my program on multiple computers?

Below you find development tools and techniques that help you to write programs that get the job done and don’t fall apart.

Developing Software

.. toctree::
   :maxdepth: 1

   software_engineering/README.rst
   software_engineering/prototype.rst
   software_engineering/code_review.rst

Setting up a Python Project

.. toctree::
   :maxdepth: 1

   getting_started/virtualenv.rst
   getting_started/git_repo.rst
   getting_started/structure.rst

Writing Automated Tests

.. toctree::
   :maxdepth: 1

   testing/facade.rst
   testing/unit_test.rst

Functions

.. toctree::
   :maxdepth: 1

   functions/levels.rst
   functions/function_parameters.rst
   functions/scope.rst
   functions/generators.rst
   functions/functools.rst
   functions/decorators.rst

Shortcuts

.. toctree::
   :maxdepth: 1

   shortcuts/collections.rst
   shortcuts/comprehensions.rst
   shortcuts/enums.rst

Structuring Programs

.. toctree::
   :maxdepth: 1

   structure/main_block.rst
   structure/commandline_args.rst
   structure/modules.rst
   structure/namespaces.rst

Object-Oriented Programming

.. toctree::
   :maxdepth: 1

   classes/classes.rst
   classes/inheritance.rst
   classes/composition.rst
   classes/class_diagram.md
   classes/operator_overloading.rst
   classes/abc.rst
   classes/decorator_class.rst
   classes/metaclasses.rst

Software Quality

.. toctree::
   :maxdepth: 1

   quality/continuous_integration.rst
   quality/

Error Handling

.. toctree::
   :maxdepth: 1

   error_handling/debugging.rst
   error_handling/interactive_debugger.rst
   error_handling/exceptions.rst
   error_handling/warnings.rst
   error_handling/logging.rst

Performance Optimization

.. toctree::
   :maxdepth: 1

   performance/profiling.rst
   concurrency/README.rst

Challenges

.. toctree::
   :maxdepth: 1

   challenges/factorial.rst
   challenges/sorting.rst
   challenges/dice/dice.rst
   challenges/tennis.rst
   challenges/memory/memory.rst
   challenges/magic_square.rst
   challenges/josephus.rst
   challenges/binary_search.rst
   challenges/tree_traversal.rst
   challenges/maze.rst
   challenges/backpack_problem.rst
   challenges/chained_list.rst
   challenges/tsp.rst
   challenges/blockchain.rst
   challenges/metaclass.rst

Coding Project

.. toctree::
   :maxdepth: 1

   project.rst
   hall_of_fame.rst


Appendix

.. toctree::
   :maxdepth: 1

   links.rst

License

© 2023 Kristian Rother

Usable under the conditions of the MIT License.