chee86j / Python_Practice

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

My Python Learning Adventure

Introduction

Hello and welcome to my GitHub repository dedicated to learning Python! I'm currently expanding my programming expertise from JavaScript to Python, and this repository is where I'll be documenting my journey. I've chosen to follow the Programming QuickStart Guides Bundle as my primary learning resource.

Background

As a JavaScript developer, I've decided to challenge myself by diving into Python. This journey isn't just about learning a new language; it's about opening up new opportunities and perspectives in the world of programming.

Goals

  1. Master Python Basics: Starting with the essentials and gradually progressing to more complex topics.
  2. Project-Based Learning: Implementing concepts in practical, real-world applications.
  3. Guide-Driven Approach: Following the structured path provided by the Programming QuickStart Guides Bundle.
  4. AI Teaching Assist: Using the Custom 'Code Tutor' in ChatGPT4 Khanmigo Lite, by Khan Academy as a guide.
  5. Share My Experience: Regularly updating this repository with progress, insights, and reflections.

Progress Log

Start Date: [1.12.2024]

  • Initial Steps: Getting accustomed to Python syntax and basic constructs.
  • First Milestones: Completing introductory exercises from the guide.

Ongoing Updates

[1.13.2024]- 'FizzBuzz'

  • Implemented the 'FizzBuzz' exercise, focusing on Python's syntax differences from JavaScript, especially in loops and conditional statements.
  • Explored Python-specific features like list comprehensions and inline conditional expressions, applying them to solve the FizzBuzz problem efficiently.

[1.14.2024] - 'rng (Random Number Generator)'

  • Developed a CLI tool in Python to generate random numbers, enhancing understanding of command-line arguments handling with the sys module.
  • Delved into error handling in Python, learning to validate and process user input effectively.
  • Gained experience with Python's random module for generating random numbers within user-defined ranges.

[1.16.2024] - 'Coin Flip Simulation'

  • Created a simple coin flip simulation program.
  • Practiced using Python's random module to simulate random outcomes.
  • Reinforced my understanding of basic Python programming concepts and syntax.

[1.22.2024] - 'Temperature Converter (Python GUI)'

  • Developed a GUI-based temperature conversion application using PySide6.
  • Gained practical experience in GUI programming, exploring Python's capabilities beyond the console.
  • Familiarized myself with event-driven programming, signal-slot mechanisms, and layout management in PySide6.

[1.26.2024] - 'Dice Roll'

  • Developed a command-line interface (CLI) application to simulate dice rolls.
  • Enhanced understanding of Python's random module for generating random outcomes and the argparse module for handling command-line arguments.
  • Implemented complex logic for computing statistics such as minimum, maximum, mean, median, mode, and doubles count, using concepts like list comprehensions and the Counter class.
  • Gained practical experience in handling dynamic input and producing statistical output.

[1.31.2024] - 'My Selfmade Exercises'

  • Embarked on creating custom exercises based on the chapters in QuickStart Guide to deepen my understanding.
  • Learned about Python's built-in unittest framework and the popular pytest for testing.
  • Embraced Test-Driven Development (TDD) techniques, enhancing my coding discipline and efficiency.
  • Compared Python's pytest with JavaScript's testing frameworks like Jasmine and Mocha. Found pytest to be powerful for its simplicity in syntax and rich in features like detailed assert failure reports, making debugging more intuitive.
  • Gained insights on how Python's testing frameworks differ from JavaScript's, particularly in how they handle test setups, teardowns, and assertions. pytest stood out for its ease in writing and reading tests, aligning well with Python's philosophy of simplicity and readability.

Future updates and learning milestones will be added here.

Projects

Project 1: TBD (A simple Python project)
Project 2: TBD (A more complex application)
Further projects will be added as I progress.

Resources

[1]

Programming QuickStart Guides Bundle by Robert Oliver - My primary learning resource.

[2]

Python.org - Official Python documentation and tutorials.

[3] - Other Resources

1. Python Tutorial - Python Full Course for Beginners - Programming with Mosh -
https://www.youtube.com/watch?v=_uQrJ0TkZlc

2. freeCodeCamp.org - Learn Python - Full Course for Beginners [Tutorial] -
https://www.youtube.com/watch?v=rfscVS0vtbw

About


Languages

Language:Python 100.0%