在職場打滾多年已久,文組畢業的我一直覺得學習程式語言是工作上必修技能之一。因此,從以前就嘗試使用線上網站學習 python、ruby、javascript 等等程式語言,現在雖然沒有轉職工程師,不過身為 PM,可以和工程師們有共通語言,在工作上相對的溝通順暢的許多。
最近因為工作的關係,開始重修 SQL,一開始是使用 Udemy 上英文版的課程,但是有些名詞和用法還是有點不會,加上我每次都忘記密碼導致進不去 terminal 的資料庫,因此轉向 Hahow 修了這門 SQL的五十道練習:初學者友善的資料庫入門。主要就是公司雖然是使用 tableau 的視覺化 dashboard,但每次都需要和數據師提需求撈資料庫,想想還是自己撈,自己做報表最快速,也不用賣人情。
我上的這堂 SQL的五十道練習:初學者友善的資料庫入門,非常的新手友善,使用的是 Dbeaver、SQLlite 兩個開源軟體,課程中也有提供對應的數據庫,包含 IMDB 網站的電影資料、NBA 網站的球員與球隊資料、Johns Hopkins Covid19 資料以及中選會選舉資料
來做練習,整堂課上下來,基本上拉公司的 sql query 就沒問題了。
先來聊聊什麼是SQL?
SQL(Structured Query Language,結構化查詢語言)是一種專門用來管理和操作關係型數據庫的標準語言。SQL的主要功能包括查詢數據、插入數據、更新數據和刪除數據。SQL語言簡單易學,並且被廣泛應用於各種數據庫管理系統(DBMS)中,如MySQL、PostgreSQL、SQLite、Microsoft SQL Server和Oracle等。
SQL的實際應用
- 數據查詢:SQL最常見的應用是查詢數據。通過SELECT語句,可以從數據庫中檢索所需的數據。例如:
SELECT name, age FROM users WHERE age > 18;
- 數據插入:使用INSERT語句,可以將新數據插入到數據庫表中。例如:
INSERT INTO users (name, age) VALUES ('Porsh', 30);
- 數據更新:使用UPDATE語句,可以更新數據庫中的現有數據。例如:
UPDATE users SET age = 30 WHERE name = 'Porsh';
- 數據刪除:使用DELETE語句,可以從數據庫中刪除不需要的數據。例如:
DELETE FROM users WHERE age < 18;
- 數據庫管理:SQL還可以用來創建和管理數據庫結構,如創建表、索引和視圖。例如:
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(100), age INT );
為何一位 PM 需要擁有 SQL 技能?
- 高效數據管理:
SQL提供了一種高效的方法來管理大量數據。通過SQL語句,可以快速檢索、插入、更新和刪除數據,從而提高工作效率。我們公司主要透過 SQL,通過 HIVE table 然後整成可視化的數據 dashboard,讓非數據師也可以自由地拉取數據。
- 標準化語言:
SQL是一種標準化的語言,這意味著它在不同的數據庫管理系統中基本上是通用的。這使得學習和使用SQL變得更加簡單和方便。以我們公司為例,不同的部門如 Risk team 和 Marketing team 有不同的 data set,今天我想要找到用戶無法參加某行銷活動是不是 hit 到 risk,通過兩個 data set 整合,可以很快的撈出所有 risk user,然後再對這些用戶進行分析
- 強大的查詢功能:
SQL具有強大的查詢功能,可以進行複雜的數據檢索和分析。通過JOIN、GROUP BY、HAVING 等語句,可以實現多表聯合查詢和數據分組統計。
SQL作為一種強大且靈活的數據庫查詢語言,已經成為現代數據管理的基礎。無論是數據查詢、插入、更新還是刪除,SQL都能提供高效的解決方案。通過學習和掌握SQL,我可以更好地管理和利用數據,從而提升工作效率和數據分析能力。這點,我相信除了在現有職場上可以用到,整個職涯發展都是一大加分。
為什麼我要學習 SQL,他對我的好處是什麼?
還是回到一開始的動機,主要就是工作上需要檢查數據的機會太多了,如果依照一般流程請數據師撈給我,要開 ticket 然後還要排期,心急的我是等不了太久的,不如就自己 hands on,想撈哪個表就撈哪個表,自己的數據自己 CRUD,數據師頂多就只要幫我開權限按一下核准就可以。
優點:
- 簡單易學:SQL 語法簡單,易於學習和使用。
- 標準化:SQL 是標準化語言,廣泛應用於各種關聯數據庫管理系統。
- 強大查詢能力:能夠執行從簡單到複雜的查詢,滿足多種數據處理需求。
缺點
- 學習曲線:深入掌握高級功能和優化技巧需要時間和實踐。例如我再將不同的底表整合再一起,對我來說目前仍有難度,需要持續的學習精進,或是偷問公司數據師才有辦法學會。
- 性能問題:複雜查詢可能影響性能,需要進行優化。有時候跑資料可能數十萬筆,這時候就蠻常出現錯誤。
選擇 SQL 課程的心路歷程
坊間的線上教學網站很多,我自己使用過的有 Udemy、Codecademy 以及 Hahow,使用過一圈還是覺得 Hahow 台灣講師眾多,使用的語言也和台灣人比較貼近,因此會想推薦台灣網友使用。
▲我在 Hahow 的學習課程頁面,可以看到先前因為在數位串流網站工作,為了要和工程師聊 JS SEO 架構,也修了 Javascript 程式課程,更了解怎麼在 JS 架構下推出適合用戶體驗的網頁。Python 資料分析則是之後我想要繼續進修先買起來放
我們比對一下之前透過 Udemy 的 mySQL 和 Dbeaver,相對的在視覺上就是比較整潔、清晰。
▲透過 homebrew 安裝在 terminal 的 mySQL,就是黑黑的介面,相較於新手是比較不友善,許多指令也是要透過查詢才能操作。比較適合資深的數據師、工程師
▲ SQL的五十道練習:初學者友善的資料庫入門 課程上使用的 Dbeaver 相對適合新手,數據庫的整合以及可視化,都可以輕易執行。
在SQL的五十道練習:初學者友善的資料庫入門課程中,還有 50 道練習題,讓你可以在每個章節校驗你的學習成果,也有老師會在作業頁面進行批改
▲ 透過每章節的練習題,即時的批改,即時反饋自己哪邊出錯,可以再回去課程章節複習不熟悉的內容
▲ 清楚的章節編排,由淺入深的主題,學習不會迷茫
▲ 再搭配練習題和練習題詳解,讓學生可以清楚知道自己學會多少。
此外老師也是會適當的回答學員問題,批改作業,不會讓學生有買了課程然後求助無門的現象
▲ 在問答中,可以看到學員們碰到的問題,以及講師解決的進度,遇到相同問題就可以點進去看解法,覺得蠻方便的。
回到課程本身,這堂課程是否真的能幫助到我?
答案是肯定的,由於一開始是透過 Udemy 上了一堂外國的 mySQL,本來想說一邊學英語一邊學 SQL,想想我還是太天真了,即使字幕打開,我還是需要花比較多的力氣去吸收、消化。因此轉向 Hahow,中文的教學,老師的語速和說明都非常清晰。不過我還是覺得 Hahow 有可以優化的空間,舉例來說:
- 語速調整部分,當我在某個影片設定了 1.5 倍數,並不會套用到下一個影片,等於說我每次都需要手動調整語速,會希望網站可以智能的記住我在這堂課偏好的語速。
- Hahow 的課程價格,相較於外國網站的價格較為昂貴,舉例來說,在 Udemy 很常有超級大特價,python 課程等只要 300 多元等,但是 Hahow 則是偏高一點。但我覺得由於中文講師資源、網站維護、行銷等成本考量,因此課程偏高一些是可以接受的,畢竟買了不學反而是一種浪費。不過,外國網站 Coursera 則是有 financial aids,提供一些獎學金讓有需求的人免費上課,這種公益性質的活動我覺得也很棒,建議 Hahow 未來可以這種助學方案。
整體而言,我覺得 Hahow 這堂 SQL 課程非常適合下班後想繼續修煉自我的人使用,講師也都是會說中文的台灣人,有問題找得到人是我最滿意的地方。當然,平台上有上千的講師和課程,找到適合自己的課程是最重要的。大家都說未來是 ai 的時代,我覺得學會基本的程式語言,不需要精通,之後再透過 copilot 的協助,人人都可以成為厲害的產品經理、工程師拉。
如果你有興趣跟我一樣想要進行跨領域的轉職或增加技能讓工作更順利,可以考慮 Hahow 好學校的 「SQL的五十道練習:初學者友善的資料庫入門」 課程!
全站課程 9 折優惠(募資課程除外),Hahow 好學校官網結帳輸入折扣碼「aohahow」,使用期限至 2024/12/31!