DEV Community

Reece Crook
Reece Crook

Posted on

My Phase-4 Experience at Flatiron

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.

Top comments (0)