iT邦幫忙

2023 iThome 鐵人賽

DAY 11
1
Modern Web

轉職三年 web 仔:不僅是代碼,更是人生的重構系列 第 11

人生重構 Day11:從前端到後端—我的全端挑戰

  • 分享至 

  • xImage
  •  

成功絕非自然產生,而是必須卯足全力

— Arnold H. Glasow

為了這份工作,我可是卯足的全力,在毫無準備的情況下,每天通勤開車上班,然後工作又每天自主超時,因為想要把握好不容易的機會。


回顧 Day10

Day10 說到我進入了我第一家的軟體公司後,從得到 offer 到公司對我的規劃以及我對於這份新工作的雀躍。而這篇就要來說說我在這份工作的情況,會提到我在這份工作上,三個月的訓練期,以及我最後被公司信任,所以提早結束訓練期的故事。

第一份任務:後端大魔王

剛進入這家新創公司,我面對的是一個由 CTO、全端工程師、設計師和業務組成的小團隊。不過,不久後一名全端工程師離職,讓我深切感受到這個產業的不穩定性。

公司給了我三個月的訓練期,這段時間內我沒有開發壓力,可以多問問題。雖然我對前端技術(React, Redux, JS, CSS, HTML)比較熟悉,但後端(PHP, MySQL, AWS EC2)只是稍微接觸過。

這裡的技術棧主要是前端用 React、Redux 和 SCSS,後端則是用 Express.js、MongoDB 以及 Azure,還使用了 GitLab CI/CD 和 TypeScript。由於是新創且主要做 B2B,所以後端技術的比重相對較大。

為何稱為「後端大魔王」?

就我自己來說,後端對我而言如同一個大魔王。我需要花大量時間去學習和熟悉,尤其當我的後端經驗相對有限時。

我的第一個挑戰:請假系統

初次接觸後端任務時,我被指派了一個「請假系統」的後端開發項目。這個任務讓我有機會學習整個開發流程,包括使用 GitLab 來管理代碼。雖然跟我以前用的 GitHub 有些許不同,但大致上是類似的。

在這個項目裡,我實作了多個 issue,雖然有些 issue 沒有完全完成,但這些都是值得的學習經驗。

然後接下來就換成前端的部分了,但公司卻直接指派了我實作了公司的官網!

這是?算脫離訓練期嗎?

入職第二個月:前端官網

當我完成了初步的練習後,我開始轉向前端開發。在面試這家公司時,由於我已經有相當多的自學經驗,所以他們認為我在前端方面已經具有一定程度的專業知識。

說實話,面試過程相當繁瑣和耗時,但當我聽到他們認為我具備經驗時,我感到非常高興,也非常感動。更讓我驚訝的是,雖然我剛進公司還在三個月的訓練期內,但他們很快就讓我負責公司官方網站的開發。

原始網站與新任務

原本公司的官網只有一個單一頁面,但我的任務是新增三個頁面:

整題服務介紹頁面
Clio 產品介紹頁面
Faceta 產品介紹頁面

這些頁面當時都還不存在,我這邊是先展示完成後的成品。

公司原本的網站是使用 JQuery 來開發的,但任務中需要我將其轉為 React。因此,我也花了一些時間來熟悉 React 的設定。

實作的挑戰和解決方案

開發過程中碰到了許多挑戰,包括但不限於:

斜角設計:網站有大量的斜角規劃,這讓實作相當困難。
斜角範例

手刻元素:由於沒有使用 UI 套件,所有元素都需要自己手刻。
表單實作:表單的實作相對複雜,因為需要考慮到多種交互效果和前後端的資料交換。

實作網站背景:

我們的設計師建議使用特定的CSS指令。我後來決定把背景和內容分成兩個層次,類似於我之前做過的五子棋遊戲。這樣做讓背景更容易管理,只需調整色塊和角度。

實作網站內容:

開始時不太會組件化(Component),但隨著時間和經驗,我學會了如何有效地組件化,這節省了很多時間。也學到了不應濫用absolute,應更多地使用flex。

串上網址和捲動功能:

除了基本的頁面設計,我也加入了導航和捲動功能。有些按鈕會彈出表單或導向特定區塊。遇到了一些捲動問題,後來發現是因為網站還沒完全載入就開始捲動,解決後一切正常。

表單設計:

設計一個點擊按鈕後會彈出的表單,花了一周時間。這個表單會根據點擊的按鈕自動選擇對應選項。而且我只能用原生不能用套件

跨組件傳值:

用React hooks的useContext實作,感覺比Redux更方便。

自定義表單樣式:

因為網站風格特殊,不能用原生HTML元件,需要自行編寫純CSS。這增加了開發的挑戰,但也讓我學會了更多技巧。

寫測試和自動化部署:

使用Jest和puppeteer進行瀏覽器測試。遇到了平台間的兼容性問題,需要手動調整。自動化部署主要是指令的使用,也有一些運行時的問題需要解決。

小結

這個經驗讓我學到了很多,不只是技術層面,更重要的是如何與設計師和其他同事有效溝通。雖然過程中遇到了不少挑戰,但這也是成長的機會。

成功絕非自然產生,而是必須卯足全力 — Arnold H. Glasow

為了這份工作,我確實付出了全力。每天不僅要長途跋涉地通勤,還要自願加班,就是為了把握這難得的機會。

所以在這份工作上,我大概花了一個月多的時間,就幫公司完成了一個這樣每一頁都非常長的網站,感覺真的很有成就感。

接著我就大概在 2.5 個月就脫離訓練期了,但實際上我覺得... 根本就前面做後端才是訓練期吧,做這個官方網站也算是一個正式產品了。

結語:轉變與成長

身體與工作狀態

轉職後,由於不再需要輪班,即使每天需要開車通勤,我的身體狀況和心情都有顯著的提升。這讓我有更多時間和精力去學習和成長。

英文能力

在新工作中,我不得不使用英文進行溝通和寫作,這使得我的英文能力有了不小的提升,尤其是在寫作和詞彙方面。

溝通技巧

這份工作也讓我更加重視溝通,不僅與設計師,還有在解決問題和需求討論中。這是一個顯著的轉變,也是我未來需要繼續努力的方向。

寫作與思維

寫作不僅僅是表達,也是思考的過程。在這份工作中,無論是寫 issue 還是 merge request,都需要清晰和有條理的寫作。這不僅鍛煉了我的寫作能力,也間接提升了我的思考和組織能力。

綜合反思

雖然這篇分享是基於我入職後三個月的心得,而現在心境和技能都有了不小的變化。我會繼續寫作,分享我的成長和新的心得,因為這不僅是一種自我反思,也是一種自我鼓勵。

這次的經歷讓我深刻體會到,成功不是偶然,而是一步一步累積出來的。我將繼續努力,不僅為了專業成長,也為了個人發展。

而下一篇,我會繼續介紹那些我在工作上有所改進以及貢獻的部分,謝謝大家的觀看。


文章就說到這,有什麼想法或問題,歡迎隨時找我聊聊!

這篇文章也會同步發在 medium 上,如果有興趣歡迎追蹤我。

medium: https://medium.com/@hugh-program-learning-diary-js
email: u88803494@gmail.com


上一篇
人生重構 Day10:新篇章、新挑戰—首航全端工程師
下一篇
人生重構 Day12:從上手到優化—我的全端經歷
系列文
轉職三年 web 仔:不僅是代碼,更是人生的重構40
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言