※ 引述《blueblueChen (藍藍欠)》之銘言:
: 版友晚安,我是代PO
: 有個朋友想要轉換領域,中文系。想轉戰資料庫。因為她的想法很簡單
: 就是建立一個 table,讓寫程式的人去操作..,然後可以不用碰到程式。
: 我對資料庫其實也沒很熟,包括大學研所全部都重修過。
: 而我的經驗是
: 資料庫可能在 Windows 或者其他 OS 例如 Android,都有支援的套件,然後還是
: 需要C++或者 JAVA 去寫程式邏輯來操作這些資料庫。不可能只有一個 table 表
: 就給其他程式設計師用。
: 然後這是巨匠課程表,想問資料庫前輩,這些課程對一個外行人來說,有沒有絕對幫助
呢
: 或是這些課程,是目前就業市場不可或缺的呢? 畢竟這套課程20萬...
: https://goo.gl/YBcXVW
: 謝謝。
小的不才,目前也還是做系統的小小菜鳥,
但天天跟三間公司提供的DB solution(M$、甲骨文、天睿)為伍
算小有經驗吧。
看到原PO的說明,覺得很多觀念都怪怪的。
用個人見解來把觀念先洗一下
如果有錯請不要鞭太大力
關於DBA類的見解:
1. 如果是為了想不用寫程式又能提升薪水才走DBA這條路,我只能說錯,簡直在做夢啊。
在台灣中小型企業的老闆大多都請不起DBA,幾乎都是由工程師兼DBA,原因是應用系統架
構較簡單、資料庫存放&處理的資料量少,資料庫須即時反應的狀況也不高,就算data mo
del設計得再爛也不會有什麼問題,另個原因就是可以節省人力囉。
但有點規模的公司系統架構本身就很複雜,有些資料庫須即時反應(ex:電商網站)、有些
則是分析用(ex:數據建模)。
每天光收集資料&處理資料,再加上資料分析,都是幾億筆在跑。
如果沒有專業的DBA調校DB參數&維護,系統早掛了~
對大公司來說,資料是公司重要資產,老闆一定請有經驗的DBA,絕不會請一位XX電腦補
習班出來的菜鳥。
萬一下錯指令砍了整個DB 歷年來的資料不就欲哭無淚?!
2. 管理資料庫的DBA雖然不用寫程式,除了基本的資料庫建置以外,還須管理權限、調整
資料庫效能參數、維護&備援、協助應用系統端調SQL執行效能...等。
3. 資料庫一定會建置在OS層上,但難道你以為資料庫都一定架構在windows上,所以安裝
資料庫就是一直按下一步就好了嗎?
很多資料庫的底層是linux,難道DBA都不需要會指令就能建資料庫了嗎?
4. 現在市場上DB solution 很多,除了基本的功能外,各家DB 的設計、特殊function的
使用...等,每家solution都不太相同。而且DB會一直推出新版本,每release一個版,有
些功能、特殊function可能都會改變。
因為做系統的工程師不太會知道這些,在遇到DB需要升版時也是必須靠DBA輔導工程師去
調整程式的。
關於應用系統工程師的見解:
1. 做系統開發的工程師,除了要寫程式外,還必須了解domain know how,不了解就無法
準確設計data model。
說到這一定有人要批判設計data model是SA、SD的事,但台灣很多公司為了精簡人力,做
開發工程師也是兼作SA、SD,所以沒有好的data model,長久下來系統一定會有毛病(ex:
資料量大處理效能變差)。
2. 要用程式把資料存到資料庫,基本sql的使用、sql explain、stored procedure…等
也要會用吧,不要跟我說寫程式是工程師的事,但就是跟資料庫有相關,無論是DBA還是
工程師都是要會。
說了那麼多,那股熱情應該會先消5成吧。
瞥了一下巨匠課程表,那個課程只是複習基礎觀念&輔導你去考證照而已。
我記憶中考證照就是題庫背完就去考了,有一些還有考上機,但一定也會有題庫,會背書
、多練個幾次就會過了。
而且上課內容也包含開發,開發的意思就是要寫程式喔XD ,聽到寫程式應該就沒熱情了
吧。
而且考到證照跟實際工作其實是有很大的落差der~
真的不用花錢去上課,如果有興趣去書局翻翻“資料庫系統理論與實務”這種書,確定念
的下去在繼續深入,不然只會白花冤枉錢。
(原PO大大,錢難賺,不能這樣亂花啊)
話說工作這幾年,因為有跟幾位DBA合作過,DBA的能力在哪種程度,在有障礙的時候最能
看得出來。
資深的DBA可以帶你上天堂,通常他們都是有深厚的程式底子,能在DB有狀況的時候快速
抓到問題點、排除障礙。
菜鳥的DBA必定會害你下地獄,當狀況發生時是沒有能力找到問題&處理問題,他會比你還
要慌張XD。
總結一下,
其實文組不是不能轉行做工程師,
我也不是愛戰文組。
(我也算文組轉行工程師)
因為太多念文組的人,
總是有先入為主的觀念,
覺得工程師寫程式很容易啊,
寫個兩行就可以生出一套系統。
拜託~我每次聽到文組的朋友這樣說
白眼都不知道翻了幾圈
看完這篇文後,以後請不要再說這種話。
程式語言只是開發系統的工具,
就像英文是跟外國人溝通的工具,
一套系統難在設計架構、流程,
這兩件事沒做好,系統就很難再擴充,
打掉重練是常有的事。
所以不是你隨便喊一句我會用XX語言寫程式,就有本事弄出一套系統來的。