Software Odyssey
Sunday, November 26, 2023

The Journey of Becoming a Software Engineer: Reflections and Insights from Phase Two of the WeHelp Bootcamp

Author:
Yuwei Yang
文章封面圖片

After completing Phase Two, I experienced a significant shift in mindset. On one hand, I felt that I had gained more technical skills and that my world had expanded; on the other hand, it felt like a new wave of challenges was just beginning. Similar to Phase One, I mostly finished each week’s tasks toward the weekend. Although my pace was about the same as before, the pressure felt much heavier this time around. This article captures some of the thoughts and reflections I had during that period.

Stage Two: Like a Detective Puzzle Game

段落圖片

The main task for this stage was to independently complete a travel e-commerce website project. It incorporated almost everything from Stage One - assigned tasks, optional tasks, and evening discussion topics. The instruction documents remained concise, but there was much more to think about, or rather, much more to complete. We had to use the few existing clues to piece together the full picture, like playing a detective game in programming language. Trying to find the 'skill holes' deliberately left in the documentation and completing self-imposed challenges became the greatest joy each week.

I remember getting stuck somewhere for a long time, unable to solve it. I kept trying different approaches but couldn't find the answer. I told myself: 'Try one more time, and if it doesn't work, I'll just go to the office tomorrow and ask in person.' Unexpectedly, this 'one more try' led to attempt after attempt, until dawn broke. The moment I found the solution, that indescribable joy filled me with deep happiness.

Every Stage Feels Like a New Beginning

段落圖片

Every Friday during Stage Two was an in-person meetup day, and many different interesting things happened each week. I remember the first week's task involved handling backend-related problems, and backend was a huge obstacle for me, so I attended the first in-person meetup with the mindset of seeking help.

When I arrived, I discovered that the people sitting in front of me had either already finished or were waiting for approval (some were even watching anime or working on their master's assignments). The people on my right were also almost done or had deployment experience. Only two other classmates and I were still stuck on API design.

We discussed from the afternoon until 10 PM and still couldn't finish. We continued the next day. Although we were behind others, we could still keep moving forward. In the end, we all passed successfully and made it to Stage Three.

Never Felt Like I Couldn't Complete the Tasks

段落圖片

The tasks each week were difficult and required considerable time, but I never felt like I couldn't complete 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 today's self was better than yesterday's, and these problems would be solved.

When I successfully completed optional challenges, when someone was willing to share in the study group, when I understood the essence of database design, when I wanted to learn more about algorithms... these moments made me very happy. Learning how to use a new technology, experimenting and testing it, creating a small project - it all felt very fulfilling.

At first, I might have pursued 'passing on the first try,' then it became hoping to receive 'Good. Well Done.' Later, when I stepped outside the specification documents and created extra features, besides satisfaction, I felt exhilarated. This exhilaration came from finally not needing to rely on document guidance, but instead modifying established norms based on requirements to create satisfying results.

Abundant TA Office Hours

This stage had abundant office hours for interacting with TAs. Each session had a different topic, and I tried to attend every one. Sometimes I learned different technical operation methods, sometimes different implementation perspectives. Listening to other classmates' questions was also very rewarding. Near the end of Stage Two, I seized face-to-face opportunities to discuss Stage Three project content with TAs Feng-Lin and Zheng-Yi, which helped me not panic during Stage Three.

Whether online or offline, TA A-Jie was always willing to share and point out things we needed to pay attention to. During Friday in-person meetups, even if I didn't ask questions every time, just seeing TA A-Jie made me feel reassured. Regarding the content he taught, he said more than once 'we'll forget after hearing it,' but I still tried 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 Expert Wu Chia-Hua: 'Interviews Are Like Blind Dates!'

段落圖片

This talk was extraordinarily meaningful to me because it was the first time after completing full-stack project development that I spent a long time thinking about what kind of software engineer I wanted to become. Thinking about life is inherently time-consuming, laborious, and doesn't necessarily yield results in a short time. The questions raised in the talk and the various aspects mentioned gave me much reflection. While listening, the answers in my heart gradually emerged.

Compared to moving forward blindly, I prefer to stop and carefully examine my situation and confirm the direction before proceeding. Fortunately, after the talk, I had an opportunity to consult with Mentor Chia-Hua separately. Regarding resume arrangement, Stage Three project planning, and future job search choices, I found clear directions forward in that conversation. The perspective from the talk that 'interviews are like blind dates' also made me less discouraged about future job rejections.

Multi-Person Collaborative Project Development

段落圖片

Unlike the previous weeks' independent development, Week 8 was Stage Two's multi-person development project week. It was the week with the most frequent collaboration with classmates in a short time, and also a week when time didn't belong to ourselves.

Since we had just completed a full-stack travel e-commerce website development, whether frontend or backend, everyone could handle it. We completed the first team meeting under a conversation of 'both frontend and backend are fine.'

The most important thing in teamwork is reaching consensus and following the rules under that consensus. After dividing the work, we each worked in our own development areas, completing our assigned functions. Throughout the process, we almost never encountered merge conflicts.

I was worried that operating git wouldn't be smooth, but that was completely unnecessary. By the end, typing was faster than speaking, and someone even said they were typing git commands in their dreams (laugh).

To complete the project development, the last two days' time almost wasn't ours. We were in a constant standby state. Even when the time came, there was almost never a moment of true completion. There were always places to modify, places we wanted to improve. It was a very interesting multi-person development experience.

Passed Stage Two!

段落圖片

Compared to before, only now can I understand what 'dynamic' means in dynamic web pages. From setting up AWS, writing APIs, creating layouts, all the way to rendering dozens of attraction data points from backend to frontend interface in one go - I suddenly remembered my past self who hadn't learned programming languages and helped the company build websites in a very clumsy way. Back then, I spent a lot of time creating different product pages using individual HTML files... Thinking about it, things are really very different now!

There are certainly many areas to optimize and review in the results and small tools created, but now opening VS Code every day to write something has become a commonplace thing. When layout is needed, I write frontend; when APIs are needed, I write backend. I have a better concept of project architecture, have overcome the previously difficult-to-understand backend database design, and found a suitable workflow for writing APIs...

Next is standing on the shoulders of giants and letting my abilities shine. I'm happy that there are a few more things I can do!

JavaScript Online Study Group

段落圖片

'Secrets of the JavaScript Ninja' is 506 pages long and a very dense book, not friendly to beginners. But precisely because of this, we had the opportunity to understand JavaScript's full picture from different angles, deeply feeling JavaScript's flexibility and importance.

The Ninja study group officially started on the first day of Stage Two and continued for about 7 weeks. During this time, we internally held 5 study group meetings, 5 task discussion 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 of WeHelp's 4th cohort students. It concluded on the last day of Stage Two. I'm 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 statistics system to solve the study group's tedious weekly statistics problems, and make appropriate adjustments to the study group's progress planning and activity arrangements. These were challenges unique to me during Stage Two.

React Online Study Group

段落圖片

Just like Stage Two, I established a React online study group for Stage Three. I chose React as the topic because it's the language that best continues JavaScript and is one of the popular choices for frontend frameworks at present.

Besides completing personal projects, we need to spend extra time reading and learning React. Hopefully after six weeks, everyone's projects will have achieved certain results, and we'll have successfully finished reading this book!

About Author