My Phase-4 Experience at Flatiron
Published: 2024-04-25 00:26:19

# Intro
2024 has been the most unpredictable year of my life, filled with constant hurdles that detracted from my learning experience. However, despite these challenges, whenever I would code, nothing else would occupy my mind. Even after completing a coding session, I found myself contemplating it long after. Coding is one of the few things that truly captivates me, even during the learning phase. While I often face frustration, I have rarely felt as endlessly interested in anything as I do in coding. Typically, I struggle to enjoy the learning process itself and instead eagerly anticipate applying my knowledge. However, from the moment I said, "Hello, World!" in my terminal to building my first basic commissioned website, I have experienced a unique sense of accomplishment and motivation that only coding provides. I am incredibly grateful for the opportunities I've been given to explore the world of coding, especially through studying at Flatiron.

## First Impressions of SQLAlchemy and Flask RESTful vs Now
Initially, learning how to use SQLAlchemy and Flask RESTful was a source of many headaches as I struggled to comprehend the concepts. Even when I managed to get things working, understanding eluded me, and looking back, I find some of my initial challenges amusingly self-explanatory. While working on my Phase 4 final project, many gaps in my understanding were quickly filled by scouring through numerous Stack Overflow threads. After achieving a basic RESTful setup, I couldn't help but reflect on the time spent on certain concepts, realizing how much simpler they seemed in retrospect. For instance, understanding how serialize_rules worked consumed nearly an hour of my time. Once I grasped the fundamental principles of backend development, subsequent concepts fell into place more naturally as I progressed through my Phase 4 project.

## About My First Experience Working on a Full-Scale Project
At the onset of my project, I eagerly deployed both the backend and frontend to render, eager to apply my recent learning's. However, my enthusiasm quickly waned as I spent the majority of my first day troubleshooting integration issues. It dawned on me that development in a local environment was far more conducive to productivity. Despite this initial setback, I proceeded with outlining my basic model ideas, which initially progressed smoothly. Queries returned as expected, and database commits rendered desired outcomes. However, when I delved into defining a many-to-many relationship table, I encountered unexpected challenges. Despite the simplicity of the concept, I found myself grappling with it for hours. The table was real simple:
``
favorites = db.Table('favorites', metadata,
    db.Column('user_id', db.Integer, db.ForeignKey('users.id'), primary_key=True),
    db.Column('blog_id', db.Integer, db.ForeignKey('blogs.id'), primary_key=True),
)
``
My experience with one-to-many relationships had left me overconfident, and I must have created a dozen different seed files while trying to understand what in the "Hello, World" was going on. Through this process, I discovered that I learn best through hands-on experience and thorough examples. Watching a few suitable, albeit somewhat outdated, YouTube videos and scouring relevant Stack Overflow threads provided the breakthrough I needed. I often find that even with clear explanations, I struggle to apply concepts until I witness the process of building examples firsthand rather then just a good expatiation of the built out example.

## Conclusion
While my Phase 4 project proved to be the most challenging thus far, it also provided the greatest learning opportunities. Even after graduating from the Flatiron boot camp, I intend to rebuild this project, recognizing my tendency to forget and realizing the potential for improvement to transform it into a more robust and real-world application like. Experience truly is the best teacher, as I have been reminded countless times, and I am grateful for the lessons learned both in software development and self-discovery throughout my curriculum. Thank you for taking the time to read this, and I wish you the best.