It has already been three months since I wrote my challenge retrospective.
The first draft was written right after the sprint ended, but I am only now organizing and publishing it.
My plan was to focus on assignments during weekdays and write reflections on weekends. However, I once again realized that consistently doing something on weekends is harder than expected.
08/18 – 10/31
Now that one phase of the membership curriculum has passed, I want to look back on the past ten weeks.
Technologies Learned During This Period
Frontend
JS, TS, styling, browser internals, rendering, DOM, events, asynchronous processing, state management, design patterns, React, error handling, animation, and more.
Although I was already somewhat familiar with these technologies, I quickly realized that I lacked the fundamentals of designing applications in vanilla JavaScript and structuring projects from scratch.
Through this experience, I was able to reflect on why React behaves the way it does. Answering teammates’ questions also naturally helped me review and reinforce my own knowledge.
Backend
DB, MySQL, Express, NestJS, TypeORM, OAuth, indexes, transactions, HTTP/S, OSI layers, networking, TCP/UDP, sockets, middleware, testing, cookies and tokens, error handling, and more.
Backend development was almost entirely new territory for me, so I relied heavily on the support of my teammates while trying to keep up.
Every week introduced a flood of new concepts. Sometimes I could only grasp the key ideas and move forward, but the fact that I went from barely understanding discussions to being able to participate in meetings and share opinions felt like meaningful growth.
Offline Learning Experience
For about six weeks, we had offline study sessions every Monday.
During the first week things felt slightly awkward, but as time passed, the environment became more comfortable. Beyond studying, we shared meals, played games, and talked about many different topics.
Naturally discussing what everyone was working on, what the team had been debating, and what challenges we were facing greatly improved our focus.
Advantages of Offline Study
- Much higher concentration compared to studying at home
- Immediate help from nearby campers when stuck
- Stronger motivation to stay disciplined
Drawbacks
- Commuting consumed a lot of energy
- Sometimes I forgot assignments after returning home
- Less time available before and after the session
Even with these drawbacks, participating in offline sessions every week was very satisfying.
Separating offline tasks from online work helped establish a stable learning rhythm.
Challenges and Changes During the Learning Process
Barriers Caused by Unfamiliar Technologies
During the early stages of the sprint, most tasks were frontend-focused.
Building structures in vanilla JavaScript and managing state through classes felt unfamiliar. At times it also felt strange to still be focusing heavily on frontend when my initial goal was to learn backend.
After React, I intentionally tried to reduce frontend work, but since it was the area I felt most comfortable with, I often drifted back toward it.
Meanwhile, backend development sometimes felt intimidating because I lacked foundational knowledge.
Many assignments required applying new technologies, and sometimes implementing features was difficult without understanding underlying CS concepts.
Weekly quizzes also reminded me how limited my CS foundation still was.
Fortunately, teammates explained concepts clearly and studied together, which helped tremendously.
Through this process I strongly felt that I needed to study more systematically.
Pressure Around System Design
I understood the importance of design, but whenever I actually tried to write design documents, it felt overwhelming and intimidating.
I lacked confidence explaining designs to teammates, and on days when I struggled alone, I sometimes felt guilty.
Being a non-CS major, the pressure of feeling behind, combined with declining confidence, made design tasks even more difficult.
When sharing daily progress updates, it often felt like everyone else was moving forward smoothly while I was falling behind. At times I tried to rely heavily on AI to speed up progress.
Looking back now, I realize something important.
Trying to appear competent during the learning process is unnecessary.
Rather than comparing myself with others, learning and growing at my own pace turned out to be far healthier.
Instability Caused by Excessive Immersion
For nearly two months I devoted most of each day to studying, constantly trying to move forward as quickly as possible.
As a result, stress accumulated significantly. Code implemented with heavy AI assistance sometimes did not feel truly internalized, and over time I found myself forgetting parts of it.
Because I spent a lot of time on familiar frontend tasks, I also started to feel anxious that I was drifting away from my original goal of strengthening backend and CS foundations.
Looking back, excessive immersion sometimes blurred my sense of direction.
Using AI During the Learning Process
After switching to Gemini, I found myself using AI much more effectively.
When preparing a presentation about web accessibility, I first organized the key points I wanted to deliver. Then I collaborated with Gemini to create slides, scripts, and even the presentation website, making only minimal edits afterward.
The presentation received positive reactions, and I was especially happy that the design and interactions were also well received.
👉 Presentation site: 링크 정보를 불러오는 중...
On the other hand, when designing backend systems, my lack of foundational knowledge meant I often relied too heavily on AI for ERD design, DTO structures, and Express architecture.
Through this experience I realized something clearly:
AI is most effective when supported by strong foundational knowledge.
The Importance of Documentation
At the beginning I carefully maintained PR descriptions and README documentation.
However, as time passed and the workload increased, documentation gradually fell behind.
Team members also became more focused on their individual tasks, and the frequency of reviews decreased, which felt somewhat unfortunate.
Through this sprint I realized something important.
Moving quickly is important, but leaving records of the learning process is just as valuable.
Things I Did Well
Meeting new campers every week and quickly building connections was not easy. Still, I actively participated and helped maintain a positive atmosphere.
In peer feedback I was often described as someone who helps others grow together. Those moments reminded me that the ultimate goal of learning is collective growth.
Moving Forward
Rather than comparing myself with others, I want to focus on my own growth and my own pace.
Toward the end of the sprint I experienced moments of burnout and physical exhaustion, but I hope to regain energy when the team project begins.
This time I want to grow in a more balanced and sustainable way, and I hope to complete a team project that we can all be proud of.