Skip to content

Latest commit

 

History

History
180 lines (129 loc) · 3.37 KB

File metadata and controls

180 lines (129 loc) · 3.37 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.

Getting Started

.. toctree::
   :maxdepth: 1

   debugging/README.rst

Setting up a Python Project

.. toctree::
   :maxdepth: 1

   python_package/README.rst
   getting_started/git_repo.rst
   getting_started/structure.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
   challenges/demographics.rst

Structuring Programs

.. toctree::
   :maxdepth: 1

   refactoring/README.md
   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/properties.rst
   classes/abc.rst
   classes/decorator_class.rst
   classes/metaclasses.rst
   classes/oop_principles.md


Software Quality

.. toctree::
   :maxdepth: 1

   quality/code_checks.rst
   testing/README.rst
   quality/continuous_integration.rst

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

Developing Software

.. toctree::
   :maxdepth: 1

   software_engineering/README.rst
   software_engineering/prototype.rst
   software_engineering/code_review.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.