Bài viết được sự cho phép của tác giả Lại Đình Cường
Chạy debug WordPress là cách tốt nhất để kiểm tra lỗi trong quá trình bạn viết code. Bài viết này sẽ dành cho các bạn đang phát triển giao diện hoặc plugin cho WordPress. Nội dung bài này sẽ hướng dẫn cho bạn cách bật debug, kiểm tra lỗi phát sinh trong quá trình viết code nhằm giúp sản phẩm của bạn được hoàn thiện hơn.
Hướng dẫn chạy debug WordPress
Chạy debug PHP là một phần quan trọng của mọi dự án lập trình web dựa trên mã nguồn mở PHP. Đối với WordPress thì hệ thống debug được thiết kế để bạn có thể sử dụng một cách dễ dàng nhằm kiểm tra lỗi trong quá trình viết code. Nó có thể kiểm tra được code trong nhân của WordPress cũng như kiểm tra code của giao diện và plugin.
WP_DEBUG
Biến WP_DEBUG là một hằng số được khai báo trong tập tin wp-config.php. Hằng này có chức năng cho phép bạn bật hoặc tắt debug trong WordPress. WP_DEBUG là hằng số có giá trị là kiểu bool (đúng hoặc sai). Bạn có thể khai báo trong tập tin wp-config.php, nếu bạn đặt giá trị là true thì có nghĩa là chức năng debug được bật, ngược lại nếu bạn đặt là false thì chức năng debug được đặt trong trạng thái tắt.
Chú ý: Giá trị của hằng số WP_DEBUG là thuộc kiểu boolean (true/false), do vậy bạn chỉ cần gõ vào giá trị là true hoặc false, bạn không cần phải để dấu nháy đơn hoặc nháy kép hoặc bất kỳ thứ gì khác vào đây. Nếu bạn điền giá trị là ‘false’ thì hằng này được coi như là có giá trị true vì chữ false được bỏ trong dấu nháy đơn nên nó được coi là một chuỗi.
Và bạn chỉ cần bật debug để kiểm tra lỗi phát sinh trong quá trình thực hiện code thử nghiệm, còn đối với các trang hoạt động chính thức thì bạn nên tắt chức năng này đi.
PHP Errors, Warnings và Notices
Đây là những dạng bạn hay thấy trong khi lập trình PHP, nếu bạn bật chức năng chạy debug thì hệ thống sẽ theo dõi các dòng code mà phát sinh ra lỗi, hoặc cảnh báo hoặc là chú ý.
Tùy vào cấu hình của bạn mà các thông báo này được xuất ra ngoài trang web hoặc không. Nếu bạn không cho xuất ra bên ngoài thì hệ thống sẽ sao lưu lại thông báo lỗi trong một tập tin log để bạn có thể xem và khắc phục.
Thật khó để bạn có thể tìm ra lỗi ở một dự án lớn nếu như không có chức năng debug này. Đối với WordPress cũng vậy, nếu bạn bật debug lên thì mọi lỗi trong dự án của bạn đều có thể được tìm thấy dễ dàng.
Deprecated là thông báo các hàm hoặc các tham số đầu vào được thay thế bởi các hàm hoặc tham số đầu vào khác. Nếu bạn bật chức năng chạy debug thì tất cả các hàm và tham số được đánh dấu là deprecated sẽ được hệ thống cảnh báo.
Deprecated có nghĩa là bạn phải sử dụng hàm mới hoặc tham số mới để thay thế, vì các hàm cũ sẽ không còn tương thích đối với phiên bản mới hoặc các hàm này có thể bị xóa bỏ trong tương lai.
WP_DEBUG_LOG
WP_DEBUG_LOG là một hằng số có giá trị là kiểu bool như mình nói ở bên trên. Nếu như bạn khai báo hằng số này có giá trị là true thì các thông báo lỗi sẽ được lưu lại vào tập tin debug.log.
define('WP_DEBUG_LOG', true);
Bạn có thể tìm thấy tập tin sao debug.log trong thư mục wp-content của WordPress, trong này sẽ chứa các thông báo lỗi cũng như nội dung khác bạn ghi vào trong quá trình kiểm tra debug WordPress.
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY là một hằng số có giá trị là kiểu bool, bạn có thể bật hoặc tắt chức năng cho phép hiển thị thông báo lỗi ra ngoài màn hình hoặc là ẩn tất cả thông báo lỗi.
Bật debug trong tập tin wp-config.php
Bên dưới là ví dụ cơ bản nhất về cách bật chức năng debug WordPress để kiểm tra lỗi. Bạn có thể thêm vào các dòng khai báo bên dưới vào trong tập tin wp-config.php. Nhớ là phải thay lại hằng số WP_DEBUG có sẵn trong tập tin config đi nhé.
// Bật chức năng chạy debug define('WP_DEBUG', true); // Bật chức năng sao lưu thông báo lỗi vào tập tin /wp-content/debug.log define('WP_DEBUG_LOG', true); // Ẩn các thông báo lỗi và cảnh báo ra bên ngoài màn hình define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0);
Nếu bạn muốn chạy debug WordPress một cách đầy đủ hơn thì bạn làm như sau. Bạn hãy thay thế nguyên đoạn chú thích trước khi khai báo hằng số WP_DEBUG và cả dòng khai báo hằng số này thành đoạn code như bên dưới:
define('WP_DEBUG', true); /* Add any custom values between this line and the "stop editing" line. */ /** * Auto detect domain */ $protocol = (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') ? 'https://' : 'http://'; $url = $protocol . $_SERVER['SERVER_NAME']; $folder = basename(dirname(__FILE__)); if ( ! empty($folder) && false === strpos($url,$folder)){ $url .= '/'; $url .= $folder; } define('WP_HOME', $url); define('WP_SITEURL', WP_HOME ); /** * Change defaults value for better performance */ define('WP_MEMORY_LIMIT', '256M'); define('WP_MAX_MEMORY_LIMIT', '256M'); define('EMPTY_TRASH_DAYS', 3 ); define('AUTOSAVE_INTERVAL', 300 ); define('WP_POST_REVISIONS', 1 ); define('WP_DEBUG_LOG', WP_DEBUG ); define('SAVEQUERIES', false); define('WP_DEBUG_DISPLAY', false); @ini_set('log_errors', 'On'); @ini_set('display_errors', 'Off'); /* That's all, stop editing! Happy publishing. */
Trong trường hợp bạn muốn áp dụng cho trang chính của bạn đang hoạt động trên mạng, bạn chỉ cần tắt debug đi là được nhé. Bạn chỉ cần khai báo dòng define( 'WP_DEBUG', true ); thành define( 'WP_DEBUG', false);.
Bài viết được sự cho phép của tác giả Lê Xuân Quỳnh
Qua 1 vòng Google để tìm hiểu về JWT thì không thấy ông Việt Nam nào nói cho tử tế và đầy đủ để 1 thằng newbie như mình hiểu. Sau đó vô tình mình tìm kiếm một bài viết mình cho là ổn nhất về JWT, nên mạo phép vừa dịch vừa sử dụng theo ý mình, những ai đọc được tiếng Anh có thể xem ở đây cho chuẩn: https://medium.com/swlh/building-a-user-auth-system-with-jwt-using-golang-30892659cc0
Vậy JWT là gì?
Chúng ta đều biết rằng, để nâng cao tính bảo mật khi làm các ứng dụng client-server thì cần có các cơ chế sinh token nhằm xác định request hợp lệ, tránh tình huống bị tấn công bởi các hacker vào hệ thống.
JWT = JSON Web Token, hiểu nôm na là xác thực người dùng từ phía máy chủ bằng JSON.
Theo cách tiếp cận truyền thống, chúng ta có các sessions để xác thực người dùng, khi mà người dùng đăng nhập thành công thì sẽ tạo ra 1 token lưu trên máy chủ để xác thực cho các request tiếp theo. Server sẽ gửi sessions ID cho client, và client sẽ gửi ID này kèm với các request sau đó, để server query trên database nhằm kiểm tra xem có đúng đó là request hợp lệ không.
Tuy nhiên, phương pháp này gặp nhiều khó khăn khi hệ thống cần scale lớn, xây dựng theo dạng Microservice với data lưu ở mỗi service khác nhau. Ví dụ bạn có n cụm máy chủ, thì để xác thực thành công, bạn phải truy vấn token lưu ở n máy chủ rồi so sánh, rất mất thời gian, cũng như dễ bị tấn công nếu như 1 máy chủ nào đó bị tấn công chiếm token. Tốt nhất là không lưu token trên máy chủ.
JWT ra đời nhằm giải quyết bài toán đó. Nó là phương pháp xác thực cho MSA(microservice architecture). Với cách tiếp cận này, thông tin xác thực chỉ lưu ở client-side. JWT đơn giản là 1 JSON payload để lưu định danh user đó. Nó đơn giản là 1 token chứa thông tin xác thực dạng Message Authentication Code(MAC), gồm 3 thành phần chính: header, payload và signature ngăn cách nhau bởi dấu chấm.
Chúng ta thấy rất nhiều ký tự loạn xị ngậu lên, bản chất là đoạn string đã encode sang base64, ngăn cách nhau bởi các dấu chấm. Chúng ta vào trang jwt.io và copy cái token trên dán vào như sau:
Chúng ta thấy 1 token có 3 thành phần sau khi decoded như sau:
Phần header chứa metadata, bao gồm kiểu mã hóa của token, ở trên là HS256, dạng JWT. Để hiểu hơn các dạng mã hóa vui lòng tìm kiếm thêm từ khóa mã hóa công khai trên Google bạn nhé.
Phần Payload chứa thông tin xác định thằng user đó, ở trên là tên, sub, iat.
Phần còn lại là chữ ký. Chữ ký này là chữ ký điện tử các bạn nha, không phải là chữ ký khi bạn ký đơn kết hôn với vợ đâu, nhưng về mặt ý nghĩa thì nó cũng tương tự, là 1 khi đã ký thì bạn không thể thay đổi được nữa, bút sa gà chết.
hmacsha256 chính là 1 hàm băm sha 256, bạn hiểu nôm na là băm xong thì không chuyển ngược lại giữ liệu ban đầu, hay nói cách khác là 1 hàm 1 chiều, giống như bạn cho 1 con bò vào máy và tạo ra 1 cây xúc xích còn điều ngược lại thì không thể vậy đó. Hàm này băm header, encoded payload và khóa bí mật của server. Khái niệm băm cũng y chang bạn băm thịt vậy, cho xương, thịt.. mọi thứ và băm nhuyễn đến khi nào bạn lấy 1 mẩu trong đó ra thì nó có tính chất tương tự mọi nơi ở cục thịt sau khi băm.
Do vậy, khi chúng ta gửi 1 request gồm header và payload sau khi encoded trên thì phía server sẽ tiến hành băm chúng với khóa bí mật của server và tạo ra 1 chữ ký, rồi gửi lại cho client. Các lần request tiếp theo, nó cũng làm tương tự và tiến hành so sánh chữ ký mới nhất với chữ ký đã có trước đó, nếu như nó trùng nhau nghĩa là matches, request là hợp lệ. Luồng hoạt động của nó như sau:
Client gửi thông tin đăng nhập gồm username và password.
Server kiểm tra thông tin đó có tồn tại trong database không và tính hợp lệ của request.
Nếu hợp lệ, JWT sẽ tạo 1 payload chứa thông tin định danh user và thời gian hiệu lực – expiration timestamp(chúng ta sẽ nói sau).
Server sẽ tạo ra signature gồm 2 thành phần như đã nói ở trên. JWT đã hoàn thành xong 1 token gồm 3 thành phần header + payload + signature.
Server sẽ gửi lại cho client thông tin token này để lưu lại, nhằm để client xác thực trong các request sau này.
Với các request tiếp theo, server sẽ xác thực token bằng việc kiểm tra thời gian hiệu lực của token và tạo ra 1 chữ ký mới, sau đó so sánh với chữ ký đã sẵn có trong token.
Sơ đồ hoạt động của JWT.
Vậy rõ ràng server không hề lưu token mà nó chỉ lưu duy nhất mỗi secret key để tạo ra chữ ký mà thôi. Cho nên nếu giả sử như chúng ta bị lộ khóa tới tay hacker thì server rất dễ bị tấn công. Do vậy chúng ta phải bảo mật khóa này. Có nhiều trường hợp commit cả khóa lên source code, dẫn đến lộ thông tin khóa mà server bị tấn công. Về phần này, các bạn có thể đọc thêm về cơ chế gitignore các file .env để không commit các thông tin nhạy cảm như khóa.
Cho đến thời điểm này khi nói về JWT thì chúng ta chỉ nói 1 khái niệm token chung. Nhưng thực tế chúng ta có 2 loại token, đó là AccessToken và RefreshToken.
Bản chất 2 thằng trên đều là JSON Web Token, vậy tại sao lại cần tới 2 cái lận? Như bạn đã biết, JWT chứa đầy đủ thông tin cần thiết để xác thực, và hãy thử tượng tượng xem điều gì sẽ ra khì token này lọt vào 1 tay hacker nào đó. Hắn có thể sẽ giả mạo người dùng và bắt đầu làm chuyện tầm bậy với server của chúng ta như ăn cắp dữ liệu, tệ hơn là phá hỏng database. Do vậy người ta đẻ ra 1 cái gọi là access token, nhằm valid mỗi request của chúng ta, nó có đặc điểm là sẽ hết hạn sau 1 khoảng thời gian ngắn. Điều này nhằm hạn chế rủi ro khi hacker có được access token của bạn, họ cũng không phá hoại được nhiều.
Vậy thì khi access token này hết hạn, đồng nghĩa với việc user này cũng sẽ hết quyền truy vấn, do vậy chúng ta cần loại token thứ 2 để refresh lại token này, gọi là refresh token. Ở đây chúng ta cũng có thể check time expried của token, tuy nhiên giả sử như token hết hạn thì ta phải yêu cầu người dùng đăng nhập lại nhiều lần, làm cho người dùng khó chịu mà bỏ app, thì không ai muốn đúng không?
Refresh token này sẽ không bao giờ hết hạn hoặc hết hạn trong khoảng thời gian dài(ví dụ Google, github và Facebook thường là 90 ngày) và có nhiệm vụ tạo 1 access token mới từ Server. Tất nhiên, nếu bạn cũng để lộ refresh token này thì coi như toi, hacker lại có thể tấn công bạn được. Nhưng rõ ràng access token thì sử dụng với tuần suất lớn, còn refresh token thì chỉ khi nào access token hết hạn mới dùng đến thôi. Do vậy tăng tính bảo mật hơn đúng không nào?
Sơ đồ hoạt động của access token và refresh token.
Một ví dụ thực tế mà các hacker tấn công vào facebook, khi tạo ra các ứng dụng giả mạo hoặc các tool hỗ trợ facebook như xóa bạn bè, tự động like hay share. Họ yêu cầu người dùng cấp rất nhiều quyền, sau đó server facebook sẽ sinh ra 1 refresh token để có thể cấp quyền cho user. Khi họ có được nó, ai mà biết được họ đã làm những gì ngoài những tiện ích mà người dùng có được. Ví dụ như chạy quảng cáo chùa, tạo ra các tool để kiếm tiền trên facebook. Xem thêm tại đây:
Quay lại bài viết, sau khi user gửi thông tin username và password lên, server sẽ tạo ra 2 token gồm access token và refresh token và gửi trả lại cho client. Client gửi access token lên server để xác thực. Access token sẽ hết hạn trong thời gian ngắn, và client dùng refresh token để lấy 1 access token mới.
Hi vọng là bạn đã hiểu được ý nghĩa của JWT rồi. Trong phần tiếp theo chúng ta sẽ nghiên cứu cách triển khai JWT trong Golang.
Đến hẹn lại lên, cũng tròn 2 năm kể từ bài Coffee Talk lần trước, hôm nay mình mời được anh Trần Thiện Khiêm, một nhân vật cũng khá nổi tiếng và sôi nổi để cùng trò chuyện về chủ đề mà rất nhiều bạn quan tâm: Đó là sống và làm việc ở nước ngoài.
# Hành trình xuất ngoại làm việc
Huy: Hello a Khiêm, cảm ơn anh đã dành thời gian để ngồi chém gió với em hôm nay. A với e thì nhẵn mặt nhau rồi, trên mạng thì a cũng khá là nổi rồi, nhưng cho bạn nào chưa biết, thì a có thể giới thiệu một tí về mình được ko?
Khiêm: Chào Huy và các bạn, anh là Khiêm, một lập trình viên đến từ Đà Nẵng, hiện tại đang làm việc tại Canada. Mình đã làm khá nhiều công ty ở nhiều lĩnh vực khác nhau: Gameloft, Clearpath, Visa, Amazon và hiện tại đang làm việc tại Facebook được vài tháng rồi. Rất vui được nói chuyện trao đổi với Huy. 😃
Huy: Hình như đến thời điểm này, Gameloft là công ty anh gắn bó lâu nhất. Sau đó thì xuất ngoại vào Visa luôn. Có vẻ là một bước thay đổi khá lớn cả về công việc lẫn cuộc sống, anh có thể chia sẻ một chút về quyết định này không?
Khiêm: Trước khi sang VISA Singapore thì mình có làm cho công ty thiên đường Clear Path 2 năm ở vị trí .NET Architect. Mình chưa từng nghĩ sẽ ra nước ngoài làm việc, nhưng khi mấy đứa như Huy Trần đi Mỹ làm mình cũng sốt ruột lắm. Quyết định đi qua Singapore của mình khá bất ngờ và cũng là thay đổi khá lớn vì tại thời điểm đó mình vừa có em bé được 3 tháng tuổi. Cũng khá tình cờ, vì mình nhận được thư mời tham gia sự kiện tuyển dụng của Grab ở trong Sài Gòn, mình thử sức và có offer luôn. Khi có offer của Grab rồi mình cũng tham gia phỏng vấn thử mấy chỗ và có thêm 2 offer nữa, 1 ở Florida và 1 của VISA. Cuối cùng mình chọn VISA vì duyên. Tại thời điểm đó nếu mình chọn Mỹ thì khá rủi ro do việc xin visa H1B rất hên xui. Còn offer ở Grab thì không tốt bằng offer của VISA.
Huy: Ồ, thật ra thì em nhìn thấy anh và bạn bè quanh mình toàn là vô làm big firm thì em cũng sốt ruột y vậy đó. :v Đùa vui tí, thế từ khi đi ra ngoài thì góc nhìn về cuộc sống, công việc, hay career path của anh có thay đổi gì không?
Khiêm: Lúc mình xác định sang Singapore làm việc thì mình rất lo lắng, nên mình định hướng lại là phải “sống sót” trước đã chứ không có tham vọng nhiều như hồi ở VN, mình coi như là một khởi đầu mới, bắt đầu lại từ đầu. Sau một thời gian làm việc thì mình mới bắt đầu tự tin hơn và đặt mục tiêu cao hơn.
Còn về cuộc sống thì rõ ràng đi một ngày đàng học một sàng khôn, ở nhiều nơi, biết nhiều thứ mà nếu ở VN thì mình sẽ không biết được, nhưng nhiều lúc cũng nhớ VN kinh khủng.
Huy: Anh mất bao lâu để “sống sót” trước khi chuyển qua chế độ đặt mục tiêu cao hơn? Anh thấy môi trường làm việc ở Sing có gì khác so với ở Việt Nam không? Và so với môi trường Canada/Mỹ sau này thì như thế nào?
Khiêm: Cũng phải vài tháng để mình làm quen với môi trường làm việc ở Singapore. Vấn đề của mình không phải là cách làm việc hay kỹ thuật, mà do mình bị thiếu tự tin. Mình cảm thấy tự ti vì xuất phát điểm của mình so với đồng nghiệp, khả năng tiếng Anh và giao tiếp không bằng họ, và cứ có cảm giác sợ hãi rằng mình không được giỏi bằng người khác, sợ bị đánh giá, sợ nói sai, v.v..
Sau khi mình vào dự án và đóng góp nhiều thì mình mới cảm thấy tự tin hơn và cảm giác mình sẽ làm được nhiều hơn.
Môi trường làm việc ở Singapore khá trẻ trung, năng động, thoải mái, công việc cũng không quá căng thẳng, công ty tập trung vào việc cân bằng đời sống cho anh em. Lương khá cao và thuế thấp so với Mỹ và Canada. Lần đầu tiên nhận lương ở Canada mình bị shock mất 1 tuần mới tỉnh lại 🙁
Ở Canada thì đời sống khá thoải mái, gần gũi với thiên nhiên, có điều kiện đi ô tô, đi chơi xả láng mà không lo lắng gì. Ngoài ra thời tiết ở Canada rất tuyệt vời nữa. Môi trường làm việc thì cũng giống ở Singapore.
Huy: Khi quyết định “tiến thêm bước nữa” sang Canada thì anh có phải đối mặt với đắn đo suy nghĩ gì không? Hay là nghĩ đã đi được rồi thì cứ đi thêm thôi? Trong suốt thời gian ở Sing thì có khi nào anh nghĩ sẽ về lại Việt Nam để làm không? Giờ làm ở Canada thì anh có định về không?
Khiêm: Lúc đó mình nghĩ đơn giản có cơ hội thì đi thôi. Vì nếu về lại Singapore thì cũng khá đơn giản, nhưng cơ hội sang bên này thì khó hơn, nên đúng là cứ nghĩ đã đi thì đi. Thêm một lý do nữa là ở Singapore không có điều kiện để định cư do Singapore không có chính sách cho nhập tịch. Lúc mình làm ở Singapore thì mình cũng có nhiều đề nghị về lại VN làm và mình thỉnh thoảng cũng nghĩ tới chuyện sau này sẽ về VN. Nhưng trước mắt thì mình không có dự định gì quá xa, ở Canada cũng khá thích và bây giờ mình cũng đã ổn định nhà cửa rồi, di chuyển cả gia đình cũng khó lắm.
# Benefit khi làm việc tại big firm
Huy: Uhm cái này thì cũng công nhận. Thôi giờ chuyển chủ đề một tí nhé. Nói về chuyện đi làm ở big firm đi. Giờ mà hỏi lương thì chắc anh ko nói đâu, nhưng anh có thể nói qua một tí về một gói benefit + lương thưởng điển hình ở mấy công ty kiểu này được không? Ví dụ như là lương tháng nhiêu chế độ bảo hiểm, stock này kia?
Khiêm: Mình thấy thích nhất là việc được hỗ trợ chuyển vùng (từ VN sang Singapore và từ Singapore sang Canada). Mình được bao từ vé máy bay, khách sạn, giới thiệu cuộc sống ở thành phố mới và cả container chuyển đồ đi nữa (có thể chuyển tất cả các đồ đạc trong nhà qua chỗ mới luôn).
Thu nhập hàng năm thì bao gồm lương cơ bản, cổ phiếu và thưởng (thường được tính theo mục tiêu bao nhiêu phần trăm, ví dụ 15% của lương cơ bản, nếu năm đó làm tốt có thể đạt được 200% mục tiêu đó).
Riêng phần cổ phiếu sẽ được chia ra trong nhiều năm, và đây là phần thu nhập lâu dài giúp mình gắn bó với công ty.
Về các chế độ khác thì tuỳ công ty, ví dụ có công ty cho tiền mua đồ tập thể thao hàng năm (vài nghìn đô), tiền tập Gym, tiền đi học những thứ mình thích, nói chung cũng rất hấp dẫn.
Ngoài ra lúc nhận offer còn thêm có phần thưởng lúc vào công ty (sign on bonus) khoảng vài chục nghìn để tiêu xài ăn chơi mừng công việc mới nữa.
Huy: Anh có thể cho con số cụ thể để các bạn dễ hình dung về việc cổ phiếu được chia ra trong nhiều năm được không? Lấy ví dụ một bạn dev ở Amazon làm lương tầm $300k hay $400k (một năm) thì break down ra như thế nào?
Khiêm: Ví dụ một bạn nhận offer với total compensation $300k ở Amazon, thường có thể chia ra như sau:
Lương căn bản $200k.
Cổ phiếu được chia ra làm 4 năm theo tỉ lệ 5% cho năm đầu tiên, 15% cho năm thứ 2, và 40% cho năm thứ 3 và 40% cho năm thứ 4. Với cổ phiếu hiện tại giá 3.5k, bạn đó sẽ nhận được tầm 70 cổ phiếu để đảm bảo năm 3, và năm 4 các bạn nhận được khoảng 28 cổ phiếu (để đủ 300k).
2 năm đầu tiên bạn đó sẽ nhận được sign on bonus để đảm bảo nhận được tổng $300k mỗi năm.
Ví dụ năm đầu tiên bạn đó nhận được lương cơ bản là 200k, 3 cổ phiếu (5% của 70), và 90k sign on bonus. Ở Amazon thì không có thưởng hằng năm, bạn sẽ được tăng lương hằng năm.
Ngoài ra do cổ phiếu biến động nên khả năng bạn được tăng thu nhập rất lớn.
Ví dụ sau 2 năm cổ phiếu amazon tăng lên 5 lần, thì thay vì nhận được 100k, bạn sẽ nhận được 500k (nếu điều đó xảy ra)
Huy: Uhm nhìn con số cũng khá là hấp dẫn, vậy còn những năm sau đó thì sao nhỉ? Sau khi đã vested hết 4 năm? Công ty có cho mình gói stock khác không?
Khiêm: Thường thì năm thứ 2 trở đi mình sẽ được top up stock cho năm thứ 5, tương tự vậy… Ngoài ra sau 4 năm thì mình cũng sẽ có nhiều cơ hội thăng chức để cải thiện thu nhập và lương của bạn cũng được tăng hằng năm.
Tuy nhiên do cổ phiếu biến động nhiều nên cũng có nhiều bạn sau 4 năm bị giảm thu nhập. Tất nhiên làm việc ở một công ty nhiều năm thì bạn có nhiều thứ khác ngoài lương, ví dụ ảnh hưởng của bạn với team, kinh nghiệm làm việc, khả năng được lên vị trí cao hơn, v.v…
# Career path và kỹ năng làm việc tại các công ty lớn
Huy: Nói đến đây thì em nhớ ra có một topic nữa cũng rất muốn hỏi. Anh nghĩ sao về career path và những đòi hỏi về kĩ năng ở các công ty lớn như Amazon, Facebook? Em có nghe một số người bạn hay than rằng công việc ở những cồng ty lớn thường ít thú vị, điều này có thật không? Thêm nữa, dân làm IT thường chỉ focus vào nâng cao tay nghề kĩ thuật, theo anh thì nếu chỉ thuần túy tập trung vào kĩ thuật thì có đủ để thành công ở những môi trường này không?
Khiêm: Về mặt kỹ năng, lúc phỏng vấn các công ty lớn cũng rất chú trọng về giải thuật và thiết kế, lúc vào làm thì cũng áp dụng nhiều. Ngoài kỹ thuật ra, thì mình nghĩ để tiến được xa thì người lập trình viên phải có tư duy về sản phẩm, xem sản phẩm của công ty là sản phẩm của mình và đóng góp nhiều ý kiến vào cách phát triển sản phẩm, cách cải thiện và giúp đỡ các thành viên khác trong team, … Các kỹ năng mềm như làm việc nhóm, trình bày, v.v.. cũng rất quan trọng.
Về career path thì ở cách công ty lớn cũng có các tiêu chí rất rõ ràng, và hằng quý mình sẽ xem xét lại tiêu chí đó để định hướng cho công việc của mình.
Công việc có thú vị hay không thì tuỳ vào team và tuỳ vào thái độ của mình đối với công việc. Như thời gian làm ở Amazon thì mình cũng có những lúc có rất nhiều việc thú vị nhưng cũng có lúc gần như ngồi không, lúc đó mình lại nghĩ ra những thứ khác để làm.
Ngoài kỹ thuật ra thì như mình nói ở trên, tầm nhìn, tư duy về sản phẩm, cách giải quyết vấn đề, kỹ năng mềm … và nếu chém gió tốt hoặc làm cây hài của team được nữa thì càng tốt.
Nhưng nếu chỉ giỏi về kỹ thuật và không muốn động vào những lĩnh vực khác thì nếu biết cách phát huy thế mạnh của mình bạn cũng có thể thành công theo hướng kỹ thuật.
Huy: Nhiều bạn rất quan tâm đến việc đi ra nước ngoài làm việc, nhưng không biết phải bắt đầu như thế nào, là một người từng đánh đông dẹp tây từ Châu Á tới Châu Mỹ thì anh có thể chia sẻ cho mọi người biết cần chuẩn bị hành trang như thế nào được không? Assuming là người ta không có quá khứ đi thi olympic tin học như a nhé, cho nó khách quan.
Khiêm: Mình thấy trong ngành mình có khá nhiều cơ hội đi nước ngoài
Đi Singapore làm cho các start up nhỏ, thường các start up này tuyển người ở Việt Nam qua các trang online như Angelist, job streets.
Đi Nhật Bản theo dạng onsite cũng là một lựa chọn nhưng các bạn cần biết tiếng Nhật.
Đi làm cho các công ty, tập đoàn lớn ở Singapore, Canada, Úc: Các bạn cần luyện tập leetcode, khả năng giải quyết vấn đề và thiết kế hướng đối tượng.
Tiếng Anh là một kỹ năng không thể thiếu, các bạn cần giao tiếp được, hiểu và có thể trả lời phỏng vấn, sử dụng trong công việc.
Nhu cầu tuyển lập trình viên khá nhiều tại thời điểm này, nên các bạn cần nắm bắt cơ hội. Như riêng team cũ của mình ở Amazon cũng đang tuyển 7 bạn lập trình viên và cũng đang khó khăn trong việc tìm ra người phù hợp. Các bạn có thể ứng tuyển online và phỏng vấn online luôn.
Huy: Ngoài ra thì về CV hay kinh nghiệm cá nhân, có cần chuẩn bị gì không? Và anh nghĩ ở giai đoạn nào thì nên đặt mục tiêu đi nước ngoài? Nhiều ý kiến cho rằng mới ra trường thì chưa nên đi vội mà nên dành ra vài năm tích lũy kinh nghiệm, anh nghĩ sao về quan điểm này?
Khiêm: Theo mình nghĩ thì nên chuẩn bị một cái CV ấn tượng, không cần dài dòng nhưng nêu bật lên được những thành quả mình đã làm được trong quá trình làm việc. Mình thường chuẩn bị CV 1 trang đơn giản nhất có thể. Về thời điểm ra nước ngoài làm việc, mình nghĩ thường các công ty ở nước ngoài sẽ ít khi tuyển fresher trừ khi người đó thật xuất sắc, vì các công ty phải lo chi phí và thủ tục giấy tờ để tuyển một nhân viên ở nước khác, nên họ thường chỉ tuyển các bạn có kinh nghiệm hơn là những bạn mới ra trường.
# Hỏi vu vơ thôi
Huy: Giờ đổi chủ đề tí cho vui nhỉ? Lúc nãy a có nói là cuộc sống ở Canada khá thoải mái, gần gũi với thiên nhiên, vậy ngoài công việc và gia đình ra, anh có dành thời gian cho việc gì khác không? Có ý định quay về làm game không?
Khiêm: Ngoài công việc và gia đình ra thì mình thường chơi Dota 2 sau khi cả nhà đi ngủ, hoặc code thêm những gì mình thích và cả xem phim nữa. Mình cũng thử bỏ Dota 2 mấy lần và mỗi lần bỏ đều thấy rất tự hào về bản thân 😂 hy vọng sang năm mình có thể tiếp tục bỏ tiếp. Mình còn rất thích đi cắm trại, dã ngoại với gia đình, bạn bè, tụ tập ăn uống, hội hè.
Hiện tại thì mình chưa có ý định quay lại làm Game trừ phi có ý tưởng đột phá.
Huy: Chúc anh sớm có ý tưởng đột phá :)) Và rất cảm ơn những chia sẽ của anh trong buổi nói chuyện ngày hôm nay. Chúc anh và gia đình sức khỏe và tiếp tục gặt hái thêm nhiều thành công ở Facebook.
Bài viết được sự cho phép của tác giả Trần Anh Tuấn
Xin chào các bạn hôm nay ngồi code rồi thấy có nhiều đoạn code được dùng đi dùng lại thường xuyên trong quá trình làm từ trước đến giờ, thấy khá là hữu ích cho nên mình quyết định chia sẻ lên blog này để cho các bạn có thể vào tham khảo và lấy về dùng luôn. Những đoạn code này khá cơ bản nhưng thực sự cần thiết trong nhiều trường hợp lắm đây. Chúng ta cùng khám phá dưới đây 20 tấm ảnh kèm ghi chú đi theo cực kỳ chi tiết nhé.
# Center với Flexbox
Đoạn code này khi các bạn muốn làm các phần tử hiển thị chính giữa khi sử dụng với CSS Flexbox nhé.
# Center với CSS Grid
Đoạn này chức năng tương tự đoạn trên nhưng mà sử dụng CSS Grid nhé các bạn. Place-items tương ứng là align-items và justify-content áp dụng với CSS Grid.
# Center theo chiều ngang với absolute
Đoạn code này khi các bạn muốn một phần tử canh giữa theo chiều ngang với thuộc tính position: absolute nhé. Rất hay dùng khi làm việc với thuộc tính position khi căn chỉnh phần tử á.
# Center theo chiều dọc với absolute
Đoạn code này khi các bạn muốn một phần tử canh giữa theo chiều dọc với thuộc tính position: absolute nhé.
# Center theo 2 chiều với absolute
Đoạn code này khi các bạn muốn một phần tử canh giữa theo chiều ngang và chiều dọc luôn cũng với thuộc tính position: absolute nhé.
# Viết rút gọn code CSS cho thuộc tính border
# Viết rút gọn code CSS cho thuộc tính background
# Viết rút gọn code CSS cho giá trị về màu sắc
Nếu mã màu trùng nhau 6 ký tự thì các bạn chỉ cần điền vào 3 là đủ hoặc theo cấu trúc aabbcc thì có thể viết thành abc là được.
Đoạn code này giúp các bạn hiển thị chữ trên 1 hàng mà thôi nếu chữ quá dài thì sẽ xuất hiện dấu 3 chấm… nhe.
# CSS cho placeholder của input, textarea
# CSS cho selection
Khi các bạn vào một trang web các bạn muốn copy nội dung nào đó thì các bạn sẽ bôi đen nó, đoạn code này giúp CSS cho đoạn bôi đen đó đấy nhé. Khá là hay ho.
# Ẩn icon mũi tên ở input có type là number
# Box-sizing
Đoạn code này sẽ được toàn bộ selectors về box-sizing: border-box để hiển thị kích thước cho đúng nhé. Quan trọng lắm nha các bạn.
# Sử dụng đơn vị rem
Nếu các bạn không thích code với đơn vị px cố định thì các bạn có thể sử dụng đơn vị rem nhé, đoạn code này giúp đưa font-size về cơ số 10 cho dễ tính toán. Lúc này 1rem = 10px.
# Responsive media
Nếu các bạn muốn hiển thị video, hình ảnh theo tỉ lệ như 16:9 hay 4:3 thì các bạn có thể dùng biến trong CSS như mình để lưu lại, sau đó dùng CSS để tính toán như dưới đây để video hay hình ảnh có thể hiển thị responsive nhé. HTML của nó trông như thế này:
Đây không đơn thuần là làm background gradient thông thường, mà là các bạn muốn sử dụng 2 lớp nền, lớp ở trên là gradient mờ mờ, còn ở dưới là một hình nền thì các bạn có thể sử dụng đoạn code dưới đây nha. Các bạn sẽ thay mã màu tương ứng cho phù hợp với thiết kế của các bạn và hình nền nhé.
# Hiển thị dấu 3 chấm cho nhiều dòng
Ở mục phía trên mình có nói tới vấn đề hiển thị dấu 3 chấm trên một hàng, còn đoạn code này sẽ giúp các bạn hiển thị dấu 3 chấm… cho nhiều hàng, ví dụ bạn muốn nếu chữ nhiều quá thì tới dòng thứ 5 sẽ hiển thị dấu 3 chấm thì các bạn thay giá trị ở đoạn code -webkit-line-clamp thành 5 chẳng hạn nhé.
# Gradient cho chữ
# Tuỳ chỉnh thanh scroll
Mặc định thanh scrollbar không được đẹp cho lắm thì các bạn có thể dùng đoạn code dưới đây để làm cho nó hiển thị theo ý các bạn nhé. Tuy nhiên việc custom này không hỗ trợ trên Firefox nhé.
# Tạm kết
Bài này mình sẽ cập nhật thường xuyên nếu có những đoạn code mới hay ho và bổ ích cho các bạn nhé. Mình không để code sẵn để các bạn copy vì mình nghĩ nếu các bạn tự gõ lại thì sẽ mau nhớ và mau giỏi hơn cũng như hiểu được bản chất của các thuộc tính trong CSS. Cuối cùng chúc các bạn học tập thật tốt nhé..
Với tổng giá trị lên đến 1.6 tỷ đồng, RMIT Việt Nam sẽ trao học bổng cho 4 ứng viên xuất sắc nhất theo học Thạc sĩ Trí tuệ Nhân tạo và Thạc sĩ An toàn Thông tin, hai chương trình mới của nhà trường, trong kỳ học tháng 6/2022.
Theo thông tin từ phía nhà trường, mỗi suất học bổng được trao có giá trị 400 triệu đồng, tương ứng với 50% học phí của chương trình. Qua đó, học bổng tạo điều kiện cho những tài năng có đam mê hoặc đang công tác ở lĩnh vực AI hoặc an toàn thông tin được phát triển bản thân trở thành những chuyên gia hàng đầu trong ngành.
Nuôi dưỡng tài năng, đào tạo nhân lực cho đất nước
Nền khoa học và công nghệ thông tin của Việt Nam luôn cần đội ngũ nhân lực chất lượng cao giữa bối cảnh bùng nổ số nhiều năm gần đây. Trong đó không thể thiếu hai lĩnh vực AI và an toàn thông tin.
Trên thế giới, AI đang phát triển với tốc độ chóng mặt ở các phương diện về lập trình, dữ liệu và thuật toán. AI có mặt ở khắp nơi, từ đời sống hằng ngày đến công việc và các hoạt động vui chơi, giải trí. Tuy nhiên, theo thống kê, số lượng chuyên gia ở Việt Nam lại chưa đủ để đáp ứng nhu cầu ngày càng tăng. Một trong những thách thức lớn được ghi nhận là sự thiếu hụt các tổ chức đào tạo có khả năng gia nhập hàng ngũ quốc tế.
Bên cạnh đó, khái niệm an toàn thông tin đã không còn xa lạ với hầu hết mọi ngành nghề khi mọi doanh nghiệp, tổ chức đều đang trên đà dịch chuyển số, với nhiều cơ hội nhưng cũng không ít rủi ro. Theo báo cáo của Bkav, thiệt hại do virus máy tính gây ra đối với người dùng Việt Nam năm 2021 tiếp tục ở mức rất cao, lên tới 24,4 nghìn tỷ VNĐ (tương đương 1,06 tỷ USD). Nhu cầu xây dựng đội ngũ chuyên gia hàng đầu để thiết kế, bảo vệ hệ thống an toàn thông tin của các cơ quan nhà nước lẫn tư nhân đều ở mức rất cao.
Với 2 chương trình mới cùng 4 suất học bổng đầy giá trị cho học kỳ tháng 6 sắp tới, RMIT mong muốn nuôi dưỡng, đào tạo nên những chuyên gia ở lĩnh vực AI và an toàn thông tin để có thể đương đầu với những thay đổi, những cơ hội và cả những rủi ro.
Học tập và làm việc trong môi trường chuẩn quốc tế
Ở cả hai chương trình, học viên sẽ được học tập với các chuyên gia đầu ngành từ RMIT Melbourne & RMIT Việt Nam trong môi trường giáo dục linh hoạt, tôn trọng sự đa dạng. Ngoài ra, những học viên có sẵn kiến thức nền về công nghệ thông tin, máy tính hoặc các lĩnh vực liên quan đều có thể được xem xét miễn giảm môn học để tăng tốc cho lộ trình sự nghiệp của bản thân.
Đặc biệt, ở những học kỳ cuối cùng, mỗi chương trình đều có những môn học hoặc những hướng phát triển đặc thù được thiết kế theo mô hình học tập kết hợp thực tiễn (WIL- work integrated learning) – mô hình đã làm nên danh tiếng của đại học RMIT trong nhiều năm qua.
Ở chương trình Thạc sĩ An toàn Thông tin, học viên sẽ phải hoàn thành hai môn học nhận thức ngành và kết nối ngành với các bài tập dự án trực tiếp với doanh nghiệp. Còn với Thạc sĩ Trí tuệ Nhân tạo, học viên có hai lựa chọn: hoặc thực hiện một dự án AI với doanh nghiệp đối tác; hoặc nghiên cứu chuyên sâu về AI để hoàn thành một luận án làm tiền đề vững chắc cho những ai muốn theo đuổi học vị Tiến sĩ.
Ngoài những điểm hấp dẫn trên, cả hai chương trình còn nhiều điều thú vị khác dành cho học viên như cơ hội học tập và làm việc ở nước ngoài, cơ hội được gặp gỡ các chuyên gia đầu ngành cũng như được là một phần của mạng lưới cựu sinh viên RMIT khắp nơi trên thế giới, mở rộng các mối quan hệ trong công việc và lĩnh vực nghiên cứu.
Với một suất học bổng từ đại học RMIT Việt Nam, những trải nghiệm trên sẽ không còn quá xa với những ai có đam mê với AI và an toàn thông tin, cũng như khát khao được đào sâu chuyên môn, theo đuổi những kiến thức phổ cập nhất của thế giới và trở thành nhà lãnh đạo của tương lai.
Thông tin chi tiết về học bổng của Hai chương trình Thạc sĩ Trí tuệ Nhân tạo (AI) và Thạc sĩ An toàn Thông tin (Cyber Security) sẽ được giới thiệu vào ngày 26/3/2022 tại sự kiện ra mắt ngành học của RMIT Việt Nam. Để tham gia sự kiện, bạn có thể đăng ký tại đây: https://bit.ly/3wrCFy7
.NET là nền tảng lập trình được phát triển bởi Microsoft, được chạy trên hệ điều hành Microsoft Window bao gồm nhiều công nghệ khác nhau. Vốn được xếp trong top các công nghệ được sử dụng nhiều nhất hiện nay với mức lương vô cùng hậu hĩnh, vì vậy trở thành lập trình viên .NET là lựa chọn hàng đầu của nhiều bạn trẻ đam mê lập trình. Để trở thành một lập trình viên .NET giỏi cần trang bị những gì? Hãy cùng lắng nghe 5 chia sẻ từ anh Nguyễn Thành Công – Head of Development của Pixelz ngay dưới đây.
Một vài nét về anh Nguyễn Thành Công:
Cựu sinh viên của Đại học Bách Khoa Hà Nội và từng công tác tại các tập đoàn lớn: Panasonic R&D Center, Niteco,…
Hơn 10 năm kinh nghiệm trong ngành phát triển phần mềm và hơn 7 năm ở vị trí quản lý (Team Leader, Tech Lead, Manager).
Hiện đang giữ vị trí Head of Development tại Pixelz Vietnam – Công ty Platform As a Service của Đan Mạch, chuyên cung cấp nền tảng công nghệ kết hợp giữa AI và người để đáp ứng nhu cầu chỉnh sửa ảnh cho các hãng thời trang hàng đầu trên thế giới.
“Kiến thức nền tảng về lập trình hướng đối tượng rất quan trọng”
Theo mình, kiến thức về lập trình hướng đối tượng được xem là một trong những kỹ năng lập trình quan trọng không chỉ dành cho mỗi lập trình viên .NET mà rất cần thiết với hầu hết các lập trình viên. Việc trang bị kiến thức nền tảng về lập trình hướng đối tượng sẽ giúp bạn thiết kế và xử lý vấn đề được tốt hơn. Bên cạnh đó còn có những lợi ích khác của lập trình hướng đối tượng mang lại:
Mô hình hóa được bài toán theo hướng đối tượng (thực thể) giúp bạn viết code rõ ràng, dễ đọc và bảo trì;
Tuân thủ những tính chất chặt chẽ của lập trình hướng đối tượng;
Dễ dàng hơn khi tiếp cận với Design Pattern.
Xem ngay tin tuyển dụng .NET tại các doanh nghiệp hàng đầu trên TopDev
“Design Pattern: Hãy áp dụng vào trong công việc thường ngày của bạn”
Nói một cách dễ hiểu, Design Pattern là các mẫu thiết kế được chắt lọc thông qua quá trình tích lũy kinh nghiệm khi phát triển phần mềm của các chuyên gia lập trình trên thế giới. Đây được xem giải pháp chung để giải quyết các vấn đề phổ biến khi thiết kế phần mềm trong lập trình hướng đối tượng OOP. Việc am hiểu và áp dụng Design Pattern sẽ giúp bạn giải quyết được bài toán của mình tốt nhất, đồng thời đảm bảo dễ dàng mở rộng, hạn chế lỗi, dễ phát triển và bảo trì, vì mỗi mẫu thiết kế đã tuân theo nguyên tắc của SOLID Design.
Thế nên, nếu bạn muốn nâng cao tay nghề và chinh phục con đường trở thành lập trình viên .NET giỏi, thì ngay từ bây giờ, hãy áp dụng Design Pattern vào trong công việc thường ngày cũng như các dự án thực tiễn của mình.
“Sách là người thầy vĩ đại và thông thái nhất”
Công nghệ phát triển kéo theo thói quen thu nạp kiến thức của con người thay đổi. Tuy nhiên, sách vẫn người thầy vĩ đại và thông thái nhất của chúng ta. Theo quan điểm cá nhân mình, việc đọc sách là vô cùng quan trọng, vì đây là phương pháp giúp mở mang kiến thức hiệu quả nhất. Vì vậy, hãy dành một ít thời gian trong ngày để đọc và chắt lọc những kiến thức về lập trình và công nghệ mà sách mang lại. Ngoài ra, các bạn có thể tìm đọc một số tựa sách hay về lập trình mà mình tâm đắc: Head First Design Pattern, Patterns of Enterprise Application Architecture, Domain Driven Design, Naked Object,…
“Hãy tìm hiểu và cập nhật công nghệ, kiến thức mới thường xuyên”
Không thể phủ nhận công nghệ hiện đang phát triển với tốc độ chóng mặt, điều này đòi hỏi các bạn lập trình viên phải thường xuyên theo dõi, cập nhật các công nghệ lẫn các kiến thức mới để phù hợp với hiện tại. Đặc biệt, trong giai đoạn COVID-19 vừa qua đã cho thấy tầm quan trọng của công nghệ cho việc phát triển doanh nghiệp, từ đó vai trò của các lập trình viên CNTT cũng có phần thay đổi so với thời kỳ tiền COVID-19.
Hiện nay, Pixelz đã áp dụng công nghệ AI/ ML kết hợp với Computer Vision truyền thống với mong muốn mang đến chất lượng tuyệt vời cho sản phẩm. Điều này là cơ hội cũng như thách thức của bản thân mình và team. Thách thức ở chỗ mình và team phải xử lý lượng dữ liệu khổng lồ, nhưng vẫn phải đảm bảo hệ thống được vận hành trơn tru 24/7. Nhưng đây cũng chính là cơ hội để mọi người được học hỏi, tiếp xúc và ứng dụng công nghệ mới, đồng thời giúp nâng cao kỹ năng của từng cá nhân.
Việc tìm hiểu và cập nhật công nghệ, kiến thức mới thường xuyên là điều không thể thiếu, vì vậy mình khuyên các bạn hãy dành thời gian để đọc một số blog công nghệ như: Martin Fowler, Uber Engineering hoặc cài 1 số ứng dụng như Medium hoặc Feedly,…
“Cuối cùng, hãy yêu thích con đường mà bạn đã chọn”
Việc chinh phục ước mơ không bao giờ là dễ dàng, nếu bạn đã chọn được con đường mình yêu thích, hãy nỗ lực không ngừng và không từ bỏ. Việc học đi đôi với hành cũng cần thiết hơn bao giờ hết, vì chỉ có sai bạn mới biết sửa chữa và tiến bộ hơn mỗi ngày. Hãy chọn một môi trường tốt để học hỏi và phát triển sự nghiệp, nơi khiến bạn có thể bùng nổ năng lực và khám phá thêm nhiều điều mới mẻ hơn về công nghệ.
Với mình, Pixelz là “ngôi nhà” chung mà mình và mọi người có thể cùng nhau xây dựng mối quan hệ trung thực, thẳng thắn, chân thành và cùng nhau phát triển. Sở hữu văn hoá đổi mới sáng tạo và mô hình phẳng, tại đây, mọi người được trao quyền và khuyến khích tự chủ trong công việc, không ngại đương đầu với thách thức hay nắm bắt lấy cơ hội để có được những bước nhảy vọt cho sự nghiệp.
KẾT
Đây là những kinh nghiệm mà mình mong muốn được gửi đến các bạn đã và đang trên con đường chinh phục sự nghiệp là một lập trình viên .NET. Dù bạn là Fresher mới ra trường hay Senior dày dặn kinh nghiệm, việc học hỏi mỗi ngày là một điều cần thiết để bản thân được tiến bộ hơn. Bên cạnh đó, một môi trường làm việc tốt sẽ góp phần tạo bước đệm cho sự nghiệp của bạn. Hiện Pixelz đang rộng mở nhiều cơ hội cho các bạn đam mê lập trình gia nhập. Nếu bạn mong muốn được về chung “một nhà” và cùng chinh phục các dự án sắp tới thì có thể tham khảo ngay các vị trí đang tuyển tại đây nhé!
Đây cũng là lần đầu tiên nhà trường ra mắt hai chương trình Thạc sĩ chuẩn quốc tế cho khối ngành STEM (Khoa học, Công nghệ, Kỹ thuật và Toán học). Không chỉ được công nhận toàn cầu, mỗi chương trình đều mang những dấu ấn và những đặc thù riêng, đáng để tìm hiểu trước khi chọn lựa hướng đi cho tương lai.
Chương trình Thạc sĩ Trí tuệ Nhân tạo được thiết kế cho những ai có mong muốn tập trung và đào sâu vào những ứng dụng của AI nhằm thúc đẩy sự phát triển của công nghệ. Chương trình có 3 khối kiến thức chính: thiết kế và phát triển AI, học máy/ học sâu và khoa học dữ liệu.
Trong bối cảnh tăng trưởng chóng mặt của lĩnh vực này, đại học RMIT tự hào được Hội đồng Nghiên cứu Úc vinh danh là cơ sở có những nghiên cứu AI “vượt chuẩn thế giới”. Học viên sẽ được phổ cập những kiến thức nâng cao và cấp tiến nhất về điện toán, phát triển và lắp đặt các hệ thống AI trong môi trường nghiên cứu lẫn môi trường hành nghề chuyên nghiệp, cũng như luôn luôn trau dồi kỹ năng và ý thức đạo đức nghề. Sau khi tốt nghiệp, học viên có thể theo đuổi các vị trí như kỹ sư AI, chuyên gia phân tích dữ liệu hoặc nhà nghiên cứu về khoa học dữ liệu, thuật toán hay những tích hợp của AI.
Với chương trình Thạc sĩ An toàn Thông tin, cũng là chương trình lâu đời nhất của Úc ở lĩnh vực này, học viên sẽ học cách kiến tạo một không gian mạng an toàn, giảm thiểu rủi ro cho người dùng, doanh nghiệp và tổ chức giữa bối cảnh bùng nổ kỹ thuật số.
Chương trình cho học viên tiếp cận những nhánh chuyên môn nhỏ hơn, bao gồm bảo mật internet và hệ thống LAN, các dạng thức khác nhau của mật mã học, và mật mã học cải tiến để giải quyết các rủi ro trong tương lai. Trên hết, không chỉ được học về yếu tố khoa học và kỹ thuật, học viên còn được học sâu về yếu tố con người và doanh nghiệp, trở thành những chuyên gia toàn diện, đáp ứng được nhu cầu của thị trường ngày nay khi các tổ chức và công ty đang không ngừng săn đón những nhà quản lý cấp cao, những kỹ sư thiết kế – hệ thống an toàn thông tin.
Vì cả hai chương trình đều đến từ RMIT Melbourne, học viên sẽ được học tập với các chuyên gia đầu ngành từ RMIT Melbourne & RMIT Việt Nam trong môi trường giáo dục linh hoạt, song hành giữa những kiến thức chuyên ngành bắt buộc và những môn tự chọn hấp dẫn để để đa dạng hoá kiến thức, hướng theo chuyên môn mong muốn. Ngoài ra, những học viên có sẵn kiến thức nền về công nghệ thông tin, máy tính hoặc các lĩnh vực liên quan đều có thể được xem xét miễn giảm môn học.
Đặc biệt, ở những học kỳ cuối cùng, mỗi chương trình đều có những môn học hoặc những hướng phát triển đặc thù được thiết kế theo mô hình học tập kết hợp thực tiễn (WIL- work integrated learning) – mô hình đã làm nên danh tiếng của đại học RMIT trong nhiều năm qua. Với Thạc sĩ An toàn Thông tin, học viên sẽ phải hoàn thành hai môn học nhận thức ngành và kết nối ngành để sẵn sàng cho công việc ngay sau khi tốt nghiệp. Còn với Thạc sĩ Trí tuệ Nhân tạo, học viên có hai lựa chọn: hoặc thực hiện một dự án AI với doanh nghiệp đối tác; hoặc nghiên cứu chuyên sâu về AI để hoàn thành một luận án làm tiền đề vững chắc cho những ai muốn theo đuổi học vị Tiến sĩ.
Tại Việt Nam, đại học RMIT không còn xa lạ với những ai muốn theo đuổi học vị Thạc sĩ. Những chương trình bậc cao học về Quản trị Kinh doanh hay Kinh doanh Quốc tế đã và đang thu hút nhiều học viên. Với hai chương trình Thạc sĩ mới này, RMIT mong muốn đáp ứng được nhu cầu tuyển dụng của thị trường khoa học – công nghệ để không ngừng đào tạo thêm những nhà lãnh đạo cho tổ chức, doanh nghiệp trong và ngoài nước.
Hai chương trình Thạc sĩ Trí tuệ Nhân tạo (AI) và Thạc sĩ An toàn Thông tin (Cyber Security) sẽ ra mắt vào ngày 26/3/2022, chính thức tuyển sinh cho kỳ nhập học tháng 6 ngay sau đó. Để đăng ký tham gia sự kiện ra mắt chương trình và tìm hiểu thêm về những cơ hội học bổng lên tới 400 triệu/ suất, bạn có thể đăng ký tại đây.
Hai lớp học thử về AI và An toàn Thông tin tại sự kiện ra mắt ngày 26/3
Để có được trải nghiệm thực tiễn nhất, người tham gia có thể tham gia một trong 2 lớp học thử khi dự sự kiện.
Lớp học thử “Dạy máy học tóm tắt văn bản bằng phương pháp “trừu tượng hóa” kinh điển” sẽ dạy người tham gia cách phát triển một giải pháp AI để giải bài toán tóm tắt văn bản hiệu quả cho một sản phẩm hay dịch vụ dựa trên các review trên mạng.
Lớp học thử “Các cuộc tấn công tống tiền (ransomware) bắt đầu như thế nào?” sẽ mô phỏng bước đầu trong một cuộc tấn công tống tiền của tin tặc nhắm vào các doanh nghiệp, tổ chức.
Cả hai lớp học được điều phối bởi chính các tiến sĩ của RMIT và sẽ được giảng dạy hoàn toàn bằng tiếng Anh.
Team Leader là gì? Những kỹ năng nào mà một Team Leader cần có?
Team Leader là một thuật ngữ quen thuộc trong công việc ở các công ty hiện nay. Team Leader được xem như người nắm quyền điều hành và chi phối các nhiệm vụ trong một nhóm, cũng như tạo ra tính gắn kết giữa các thành viên trong nhóm. Vậy cụ thể công việc của các Team Leader là gì? Và những kỹ năng của team leader nào cần có để làm tốt công việc của mình?
Team Leader là gì?
Team Leader có thể hiểu một cách đơn giản là người lãnh đạo và chịu trách nhiệm cao nhất trong một đội nhóm, một phòng làm việc. Công việc chính của team leader là phân bố công việc và đánh giá hiệu suất làm việc của các thành viên trong team. Team leader sẽ là người chịu trách nhiệm trong việc đào tạo nhân lực, hướng dẫn thành viên trong nhóm mình cách làm việc để tạo được kết quả chung đúng như những gì mà team đã đặt ra.
Vậy leadership là gì? Leadership chính là kỹ năng cần có của một người làm lãnh đạo. Với team leader, các kỹ năng liên quan đến việc gắn bó tổ chức, vận hành đội nhóm và thiết lập công việc thật sự rất quan trọng. Người lãnh đạo cần biết cách để tạo ra mục tiêu phấn đấu cho cả team, biết cách truyền động lực và đề ra những phương pháp để cả nhóm cùng đạt được kết quả đó.
Bên cạnh đó, team leader phải là người có tầm nhìn và có khả năng quan sát, đánh giá vấn đề một cách nhạy bén và kịp thời để có được những đề xuất phù hợp. Và đương nhiên, một team leader cần có khả năng huấn luyện đội, nhóm để mọi người trong nhóm đều có thể làm tốt công việc mà họ đang được giao phó. Đó chính là những kỹ năng mà một team leader cần có.
Đây có thể khẳng định là một trong những công việc quan trọng nhất của team leader. Công việc của team có hiệu quả hay không, có đạt đúng những KPIs được đặt ra lúc đầu hay không hoàn toàn phụ thuộc vào khả năng phối hợp và phân chia nhiệm vụ của team leader.
Team leader phải là người nắm rõ khả năng của từng thành viên, thế mạnh và điểm yếu của họ để có thể giao những công việc phù hợp, và đảm bảo hoàn thành công việc một cách trơn tru nhất. Khi một nhân viên được giao những công việc sở trường chắc chắn họ có thể làm việc và tạo ra kết quả xuất sắc nhất. Vậy nên một team leader có khả năng phát hiện ra năng lực thật sự của một team-member là điều rất cần thiết.
2. Tìm kiếm và tập hợp những thành viên xuất sắc
Những thành viên có năng lực sẽ đóng góp cho việc gia tăng năng suất làm việc và mang lại kết quả làm việc tốt nhất cho cả team. Điều đó không có nghĩa là đội nhóm của bạn bắt buộc phải có tất cả các thành viên đều xuất sắc. Chỉ cần một số trong các thành viên là những người có khả năng sáng tạo tốt, và quan trọng là họ có thể phối hợp ăn ý với các thành viên khác và cùng nâng đỡ nhau để phát triển.
Để làm được điều này, team leader cần cố gắng khai thác tính cách, động cơ công việc cũng như năng lực chuyên môn của từng ứng viên để có thể nắm được chính xác nhất cách nhân viên triển khai vấn đề. Từ đó, đưa ra những phương pháp làm việc làm việc phù hợp với khả năng của từng thành viên trong nhóm.
3. Kiểm soát được công việc và đưa ra những điều chỉnh kịp thời
Là một team leader, bạn có thể không cần phải làm hết tất cả mọi việc nhưng bắt buộc phải nắm được tiến độ hoàn thành của các nhiệm vụ. Vì trách nhiệm chính của một team leader là quản lý và giám sát. Bạn phải là người đầu tiên nhìn thấy được các vấn đề trong nội bộ, vấn đề với công việc để đưa ra hướng giải quyết kịp thời, tránh làm ảnh hưởng đến tiến độ chung của cả nhóm.
Tuy nhiên, điều đó không đồng nghĩa với việc chỉ có duy nhất trưởng nhóm là người được quyền giám sát mà tất cả các thành viên đều có thể tham gia vào quá trình đấy. Các thành viên cũng có thể theo dõi tiến độ và tự điều chỉnh, đóng góp ý kiến trong quá trình làm việc. Điều quan trọng nhất là cần tạo sự đoàn kết với cả team để luôn đạt được hiệu quả cao trong công việc.
Điều đầu tiên cần có ở một team leader là luôn sẵn sàng hỗ trợ người trong team của mình. Không chỉ có vai trò phân phối công việc cho các thành viên, leader cũng phải giám sát công việc và kịp thời hỗ trợ mọi người. Nếu bạn là leader, bạn luôn sẵn sàng tham gia vào công việc của cấp dưới sẽ khiến họ nể trọng bạn hơn, và khi tham gia vào công việc bạn sẽ đánh giá được cấp dưới có tận tâm với công việc họ đang làm không để kịp thời đưa ra góp ý.
Bên cạnh đó, hãy cố gắng trau dồi kỹ năng quản lý công việc của bạn nhiều hơn nữa. Vì khi đã trở thành một leader, bạn không chỉ quản lý mỗi công việc của mình mà còn là công việc của cả nhóm, của rất nhiều người. Cần học cách để sắp xếp công việc hợp lí cũng như đảm bảo không bị chậm tiến độ hay bỏ qua tasks vì không thể quản lý đầy đủ.
Đồng thời, hãy tìm hiểu thêm về kỹ năng quản lý dự án để lead một dự án bất kì được giao. Đây là yếu tố then chốt giúp team leader thực sự tỏa sáng trong vai trò dẫn dắt một team từ lập kế hoạch dự án, cho đến thực thi dự án, đo lường hiệu quả và kết thúc dự án.
Cùng với đó là bồi dưỡng khả năng leadership của bản thân, như khả năng xây dựng và duy trì 1 đội ngũ chất lượng ngay từ đầu, giao việc uỷ quyền đúng người đúng việc, tạo động lực hay giải quyết xung đột nội bộ và quản lý rủi ro hiệu quả.
Là một team leader, bạn không chỉ là người giúp cả team đạt được kết quả tốt mà còn phải luôn sẵn sàng để gánh chịu trách nhiệm khi không đạt kết quả như mong đợi. Tùy thuộc vào thái độ và sự sẵn sàng của bạn mà công việc làm leader có thể đạt được thành công hay không. Hy vọng các thông tin về kỹ năng làm việc của team leader trong bài viết sẽ giúp bạn trau dồi thêm cho bản thân mình.
Là một Chuyên viên tuyển dụng, thì việc đầu tiên bạn phải biết đó là Lập Kế hoạch tuyển dụng. Nó giúp bạn có một lộ trình chi tiết bao gồm thứ tự các bước phải thực hiện, dự trù và kiểm soát chi phí để hoàn thành chỉ tiêu tuyển dụng đề ra.
Chào mừng các bạn đang đến với series các bài học trong Khoá học Tuyển dụng cơ bản cho người mới (newbie) hoàn toàn miễn phí. Tôi là Thành HR sẽ đồng hành cùng bạn trong khoá học này. Và chủ đề mà chúng ta cùng nhau tìm hiểu ngày hôm nay là Phương pháp lập Kế hoạch tuyển dụng.
Là một Chuyên viên tuyển dụng, thì việc đầu tiên bạn phải biết đó là Lập Kế hoạch tuyển dụng. Nó giúp bạn có một lộ trình chi tiết bao gồm thứ tự các bước phải thực hiện, dự trù và kiểm soát chi phí để hoàn thành chỉ tiêu tuyển dụng đề ra.
Kế hoạch tuyển dụng thường sẽ có theo năm, theo quý, tháng và tuần. Ở đây mình sẽ đi chi tiết về Kế hoạch tuyển dụng tháng. Vì nó dễ áp dụng và mọi người thực hiện thường xuyên căn cứ trên target (chỉ tiêu) phải đáp ứng hàng tháng của cá nhân bạn. Bao gồm các bước như sau.
Xác định nhu cầu tuyển dụng
Khi nhận được phiếu yêu cầu tuyển dụng từ các phòng ban, bạn sẽ được phân một chỉ tiêu cá nhân phải hoàn thành. Căn cứ trên đó, bạn sẽ phải cần làm rõ là mình tuyển những vị trí nào? Số lượng bao nhiêu? Thời gian phải hoàn thành. Lý do tuyển là tăng mới hay bù nghỉ? Mức lương dự kiến, nơi làm việc…
Việc xác định được nhu cầu tuyển dụng ngay từ đầu sẽ giúp bạn biết mình cần làm gì, từ đó vách ra được lộ trình các việc cần làm. Từ đó bạn sẽ có căn cứ vững chắc, rõ ràng để đề xuất những công cụ hỗ trợ, nguồn lực, chi phí để hoàn thành nhiệm vụ
Các kênh nguồn sử dụng và chi phí dự kiến
Sau khi xác định được nhu cầu tuyển dụng rồi, bạn sẽ căn cứ trên vị trí, số lượng tuyển và thời gian tuyển để lên kế hoach sử dung các kênh nguồn nào, chi phí khoảng bao nhiêu. Đầu tiên, thông thường sẽ ưu tiên ứng viên nội bộ và kênh network cá nhân.
Bạn sẽ làm thông báo nội bộ để gửi đến các phòng ban hoặc bản tin công ty trên web hoặc bảng thông báo ở khu vực nhân viên hay ra vào. Kênh này có chi phí thấp nhưng hiệu quả cao vì ứng viên được giới thiệu qua các nhân viên công ty sẽ có mức độ gắn bó lâu hơn. Tuy nhiên, chỉ là một kênh bổ trợ nếu bạn tuyển số lượng nhiều.
Kế đến là kênh website, ngoài việc đăng tin lên các website miễn phí thì bạn có thể cân nhắc việc sử dụng đăng tin trên các website trả phí. Một kênh nguồn hot hiện nay bạn cũng không thể bỏ qua đó chính là đăng tin tuyển dụng trên Facebook và các mạng xã hội khác để gia tăng hiệu quả.
Hoặc nếu cần thiết có thể sẽ trả phí cho các Công ty dịch vụ tuyển dụng (headhunt) để đẩy nhanh tiến độ. Đây thường đượng xem là phương án backup bởi vì có chi phí khá cao. Sẽ tùy theo tiến độ và số lượng để bạn ra quyết định có nên sử dụng hay không.
Công tác phối hợp các phòng ban
Bạn cũng phải có bảng chi tiết về việc phối hợp với các phòng ban có nhu cầu tuyển dụng càng cụ thể càng tốt để không bị động. Ví dụ như xin bài test chuyên môn, thời gian dự kiến phỏng vấn vòng 2, thời gian tối đa phản hồi kết quả để phòng ban đó nắm và sắp xếp thời gian phối hợp.
Vì một số trưởng phòng, quản lý thường rất bận nên nếu bạn không có plan này thì bạn sẽ phải chạy theo để nhờ hoặc thậm chí năn nỉ họ hỗ trợ. Và khi bạn đã có plan chi tiết như vậy, nếu kết quả không đảm bảo deadline vì công tác phối hợp của họ, thì bạn hoàn toàn có cơ sở để phản biện lý do không hoàn thành.
Thời gian hoàn thành (deadline)
Nên bao gồm từng giai đoạn hoàn thành cho từng hạng mục công việc như: Thời gian nhận hồ sơ, thời gian phỏng vấn lần 1, lần 2, thời gian chốt kết quả và gửi thư mời nhận việc (offer letter). Nếu phát sinh ở giai đoạn nào thì bạn phải nhanh chóng bổ sung phương án backup cho giai đoạn đó ngay.
Và tất nhiên, từng giai đoạn nhỏ đó nhằm đạt mục tiêu cuối cùng là bạn phải tuyển được đủ số lượng đúng thời gian theo yêu cầu. Đặc biệt là đảm bảo chất lượng ứng viên và với một chi phí tốt nhất có thể.
Trong các cả kế hoạch chứ không riêng kế hoạch tuyển dung, tất cả luôn luôn phải có phương án 2 thay thế khi có phát sinh hoặc tiến độ không đi đúng theo kế hoạch. Để tất cả phải trong tầm kiểm soát cho mục tiêu cuối cùng.
Ví dụ tăng kênh nguồn, dùng dịch vụ headhunt khi bạn đang bị lost tiến độ thu hút nguồn và không đủ CV. Tất nhiên phương án 2 chỉ được kích hoạt khi đã đánh giá thấu đáo các tình huống và khả năng thực hiện tới đâu, mức thiệt hại nếu không thể hoàn thành. Vì phương án 2 sẽ làm phát sinh chi phí cao. Tuy nhiên nó là cần thiết để kích hoạt khi cần thiết và không bị động.
Trong quá trình thực hiện, có thể có những phát sinh thay đổi hoặc điều chỉnh vì lý do khách quan. Ví dụ như tăng số lượng, thay đổi nơi ứng viên làm việc, mức lương, KPI…điều này sẽ gây khó khăn nhất định cho bạn. Vì bạn đã thông tin đến ứng viên rồi.
Với những tình huống ngoài ý muốn như vậy, bạn phải thật bình tĩnh để tìm hướng xử lý tốt nhất. Linh hoạt điều chỉnh kế hoạch theo yêu cầu của công ty, cũng như liên hệ ứng viên để thông báo các điều chỉnh nếu có. Lưu ý phải thật chân thành và mong sự cảm thông từ ứng viên.
Qua nội dung bài học Phương pháp lập kế hoạch tuyển dụng, chắc chắn bạn đã nắm được tầm quan trọng của việc có một Kế hoạch tuyển dụng chi tiết. Nó giúp bạn kiểm soát tốt từng công đoạn của công việc, giúp bạn không bị quên task hoặc bị quá tải trong công việc và. Tất cả điều đó tạo nên kết quả hoàn thành cuối cùng.
Phần thực hành
Để có thể nắm kỹ hơn nội dung bài hoạc, bạn có thể thực hành theo gợi ý sau: Phòng Kinh doanh đang cần tuyển 5 bạn nhân viên phát triển và phân phối sản phẩm mì gói cho các tạp hóa trong khu vực thành phố. Yêu cầu từ cấp 3 trở lên, có kinh nghiệm tiếp thị và sales, có xe gắn máy và rành đường. Thời gian có nhân sự là 15 ngày. Bạn hãy lên một kế hoạch tuyển dụng chi tiết thử nhé!
Tuyển Dụng Nhân Tài IT Cùng TopDev Đăng ký nhận ưu đãi & tư vấn về các giải pháp Tuyển dụng IT & Xây dựng Thương hiệu tuyển dụng ngay!
Hotline: 028.6273.3496 – Email: contact@topdev.vn
Dịch vụ: https://topdev.vn/page/products
Mấy bài viết nói về 3 từ khóa này trong JavaScript thì có nhiều rồi, mình chỉ tổng hợp lại cho ngắn để các bạn lười đọc tham khảo nhanh thôi
const
const dùng để khai báo một hằng số – là một giá trị không thay đổi được trong suốt quá trình chạy.
Ví dụ:
const A = 5;A = 10; // Lỗi Uncaught TypeError: Assignment to constant variable
let
let tạo ra một biến chỉ có thể truy cập được trong block bao quanh nó, khác với var – tạo ra một biến có phạm vi truy cập xuyên suốt function chứa nó.
Ví dụ:
Sử dụng var:
functionfoo() {var x = 10;if (true) {var x = 20; // x ở đây cũng là x ở trênconsole.log(x); // in ra 20 }console.log(x); // vẫn là 20}
Sử dụng let:
functionfoo() {let x = 10;if (true) {let x = 20; // x này là x khác rồi đấyconsole.log(x); // in ra 20 }console.log(x); // in ra 10}
Ngoài ra, khi ở global scope (tức là không nằm trong một function nào cả), từ khóa var tạo ra thuộc tính mới cho global object (this), còn let thì không:
var x = 'global';let y = 'global';console.log(this.x); // "global"console.log(this.y); // undefined
Callback và let
Có một trường hợp dùng let rất hiệu quả đó là sử dụng callback trong một vòng lặp.
Ví dụ nếu dùng var:
for (var i = 0; i < 5; i++) {setTimeout(function(){ console.log('Yo! ', i); }, 1000);}
Kết quả sẽ ra gì nào?
Yo! 5Yo! 5Yo! 5Yo! 5Yo! 5
Giá trị của biến i bên trong hàm callback luôn là giá trị cuối cùng của i trong vòng lặp.
Publish message vào Google Pub/Sub topic sử dụng Spring Cloud GCP
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh
Google Pub/Sub là một trong những cloud messaging service mà chúng ta có thể sử dụng nếu ứng dụng của các bạn có những tính năng cần sử dụng messaging technology. Trong bài viết này, mình sẽ hướng dẫn các bạn cách publish một message vào Google Pub/Sub topic sử dụng Spring Cloud GCP các bạn nhé!
Đầu tiên, mình sẽ tạo mới một Spring Boot project với GCP Messaging dependency:
để làm ví dụ.
Kết quả:
Mình sẽ implement interface CommandLineRunner cho class SpringGcpPubsubPublishApplication để chạy ứng dụng Spring Boot này ở chế độ console. Các bạn có thể tham khảo thêm bài viết này các bạn nhé!
package com.huongdanjava.springgcppubsub.publish;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringGcpPubsubPublishApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(SpringGcpPubsubPublishApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
// TODO Auto-generated method stub
}
}
Để làm ví dụ, mình cũng sẽ tạo mới một topic trên Google Pub/Sub với thông tin về project ID và topic ID như sau:
Để bắt đầu, chúng ta sẽ khai báo những thông tin này trong code như sau:
Để publish message vào topic, chúng ta cần có đối tượng TopicName của thư viện Google Pub/Sub. Các bạn khởi tạo đối tượng này từ project ID và topic ID như sau:
Phương thức publish() của đối tượng Publisher sẽ giúp chúng ta publish message. Tham số của phương thức này là một đối tượng PubsubMessage, được tạo từ message mà chúng ta muốn publish như sau:
Ở đây, như các bạn thấy, mình còn thêm code để lấy kết quả của việc publish message có thành công hay không? Sử dụng interface ApiFuture của Google Pub/Sub extends từ interface Future của Java.
Trước khi chạy ví dụ này, chúng ta cần làm thêm một bước nữa là cấu hình phần authentication cho ứng dụng với Google Pub/Sub.
Google Pub/Sub hỗ trợ chúng ta 2 loại authentication đó là sử dụng Service Account hoặc Access Control với IAM. Thông thường, chúng ta sẽ sử dụng Service Account để làm việc này.
Các bạn có thể sử dụng một Service Account với Role Pub/Sub Admin để publish message vào Pub/Sub topic như sau:
Có một Role khác là Pub/Sub Publisher chỉ để publish message nhưng mình không hiểu sao nó không work, không gửi message được với Role này. Nếu các bạn biết nguyên nhân thì hãy chia sẻ nhé!
Sau khi Add key cho Service Account này với type JSON hoặc P12, tập tin private key này sẽ được lưu về máy của các bạn.
Bây giờ thì các bạn chỉ cần set một biến môi trường trong máy của mình hoặc trong phần cấu hình chạy ứng dụng của IDE với tên là GOOGLE_APPLICATION_CREDENTIALS. Giá trị của biến môi trường này trỏ đến đường dẫn của tập tin private key trên.
Ví dụ của mình như sau:
Bây giờ nếu chạy ứng dụng và kiểm tra topic, các bạn sẽ thấy kết quả như sau:
Công việc C&B là làm gì? Lương nhân viên C&B cao hay thấp?
Bài viết được sự cho phép của hrvnacademy.com
Nhiều bạn Fresher hay sinh viên mới ra trường đang thắc mắc về lương của C&B bao nhiêu? Cao hay thấp? Mức bao nhiêu là phù hợp để deal với công ty. Theo khảo sát trung bình, Mức lương phổ biến nằm trong khoảng 5 – 15 triệu/tháng. Nhưng còn tùy thuộc vào bạn là newbie, hay chuyên viên,……
Chủ đề mà chúng ta cùng nhau tìm hiểu ngày hôm nay là Công việc C&B là làm gì? Lương bao nhiêu? Hãy cùng nhau phân tích sâu hơn về vị trí công việc C&B này bạn nhé!
Định nghĩa C&B
Bộ phận C&B là từ viết tắt của Compensation & Benefit. Còn ở các doanh nghiệp Việt Nam có tên gọi khác là Bộ phận chế độ chính sách và Tiền lương, sau này mọi người thường gọi C&B cho ngắn gọn và đầy đủ hơn nhiệm vụ của bộ phận này.
Bộ phận C&B bao gồm các nhiệm vụ liên quan đến tiền lương, thưởng, chế độ phúc lợi và giải quyết quan hệ lao động trong doanh nghiệp. Đây gần như là bộ phận “chăm lo đời sống” cho toàn thể nhân viên trong công ty. Và là bộ phận tiếp xúc, lắng nghe các phản hồi từ nhân viên về các chính sách của công ty.
Các công tác chính của C&B trong doanh nghiệp
Ở phần này, mình sẽ không trình bày theo bản Mô tả công việc của vị trí C&B mà sẽ đi lần lượt các công việc thực tế họ phải làm hàng ngày, để cho các bạn là những newbie (người mới) dễ hiểu và dễ hình dung.
Hiện tại, công việc C&B đã được số hóa nhiều hơn nhờ công nghệ. Các công việc được ứng dụng phần mềm trên 50% để giảm thiểu rủi ro cũng như độ phức tạp của công việc, dễ dàng lấy số liệu phân tích và báo cáo hơn. Nên ở phần nội dung này, có thể mình trình bày các công việc phải làm theo công tác thủ công, nhưng mặc định bạn hãy hiểu rằng có thể được thay thế bằng phần mềm nhé!
Nhập và quản lý Data HR: Đây là công tác đầu tiên mà một người làm C&B phải nắm. Data HR là danh sách thông tin nhân viên trong công ty được quản lý trên phần mềm hoặc file excel. Nó bao gồm đầy đủ các thông tin cá nhân, thông tin gia đình, thông tin liên hệ, ngày nhận việc, mã nhân viên, loại hợp đồng, lộ trình thăng tiến…Và một số thông tin khác tùy quy định riêng của mỗi công ty.
Thông tin Data HR sẽ được bộ phận C&B tiếp nhận từ Bộ phận tuyển dụng và đưa lên phần mềm hoặc nhập thủ công lên file excel. Sau đó sẽ tiếp tục quản lý và update các thông tin khác trong quá trình nhân viên làm việc. Công tác này có thể bao gồm cả quản lý hồ sơ xin việc bản cứng của nhân viên.
Ban hành và điều chỉnh chính sách tiền lương hàng năm: Đây là công tác khá quan trọng của một nhân viên C&B. Khi có vị trí mới, phòng ban mới thì C&B phải đóng vai trò tư vấn để xây dựng cơ chế lương sao cho phù hợp với thị trường và đảm bảo quỹ lương trong mức cho phép.
Đồng thời phải xem xét, đề xuất điều chỉnh thang bảng lương hàng năm của công ty cho phù hợp với mức lương tối thiểu vùng hàng năm của Bộ Luật lao động. Sau đó đăng ký lại với Cơ quan quản lý lao động địa phương để đảm bảo tính tuân thủ pháp luật và quyền lợi của người lao động.
Tính và chi trả lương: Đây là công việc với tần suất phải thực hiện hàng tháng. Nhân viên C&B căn cứ trên thang bảng lương và mức lương của từng vị trí, thâm niên nhân viên để tính và chi trả lương hàng tháng. Đảm bảo tính chính xác và đúng thời gian chi trả theo quy định chung của công ty đã ban hành.
Công việc này đa số đã được phần mềm hỗ trợ để hạn chế sự can thiệp chủ quan của con người để tránh tiêu cực. Tuy nhiên, có một số công ty có quy chế lương phức tạp thì vẫn phải thực hiện một phần hoặc toàn bộ thủ công bằng excel.
Sau khi thực hiện chi trả lương, C&B phải thực hiện gửi phiếu lương thủ công hoặc qua phần mềm cho nhân viên. Sau đó là tiếp nhận và giải quyết các phản hồi của nhân viên nếu có sự cố sai sót trong khâu chấm công hoặc khâu tính toán. Sau đó phải phối hợp với các bộ phận để giải quyết thỏa đáng trong thời gian nhanh nhất có thể.
Bảo hiểm xã hội (BHXH) và Thuế TNCN: C&B phải thực hiện các công tác liên quan đến Bảo hiểm xã hội, Bảo hiểm thất nghiệp, Thuế thu nhập cá nhân và các chế độ phúc lợi đi kèm khác của người lao động. Công tác này cần sự chính xác, đầy đủ và kịp thời để đảm bảo quyền lợi tốt nhất cho nhân viên.
Đánh giá nhân viên hàng năm: Căn cứ trên kế hoạch kinh doanh hàng năm của ban lãnh đạo, người làm C&B sẽ làm công tác đánh giá, tổng hợp đánh giá năng lực nhân viên hàng năm. Công việc này là cơ sở để tưởng thưởng, vinh danh nhân viên hàng năm hoặc thay thế những nhân viên làm việc kém hiệu quả. Tùy theo quy mô công ty mà C&B sẽ là công tác đánh giá trực tiếp hoặc tư vấn hỗ trợ cho các phòng ban.
Quan hệ lao động: C&B phải tiếp nhận và giải quyết các tranh chấp, khiếu nại, quyền lợi của người lao động. Cũng như thay mặt công ty triển khai các chính sách mới của công ty đến toàn thể nhân viên. Đảm bảo tính chính xác và chính thống. Không để các thông tin hành lang lan truyền theo chiều ngang gây sự sai lệch thông tin trong tổ chức.
Báo cáo tình hình nhân sự: C&B sẽ phải tổng hợp báo cáo tuần, tháng, quý, năm hoặc tùy theo yêu cầu. Bao gồm các thông tin về nhân sự tăng giảm, tỷ lệ nghỉ việc, hiệu suất làm việc, mức lương bình quân, các tổng hợp chi phí liên quan…Đây là thông tin quan trọng cho Trưởng phòng nhân sự hoặc ban lãnh đạo ra các quyết định quan trọng về chính sách lương, phúc lợi để giữ chân nhân sự hoặc giảm tỷ lệ nghỉ việc…
Sẽ không có một mức lương chính xác nào cho tất cả các vị trí công việc, chứ không riêng gì công việc C&B. Vì nó còn phụ thuộc vào quy mô công ty, các nhiệm vụ thực tế, công ty nước ngoài hay Việt Nam…Rất nhiều yếu tố tác động đến thu nhập của một vị trí.
Tuy nhiên, mình cũng có thể đưa ra một mức tham khảo dựa trên nguồn của Vietnamworks; Số liệu bạn xem là được trích dẫn (update) vào tháng 09/2021. Số liệu bạn xem được tính bằng cách bình quân thu nhập dựa trên các tin đăng tuyển dụng C&B vào thời điểm đó.
Và nếu bạn nghe ai đó nhận một mức lương vị trí C&B cao hơn mức lương bình quân này rất nhiều, thì bạn cũng đừng quá ngạc nhiên nhé! Nó hoàn toàn bình thường và hãy xem đó là động lực để bạn không ngừng nâng cao kỹ năng nghề nghiệp để gia tăng thu nhập.
Làm công việc nào cũng sẽ có cơ hội thăng tiến cả, công việc C&B cũng vậy. Có thể nó sẽ không chính xác 100% nhưng cơ bản là vẫn đi theo lộ trình như bên dưới và có thể bỏ qua vị trí trung gian. Ví dụ có thể từ C&B Executive lên C&B Manager tùy quy mô công ty.
Hãy làm nghề một cách nghiêm túc, tận tâm và luôn học hỏi, update kiến thức mới. Thì chuyện thăng tiến và phát triển với nghề chỉ còn là vấn đề thời gian. Đừng quá vội vàng đốt cháy giai đoạn bạn nhé!
Học C&B ở đâu tốt?
Nếu bạn đang chọn trường Đại học: Bạn đang mong muốn theo đuổi nghề Nhân sự thì nên chọn Nghành Quản trị Nhân lực. Một số trường bạn có thể tham khảo như: Đại học Lao động Xã hội; Đại học Công đoàn; Đại học Kinh tế…Còn nếu học lực bạn khó đảm bảo đầu vào thì có thể chọn một số trường có điểm chuẩn thấp hơn nhưng vẫn có chuyên nghành này.
Danh tiếng của trường Đại học khá quan trọng, nhưng không phải là tất cả. Theo cá nhân mình, 50% vẫn hoàn tòan phụ thuộc vào tinh thần học hỏi và nỗ lực của cá nhân bạn. Hãy chọn cho bản thân con đường phù hợp nhất, dù là đường vòng bạn nhé!
Còn nếu bạn đã đi làm và muốn nâng cao năng lực chuyên môn: Hoặc là bạn đang muốn chuyển sang công việc C&B? Vậy thì bạn có rất nhiều lựa chọn, vì hiện nay các trung tâm đào tạo HR rất rất nhiều. Theo mình, bạn hãy chọn các trung tâm có các giảng viên đã hoặc đang đi làm tại các doanh nghiệp thì bạn sẽ học được nhiều kinh nghiệm thực chiến hơn.
Bạn có thể tham khảo vài gợi ý để chọn Trung tâm đào tạo C&B ngắn hạn như sau: Xem kỹ outline có các kiến thức mình cần hay không; Tìm xem các kinh nghiệm thực chiến của giảng viên trên các kênh social như Facebook, Linkedin, Youtube (nếu có)… để đánh giá sơ bộ. Một người dẫn đường mà bạn thích sẽ giúp bạn tiếp thu kiến thức tốt hơn.
Các trung tâm đào tạo thường đưa ra các khái niệm, các định nghĩa hoành tráng về các phương pháp, từ ngữ chuyên môn để làm content quảng cáo và thu hút học viên. Nên bạn hãy chủ động tìm hiểu trên internet những điều đó có thực sự rất ghê gớm, hay cũng là những cái bạn đã biết nhé!
Và nếu bạn đang ở các khu vực không phải trung tâm, không thể đến lớp trực tiếp được thì tìm hiểu các khóa học online về C&B, có rất nhiều khóa học miễn phí và trả phí tùy theo nhu cầu của học viên. Đây cũng là một lựa chọn không tồi, nhưng nó đòi hỏi khả năng tự học của bạn và sự quyết tâm cao.
Phần thực hành
Trong phần này, bạn hãy thực hành bài học bằng cách tự tra cứu 5 bản Mô tả công việc vị trí C&B trên internet. Sau đó hãy so sánh sự khác biệt nếu có để có cái nhìn đa chiều hơn về các công việc mà một nhân viên C&B phải làm. Từ đó bạn có cơ sở để chuẩn bị các bền tảng kiến thức cần thiết để trở thành một nhân viên C&B giỏi.
WhatTheCommit là một trang web cung cấp các đoạn text ngẫu nhiên, ý đồ của tác giả trang web này là để sử dụng nội dung này vào cho các commit khi làm việc với Git để tiết kiệm thời gian :)))
Chúng ta có thể dùng curl để lấy nội dung ngẫu nhiên từ trang web này về khi commit như sau:
TopDev ra mắt “Bài trắc nghiệm tính cách công việc - Workplace Personality Test”
Bên cạnh việc đánh giá mức độ phù hợp giữa bản thân với công việc/công ty thông qua các bài kiểm tra kỹ năng chuyên môn, việc xác định mức độ phù hợp trong tính cách của bản thân với môi trường làm việc hiện tại/ tương lai đang dần trở thành một yếu tố quan trọng cho các cá nhân & tổ chức nhận định và phát triển các mối quan hệ công việc thêm lành mạnh & năng suất.
Trong tìm việc, tính cách của một người nói lên rất nhiều điều về đạo đức công việc, vị thế của họ trong một nhóm người hoặc trong xã hội, giúp bạn quyết định xem bản thân mình phù hợp & phát huy tốt với văn hóa công ty như thế nào.
Bài trắc nghiệm tính cách trong công việc – Workplace Personality Test được SaraminHR x TopDev phát triển với mục đíchgiúp phân tích đặc điểm tính cách và khả năng của bạn để có thể xác định mức độ phù hợp với công việc IT và môi trường làm việc tại các công ty Công nghệ trên thị trường.
1. Nguồn gốc và độ tin cậy của bài kiểm tra Workplace Personality Test
Trắc nghiệm tính cách công việc do SaraminHR x TopDev phát hành bắt nguồn từ bài đánh giá tính cách của bộ đôi tác giả Kibeom Lee & Michael C. Ashton. Bài đánh giá được giới thiệu lần đầu tiên trong cuốn “The H Factor of Personality” vào những năm 2000. Bài đánh giá tính cách của Kibeom Lee & Michael C. Ashton được phát triển theo mô hình HEXACO, và cho đến nay, hình thức kiểm tra này vẫn luôn được áp dụng với những cải tiến liên tục để đáp ứng kịp thời nhu cầu thời đại và dần trở nên phổ biến ở nhiều quốc gia trên thế giới.
Phương pháp đánh giá của bài kiểm tra được áp dụng các quy tắc trong lĩnh vực tâm lý và quy chuẩn của ngành tuyển dụng. Sau khi hoàn thành việc tự đánh giá, số điểm bạn nhận được ở từng yếu tố tính cách sẽ được thống kê và so sánh với mức điểm trung bình (từ những người đã tham gia) để đưa ra các phân tích chi tiết tính cách công việc của bạn theo mô hình 6 yếu tố tính cách.
2. Tại sao nên tham gia bài kiểm tra tính cách trong công việc của TopDev?
Đơn vị thực hiện có uy tín trong ngành: Sản phẩm hoàn thiện để giới thiệu đến người dùng được thiết kế dành riêng cho thị trường Việt Nam bởi hai đơn vị uy tín trong lĩnh vực tuyển dụng SaraminHR x TopDev.
Áp dụng rộng rãi trong tìm việc và tuyển dụng: Bài trắc nghiệm tính cách trong công việc này được áp dụng để phân tích mức độ phù hợp cho cả người tìm việc và đơn vị tuyển dụng. Bài kiểm tra giúp bạn xác định được tính cách của mình, mức độ phù hợp của tính cách với công việc cũng như môi trường làm việc trong lĩnh vực IT. Nhà tuyển dụng cũng có thể sử dụng những dữ liệu ấy cho việc phân tích và đánh giá ứng viên.
Thiết kế riêng cho các lập trình viên: SaraminHR x TopDev đã tiến hành nhiều thử nghiệm nội bộ để có thể xác minh độ tin cậy của thông tin cũng như đảm bảo giá trị phân tích chính xác nhất của kết quả kiểm tra.
Phù hợp với các đối tượng người châu Á: tập trung vào lĩnh vực nhân sự cho khu vực châu Á nói chung và Việt Nam nói riêng, SaraminHR x TopDev đã phát triển nội dung bài kiểm tra dựa trên các lý thuyết về tính cách hiện đại nhất, nhằm giải thích một cách chi tiết và sâu sắc hơn về tính cách của người châu Á.
3. Nội dung bài Kiểm tra tính cách trong công việc gồm những gì?
Workplace Personality Test – Trắc nghiệm tính cách công việc của SaraminHR x TopDev được thiết kế gồm 60 câu hỏi trắc nghiệm, giúp phân tích 6 khía cạnh tính cách con người gồm:
Tính chính trực & khiêm tốn: Những người có điểm số cao trong thang đo này tránh thao túng người khác vì lợi ích cá nhân, ít cảm thấy bị cám dỗ để phá vỡ các quy tắc, không quan tâm đến sự giàu có và xa hoa, và không cảm thấy có quyền đặc biệt đối với địa vị xã hội được nâng cao.
Tính ổn định cảm xúc: những người có điểm rất cao trong thang điểm này không bị ảnh hưởng bởi nguy cơ/ nỗi sợ hãi bị tổn hại về thể chất, ít cảm thấy lo lắng ngay cả trong tình huống căng thẳng, ít có nhu cầu chia sẻ mối quan tâm của họ với người khác và cảm thấy độc lập/ ít phụ thuộc về mặt tình cảm với người khác.
Tính hướng ngoại: Những người có điểm số cao trong thang đo này cảm thấy tích cực về bản thân, cảm thấy tự tin khi lãnh đạo hoặc giải quyết các nhóm người, thích các cuộc gặp gỡ và tương tác xã hội, đồng thời trải nghiệm cảm giác nhiệt tình và năng lượng tích cực.
Tính dễ chịu: Những người có điểm số cao trong thang đo này có xu hướng dễ tha thứ cho những sai lầm của người khác, khoan dung, sẵn sàng thỏa hiệp và hợp tác với người khác. Họ cũng là người có thể dễ dàng kiềm chế tính khí của bản thân và ít thể hiện cảm xúc ra ngoài.
Tính tận tâm: Những người có điểm cao trong thang đo này luôn lên kế hoạch và sắp xếp thời gian hợp lý, làm việc kỷ luật để hướng tới mục tiêu, cố gắng đạt được sự chính xác trong công việc và cân nhắc kỹ lưỡng khi đưa ra quyết định.
Tính cởi mở: Người có điểm số cao trong thang đo về tính cởi mở trải nghiệm thường là người say mê vẻ đẹp của nghệ thuật thiên nhiên, ham tìm hiểu về nhiều lĩnh vực, sử dụng trí tưởng tượng một cách thoải mái trong cuộc sống, họ cũng đặc biệt quan tâm đến những ý tưởng hoặc con người khác thường.
4. Một số thông tin cần lưu ý khi thực hiện bài đánh giá
Những ai có thể tham gia thực hiện bài kiểm tra? → Tất cả các đối tượng là lập trình viên hoặc là người làm trong ngành CNTT đều có thể thực hiện bài kiểm tra.
Có thể thực hiện bài kiểm tra nhiều lần hay không? → Mỗi tài khoản có thể tham gia thực hiện bài kiểm tra 1 lần mỗi tháng.
Có cần lưu ý vấn đề gì khi thực hiện bài kiểm tra không? → Trước hết cần đảm bảo có một đường truyền internet ổn định để quá trình đánh giá diễn ra một cách suôn sẻ. Ngoài ra, hãy giữ cho mình một tâm lý ổn định và trả lời trung thực các câu hỏi để nhận được kết quả chính xác nhất bạn nhé!
Hãy tham gia thực hiện bài kiểm tra ngay hôm nay, hoàn toàn miễn phí & nhận ngay kết quả phân tích chi tiết. Thông tin chi tiết bài kiểm tra: https://topdev.vn/page/trac-nghiem-tinh-cach
Thực hiện “Thực hiện “Trắc nghiệm tính cách trong công việc” để nhận ngay những phần quà hấp dẫnTrắc nghiệm tính cách trong công việc” để nhận ngay những phần quà hấp dẫn
Trong tìm việc/ tuyển dụng, tính cách của một người nói lên rất nhiều điều về đạo đức công việc, vị thế của họ trong một nhóm người hoặc trong xã hội, giúp bạn quyết định xem bản thân mình phù hợp & phát huy tốt với văn hóa công ty như thế nào.
Bài trắc nghiệm tính cách trong công việc – Workplace Personality Test được SaraminHR x TopDev phát triển với mục đíchgiúp phân tích đặc điểm tính cách và khả năng của bạn để từ đó bạn có thể xác định mức độ phù hợp với các công việc IT và môi trường làm việc tại các công ty Công nghệ trên thị trường. Tham gia thực hiện bài trắc nghiệm này bạn không chỉ được đánh giá tính cách bản thân mà còn có cơ hội nhận những phần quà cực hấp dẫn từ TopDev.
1. Tổng quan về bài “Kiểm tra tính cách trong công việc”
Trắc nghiệm tính cách công việc do SaraminHR x TopDev phát hành bắt nguồn từ bài đánh giá tính cách của bộ đôi tác giả Kibeom Lee & Michael C. Ashton. Bài đánh giá được giới thiệu lần đầu tiên trong cuốn “The H Factor of Personality” vào những năm 2000. Bài đánh giá tính cách của Kibeom Lee & Michael C. Ashton được phát triển theo mô hình HEXACO, và cho đến nay, hình thức kiểm tra này vẫn luôn được áp dụng với những cải tiến liên tục để đáp ứng kịp thời nhu cầu thời đại và dần trở nên phổ biến ở nhiều quốc gia trên thế giới.
Phương pháp đánh giá của bài kiểm tra được áp dụng các quy tắc trong lĩnh vực tâm lý và quy chuẩn của ngành tuyển dụng. Sau khi hoàn thành việc tự đánh giá, số điểm bạn nhận được ở từng yếu tố tính cách sẽ được thống kê và so sánh với mức điểm trung bình (từ những người đã tham gia) để đưa ra các phân tích chi tiết tính cách công việc của bạn theo mô hình 6 yếu tố tính cách.
Theo đó, chương trình trao quà may mắn “Giải mã tính cách ngay – Phím cơ xịn liền tay” sẽ được TopDev tổ chức trong 6 tuần, bắt đầu từ ngày 07/03/2022 đến hết ngày 17/04/2022.
Mỗi tuần, TopDev sẽ lựa chọn ngẫu nhiên một người dùng may mắn để trao giải thưởng là 01 bàn phím Keychron K8 Gateron switch Nhôm Led RGB dựa trên email đăng nhập và công bố trên Fanpage TopDev.
3. Cách thức tham gia và nhận thưởng
Để tham gia thực hiện bài kiểm tra và nhận được giải thưởng hấp dẫn từ chương trình, bạn cần đăng nhập trên TopDev và hoàn thành bài Trắc nghiệm tính cách trong công việc. Người dùng phải đảm bảo đã có ít nhất một bài kiểm tra tính cách ở trạng thái “Đã hoàn thành” để được tham gia nhận thưởng.
Sau khi đã hoàn thành bài kiểm tra, mỗi tuần, TopDev sẽ thực hiện chương trình quay số và chọn ra người may mắn thắng giải. Giải thưởng sẽ được công bố vào mỗi thứ hai hàng tuần trong thời gian chạy chương trình, thông qua fanpage TopDev và thông báo trực tiếp qua email người dùng may mắn sử dụng trên nền tảng TopDev.
Những chiếc bàn phím cơ cực xịn sò đang chờ đợi được trao tay đến bạn, còn chần chờ gì nữa mà không nhanh tay đăng ký tài khoản và thực hiện bài kiểm tra! Đây chính là cơ hội tuyệt vời để bạn tự đánh giá lại tính cách của bản thân và có được những điều chỉnh để hòa nhập hơn với môi trường và công việc.
* Thời gian tối đa để cá nhân trúng thưởng xác nhận sau khi đại diện TopDev liên lạc là 7 (bảy) ngày, sau thời gian này BTC sẽ tiến hành bầu chọn cá nhân nhận thưởng mới theo các quy định trước đây.
Mọi thắc mắc giải đáp liên quan đến chương trình khuyến mại này, xin liên hệ email contact@topdev.vn hoặc fanpage TopDev. Bằng việc tham gia Chương trình Khuyến mại này, người dùng mặc định chấp thuận tất cả các Thể lệ và Điều Kiện của Chương trình Khuyến mại được liệt kê tại phần này.
Sau khi transform với thiết đặt browser là IE11, chúng ta sẽ có
"use strict";function_toConsumableArray(arr){return_arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function_nonIterableSpread(){thrownewTypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function_unsupportedIterableToArray(o, minLen){if(!o)return;if(typeof o ==="string")return_arrayLikeToArray(o, minLen);var n =Object.prototype.toString.call(o).slice(8,-1);if(n ==="Object"&& o.constructor) n = o.constructor.name;if(n ==="Map"|| n ==="Set")return Array.from(o);if(n ==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return_arrayLikeToArray(o, minLen);}function_iterableToArray(iter){if(typeof Symbol !=="undefined"&& Symbol.iterator inObject(iter))return Array.from(iter);}function_arrayWithoutHoles(arr){if(Array.isArray(arr))return_arrayLikeToArray(arr);}function_arrayLikeToArray(arr, len){if(len ==null|| len > arr.length) len = arr.length;for(var i =0, arr2 =newArray(len); i < len; i++){ arr2[i]= arr[i];}return arr2;}var obj ={
arr:[1,2,3,4],printArr:functionprintArr(){var _console;(_console = console).log.apply(_console,_toConsumableArray(this.arr));}};
obj.printArr();
Babel đã cố gắng hết sức, tuy nhiên printArr là kiểu array-like (na ná array) chứ không thực sự là một array
Khi import một file core-js, chúng ta sẽ có được tất cả những polyfill cần thiết cho trình duyệt đã chỉ định.
Tạm kết, sử dụng những CLI như create-react=app hay Vue CLI, mọi thứ đã được config sẵn, tuy nhiên biết cơ chế và cách làm thủ công là cần thiết, chắc chắn sẽ có lúc chúng ta cần dùng.
Trong mỗi công việc đặc thù, chúng ta đều có những vấn đề chung mà hầu như bất kỳ ai cũng có thể gặp phải trong quá trình làm việc. Với kiểm thử phần mềm, mình đã gặp và tổng hợp ở đây một vài vấn đề mà mình nghĩ, kỹ sư kiểm thử phầm mềm chúng ta có thể tránh được và nâng cao chất lượng làm việc của mình.
Vấn đề giả định (Assumption): Chúng ta cần tránh việc giả định rằng lỗi mà chúng ta thấy là một vấn đề đã được biết (known issue) bởi tất cả các bên (stakeholders), hoặc cho rằng lỗi này đã được làm báo cáo lỗi (bug report) bởi người khác, hoặc tệ hơn là mặc định lỗi này là một hành động đúng với yêu cầu (expected behaviror). Thậm chí, một khi chúng ta thấy một lỗi nhưng được xác định là một hành động đúng, chúng ta cũng cần bảo vệ báo cáo lỗi của chúng ta dựa vào “nấc cục”.
Vấn đề bỏ qua (Ignore): Việc quan trọng nhất của một kỹ sư kiểm thử phần mềm là lỗi, vậy nên không có lý do gì để chúng ta bỏ qua việc này. Bên cạnh đó, đôi khi chúng ta không bỏ qua việc báo cáo lỗi nhưng lại bỏ qua những thành phần quan trọng của một báo cáo lỗi, như bằng chứng của lỗi – Hình ảnh, phim, nhật ký (log) và dữ liệu kiểm thử (test data).
Vấn đề môi trường: Khi phát hiện một lỗi trong hệ thống, chúng ta ít khi để ý đến trạng thái hiện tại của hệ thống, cả software và hardware. Để phòng tránh vấn đề này, kiểm tra lỗi trên một máy thứ hai hoặc xóa cache là một trong những cách hữu hiệu.
Vấn đề thời gian: Việc bỏ ra quá nhiều hay quá thời gian đề nghiên cứu lỗi cũng là một vấn đề nghiêm trọng. Quá ít thời gian, chúng ta sẽ không thể cung cấp đầy đủ thông tin trong báo cáo lỗi và sẽ làm cho bên Dev khó khăn trong việc sửa lỗi. Bỏ ra quá nhiều, chúng ta chỉ mất thêm thời gian nhưng lại không thu được bao nhiêu hiệu quả.
Vấn đề cường điệu hóa: Khi phát hiện một lỗi, đặc biệt là lỗi hay/khó, không tránh khỏi việc chúng ta vui mừng. Nhưng, cường điệu lỗi trong báo cáo lỗi thì không hay chút nào. Việc xác định mức độ nghiệm trọng và mức độ ưu tiên của lỗi trong báo cáo lỗi chứng tỏ sự chuyên nghiệp của kỹ sử kiểm thử. Mặt khác, khiển trách dev cũng là một vấn đề không hay. Nói nghiêm túc thì, ai cũng có những vấn đề trong công việc (như bài này). Nói một cách vui vui là, nếu không có Dev, thì làm sao có lỗi cho chúng ta tìm ra, phải không?
Vấn đề kiến thức: Vấn đề quan trọng nhất mà bản thân kỹ sư kiểm thử tự mình gặp phải chính là không hiểu hệ thống mình đang kiểm thử và không hiểu công việc mình đang làm. Chính sự thiếu hụt về kiến thức của hế thống/nghề nghiệp sẽ dẫn mọi người đến các vấn đề ở trên.
IT Helpdesk là gì? Có nên làm IT Helpdesk hay không?
Như cách thể hiện từ tên gọi, IT Helpdesk hay IT Support là công việc giúp hỗ trợ các bộ phận trong công ty những vấn đề liên quan đến công nghệ và kỹ thuật. Trong thời đại của công nghệ như hiện nay thì sự xuất hiện các vị trí này được đánh giá là hoàn toàn phù hợp với xu hướng thời đại. Vậy cụ thể IT Helpdesk sẽ làm những công việc gì và mức lương có thật sự hấp dẫn như lời đồn? Có nên làm IT Helpdesk hay không?
IT Helpdesk có phải là lựa chọn công việc phù hợp?
IT Helpdesk là gì?
Vì gắn liền với các vấn đề liên quan đến công nghệ nên IT Helpdesk thường là vị trí thuộc về phòng CNTT. Công việc chính của các IT Helpdesk là hỗ trợ người dùng trong và ngoài công ty các vấn đề liên quan đến kỹ thuật, công nghệ hay sự cố liên quan đến các thiết bị công nghệ. Khi gặp trục trặc với máy móc hay các vấn đề thuộc về công nghệ mà bạn không biết cách khắc phục, hãy liên lạc ngay với người của bộ phận IT Helpdesk để được hỗ trợ kịp thời.
Thông thường, khi có sự cố xảy ra liên quan tới máy tính, thiết bị công nghệ và các phần mềm, người dùng sẽ liên lạc và chuyển thông tin đến bộ phận IT Helpdesk. Các IT Helpdesk sẽ trực tiếp hướng dẫn người dùng cách sửa chữa nếu có thể. Trong trường hợp, cần thêm sự hỗ trợ của những phòng ban khác, các IT Helpdesk sẽ chuyển thông tin đến chỗ bộ phận liên quan để giải quyết vấn đề cho bạn.
Công việc của IT Helpdesk đóng vai trò như thế nào trong một công ty?
Dù thực tế không phải công ty nào cũng có riêng bộ phận IT helpdesk, nhất là với những công ty nhỏ, có số lượng nhân sự không nhiều, nhưng điều đó không đồng nghĩa với việc IT Helpdesk không quan trọng trong quá trình vận hành công ty.
Những công ty lớn, phải xử lý lượng dữ liệu nhiều cũng như phải đón nhận và phản hồi thông tin từ lượng lớn khách hàng thường có một bộ phận IT Helpdesk riêng. Mỗi ngày, các IT Helpdesk phải tiếp nhận và xử lý hàng tá các thông tin và dữ liệu khác nhau cần được xử lý trong một khoảng thời gian ngắn.
Kết hợp cùng các bộ phận khác có liên quan đến IT để xử lý các sự cố được giải quyết theo cam kết về chất lượng và dịch vụ SLA – Service Level Agreement. Thông thường các công ty có hệ thống IT Helpdesk đều có các SLA rõ ràng và đó cũng là căn cứ để họ đánh giá kết quả xử lý dịch vụ của các phòng ban công nghệ và IT Helpdesk. Tùy thuộc vào quy mô công ty cũng như độ phức tạp mà các IT Helpdesk phải xử lý mỗi ngày thì SLA sẽ có độ đơn giản hay phức tạp khác nhau.
Bên cạnh đó, nếu làm việc tại các công ty cung cấp dịch vụ cho khách hàng, IT Helpdesk còn là người đứng ra đón nhận các phản ánh của khách hàng đầu tiên và hỗ trợ giải đáp thông tin, hướng dẫn khách hàng xử lý vấn đề. Vậy nên có thể nói đây là một trong những vị trí cực kỳ quan trọng trong một công ty, nhất là với các công ty công nghệ. Đây cũng là một lý do để bạn cân nhắc có nên làm IT Helpdesk không?
Trên thị trường lương chung của ngành CNTT hiện nay, các ứng viên cho vị trí IT Helpdesk đang có mức lương dao động trong khoảng từ 8 – 12 triệu đồng. Đây là mức lương trung bình được thống kê ở thời điểm hiện tại. Còn tùy thuộc vào kinh nghiệm và công ty mà bạn ứng tuyển, mức lương sẽ có sự chênh lệch nhất.
Thông thường, với những ứng viên vừa tốt nghiệp và chưa có kinh nghiệm làm việc, mức lương khởi điểm thường ở mức 8 triệu đồng. Sau khi đã tích lũy dần kinh nghiệm trong quá trình làm việc, mức lương của bạn hoàn toàn có thể trên 10 triệu đồng. Ở các vị trí cao hơn như quản lý, trưởng phòng, mức lương còn có thể lên đến trên 20 triệu đồng.
Ngoài ra, việc lương IT Helpdesk bao nhiêu còn phụ thuộc vào ngành nghề của công ty bạn làm việc. Có nhiều ngành nghề khác nhau đang mở rộng các vị trí liên quan đến IT Helpdesk như tài chính, ngân hàng, hàng tiêu dùng, dầu khí,… Như vậy, với các thông tin này bạn đã biết mình có nên làm IT Helpdesk sau khi cân nhắc kinh nghiệm và mức lương đúng không?
Tìm việc IT Helpdesk ở đâu?
Vậy tìm việc IT Helpdesk ở đâu để có được mức lương thật sự như bạn mong muốn? Hiện tại đang có rất nhiều các công ty trên thị trường tuyển dụng vị trí IT Helpdesk và các vị trí liên quan. Tham khảo ngay trên TopDev các vị trí IT Helpdesk để tìm cho mình những công việc ưng ý bạn nhé.