Re: [請益] 想問資料庫的問題

作者: littlethe (東周流浪漢)   2018-09-10 07:21:01
HI~
魯叔又來講資料庫和人性啦~
這件事可以分為兩個角度來看,
1.只是要找到工作
2.有心把資料庫學好
1.只是要找到工作-
如果你朋友是年輕未婚正妹的話,
各位大大你們就別操心了,
因為正妹可以什麼都不會就進到資訊業工作,
幾乎公司都喜歡找正妹當PM或企劃,
這種工作保證不會寫程式,
會這樣也算是一種迷信,
因為資訊業男多女少,很多人相信要男女平衡,
也很多人就是覺得正妹容易說服別人,或可以引誘豬哥客戶,
而且也很多人莫名其妙就覺得正妹文案寫得很好(這邏輯真神奇),
所以其實也不需要去學資料庫啦,現在就可以去找工作了
而且最好面試要透露自己是單身,這樣豬哥主管就容易上鉤,
進到公司後,嘴巴甜一點,
再和某個key person搞個曖昧或交往,就高枕無憂啦!
犯再大錯都會有人cover妳,
所以要學的不是資料庫,而是要多看宮鬥劇,
退休時就可以寫一本書叫走向公司的老太后之路,
因為公司的運作方式和古代後宮87%像,
皇帝就是老闆,
這方法其實大部份行業都適用,
只是這樣做也有缺點,如果年紀大了,
還沒有和任何key person搞上關係的話,
或關係搞砸的話,就會被趕出公司了,
我是真看過正妹老了沒用處就被fire的例子,
如果是已婚有小孩或非正妹的人呢?
嗯...看有沒有關係囉,
沒有關係就面對現實跳過這方法唄~
除了這個,其實這做法還有個壞處啦,只是不會影響到這正妹,
那就是會這樣搞的公司和明朝會很像,
動不動就殺來殺去(fire或整到離職),
清朝還會比這種公司好哦,
因為清朝皇帝的教育水平很高,後宮很小,管理也很嚴格,
雖然還是出了個慈禧太后,
想體驗明朝宮廷黑暗的生活嗎?
去愛重用正妹的資訊公司就對了!
2.有心把資料庫學好-
講完人性,這個就正題啦!
上一篇大大回文分析得很專業,
我就來講點不一樣的,
有看過足球吧?
DBA就是系統的守門員,
人數很少,但要扛的責任最大,看似簡單,但裡面的水確是最深的,
踢球這件事,就是coding,
大家看足球時,
一定很多人會覺得,
守門員幾乎在用手擋球,
用手比較簡單耶,
所以真要玩足球時,
也就會很多人覺得我不會踢球呀!所以我要當守門員,
那也很多傻乎乎的隊員想,"哦,你真的不會踼球,那你當守門員好了,至少可以用手"
結果呢,就會發現守門員有和沒有是一樣的,對方狂得分,
為什麼?
因為事實就是守門員不但要會踢球,
還要學手怎麼用,頭怎麼用,人怎麼站,時機怎麼判斷,
更重要的是守門員幾乎沒有時間可以鬆懈,因為球會一直踢來,
其他球員可以恍神個幾秒,守門員一秒恍神都不行,
保持高專注,這恐怕已經不是技能問題,而是基因問題了,
你想練還練不起來...
大家都看過世足,都看過守門員被狂轟的樣子,
守門員應該才是足球場上最難當的位置,
如果不會踢球的話...要做的事真的不是去做守門員,
而是甘脆不要踢足球,去玩其他運動
所以回到資訊業,
也是一樣道理,想做技術人員,如果不會coding,
建議只有兩條路走,
1個轉行,另1個就是學coding,
沒有別的路了,
coding之於軟體開發,就是踢球之於足球,運球之於籃球,
是最基礎的事,恐怕也是最簡單的事,
非本科,或年紀大,走技術都不是問題,就怕不會coding,
因為最簡單的事都學不會,那要怎麼能學會其他的事呢?
魯叔不才,
在我目前的人生,從前端,後端,APP,資料庫,甚至接觸過linux和網管,
coding本身真的是最簡單的事了,
不是我在唬人,國中生可以學會coding了,
我是高中就學coding了,
教育剖規劃國小學coding,這不無道理呀,國小生學coding是有可能的,
資料庫我不敢說資訊界裡最難,最難應該是AI,
但我敢說資料庫真的很難,
從資工資管畢業的人應該對資料庫這門大刀課很有印象,
一堆人補考還不過,真的很難呀!
不是說開table而已呀,
資料庫是真的要懂理論的東西,
非本科去做資料庫反而是不好做的,
光正規化就可以搞死非本科了,
講個實務問題,
如果硬碟滿了,
你的處理方式是什麼?買硬碟嗎?
如果SQL要跑很久怎麼辦?升級電腦嗎?
如果是這樣的回答,那真的不需要你來管資料庫,(還真不少人這樣回答)
老闆自己找時間把主機升級就好了
要寫SQL對吧?
寫SQL其實比一般程式更難哦!因為SQL比較抽象,
不要以為SQL只是寫select * from XXX,
舉例來說如果要把表內容轉字串成a,b,c怎麼寫?
那寫法和一般程式差很多,
還是有人會覺得SQL是其他工程師要做的事?
NO,合理的分工應該是其他工程師不用寫SQL,SQL是統一由資料庫端處理,
只是大部份公司是一般工程師兼管資料庫,所以寫一寫資料庫端和應用端就"糊"掉了,
SQL也必需要寫得很精簡,
一般程式因為速度很快,所以不精簡還可以感覺不出來,
寫個1加到1百萬,一般人是感覺不到用公式寫和用迴圈寫的差別,真的太快了,
但資料庫效能好不好差太多了,
好SQL和差SQL跑的時間是可以差到幾分鐘,甚至差SQL是跑不出來的,
再講資料庫最恐怖的地方,就是責任TMD有夠重大,
就像醫生開刀,機長開飛機一樣,壓大很大!
出事的話,無法休息,
因為數據都在這,
系統都要用,
資料庫出事系統就不能用,
而資料庫就是非常非常非常容易出事,
因為是中心點,很多問題發生後會往中心跑,
就像足球會一直踢向球門一樣,
你朋友知道什麼叫做"資料錯亂"嗎?
"資料錯亂"是資料庫最恐怖又很常見的狀況之一,
因為有bug,或有人資料導錯了,寫入的數據就會不對了,
那一錯往往不會只錯一筆,一錯可能會錯幾萬筆,甚至錯上百萬筆,
想像一下,我們台灣兩千三百萬人一覺醒來,發現我們的身分證都錯了,
你若是DBA,就做到死也得把2300萬人的身份證給更正好,
有些狀況下,如果原記錄是寫在紙上的話,可能會要一筆一筆的去對,
對到眼睛脫窗還對不完,這可不像一般工程師代碼寫錯了,改完就好啦,
因為這些是"數據",而且常常一錯會錯一大片,
你朋友若遇到"資料錯亂"的話,大概會哭著喊說老娘不要管DB了,
coding真的比較簡單輕鬆...
這裡我還沒講到被駭的狀況哩
一般來說,非本科想轉行來當技術人員,
我會建議走前端程式,
因為前端很雜,所以理論不是那麼重要,可以靠經驗去補,
不少設計轉程式的人也是走前端,
越往後端,效能就越吃重,數學就越重要,理論也就越重要,
本科和天份的優勢也就越大了,
真的不想寫程式的話,走網管也行,網管主要靠經驗,本科沒什麼優勢,
但很多網管也是會有"寫程式"的時候,
反正不應該是資料庫,DBA是連工程師都很難當了,
那你朋友的心態...是真的建議不要來當技術人員了,
真的就是不想踢球就想要玩足球的感覺,
那學前面講的做法,去用姿色混個PM還比較好,
只是真正的PM又要比工程師更難當,
我自己是喜歡研究資料庫,
我自己也是去補習班學過,
也考到證照,後來工作換了幾次,就和資料庫越來越熟,
但我心態絕對不是因為我不想寫程式所以來做資料庫,
相反的,而是因為我以前程式已經寫到了一個瓶頸,
我在想我還可以怎麼發展?
所以想到可以朝資料庫發展,
因為資料庫影響效能很大,又處理數據,我喜歡數學,喜歡研究效能,
也很喜歡理論的東西,所以喜歡資料庫,
而且很重要的是我要告訴你朋友,
我和資料庫越來越熟後,我有比較少碰程式了嗎?
NO!不但我沒少碰程式,我還得把程式寫得更好更精,
因為目前沒止,真的沒有公司會只讓我碰資料庫,
而且前面講的SQL的精簡要求我就不再贅述了
講白了,
程序猿是一轉,DBA就是二轉啦!
(其實PM,全端,前端,後端,這些專精化的工作也都是二轉)
叫你朋友打電動看看,看看有沒有辦法沒一轉就直接跳二轉,
沒當戰士就直接當狂戰士,
沒當法師就直接跳賢者,
除非打秘技(攀關係)
啊~~忘了回答你最後一個問題,
補習班的資料庫課當然有用啦!
但是要make sense,
這些課是設計給"業界人士"上的,
也就是說,各位你們已經在當工程師的人,
用過"資料庫"的人,都可以去上,
那是幫你們考取證照的課,
上課內容"有正規化","有SQL","用command line操作資料庫",
當然還有其他內容啦,但光這三個東西其中一個大概就可以難倒你朋友了,
我記得10年前我那個班有超過1半是業界人士來上的,
如果是資訊小白...非常不建議上這個課,你會聽不懂,
課程只有3個月,無法完全從零從細節教起,真的太趕了,
至少對業界人士來說我們會知道GUI和DB的差別,
會知道老師在講什麼,對我們來講是種複習,所以教得快還可以聽得懂,
想想看,如果沒學過英文,或學校英文課都在混,你上托福班雅思班會聽得懂嗎?
說實話我那個班上到最後,同學大半陣亡了,很多人後面干脆就不來了,
只有很少數人最後堅持考到證照,
如果沒考到證照或學好學完,那這上課錢就白花啦!
上完之後,考完證照...注意注意,
你只是從一般工程師,
變成會用資料庫的工程師,
你還是工程師,還是要coding,
證照只是讓你有機會"管理"DB的藉口,
等幹了雙棲工程師幹了3年,
大概才會對資料庫比較了解,因為很多實務狀況,
上課時不會講到或無法體會,
最好是去大公司的資訊部或做後端工程師練,
因為這類工作接觸DB的機會會很頻繁,
有些工程師缺是很少碰到DB,例如APP或前端工程師,做了就和DBA無緣了...
所以選對工作內容很重要,
練了3年真的對維護DB或SQL很熟了後,才會有DBA面試的機會,
還有一種可能就是網管轉DBA,但這塊我不熟就不提了,
小白還是乖乖的找一般的程式基礎班先練練吧,
練完去當一般工程師先磨一磨,
不然你問我們資訊相關科系花了一年時間在學資料庫,
畢業完又花了幾年時間在工作,
憑什麼小白上了三個月的課就可以給小白管資料庫呢?
何況很多人是資訊相關科系出身,有工作經驗又拿到DB證照的,
當然會優先給這種人管啦,
再給個建議,要考DB證照,最好考oracle,雖然最貴,但物以稀為貴,
m$證照效果不大呀,很多公司是無視m$證照,只看工作經驗
※ 引述《blueblueChen (藍藍欠)》之銘言:
: 版友晚安,我是代PO
: 有個朋友想要轉換領域,中文系。想轉戰資料庫。因為她的想法很簡單
: 就是建立一個 table,讓寫程式的人去操作..,然後可以不用碰到程式。
: 我對資料庫其實也沒很熟,包括大學研所全部都重修過。
: 而我的經驗是
: 資料庫可能在 Windows 或者其他 OS 例如 Android,都有支援的套件,然後還是
: 需要C++或者 JAVA 去寫程式邏輯來操作這些資料庫。不可能只有一個 table 表
: 就給其他程式設計師用。
: 然後這是巨匠課程表,想問資料庫前輩,這些課程對一個外行人來說,有沒有絕對幫助呢?
: 或是這些課程,是目前就業市場不可或缺的呢? 畢竟這套課程20萬...
: https://goo.gl/YBcXVW
: 謝謝。
作者: polozero1 (Elwien)   2018-09-10 07:55:00
寫的好有趣!
作者: littlethe (東周流浪漢)   2018-09-10 08:03:00
謝謝稱讚,我希望能努力的讓更多人了解資料庫的觀念囉
作者: s29940 (阿賜)   2018-09-10 08:16:00
作者: susaku (小草)   2018-09-10 09:40:00
作者: yougigun   2018-09-10 09:43:00
作者: Noahdot (駁二宮和也)   2018-09-10 09:48:00
舉例很有趣 XD
作者: DCTmaybe (竹竹人)   2018-09-10 11:14:00
蠻有趣的~推推
作者: jj2236789 (Absinthe)   2018-09-10 12:46:00
生動推
作者: liangnash (涼奶昔)   2018-09-10 13:03:00
看到前面差點噓,看完了以後想多推幾次!
作者: sailoruranu   2018-09-10 13:38:00
作者: ian90911 (xopowo)   2018-09-10 14:07:00
作者: K415NV   2018-09-10 14:19:00
作者: teddy (這是個好問題)   2018-09-10 14:59:00
強烈覺得國小生不可能學會coding 幾個蘋果分給幾個人的問題都解不出來… 年紀還小 邏輯還沒建立起來就要反著被邏輯狗幹 更不用說是全英文 可能造成童年陰影當然上述都是說一般人 天賦異稟當然不在話下 上次教小五外甥數學教到崩潰
作者: littlethe (東周流浪漢)   2018-09-10 15:25:00
所以我反對這政策,教程式,不如教英文和邏輯補個補習班心得
作者: pttworld (批踢踢世界)   2018-09-10 15:42:00
國中生已經有演算法解題的比賽了
作者: SuperCry (極度哭燥)   2018-09-10 15:46:00
二十幾年前我小三上國語日報補作文,一堆小孩補程式,你家小朋友自己心智太晚熟吧
作者: NCUking (中大王)   2018-09-10 15:58:00
連除法都搞不懂是特例吧 別人家的小孩沒那麼...
作者: littlethe (東周流浪漢)   2018-09-10 16:04:00
別這麼說,在我老家原住民部落是真的有小孩不會除法的
作者: teddy (這是個好問題)   2018-09-10 16:44:00
不唬爛 真的沒這麼誇張 尤其是應用題 題目不超過30個字都看不懂 可能大家都離國小很遠了 但那個年齡真的只會模仿 題目變化一下就直接死給你看 你要他們獨立思考很有難度
作者: fayhong (恰似飛鴻踏雪泥)   2018-09-10 17:55:00
這真的是好評論呀,但我覺得最難的還是 PLT 跟計算理論呀
作者: atpx (秋雨的心情)   2018-09-10 20:03:00
coding很簡單也可以很難, 要會動的確小學生就能做到
作者: Hevak (Arthow Eshes)   2018-09-11 00:01:00
專職管DB基本上已經是二轉以上的職業了啊...
作者: ricky0050   2018-09-11 06:49:00
目前工作 前端60%後端40% 資料庫也自己搞 總覺的進步很緩慢...
作者: kaosmart (smart)   2018-09-11 06:50:00
作者: kingofage111 (鴕鳥)   2018-09-11 08:40:00
真用心
作者: strlen (strlen)   2018-09-11 20:04:00
太長了不過推XD
作者: mdkn35 (53nkdm)   2018-09-11 20:24:00
原po真有心啊
作者: littlethe (東周流浪漢)   2018-09-11 21:13:00
全部工作都一個人做的話當然效率會很差,每個地方用的技術就不同,大腦沒辦法記住所有技術,也就表示你公司不專業可能我真的很多想法在資料庫,所以打很多,也想知道大家對資料庫的想法
作者: vfhaiam (vfha)   2018-09-12 09:05:00
DB真的不簡單啊...咱公司每次遇到效能問題,就只會抓RD來改select語法,select遇到重複資料也沒人管,但公司不可能徵個專職的DBA,對於DB的存取只能不斷的踩雷.
作者: ccc1001 (你不是吧)   2018-09-12 11:28:00
做不好就是walk on thin ice的職業
作者: littlethe (東周流浪漢)   2018-09-12 12:31:00
沒有dba沒關係,但要會改db,否則只動sql的話db會爆
作者: sachung28 (00)   2018-09-12 20:48:00
小孩普及coding的目的 應該不是要讓每個都變高手 一萬人內只要有一個天才被引導成功 創造出的經濟效益就足夠了吧
作者: toothlesses (toothless)   2018-09-13 13:07:00
作者: Avarsta (阿罵死塔)   2018-09-13 18:00:00
謝謝大大講解
作者: ms0266378 (ZIllusion)   2018-09-13 19:27:00

Links booklink

Contact Us: admin [ a t ] ucptt.com