Hi mọi người,
Hết tết rồi, mọi người đã trở lại với công việc của mình hết chưa? Chứ Maz đã bật laptop vào mùng 8 rồi đó. Tự dưng ngồi vào bàn làm việc mà cái lưng, cái tay, cái óc nó vẫn bồn chồn nhớ mùi bánh chưng, hương bánh tét các bạn à. Thế nên mình quyết định ngồi đánh giá hiệu quả các “solutions” trong mùa tết một tí rồi lấy mở các khóa đang học online dang dở ra làm tiếp. Trong đó có việc lần đầu tiên thực hành code trên HackerRank.
Từ lúc bắt đầu nhận lời làm trainer trong lĩnh vực data ở một trung tâm, ngoài việc mình cố gắng truyền tải kiến thức đến học viên hết mức có thể, mình cũng có cơ hội tích lũy thêm nhiều trải nghiệm: mở rộng sự hiểu biết và kĩ năng cũng ngày một được nâng cao. Dạy học không đơn thuần là đọc từ sách giáo khoa, rập khuôn theo giáo trình. Dạy học cần có sự liên tục sáng tạo. Điều này sẽ giúp cho kiến thức trong sách vở cộng hưởng với kinh nghiệm thực tiễn của người hướng dẫn mang lại hiệu quả cao nhất. Việc chinh phục nhiều chứng chỉ, cũng như tham gia các khóa học sẽ là một trong những mục tiêu quan trọng của Maz trong 2022.
Bài viết này dành cho các bạn đang tự học SQL, muốn test khả năng và đạt được chứng chỉ uy tín từ HackerRank ở cả 3 levels: basic – intermediate – advanced. Mời mọi người cùng theo dõi nhé!
Nội dung:
- HackerRank là gì?
- 7 tips hoàn thành 58 SQL challenges từ dễ đến khó cho tất cả mọi người
- Đánh giá 3 bài tests: Basic – Inter – Advance về SQL của HackerRank
I. HackerRank là gì? Một số lưu ý cho người mới tham gia
Mình tìm được một bài viết rất chi tiết nên mọi người đọc ở đây cho rõ nha: ITnavi
“Nếu bạn là một nhà lập trình viên, chắc hẳn đã không còn xa lạ với thuật ngữ HackerRank này. Vậy HackerRank là gì? HackerRank thực chất là tên gọi của một trang web chuyên dụng dành cho các lập trình viên hay các doanh nghiệp hiện nay.
Cụ thể, HackerRank được coi là nơi mà các lập trình viên từ khắp nơi trên thế giới tụ họp và cùng nhau giải quyết các vấn đề trong các lĩnh vực liên quan đến khoa học máy tính như thuật toán, máy học hay trí tuệ nhân tạo. Đây cũng là nơi mà các nhà lập trình sử dụng để thực hành các mô hình lập trình khác nhau.
HackerRank được xem là một không gian học tập, trau dồi và rèn luyện những kiến thức hữu ích của các lập trình viên. Tại đây họ không chỉ được học hỏi mà còn có thể thể hiện được mình khi so tài với các đối thủ khác trong ngành trên toàn thế giới.”
II. 7 Tips giúp bạn sớm hoàn thành tất cả 58 SQL challenges của HackerRank
Tip 1: Chuẩn bị kiến thức nền tảng về SQL
Nếu bạn là người chưa biết gì về SQL thì trước khi bắt tay vào thực hành và làm test trên HackerRank, hãy học qua một lượt kiến thức tổng quan. Ít nhất bạn phải biết được:
- SQL là gì?
- SQL dùng để làm gì?
- SQL có các loại biến thể nào?
- Các main concepts: database, schema, table, column, …
Bạn có thể học qua sách hoặc các web hướng dẫn online. Ở đây mình trích một số nguồn tự học để mọi người tham khảo:
- Basic + Intermediate tutorials of Alex The Analyst
- Detailed tutorial: https://www.youtube.com/playlist?list=PL08903FB7ACA1C2FB
- Web: HackerRank https://www.hackerrank.com/domains/sql
- W3schools: https://www.w3schools.com/sql
Ngoài ra mình có nghiên cứu xong một quyển sách và một nền tảng online. Mà theo mình đánh giá là đầy đủ, bài bản và tiện lợi nhất trong các sách và tools mình biết. Nếu bạn nào muốn nhận thêm tài liệu và hướng dẫn này, hãy để lại email bằng cách comment dưới blog hoặc trong bài đăng ở fanpage. Maz sẽ gửi riêng cho bạn nhé
Tip 2: Nắm rõ kiến thức các câu lệnh DQL (data query language)
Vai trò lớn nhất của SQL đối với các bạn làm phân tích là trích xuất và biến đổi data theo yêu cầu từ các cơ sở dữ liệu. Vì thế việc nắm rõ các câu lệnh trong nhóm DQL là vô cùng cần thiết. HackerRank không phải là platform hướng dẫn học SQL, nên bạn bắt buộc phải chuẩn bị các kiến thức này từ trước.
Các bạn có thể tham khảo lại các cấu phần quan trọng khi học SQL trong Hướng dẫn tự học các cấu phần quan trọng của SQL cho người làm phân tích
Tip 3: Nên thực hành theo thứ tự Easy – Medium – Hard
Trong 58 challenges của HackerRank sẽ bao gồm các chủ đề theo 3 mức độ: easy – medium – hard
- Select:
- Basic
- Advance
- Join
- Basic
- Advance
- Aggregation
- Alternative queries
Hacker sẽ sắp xếp cho mọi người học theo từng chủ đề. Tuy nhiên, bạn sẽ dễ chán nản nếu gặp ngay những bài Hard hoặc Medium ngay từ đầu. Vì thế lời khuyên của mình là hãy thực hành những challenge mức độ Easy trước, sau đó hẵng bắt tay vào các bài ở level cao hơn nhé.
Tip 4: Chọn đúng loại biến thể SQL muốn thực hành
Mình đã bị vướng một bài tập ngồi sửa code đến gần 30 phút vẫn chưa ra kết quả. Sau đó mình phát hiện ra chọn nhầm loại biến thể SQL là MySQL trong khi ngôn ngữ đang viết là MS SQL Server. Holy shit! Mất quá trời thời gian và não vắt óc tìm lỗi cho một sự nhầm lẫn không đáng có.
HackerRank hỗ trợ bạn viết code với 4 loại biến thể SQL khác nhau. Vì thế bạn cần xác định loại mình muốn sử dụng để tránh trường hợp viết code đúng nhưng cứ bị báo lỗi sai syntax nhé.
Tip 5: Hiểu rõ yêu cầu đề bài giúp bạn hoàn thành chỉ với một nửa thời gian
Khi thử một vài bài tập đầu tiên, lúc đấy mình chưa quen với cấu trúc đề cũng như “phong cách” đặt câu hỏi của HackerRank nên làm sai rất là nhiều lần. Tại sao code chạy ra kết quả sai, trong khi mình code hoàn hảo mà nhỉ! Thật là “ngu ngốc” khi sau đó mình phát hiện ra làm thiếu điều kiện trong câu hỏi, vì vậy mà kết quả sai vẫn sai. Hic!
Bạn sẽ rất dễ rơi vào trường hợp này nếu như đọc đề quá vội và để sót yêu cầu. Vì thế đôi khi chậm mà chắc. Đọc thật kĩ bài toán, xem thật hiểu các schema, tables và mối quan hệ giữa các bảng để tránh hiểu nhầm hoặc hiểu sai bạn nhé.
Tip 6: Luôn luôn hiểu rõ và kiểm soát data bạn đang xử lý
Khi thực hành 58 bài tập, bạn sẽ làm quen với nhiều bảng dữ liệu khác nhau. Vì thế xem kĩ cấu trúc bảng dữ liệu ban đầu. Trong lúc viết code cố gắng hình dung sự thay đổi các bảng dữ liệu để luôn kiểm soát được các câu lệnh của mình. Cứ bấm “Run Code” khi bạn thực hiện từng dòng code để kiểm tra kết quả và so sánh với đáp án. Phân tích từng bước sẽ giúp bạn dễ dàng tìm ra đáp án chính xác một cách dễ dàng hơn.
Tip 7: Tìm sự trợ giúp nếu thấy cần thiết
Đừng để mình dừng lại ở một challenge nào quá lâu khi đã cố gắng suy nghĩ và tìm hướng giải quyết trong một thời gian nhất định. Ví dụ, sau 20-30 phút vẫn chưa hoàn thành thì bạn nên tham khảo trên Google. Có rất nhiều người đã tìm ra lời giải, bạn nên tham khảo nó với 2 mục tiêu:
- Phân tích để tìm ra phương pháp mà người ta đã làm thành công, từ đó tích lũy thêm cho mình một kiến thức mới.
- Luôn giữ cho mình động lực để tiếp tục vượt qua các challenges kế tiếp. Bạn sẽ tránh được cái cảm giác chán nản khi giải 1 bài mãi không ra và có thể bỏ cuộc.
Copy câu hỏi vào Google, bạn sẽ tìm được nhiều sự trợ giúp lắm ^_^
III Chinh phục 3 SQL Certificates của HackerRank
Ngoài việc cung cấp một hệ thống bài tập để các bạn thực hành thì HackerRank còn có 3 bài test với 3 mức độ: Basic – Inter – Advance. Khi hoàn thành bài test các bạn sẽ được cấp một chứng chỉ tương ứng. Có chứng chỉ trong tay, bạn có thể đính kèm “làm đẹp” thêm profile của bản thân.
Do bản thân mình đã có kinh nghiệm SQL từ trước nên mình đã làm 3 bài tests trước khi hoàn thành 58 challenges. Cũng mạo hiểm ha, nhưng mình cũng muốn thử đánh giá năng lực xem có đạt ngay lần đầu làm test hay không. Và kết quả là mình passed cả 3 levels ngay từ lần đầu tiên trong vòng 1 tiếng. Sau đó mình quay lại giải quyết các challenges.
Mình đánh giá, 3 bài tests của HackerRank có nội dung nằm trong 4 topics mình đã kể ở trên.
- Basic: Test về các lệnh Select
- Inter: Test về các lệnh JOIN, có dùng thêm CTE và Subquery
- Advance: Test JOIN, PIVOT và một vài thủ thuật khó hơn một tí
Nếu bạn nào đã có kinh nghiệm với SQL rồi thì có thể bắt tay làm test để lấy certificate ngay lập tức. Mình nghĩ Basic và Inter thì các bạn hoàn toàn dễ dàng đạt được.
Nếu bạn là người mới, thì mình khuyên rằng hãy học qua một lượt tất cả các kiến thức trong Tip 1 & 2 mình kể trên, hoàn thành ít nhất 70% challenges thì hoàn toàn có thể passed được 2 bài test Basic và Inter. Tự tin lên nhé!
Kết
Đầu tư cho bản thân luôn là khoản đầu tư siêu lợi nhuận. Maz đặt mục tiêu mỗi tháng sẽ học thêm 1-2 khóa học mới. Có thể là kiến thức hoặc kĩ năng cần cho cuộc sống và công việc của Maz. Hi vọng rằng mọi người cũng có thêm động lực học tập để bạn của ngày mai luôn tốt hơn bạn của hôm trước nhé.
Cám ơn vì đã ghé qua. Nếu thấy hữu ích, giúp Maz share với nhiều người thêm nhe.
Follow Maz tại đây để cùng cập nhật thông báo mỗi khi có bài viết mới nhé:
- Fanpage: Maz học Data & Lucas học Product
- TikTok mới toanh :))
Maz.
** Mọi thông tin trên blog đều thuộc bản quyền của blog Maz Nguyen. Vui lòng đọc kĩ Copyright Notice trước khi copy hoặc đăng tải lại nội dung/hình ảnh của bài viết **
Maz có một dự án dạy học ở đây: Maz Học Data với SQL là course đầu tiên, bạn có thể tham khảo qua nếu thấy cần thiết nhé.
Anh cho em xin tên sách với phần mềm với ạ. Em cảm ơn ạ!
Mail: keinnaut@gmail.com
Thật tình cờ là trước Tết em mới biết tới và mò mẫm làm vài SQL challenges trên HackerRank sau khi đọc được một bài chia sẻ về DA trên LinkedIn, thì sau Tết em lại đọc bài một bài chi tiết hướng dẫn từng chút siêu có tâm từ anh ^^. Anh Maz cho em xin tài liệu và hướng dẫn học SQL với ạa, em xin để lại chiếc gmail của em hongnhungvo.cv@gmail.com hì hì. Em biết tới blog của anh từ bài chia sẻ kinh nghiệm thi lấy chứng chỉ DA-100, trùng hợp cùng lúc em quyết định tìm hiểu DA là gì sau khi được học một khóa Python cơ bản ^^. Em cảm ơn những bài chia sẻ vô cùng có tâm của anh và vô cùng mong chờ những bài viết tiếp theo <3. Tuy đã qua 10 ngày xuân nhưng em xin chúc anh một năm mới an khang thịnh vượng, luôn thuận lợi và gặt hái thật nhiều thành tựu anh nhé!
Bạn có thể cho mình xin thêm tài liệu (sách +trang online bạn học) mà bạn nhắc đến trong bài được không bạn. Mail: skpoly16@gmail.com
Anh cho em xin tên sách và phần mềm online nha. Em cảm ơn ạ!
Email: yen.lyngoc912@gmail.com
Anh cho em xin tên sách và phần mềm online với ạ. Em cảm ơn anh ạ
Mail: toutran209@gmail.com
Anh cho em xin tên sách qua mail: ngocmaidang21@gmail.com với ạ. Em cảm ơn anh nhiều ạ
cảm ơn anh vì bài viết .em xin anh sách và phần mềm ạ mail : ptla.stu@gmail.com
Anh cho em xin tên sách và phần mềm với ạ.
Mail: phamtmtrang@gmail.com
Cảm ơn bài viết của anh ạ.
Cảm ơn anh đã viết bài chia sẻ chi tiết ạ. Em đang học theo roadmap của anh để trở thành một data analyst và đến phần SQL ạ:)
Anh cho em xin thông tin cuốn sách và phần mềm online anh đề cập với ạ. Sau đó em sẽ rà soát một lần nữa giữa tài liệu anh gửi và https://www.w3schools.com/sql/ xem bên nào phù hợp với em hơn. Em nhớ một lần anh có để cập là nên giải quyết một tình huống mà cần phối hợp các câu lệnh/syntax thì sẽ hiệu quả hơn.
Email của em là: phantranngoc@gmail.com
Cảm ơn anh nhiều ạ.
Anh Hiếu cho em xin sách trong Tip1 qua địa chỉ mail: dinhht.iuh@gmail.com với ah
En cảm ơn anh.
Cảm ơn Maz luôn có những chia sẻ rất hay!!!
Maz cho mình xin thông tin tài liệu học SQL nhé. Mail: phamyen.hsdvc@gmail.com
Bài viết xúc tích vừa đủ như mọi khi. Keep going a nhé. Anh gửi giúp em tài liệu vào mail thuyntm.xnk@gmail.com nhé ạ
Anh cho em xin tên sách và phần mềm với ạ. Em cảm ơn anh ạ.
Mail: hienvt2929@gmail.com
A cho e xin sách và phần mềm với ạ. E cảm ơn a nhiều ạ. Mail: xinvaicu@gmail.com
Anh cho em xin tên sách với phần mềm với ạ. Em cảm ơn ạ!
Mail: nnkt598@gmail.com
Anh cho em xin tên sách với ạ
Em cảm ơn
Để lại email nha em
Anh cho em xin tên sách và phần mềm với ạ. Em cảm ơn ạ!
Mail: phammanhhung10501@gmail.com
Anh cho em xin trên sách với tools ạ. Em cám ơn anh <3
Mail của em: vietanhk63bkhn@gmail.com
Cảm ơn anh đã viết bài chia sẻ chi tiết ạ. Em đang học theo roadmap của anh để trở thành một data analyst và đến phần SQL ạ:)
Anh cho em xin thông tin cuốn sách và phần mềm online anh đề cập với ạ. Sau đó em sẽ rà soát một lần nữa giữa tài liệu anh gửi và https://www.w3schools.com/sql/ xem bên nào phù hợp với em hơn. Em nhớ một lần anh có để cập là nên giải quyết một tình huống mà cần phối hợp các câu lệnh/syntax thì sẽ hiệu quả hơn.
Email của em là: phantranngoc@gmail.com
Cảm ơn anh nhiều ạ.
Anh cho em xin tên sách và phần mềm online nha. Em cảm ơn ạ!
Email: anh3713@gmail.com