學習掌握資料庫技能,解開你的軟體職涯封印

更新 發佈閱讀 6 分鐘
raw-image

不知道準備入行或者已經是軟體工程師的你,有沒有感覺到這幾年軟體的工作類型、按照屬性或技能被分得越來越細了,以網站程式開發工作為例,現在還會特別區分所謂的前端、後端還是全端的工程師。在軟體設計的工作裡除了你熟悉的 coding 技能外,還有一塊非常重要經常被忽略,那就是處理資料存儲的部分。我們現在用的軟體功能都很複雜,為了有更好的使用者體驗,軟體設計師會在後台儲存有很多的設定資料並且紀錄軟體運作過程中的資料流數據,為了更好的記錄應用這些資訊,通常會搭配一個資料庫在程式裡面。雖然從軟體的 GUI (使用者軟體介面) 看不出來哪一種,不過關聯性資料庫的運作原理都是類似,架構上也被視為軟體設計的一部份。有資料庫的支持,軟體不管在運作效能、功能、使用者體驗等面向都會比沒資料庫搭配的軟體來的好「非常多」!當然啦,資料庫設計是專業的技能,如果你是待在比較大型的軟體團隊裡的話,就很有機會遇到專門負責資料庫設計的夥伴,簡稱資料庫設計師。

To Learn Or Not To Learn?

如果你是非本科系畢業的人或者想入行還沒工作經驗,可能就不一定會知道軟體工程師跟資料庫設計師是兩種不同類型的職業,你一定也能多少能感覺出來軟體與資料庫這是不同的領域對吧?那麼問題就來了,如果你的工作是軟體工程師,到底要不要學習資料庫呢?不過對於有心想要在軟體設計領域發展的人來說,或者更客觀的從未來工作發展來說,我要給你的建議是:

「對於想走軟體設計的你一定要學資料庫,越早越好,最好是從你入行的第一天就開始學」。

做中學最快

我記得剛入行的時候,要做線上教育網站,專案要求用 LAMP (Linux+Apache+MySQL+PHP)架構,這是我第一次碰到關聯性資料庫 MySQL。專案結束來到業界服務,開始負責維護系統與功能開發工作,因此大量接觸到不同類型的資料庫,學會了設計資料庫與調教資料庫效能,當時年紀小我都以為軟體工程師就是統包程式設計或資料庫設計所有工作,直到我到了下一家公司,才驚訝地發現我所屬的軟體團隊只有我會用資料庫!當時正在開發的軟體平台在儲存效能上遇到很大瓶頸,客戶的產品測試腳本跑完後,產品的測試資料根本無法正常儲存文件檔,一直打電話來客訴!重新 Review 設計架構,我提出用資料庫作為數據處理的解決方案,瞬間就完成了用戶數據存儲的需求,儲存在資料庫的產品測試數據,還可以根據客戶需求產生所需的報表格式。

如何從入門到進階

你說:「如果我想跟你一樣,要怎麼開始學呢?」如果你是聽我講才第一次知道資料庫的朋友,那我會建議你最好從書本開始,透過閱讀專業書籍會讓你取得完整且正確的知識框架,市面上雖然有各種類型的資料庫,但是他們的資料儲存的核心理念、SQL 操作語法都是相似的,一本通就萬本通,讀書絕對是很好的起步。如果你已經有程式基礎的人稍微有點碰過資料庫入門級的 SQL 語法,就可以鎖定一個你目標資料庫精準學習。首先就是開始精煉你的 SQL 語法,最好還能進階 SP (Stored Procedure) 預儲程式寫作,去熟悉你選擇的資料庫的介面與設計工具,以及各種 SQL, SP 的除錯技巧,直到你能寫出 SP API 給前端軟體使用,因為透過 API 存取資料庫的方式,對資料庫安全性與穩定性會起到很好的作用。如果你也跟我一樣不小心玩出興趣來的話,就可以考慮更深入的主題了,嘗試按照自己想法設計資料庫,畫 ER-Model、搞懂資料庫設計理論、研究資料庫效能如何調校都是很重要的題目,還要徹底了解資料庫所有的元件型態,像 Table、View、Trigger、Index… 各種資料欄位的型態 Text, Numeric, Char, Varchar, Blob.. 等的使用的時機點、效能與使用限制等,例如:如何做正規化來或何時該反正規化,來設計更好的資料庫來存放與應用你的數據。有餘力的話就可以再往效能調校的部分前進,充分了解你正在用的資料庫的性能,有哪些關鍵系統參數可以調整,有哪些數據引擎可以使用,學會合理的建 index ,Explain SQL 最佳化。一次熟悉一種資料庫,慢慢你就變成達人了。

結語

軟體分工越來越細是趨勢,也不是每個軟體工程師都一定要把資料庫的技能點滿,還是會建議軟體工程師要把資料庫練到熟悉 SQL 語法等級,能寫 Stored Procedure,讓你在執行專案的時候更容易與負責資料庫的夥伴溝通,又或者萬一趕工臨時找不到人也可以自己處理一下。你一定要記得:

「一個會寫程式又懂資料庫的軟體工程師就等於擁有了真正的解決問題的能力。」

對於未來工作發展也有能力朝著 SA 系統架構師, PM 軟體專案主管或 TPM 技術主管這類格局更大的軟體職位前進,所以我才會跟你說:「越早越好,最好是從你入行的地一天就開始;越早越好,最好是從你入行的地一天就開始;越早越好,最好是從你入行的地一天就開始。」因為很重要,所以說三次。如果你對於這軟體設計方面的主題感興趣,或者你已經在學習,對於程式設計與資料庫學習有相關的問題,都歡迎你留言告訴我。

留言
avatar-img
Warren Lo的沙龍
30會員
83內容數
WarrenLo's 軟體設計武功祕笈
Warren Lo的沙龍的其他內容
2024/09/25
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
2024/09/25
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
2024/07/02
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
2024/07/02
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
2024/04/08
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
2024/04/08
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
「系統上線」對所有軟體經理來說都是工作中最重要的大事之一,系統上線前準備是所有軟體專案管理者最關鍵的工作之一,確保系統的功能面、資料面,以及非功能性需求,都能夠支援使用者的正式操作。 究竟系統在上線前,功能面要做好那些準備與檢核?為了確保系統能夠順利上線並持續穩定運行,企業應從測試環境整理、資料移
Thumbnail
「系統上線」對所有軟體經理來說都是工作中最重要的大事之一,系統上線前準備是所有軟體專案管理者最關鍵的工作之一,確保系統的功能面、資料面,以及非功能性需求,都能夠支援使用者的正式操作。 究竟系統在上線前,功能面要做好那些準備與檢核?為了確保系統能夠順利上線並持續穩定運行,企業應從測試環境整理、資料移
Thumbnail
資料整理是職場上的重要技能,也是一大挑戰! 透過專案管理的手法建立一套有效的資料管理系統,進而提升工作效率並獲得成功。
Thumbnail
資料整理是職場上的重要技能,也是一大挑戰! 透過專案管理的手法建立一套有效的資料管理系統,進而提升工作效率並獲得成功。
Thumbnail
產品履歷 產品履歷是指一個產品從設計、生產、銷售到售後服務的所有資料。它是產品管理的重要工具,可以幫助企業提高產品品質、分析市場表現、提供售後服務。通常,產品履歷會包括以下七項:商品資料、創意資料、零件資料、生產資料、物流資料、銷售資料、售後服務資料。 產品履歷的價值 可追蹤產品的所有流程:幫
Thumbnail
產品履歷 產品履歷是指一個產品從設計、生產、銷售到售後服務的所有資料。它是產品管理的重要工具,可以幫助企業提高產品品質、分析市場表現、提供售後服務。通常,產品履歷會包括以下七項:商品資料、創意資料、零件資料、生產資料、物流資料、銷售資料、售後服務資料。 產品履歷的價值 可追蹤產品的所有流程:幫
Thumbnail
從電腦桌面、檔案的管理,就可觀察出人的工作能力。 有些桌面是滿滿滿的Word、Excel、PPT、資料夾、程式...,還有檔名不同但內容相同、檔名相同但進度不同、多胞胎檔案散布各處....。 光要找到對的資料,就先耗費心神,大大影響工作效率。終於找到檔案可以開始作業,但戰鬥力被消磨掉不知道剩幾%了。
Thumbnail
從電腦桌面、檔案的管理,就可觀察出人的工作能力。 有些桌面是滿滿滿的Word、Excel、PPT、資料夾、程式...,還有檔名不同但內容相同、檔名相同但進度不同、多胞胎檔案散布各處....。 光要找到對的資料,就先耗費心神,大大影響工作效率。終於找到檔案可以開始作業,但戰鬥力被消磨掉不知道剩幾%了。
Thumbnail
管理規章跟各式表單是公司營運的重要骨幹跟日常執行的解決方案!
Thumbnail
管理規章跟各式表單是公司營運的重要骨幹跟日常執行的解決方案!
Thumbnail
結論 我先寫結論,需要。 但這樣的結論或許太粗暴了,所以還是修飾一下說法。 身為一家想要持續在市場上存活、持續獲利的軟體公司,需要足夠多的工程師,但如果是一家得過且過,只求短時間存活的公司,那確實不用那麼多的工程師。 工程師的種類 在講為什麼之前,還是稍微介紹一下一家軟體公司通常會有哪些工程師。 但
Thumbnail
結論 我先寫結論,需要。 但這樣的結論或許太粗暴了,所以還是修飾一下說法。 身為一家想要持續在市場上存活、持續獲利的軟體公司,需要足夠多的工程師,但如果是一家得過且過,只求短時間存活的公司,那確實不用那麼多的工程師。 工程師的種類 在講為什麼之前,還是稍微介紹一下一家軟體公司通常會有哪些工程師。 但
Thumbnail
雖然標題是產品經理,但我想大家可能對專案開發比較有興趣。 為了讓整篇的含金量高一點,我會放入一些系統工程相關的東西 一般產品開發可能不需要到這麼嚴格。 專案管理及匯報 專案採購和產品採購 小趣談
Thumbnail
雖然標題是產品經理,但我想大家可能對專案開發比較有興趣。 為了讓整篇的含金量高一點,我會放入一些系統工程相關的東西 一般產品開發可能不需要到這麼嚴格。 專案管理及匯報 專案採購和產品採購 小趣談
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News