· 2 分鐘閱讀
前端應該學習 CS 嗎?
# 前端這個議題吵好久了,在這裡簡單紀錄一下自己的想法。
在很久以前只有 HTML 與 CSS 的年代,頂多再加上 jQuery,只要架出靜態網頁丟到 FTP 就可以被稱作是高手。
隨著瀏覽器可以做到的事情越來越多,前端能夠涵蓋的範圍也越來越廣了,光是前端這個名詞,可能就可以有多個分支:
- UI:對於使用者體驗的重視,其中包含了 API 狀態處理、資料處理、使用者體驗、a11y、適當的 animation 互動。
- 多媒體:對聲音、影像、直播比例偏重的服務,除了要對 UI 有一定了解外,還需要對多媒體背後的解編碼、傳輸有一些概念。
- 資料流 / 前端工程:對於工具框架的掌握度,對於業務需求、領域知識有一定的了解
- 資料視覺化 / Stroy telling:這部分除了對 Chart Library 或是 D3 的熟悉,還需要知道瀏覽器對於圖表的顯示極限在哪裡,何時用 Canvas、何時用 SVG、何時用 WebGL,除此之外可能還需要一些 story telling 的技巧,才不會做出花花綠綠的圖表卻沒有使用者買單。
- 架構:前端的部署、Logging、底層框架、規範、API 管理、狀態管理等,這方面需要經驗以外,也需要一定的 CS 知識背景來支撐。
- 遊戲:透過遊戲說故事,或是單純娛樂用,涉及遊戲理論,也跟一般的開法手法不太一樣
- 概念流:像是 Vue、React、Svelte 等直接從概念(Component、Virtual DOM)下手,徹底改變開發者對於前端的想像。
一個有 CS 背景的開發者寫出來的 UI,可能會比一位沒有 CS 背景的前端工程師還要糟,比起多念演算法可能多鑽研一下 a11y 跟 UI 對這個社會還比較有幫助呢
全部都能專精的人不多,基本上如果都專精的話也不會以前端自居了,都變身成 Software Engineer 了。這種人可遇不可求,也不需要每個人都要成為技能樹全滿的大神。
從以上的角度來看,不看公司的條件與需求就一味地強調演算法、CS 背景都是在耍流氓啊,很多時候只是徵才心態上的懶惰罷了。
回到老話一句,重點還是你的目標還有你想成為的人
相關文章
- 前端使用圖片時需要注意的事從 Jake Archibald 的文章延伸,整理現代響應式圖片應該怎麼寫:為什麼 width/height 還是要加、什麼時候用 CSS aspect-ratio、AVIF 跟 WebP 怎麼選,以及用 picture/source/srcset 處理手機版圖片切換。
- CSS field-sizing — 用一行 CSS 讓表單元素自動調整大小textarea 自動調整高度,以前只能靠 JavaScript 監聽 scrollHeight。CSS field-sizing: content 一行就能取代,支援 textarea、input、select。本文整理舊做法的痛點與 field-sizing 的用法。
- 讓你的超連結底線更好看:text-underline-offset預設的情況下底線跟文字很接近,有些設計師不喜歡這種樣式,我自己也覺得沒有很好看。
- 為什麼網頁不應該追求 Pixel Perfect只有在 Pixel Perfect 很重要的時候才應該關注他,否則往往會讓你得到一個雙輸的局面。