NGÀNH DATABASE LÀM NHỮNG GÌ


Database không mới, nhưng ở Việt Nam thì lại rất mới so với một số ngành khác. Ở đây mình loại trừ một số mảng mới ra đời theo sự phát triển của công nghệ. Để đánh giá một công nghệ có thuộc loại mới hay không thường phải xem các trung tâm đào tạo về loại hình đó có nhiều hay không.

Bây giờ bạn có thể gặp rất nhiều các trung tâm như vậy:
- Lập trình Mobile
- Lớp Database ( CSDL: SQL Server, Oracle, MySQL...)
...

Ở mặt này các trường ĐH thường không nhạy bén, hoặc chậm hơn so với bên ngoài. Lý do có thể là muốn đưa 1 môn học mới vào giảng dạy thường không đơn giản, cần giáo án, số trình, kế hoạch giảng dạy v.v.... Hoặc các trường ĐH thường tư duy chỉ dạy những cái căn bản, còn nâng cao hơn thì để sinh viên tự túc.

Vì thế mỗi lúc đi dạy thêm, đi hội thảo hoặc trả lời câu hỏi trên các diễn đàn. Mình gặp rất nhiều câu hỏi kiểu như:
"EM muốn theo nghề DB" nhưng "Em lại éo biết DB là làm cái gì" hoặc như trong câu chuyện trước mình đã kể ở một post, em mình cưa nghe nói mình làm "Quản trị CSDL" còn tưởng mình làm quản lý giấy tờ sổ sách mới vãi lọ. 

Nếu bạn muốn theo một nghề, trước mắt phải hiểu nghề đó làm những công việc gì, còn muốn đi sâu đi sát xem thực chất nó làm "từng bước, từng bước" thế nào là chuyện của sau này. Rất nhiều người không vượt qua được bước này, cuối cùng cũng giống câu chuyện cười "Học được chữ nhất, nhị, tam thì quẳng cmn bút rồi vỗ ngực tao biết chữ rồi" vậy.

Vì thế có thể bạn sẽ chán nghề vì đi sâu sát mới thấy nghề mình theo đuổi không hợp với mình.

Trong ĐH rất cần một môn học, để định hướng từng ngành nghề mà trường đào tạo có thể làm được gì. Ở đây mình chia sẻ về nghề nghiệp của mình cụ thể là làm những gì.

1, Phân tích và Thiết kế CSDL

Điều này không cần nói nhiều, trong trường ĐH đã giảng dạy. Tuy nhiên để master được không đơn giản. Với một số cá nhân kiệt xuất có thể chỉ theo mảng này cũng sống ngon lành, nhưng những người mình biết thì không có ai là người Việt Nam cả.

Với mình, đa số là Join hệ thống có sẵn. Nếu phát triển thêm cũng là một số module nhỏ.

2, Database Developer

Đây chính là mảng ở VN tập trung khá đông dân cư. Và thường các coder sẽ đảm nhiệm luôn vị trí này. Nhưng thực chất nên có riêng một vị trí DB Dev, kinh nghiệm của mình dev 6 năm trong mảng cũng không dám tự tin kêu là number 1.

Vậy phần này công việc chính là gì.
Có thể là viết các stored, function, packages, trigger....có thể kiêm luôn cả 1, ta thường hiểu từ input, qua blackbox sẽ có output. DB dev là người quản lý và thiết kế cái blackbox đó.

Có thể bạn sẽ băn khoăn cái này thì master ở chỗ nào. Mình sẽ trả lời gợi mở như sau, tự mình chia 2, ra 5 level. Bạn thử xem mình đang ở cấp độ nào. Mỗi cấp độ cũng sẽ tính ra lương được 

Level 1: Làm được việc, miễn có input, requirement và data flow là ra được output. Kết quả đúng và được chấp nhận.

Level 2: Có thể switch giải pháp qua lại giữa các phiên bản và Hệ Quản trị CSDL khác nhau. Ví dụ Solution 1 sử dụng PL/SQL trên Oracle, giờ phải chuyển sang T-SQL trên SQL Server. Hoặc giải pháp này sử dụng một số tính năng ở bản Oracle 11g R2, cần move xuống 10g, 9i thì giải pháp tương tự là gì và ngược lại.

Có khả năng giải quyết 1 problem bằng nhiều cách, đánh giá ưu nhược điểm hay không ?

Level 3: Có hiểu biết nhất định về Tuning Query và Database Performance. Biết các loại Indexes, cách sử dụng trong từng trường hợp: Filter, Bitmap, Covering, Partition...
Các loại HINT, các loại Join (Hash, Nested Loop...)
Quan trọng nhất là Execution Plan có biết không.
Có khả năng tự tối ưu solution của mình, so sánh ưu nhược điểm và CHỈ RA được cho sếp nó biết là cách mình tốt hơn cách của thằng khác.

Level 4: Môi trường làm việc lớn. Kĩ năng của bạn tốt, tư duy tốt nhưng kinh nghiệm cọ xát là cả một vấn đề. Ví dụ Messi đá hay đá giỏi, nhưng nếu từ năm 11 tuổi đến năm 30 tuổi chỉ đá ở V-League thì cũng éo thể nào thành No.1 được 

Nói cách khác phải có 1 môi trường lớn, big data , complex flow, real-time... thì mới có đất dụng võ. Nói theo Tiên hiệp, khi tu đến một trình độ cần xuống núi để ngộ đạo. Làm việc với hệ thống lớn tầm vài chục triệu , vài trăm triệu, vài tỷ record..., ngộ lại những điều đã học bạn sẽ đạt đến mức 4

Level 5: Thấu hiểu được ngôn ngữ trên Hệ Quản trị CSDL mình đang làm việc. Có thể thành Technical Architect, khi gặp một vấn đề luôn biết mình phải dùng những gì, hoặc phân tách thành các vấn đề nhỏ hơn và luôn biết dùng solution nào cho từng vấn đề nhỏ hơn đó.

Thấu hiểu ở đây là hiểu được bản chất, bạn có thể giải thích được why, when, how trong từng giải pháp đưa ra. Có thể tự xác định được thời gian sẽ bỏ ra cho từng problem.

Quan trọng hơn, ở level này cần có thêm Certificate để xứng với trình độ.
Với SQL Server có thể là MCDBA (hình như giờ đổi tên rồi không để ý nữa), Oracle là OCA, OCP thì càng tốt (OCM cả VN có mỗi 1 ông mà nghe lùm xùm học tủ nên không tính ).

English cũng cần thiết.

Sau khi đạt level 5, có Certificates, EXP ngon, excellent writing skill and oral communication (English) mình nghĩ mức lương bạn có thể kiếm được sẽ dao động trong khoảng 1000-1500$ (gross). Có thể cao hơn hoặc thấp hơn tùy công ty,NƯỚC làm việc, khả năng offer...

Với mình, con đường để đạt đến level 5 là 5 năm, tuy nhiên vẫn thỉnh thoảng bơi qua lại giữa 2 level 4 và 5. Sau level 5 sẽ còn một số level khác nhưng chắc tùy khả năng phát triển của từng người. Chú ý rằng level này đang trong phần DB Dev

Phần sau sẽ viết tiếp.




.......

1 nhận xét :

  1. Cám ơn Anh rất nhiều về những chia sẽ thêm. Em là một người mới bắt đầu tìm hiểu và học về Database, thật hạnh phúc khi đọc được bài viết của Anh. Thank you. Chúc Anh thành công trong công việc và cuộc sống.

    Trả lờiXóa