Stage 2: Like a Detective Mystery Game

The main task of this stage was to independently complete a travel e-commerce website project. It incorporated almost everything from Stage 1's assigned tasks, free tasks, and evening discussions. The guidance documents remained concise, but there was much more to think about, or rather, much more content to complete. We had to use the few remaining clues to piece together the complete picture, like playing a programming language version of a detective game. The greatest weekly pleasure was working hard to find the "skill gaps" that the documents had dug for everyone and completing self-set challenges.
I remember once being stuck on something for a long time, unable to solve it no matter how many different methods I tried. I told myself, "Try one more time, and if it doesn't work, I'll go ask in person tomorrow." Unexpectedly, this "one more time" led me to try again and again until dawn. The moment I found the solution, that indescribable joy made me feel deeply happy.
Each Stage Feels Like a New Beginning

Every Friday since Stage 2 began was a day for in-person gatherings, and each week brought many different interesting events. I remember the first week's task was to handle backend-related issues, and the backend was a major obstacle for me. So I attended the first in-person gathering with the mindset of seeking help.
When I arrived at the venue, I discovered that the people sitting in front of me had either already completed their tasks or were waiting for approval (some were even watching anime or doing master's degree homework). The people on the right side were also mostly done, or already had deployment experience. Only me and two other classmates were still stuck on API design.
We started discussing in the afternoon and worked until 10 PM, but still couldn't finish. We continued the next day. Although we were a bit behind others, we could still keep moving forward. In the end, we all passed successfully and entered Stage 3.
Never Felt Like I Wouldn't Pass the Tasks

The weekly tasks were very difficult and required considerable time, but I never felt like I wouldn't be able to pass them. I always believed that as long as I took action and kept trying, as long as I worked hard to move forward one step each day, I could clearly feel that today's self was more advanced than yesterday's, and these problems would all be solved.
When free task challenges succeeded, when someone in the book club was willing to share, when I understood the essence of database design, when I started wanting to learn more about algorithms... these moments were all very joyful. Learning how to use a new technology, experimenting and testing, and creating a small project also made me feel very satisfied.
At first, I might have pursued "passing on the first try," but later it became hoping to receive "Good. Well Done." Eventually, when I stepped beyond the specification documents and created additional features, besides satisfaction, I also felt exhilarated. This exhilaration came from finally not needing to rely on document guidance, but rather modifying established norms based on needs to create satisfactory results.
Extensive TA Office Hours
This stage had extensive office hours for interacting with TAs. Each session had a different theme, and I tried to attend as many as possible. Sometimes I learned different technical operation methods, sometimes different implementation perspectives. Listening to other students' questions was also very rewarding. Near the end of Stage 2, I also seized the opportunity for face-to-face discussions with TAs Feng-Lin and Zheng-Yi about Stage 3 project content, so Stage 3 wouldn't be too overwhelming.
Whether online or offline, TA A-Jie was always willing to share and would point out many things we needed to pay attention to. At the weekly Friday in-person gatherings, even though I didn't ask questions every time, seeing TA A-Jie's presence made me feel very reassured. Regarding the content he taught, he said more than once that "we forget what we hear," but I still worked hard to remember because I believe this content will become "nutrients for career transition" and will definitely play a huge role someday in the future.
Industry Senior Mentor Wu Chia-Hua: "Interviews are Like Blind Dates!"

This lecture was extraordinarily meaningful to me because it was the first time I spent a long time thinking about what kind of software engineer I wanted to become after completing full-stack project development. Thinking about life is inherently time-consuming, effort-intensive, and doesn't necessarily yield results in a short time. The questions raised in the lecture and the several aspects mentioned brought me much reflection. As I listened, the answers in my heart gradually emerged.
Rather than blindly moving forward, I prefer to pause, carefully examine my situation, determine the direction, and then move forward. Fortunately, after the lecture, there was an opportunity to seek advice from Mentor Chia-Hua. Regarding resume arrangement, Stage 3 project planning, and future job search choices, I found a clear direction forward in this conversation. The lecture's perspective that "interviews are like blind dates" also made me less discouraged about future job search setbacks.
Multi-Person Collaborative Project Development

Unlike the previous weeks of independent development, Week 8 was the multi-person development project week of Stage 2. It was the week with the most frequent collaboration with classmates in a short time, and also the week when time wasn't my own.
Since we had just completed a full-stack travel e-commerce shopping website development, everyone could actually handle both frontend and backend. Under the conversation of "both frontend and backend are fine," we completed our first group meeting.
The most important thing in team collaboration is reaching consensus and following the rules under that consensus. After division of labor, we each worked within our development scope to complete our respective functions. We almost never encountered merge conflicts during the process.
I was originally worried that git operations wouldn't be smooth, but this was completely unnecessary. Later, typing speed became faster than speaking, and someone even said they were typing git commands in their dreams (laughs).
To complete the project development, in the last two days, time was almost never my own. I was in a state of being on standby at all times. Even when time was up, there was almost never a moment of true completion. There were always many places I wanted to modify, some places I wanted to improve further. It was a very interesting multi-person development experience.
Passed Stage 2!

Compared to before, now I can understand what the "dynamic" in dynamic web pages means. From setting up AWS, writing APIs, and frontend development, to rendering dozens of attraction data from backend to frontend in one go, I suddenly remembered my former self who hadn't learned programming languages and helped the company build websites in a clumsy way. Back then, I spent a lot of time creating different product pages using one HTML file after another... thinking about it, there's really a huge difference!
Of course, there are many areas for optimization and review in the results or small tools created, but now opening VS Code to write things has become a commonplace activity. When I need frontend development, I write frontend; when I need APIs, I write backend. I have a better concept of project architecture, overcame the previously incomprehensible backend database design, and found a suitable API writing workflow...
Next is standing on the shoulders of giants and unleashing creativity freely. I'm happy that there are a few more things I can do!
JavaScript Online Book Club

"Secrets of the JavaScript Ninja" is a 506-page book that's quite challenging and not beginner-friendly. But precisely because of this, we had the opportunity to understand JavaScript's full picture from different angles and deeply feel JavaScript's flexibility and importance.
The Ninja Book Club officially started on the first day of Stage 2 and continued for about 7 weeks. In between, we internally held 5 book club meetings, 5 task discussions and technical sharing sessions, and 4 JavaScript reading sharing sessions. Finally, ten members including myself each spent 5 to 10 minutes sharing a chapter from the book with all fourth-generation WeHelp students, ending on the last day of Stage 2. I'm very happy to have completed something together with a group of people.

Besides facing weekly tasks in unknown situations like everyone else, I needed to use recently learned programming techniques to write an additional statistical system to solve the book club's weekly tedious statistical problems, and make appropriate adjustments to the book club's progress planning and activity arrangements. These were challenges unique to me in Stage 2.
React Online Book Club

Just like Stage 2, I established a React online book club in Stage 3. I chose React as the theme because it's the language that can best continue from JavaScript and is also one of the popular choices for frontend frameworks at this stage.
Besides completing personal projects, we needed to spend extra time reading and learning React. I hope that after six weeks, everyone's projects will have achieved certain results, and we'll have successfully finished reading the book!
