我如何從SQL超級新手到勝任者

我如何從SQL超級新手到勝任者

2年前我工作上有個轉變,公司開了新的部門,周遭主管都從麥肯錫之類的顧問公司出來,整個工作方式都換了,彷彿到新公司上班。

我習以為常的工作方式被大大地挑戰,連跟上討論都十分困難,更別提以往算是駕輕就熟的帶領屬下工作了ㄇ。

我從很多人想跟的聰明主管,因為定義問題的方式轉變,變成連開規格都開不好的笨蛋。我常常覺得自己很快會被開除。

有多新呢?以作分析來說

以前主管會事先做好假設,我們負責確認答案,小老闆是我們的主子跟緩衝。
新老闆逼迫我們自己提假設,不可以躲在小老闆後面,我很高興可以有自己的意見,但也很擔心跟小老闆意見不同會被記上一筆。

以前號稱是在做洞察分析,但其實是在解讀既有的報表。
新老闆重視驗證假設,他會挑戰我們的驗證方式,試圖用既有報表回答像是在找死。

以前最困難的工作就是開新的報表需求給工程師,最快要一個月才能等到答案。
新老闆希望今天傍晚討論的假設,晚上拉資料,第二天早上就看得到結果。


簡單的說,大老闆希望部門每個人都會自己撈資料,自己驗證假設。他說『只有超過五十五歲的人可以不用學,哈哈哈哈哈』當然哈哈哈,他說的就是他自己。

不知道為什麼,屬下們幾乎都會了。九個月後,年紀最大的屬下,也開始學了,還學得不錯。只剩下我了。

我也搞不懂我是不想,還是找不到時間,每天十二小時的工時是常態,還總是覺得做得不夠好。

第四季工作review時,小老闆委婉的問我要不要開始試著自己寫SQL,我想再不開始應該真的會被開除吧。不管有沒有時間,我算是答應了。就當做自我挑戰吧,多學會一件事情很好玩的兒。


我先去問部門內的大師,大師同事叫我去看'SQL語法教學'網站。

雖然這是很多人大推的網站,但他其實是office help功能般的存在,是給使用者查詢使用。或者應該說是辭典。不認識字的人看辭典幹嘛呢?

大師推薦的不適合我,我去問谷歌。

谷歌推薦'SQL Course'是個英文教學網站。 我想說中文的辭典不行,英文教學總可以了吧。

結果這仍然是一個從'What is SQL' 'Table basic'等等基本概念教起的網站。我還是不知道要怎麼在工作上使用。

我乾脆要求屬下把他們的Code 給我看,甚至講給我聽,也許我可以看得懂?

當然我沒看懂。甚至他們一開始講解概念,我就生氣跟分心。完全無法學下去。

而我的工時仍然是十二小時,上班沒時間學,下班也沒力氣學。


有一天我最年輕、最會學東西的屬下,告訴我也許可以從‘code cadamy' ,開始嘗試。

我打開那個網站,上面寫著'Learn SQL',所需時間約三小時。

我想說,就當我被騙,如果三小時還是搞不定就算了。

這個網站的畫面分三段:『教材,操作畫面,結果畫面』

學習的體驗是這樣的:

不管丟什麼進去操作畫面,結果畫面都會立即馬上的顯示結果,不能跳課,成功才能往下走。

一開始的幾門課,可以直接剪下貼上,一直按下一步的感覺實在太好了。

如果做錯了,會有不同的顏色報錯,繼續錯下去,會有提示。

再繼續錯,會有更多的提示。

報錯的英文是外星世界,但我們有谷歌。

如果還是錯,他會問你要不要付19元美金月費找助教。現在的我就付了。但當時的我不甘願,去睡一覺醒來繼續做。

三小時的線上課程上完,我只會三個英文的指令(Select from where),任何書籍或課程五分鐘就會解決的知識,幾乎是任何新手都瞧不起得技能水平。

但已經夠了。

我發現自己可以開始拉資料了,開開心心的拉了好多東西出來,我可以開始看用戶年紀消費金額所在地區等等等等。簡直是樂得飛上天。

但這開心很短暫,我很快又遇到障礙了,三小時的訓練不夠使用。而且這次比不會還慘:

以前大家體諒我不會,現在好像有點會了,屬下們就想要用對待高級新手的方式教我,但我還是一整個矇,完全聽不懂啊。有多慘呢?
他們說要這樣那樣Joint table 或者是 case when ,我聽了照做卻無法顯示我要的結果。

我螢幕上的報錯畫面,他們也沒空幫我改。一直叫我讓他們做好了,我回去做主管的工作吧。


我不想這麼快放棄,開始試著把我想解的問題,想解的方式,先用手寫下來。在白紙上畫出我倒底想要怎麼解答我自己提出的假設。

說也奇怪,用鍵盤打Code的時候,感覺十二萬分困難,一但用寫的,就可以開始冷靜的拆解到底有什麼問題,哪些是我現在已經會的,哪些是我聽過可以這樣做,但其實不會的。

我開始從會寫的開始寫,留下一點點不會的小問題,請屬下幫我。他們幫了我幾次後,我覺得可以繼續上進階新手的課程了。

回去上intermediate的過程其實滿挫折:紅字更多了,沒有線上助教,只能邊讀邊猜。就算好不容易學會,教學版跟公司用的版本又不盡相同。

我覺得自己似乎有一點點懂,但好像更蒙了。

總之是,童話故事好像沒有那麼美好的結局。我沒有那麼快從超級新手到高級新手。只好找更多的例子來寫,或者看同事的Code,持續三四個月後,我忽然發現自己沒有那麼菜:

不但可以獨立解題,也可以指導同事,甚至能夠拿到題目就知道難度跟坑各在哪裡。

如果有人分析花費的時間比我慢很多,那他應該是遇到嚴重的障礙需要換方法。

我好像終於變成高級新手了。人生翻過了一頁。

這個過程,大約花費三個月左右。我還是常常覺得自己這裡不會那裡不會,但至少拉資料已經不再是我工作上的難題,甚至我還可以指導別的部門同事如何有效率的學習寫SQL做分析。


後記:我的學習過程算是有『剛需』,無可改變的需求。但我有剛需很長的時間,直到開始使用這個網站,才真正學會。就我看來,而這個網站的優點在於:

學程有預期時間,而且實際需要的時間通常比預期時間短。
不講結構,不講緣起,只提供很簡單的故事跟練習。
練習題做錯了就會有提示,各種提示
有大小進度條,想放棄時我就會去看一下,看看自己還有多久才能完成。
每一課最多十幾個小節,撐一下就會有『我完成一點東西』的成就感

這網站上面也有其他資料分析小學程,例如Python,我的屬下最近自修Python後做預測模型,效果跟穩定度都不輸給昂貴的SAS軟體。我不久後應該會開始自修Python,如果有人有興趣的話,也歡迎一起來學喔。
2年前我工作上有個轉變,公司開了新的部門,周遭主管都從麥肯錫之類的顧問公司出來,整個工作方式都換了,彷彿到新公司上班。

我習以為常的工作方式被大大地挑戰,連跟上討論都十分困難,更別提以往算是駕輕就熟的帶領屬下工作了ㄇ。

我從很多人想跟的聰明主管,因為定義問題的方式轉變,變成連開規格都開不好的笨蛋。我常常覺得自己很快會被開除。

有多新呢?以作分析來說

以前主管會事先做好假設,我們負責確認答案,小老闆是我們的主子跟緩衝。
新老闆逼迫我們自己提假設,不可以躲在小老闆後面,我很高興可以有自己的意見,但也很擔心跟小老闆意見不同會被記上一筆。

以前號稱是在做洞察分析,但其實是在解讀既有的報表。
新老闆重視驗證假設,他會挑戰我們的驗證方式,試圖用既有報表回答像是在找死。

以前最困難的工作就是開新的報表需求給工程師,最快要一個月才能等到答案。
新老闆希望今天傍晚討論的假設,晚上拉資料,第二天早上就看得到結果。


簡單的說,大老闆希望部門每個人都會自己撈資料,自己驗證假設。他說『只有超過五十五歲的人可以不用學,哈哈哈哈哈』當然哈哈哈,他說的就是他自己。

不知道為什麼,屬下們幾乎都會了。九個月後,年紀最大的屬下,也開始學了,還學得不錯。只剩下我了。

我也搞不懂我是不想,還是找不到時間,每天十二小時的工時是常態,還總是覺得做得不夠好。

第四季工作review時,小老闆委婉的問我要不要開始試著自己寫SQL,我想再不開始應該真的會被開除吧。不管有沒有時間,我算是答應了。就當做自我挑戰吧,多學會一件事情很好玩的兒。


我先去問部門內的大師,大師同事叫我去看'SQL語法教學'網站。

雖然這是很多人大推的網站,但他其實是office help功能般的存在,是給使用者查詢使用。或者應該說是辭典。不認識字的人看辭典幹嘛呢?

大師推薦的不適合我,我去問谷歌。

谷歌推薦'SQL Course'是個英文教學網站。 我想說中文的辭典不行,英文教學總可以了吧。

結果這仍然是一個從'What is SQL' 'Table basic'等等基本概念教起的網站。我還是不知道要怎麼在工作上使用。

我乾脆要求屬下把他們的Code 給我看,甚至講給我聽,也許我可以看得懂?

當然我沒看懂。甚至他們一開始講解概念,我就生氣跟分心。完全無法學下去。

而我的工時仍然是十二小時,上班沒時間學,下班也沒力氣學。


有一天我最年輕、最會學東西的屬下,告訴我也許可以從‘code cadamy' ,開始嘗試。

我打開那個網站,上面寫著'Learn SQL',所需時間約三小時。

我想說,就當我被騙,如果三小時還是搞不定就算了。

這個網站的畫面分三段:『教材,操作畫面,結果畫面』

學習的體驗是這樣的:

不管丟什麼進去操作畫面,結果畫面都會立即馬上的顯示結果,不能跳課,成功才能往下走。

一開始的幾門課,可以直接剪下貼上,一直按下一步的感覺實在太好了。

如果做錯了,會有不同的顏色報錯,繼續錯下去,會有提示。

再繼續錯,會有更多的提示。

報錯的英文是外星世界,但我們有谷歌。

如果還是錯,他會問你要不要付19元美金月費找助教。現在的我就付了。但當時的我不甘願,去睡一覺醒來繼續做。

三小時的線上課程上完,我只會三個英文的指令(Select from where),任何書籍或課程五分鐘就會解決的知識,幾乎是任何新手都瞧不起得技能水平。

但已經夠了。

我發現自己可以開始拉資料了,開開心心的拉了好多東西出來,我可以開始看用戶年紀消費金額所在地區等等等等。簡直是樂得飛上天。

但這開心很短暫,我很快又遇到障礙了,三小時的訓練不夠使用。而且這次比不會還慘:

以前大家體諒我不會,現在好像有點會了,屬下們就想要用對待高級新手的方式教我,但我還是一整個矇,完全聽不懂啊。有多慘呢?
他們說要這樣那樣Joint table 或者是 case when ,我聽了照做卻無法顯示我要的結果。

我螢幕上的報錯畫面,他們也沒空幫我改。一直叫我讓他們做好了,我回去做主管的工作吧。


我不想這麼快放棄,開始試著把我想解的問題,想解的方式,先用手寫下來。在白紙上畫出我倒底想要怎麼解答我自己提出的假設。

說也奇怪,用鍵盤打Code的時候,感覺十二萬分困難,一但用寫的,就可以開始冷靜的拆解到底有什麼問題,哪些是我現在已經會的,哪些是我聽過可以這樣做,但其實不會的。

我開始從會寫的開始寫,留下一點點不會的小問題,請屬下幫我。他們幫了我幾次後,我覺得可以繼續上進階新手的課程了。

回去上intermediate的過程其實滿挫折:紅字更多了,沒有線上助教,只能邊讀邊猜。就算好不容易學會,教學版跟公司用的版本又不盡相同。

我覺得自己似乎有一點點懂,但好像更蒙了。

總之是,童話故事好像沒有那麼美好的結局。我沒有那麼快從超級新手到高級新手。只好找更多的例子來寫,或者看同事的Code,持續三四個月後,我忽然發現自己沒有那麼菜:

不但可以獨立解題,也可以指導同事,甚至能夠拿到題目就知道難度跟坑各在哪裡。

如果有人分析花費的時間比我慢很多,那他應該是遇到嚴重的障礙需要換方法。

我好像終於變成高級新手了。人生翻過了一頁。

這個過程,大約花費三個月左右。我還是常常覺得自己這裡不會那裡不會,但至少拉資料已經不再是我工作上的難題,甚至我還可以指導別的部門同事如何有效率的學習寫SQL做分析。

Comments

comments powered by Disqus