Python coding free courses

    A collection of free resources for self-studying coding in Python—the most widely used programming language in the world. See also PythonAI course by CoTAI to learn coding from scratch via interacting with AI.

    Free courses

    1. Mathisis ebook.
    2. Code.org for absolute beginners & kids.
    3. PY4E: Python for everybody. With free video lectures, slides, and code.
    4. Kaggle Python course.
    5. Video lecture series with sample code by 2 Microsoft AI experts.
    6. Google’s Python class for people with a little bit of programming experience.
    7. MOOC from top universities including MIT, Harvard CS50, Harvard CS50 AI with Python.
    8. You can enroll and complete these courses to earn a paid/shareable certificate, or you can audit them to view the course materials for free: Cousera, DataCamp, etc.
    9. Other great sites: www.learnpython.org, geeks4geeks, etc.

    Some useful hints for learning to code

    1. Super important skill: learn to debug.
      • Read error message to know what’s wrong, where and why. Google search (e.g., within site StackOverflow) for solution.
      • Only ask others for help after self-help. Include sample code and error message in your question. Practicing this skill will help you learn quickly!
      • Visualize your code execution with this super useful tool: http://pythontutor.com.
    2. Super important ability: computational thinking (tư duy tính toán).
      • Learn from the very efficient problem-solving strategies of computers:
        • Decompose the problem into smaller & easier ones to solve.
        • Find repeated patterns in the problem and exploit for more efficient solutions.
        • Model complex problems in a unified, abstract way (for example using math equations) so that one solution is applicable for many problems.
        • Define steps and procedures, like an algorithm, to realize the solution.
      • Useful resources: take BBC mini-course, CS50 by Harvard, play game LightBot, học trên STEAM for Vietnam.
    3. Super important knowledge: master the key concepts & principles of the field.
      • Key concepts and principles are highly applicable in different situations and settings: they have great generalizability. Furthermore, core concepts and theorems are just a few to learn compared to a sea of methods and heuristics.

        Heuristics come and go. Theorems stay forever!

      • Apply useful mental models. For example, first-principles thinking or “reasoning from first principles”: the idea is to break down complicated problems into basic elements and then reassemble them from the ground up. It is one of the best ways to reverse-engineer complicated problems and unleash creative possibility.
    4. Super important mindset: exponential growth.
      • Everyone can learn to code! Just practice, practice, and practice everyday.
      • Build a solid foundation first; this is often very slow. But be patient, your time will come: some day you will accelerate rapidly due to exponential learning progress.

      • Read growth mindset. Also learn how to learn.