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é.
Tự tạo SSH tunnel để forward port ra remote server
Bài viết được sự cho phép của tác giả Huy Trần
Khi làm việc, đôi lúc bạn chạy server ở localhost nhưng cần truy cập vào nó từ một thiết bị khác không cùng trong mạng nội bộ, ví dụ chạy web để demo cho khách hàng xem, hoặc muốn test API trên localhost của bạn từ mobile app.
Khi đó bạn cần phải forward port mà server app của bạn đang sử dụng (localhost) ra một server bên ngoài (remote server) để người khác có thể truy cập vào.
Để làm điều này thì bạn có thể sử dụng các dịch vụ như ngrok, PageKite, Forward.
Nhưng nếu có một server riêng thì chúng ta hoàn toàn có thể tự setup một dịch vụ như vậy để xài riêng mà không cần phải phụ thuộc vào ai. Bằng cách sử dụng SSH tunnel.
Setup từ phía server
Yêu cầu đầu tiên là server phải được setup để truy cập được từ bên ngoài (giả sử có domain là kipalol.com) và phải hỗ trợ SSH.
Truy cập vào server và thêm dòng cấu hình GatewayPorts vào file /etc/ssh/sshd_config như sau:
Giả sử trên localhost của bạn đang chạy một Rails app ở cổng 3000, và bạn muốn mọi người có thể truy cập vào Rails app này thông qua cổng 9000 từ phía server của bạn. Ví dụ: http://kipalol.com:9000
Ta chạy lệnh sau trên máy localhost:
ssh -N -R 9000:localhost:3000 user@kipalol.com
Các tham số:
-N để đảm bảo là bạn không kết nối ở chế độ login vào SSH server
-R để tạo tunnel tới server
9000 là cổng ở server mà bạn muốn mở để truy cập vào Rails app ở localhost
localhost:3000 là địa chỉ truy cập và cổng của Rails app
user@kipalol.com là user và địa chỉ truy cập mà bạn dùng để SSH vào server
Từ bây giờ, user có thể truy cập vào http://kipalol.com:9000 để truy cập trực tiếp vào Rails app mà bạn đang chạy trên máy cá nhân của mình.
Ngoài ra các bạn có thể tìm hiểu thêm về các ứng dụng khác của SSH tunnel qua bài này
Người làm tuyển dụng sẽ phải đảm bảo các yêu cầu: Tuyển được người phù hợp, đúng thời gian và với chi phí rẻ nhất. Để làm được điều này đòi hỏi người làm nghề này phải có những kỹ năng gì để hoàn thành công việc?
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à Các kỹ năng cần có của người làm Tuyển dụng.
Trong bài học Công việc tuyển dụng là làm gì, chúng ta đã cùng nhau điểm qua các công việc chính mà một Chuyên viên tuyển dụng phải làm. Bao gồm:
B1/ Tiếp nhận yêu cầu tuyển dụng từ các phòng ban
B2/ Lập kế hoạch tuyển dụng
B3/ Sàng lọc hồ sơ ứng viên và mời phỏng vấn
B4/ Phỏng vấn đánh giá và thủ tục nhận việc
B5/ Hội nhập nhân viên mới
B6/ Theo dõi đánh giá thử việc và báo cáo tổng kết
Nếu nhắc đến đây mà bạn không có ấn tượng gì, thì hãy quay trở lại bài học số 1 để học lại, khi nào nắm kỹ những điều trên hãy qua tiếp bài số 2.
Người làm tuyển dụng sẽ phải đảm bảo các yêu cầu: Tuyển được người phù hợp, đúng thời gian và với chi phí rẻ nhất. Để làm được điều này đòi hỏi người làm nghề này phải có những tố chất sau để luôn hoàn thành tốt công việc. Mọi người cùng tham khảo và đóng góp ý kiến nhé!
Nắm bắt và biết khai thác thông tin nhanh
Khi bạn nhận một JD (Job Description) – Bản mô tả công việc thì không phải lúc nào bạn cũng hiểu về công việc mình cần tuyển là gì, dù nó có nội dung chi tiết đến đâu đi nữa. Vậy kỹ năng đầu tiên yêu cầu bạn phải đọc hiểu và nắm bắt thông tin nhanh.
Bằng cách ghi chú lại những ý chính của yêu cầu công việc, các thuật ngữ chuyên nghành để tìm hiểu thêm trên internet. Đồng thời liệt kê ra những câu hỏi thật cô đọng và đúng trọng tâm mà bạn cần đặt với quản lý phòng ban yêu cầu tuyển nhân sự để khai thác thêm thông tin. Vì họ không có quá nhiều thời gian cho bạn hỏi lan man.
Social Network, Marketing là một lợi thế
Tại sao làm công việc tuyển dụng lại nên có yêu cầu biết Social Network, Marketing? Vì đã qua rồi cái thời treo banner trước cổng công ty, dán tờ rơi ở các trung tâm việc làm và chờ ứng viên mang hồ sơ đến. Đó là cách làm truyền thống trước đây để tìm ứng viên, và nó đang dần ít hiệu quả đi nhiều và sắp lỗi thời.
Và còn một số cách khác từ trước đến nay để tìm ứng viên là đăng tin lên các website tuyển dụng. Thì hiện tại, việc sử dụng mạng xã hội như Facebook, Zalo, Linkedin…để tiếp cận và đưa thông tin tuyển dụng đến ứng viên đang dần chiếm ưu thế nhiều hơn.
Có thể Công ty bạn có bộ phận marketing riêng để đăng tin lên các kênh social network cho bạn. Tuy nhiên để chủ động hơn và đẩy nhanh tiến độ hơn thì việc bạn có các kỹ năng sử dụng social network là một lợi thế. Ví dụ như cách viết content thu hút, làm sao phải theo trend một chút, có một hình ảnh bắt mắt nhưng vẫn đảm bảo tính chuyên nghiệp…
Các kỹ năng mềm, kỹ năng quan sát
Tất nhiên là làm công việc nào cũng sẽ cần các kỹ năng mềm chứ không riêng gì công việc tuyển dụng cả. Ở đây mình liệt kê lại một lần nữa để bạn nào chưa hình dung được sẽ nắm rõ ràng hơn:
Kỹ năng lắng nghe, kỹ năng đặt câu hỏi, kỹ năng quan sát: Nó sẽ giúp ích bạn rất nhiều trong quá trình phỏng vấn. Bạn có thể đánh giá toàn diện ứng viên từ những hành động của ngôn ngữ cơ thể, biểu cảm khuôn mặt, phân biệt được sự thật trong cách giao tiếp của ứng viên.
Kỹ năng quản lý thời gian: Để đảm bảo bạn hoàn thành deadline, không bị quên task quan trọng vì rất nhiều công việc linh tinh cần bạn phải giải quyết trong một quy trình tuyển dụng. Đặc biệt là không bị quên các cuộc hẹn với ứng viên vì điều này là vô cùng nghiêm trọng. Nếu là sự cố vì lý do bất khả kháng thì không sao. Nhưng nếu cứ lặp đi lặp lại vì bận không biết sắp xếp thời gian thì cần phải xem lại cách bạn sắp xếp công việc cho hợp lý hơn.
Kỹ năng thuyết trình: Tạo sự tin tưởng cho ứng viên trong quá trình bạn trao đổi và phỏng vấn. Hoặc trong buổi hội nhập nhân viên mới vào ngày nhận việc đầu tiên của ứng viên, nếu bạn có khiếu nói chuyện trước đám đông và khả năng thuyết trình sẽ làm ứng viên hào hứng và thích thú hơn.
Sự công bằng và sự tử tế
Sự công bằng: Giúp bạn công tâm khi đánh giá và lựa chọn ứng viên, không bị cảm tính với những ứng viên có khả năng nói quá hay, ngoại hình bắt mắt, hoặc ưu tiên các ứng viên có mối quan hệ, cùng quê…Điều này khá quan trọng khi ra quyết định tuyển dụng ai là người phù hợp nhất cho công ty.
Sự tử tế: Đảm bảo bạn không vì áp lực đảm bảo tuyển đủ số lượng mà có sự gian dối trong việc cung cấp thông tin cho ứng viên. Kiểu như là phóng đại lên mức thu nhập quá đà, vẽ ra viễn cảnh màu hồng khi làm công việc mà bạn đang tuyển,… Việc này sẽ tạo hình ảnh xấu, các khiếu nại về sau hoặc ứng viên khó gắn bó lâu khi phát hiện ra sự thật.
Và, rất nhiều các kỹ năng cần khác nữa. Không quá khó nếu thực sự bạn nghiêm túc với công việc, đam mê với nghề, luôn cố gắng học hỏi cái mới và rút tỉa kinh nghiệm sau những sai lầm trong thực tế bạn làm nghề.
Phần thực hành
Trong phần gợi ý thực hành này, bạn hãy nhớ lại các công việc mà một Chuyên viên tuyển dụng phải làm. Sau đó viết các mục chính công việc đó ra giấy thành các gạch đầu dòng. Tương ứng với mỗi công việc phải làm đã liệt kê, sẽ đi kèm với một kỹ năng cần có để hoàn thành nó. Hãy làm thật nhuần nhuyễn để kết hợp nội dung hai bài vừa học bạn nhé! Chúc các bạn thành công.
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
Có một sự thật phũ phàng là cái ngành khoa học xuất hiện từ những năm 1959 không ai quan tâm giờ lại được bà con đổ xô đi học nhờ ơn của báo giới lúc nào cũng ra rả về Deep Learning này Deep Learning nọ…
Mình thấy nhiều bạn bây giờ cứ muốn học là đâm đầu vào học Deep Learning, hoặc tuyên bố là sẽ học Deep Learning, trong khi chắc kí hiệu này θθ chưa chắc đã biết đọc tên như thế nào… mình cảm thấy quan ngại sâu sắc :v
Deep Learning chỉ là 1 mảng con của Machine Learning, và để tiếp cận được Deep Learning thì cần phải nắm được rất nhiều khái niệm cơ bản từ Machine Learning. Nếu không thì trong quá trình học các bạn sẽ rất dễ bỏ qua một vài keyword quan trọng, dẫn tới ko hiểu gì hết luôn.
Sau gần 1 năm theo đuổi việc tự học Machine Learning và thử nghiệm hết các thể loại course online, mình trích lược lại thành lộ trình học như sau, hy vọng sẽ giúp ích được cho nhiều bạn đang quan tâm và muốn bắt đầu tìm hiểu:
Học lý thuyết
Đầu tiên: Học course ML trên Coursera của Andrew Ng kết hợp đọc tài liệu course CS299 (đây là course chính của Andrew, cái course trên Coursera chỉ là trích lược từ course này)
Tất nhiên các khóa trên đều thuộc phạm trù Machine Learning Lý Thuyết (theo như phân loại trên lộ trình học Machine Learning của a @ZuzooVn), trong thời gian ôn luyện lý thuyết, bạn có thể order vài cuốn sách thiên về Machine Learning thực hành để làm quen ví dụ như cuốn:
Và học thêm Sci-Kit hoặc TensorFlow qua loạt bài ví dụ này để tự implement thử vài thứ cho dễ hiểu thêm. Hoặc máu thì có thể tự implement thủ công hoàn toàn, trong trường hợp này mình khuyên nên dùng Swift hoặc Ruby vì cả 2 ngôn ngữ này đều có sẵn một vài cấu trúc dữ liệu cũng như hàm tính toán có thể vận dụng ngay, tránh tốn thời gian implement những cái vặt vãnh, để focus vào cái thuật toán toàn cục.
Hai bước thực hành và lý thuyết bạn có thể tiến hành song song, nhưng tuyệt đối ko đc bỏ phần lý thuyết nếu bạn muốn học ML một cách nghiêm túc 😀
Có thể nói, web là một từ ngữ đã trở nên quá phổ biến trong thời đại kỹ thuật số này. Thế giới đã và đang cố gắng tạo ra vô số ứng dụng web để phục vụ cho nhiều mục đích, trên nhiều thiết bị, với nhiều ngôn ngữ và hỗ trợ mọi thứ công nghệ mà người ta có thể nghĩ ra được. Do đó, kiến thức chuyên môn về phát triển và kiểm thử web gần như là hành trang không thể thiếu khi bạn muốn bước chân vào con đường kiểm thử chuyên nghiệp. Qua cộng đồng vntester, Thông xin hệ thống một số kiến thức về kiểm thử web mà 1 tester nên có, hi vọng các bạn mới có thể định hình trong việc tự học và nghiên cứu của mình.
Xem thêm các vị trí tuyển Tester lương cao trên TopDev
Các công nghệ/ngôn ngữ lập trình và trình diễn Web
Web protocols: HTTP, FTP, IMAP vs POP, TLS/SSL
Ngôn ngữ trình diễn web: html, css, javascript
Database: MSSQL, MySQL, Oracle, DB2
Extensible Markup Language – XML
Single Sign-On (SSO)
Một số chủ đề chuyên môn 1 web tester nên tìm hiểu thêm
Khai thác công cụ hỗ trợ để kiểm thử Web hiệu quả
Scan lỗi broken link
Kiểm tra chính tả
Http request parsing
CSS checker
Web translator với Localization testing
Những điều nên và không nên khi kiểm thử Web
Phân tích và báo cáo chất lượng ứng dụng Web
Những trở ngại thường gặp khi kiểm thử web
Kiểm thử Web với Agile
Trên đây là tổng hợp những chủ đề kiến thức chính yếu mà 1 web tester cần biết và cũng là những hành trang các bạn cần có để tham gia phỏng vấn thành công vào vị trí web tester cũng như đảm đương tốt công việc web testing của mình. Chúc các bạn thành công!.
Joomla là gì? Vì sao Joomla lại được sử dụng phổ biến?
Joomla xuất hiện vào năm 2005 đến nay đã không còn quá xa lạ đối với những lập trình viên lâu năm. Joomla là một bộ giải pháp giúp cả những người chuyên và không chuyên có thể tự xây dựng website. Để hiểu rõ hơn Joomla là gì? Joomla có những ưu điểm nào? Hãy theo dõi bài viết bên dưới.
Joomla là gì? Công cụ thiết kế web hiệu quả
Joomla là gì?
Kể từ khi ra đời cho đến nay Joomla đã phát triển thành công và trở nên phổ biến với người dùng. Mã nguồn này được sử dụng từ website cá nhân cho đến website doanh nghiệp mang tính phức tạp. Với những điểm sáng như dễ dàng cài đặt, quản lý, cung cấp nhiều dịch vụ và có độ tin cậy cao, Joomla đã mang về cho mình hơn 99 triệu lượt tải xuống.
Vậy, Joomla là gì? Joomla là hệ thống quản trị nội dung (CMS) bằng mã nguồn mở. Bộ mã nguồn này được viết bằng ngôn ngữ PHP kết hợp với bộ quản trị cơ sở dữ liệu MySQL, cho phép người dùng dễ dàng xuất bản nội dung lên Internet hoặc Internet. Bên cạnh đó, Joomla được xây dựng trên khung ứng dụng web dạng Model-View-Controller (MVC) giúp website hoạt động nhanh hơn.
Joomla có phải là phần mềm không? Thật tiếc, Joomla không phải là phần mềm mà nó bao gồm bộ mã code với hàng chục ngàn file. Khi tạo web, bạn có thể sửa đổi sâu hơn các dòng code bên trong và đưa ra trang web theo ý muốn.
Các tính năng của Joomla
Để có thể phổ biến như hiện tại, hẳn Joomla sẽ phải mang đến cho người dùng những tính năng hiệu quả. Những tính năng nổi bật của Joomla bao gồm:
1. Tính tương thích cao (Responsive)
Tương thích ở đây có nghĩa là một website được hiển thị phù hợp với tất cả thiết bị cũng như mọi độ phân giải màn hình. Website chuẩn Responsive thì nội dung sẽ dễ đọc và điều hướng cụ thể hơn. Từ đó, tính tương thích cao của website Joomla giúp giữ chân người dùng tiềm năng dù họ sử dụng bất kỳ thiết bị truy cập nào.
Website Joomla thân thiện với mọi thiết bị
2. Đa ngôn ngữ
Không phải người dùng nào cũng biết sử dụng tiếng anh, hiểu được điều đó Joomla hỗ trợ đến 75 ngôn ngữ trên thế giới. Tính đa ngôn ngữ này giúp người dùng cảm thấy hài lòng khi sử dụng website của bạn.
3. Dễ sử dụng và update thường xuyên
Joomla hiện đang sử dụng trình giao diện WYSIWYG (What You See Is What You Get). Công cụ này hiển thị chính xác những thay đổi mà bạn đang chỉnh sửa giúp bạn hình dung rõ hơn sản phẩm cuối cùng của mình như thế nào. Mặt khác, Joomla còn là công cụ được cập nhật thường xuyên nhất và để chuyển sang bản đã cập nhật bạn chỉ cần hai đến ba lần nhấp từ bảng điều khiển quản trị.
4. Bảo mật
Để phòng trừ trường hợp bị hacker tấn công, Joomla cung cấp tính năng xác thực hai yếu tố giúp bạn yên tâm phát triển website của mình. Hơn thế nữa, cho dù thông tin đăng nhập và mật khẩu bạn để quá phổ biến dẫn đến việc bị kẻ xấu chiếm mất website, Joomla cũng hỗ trợ bạn khôi phục trang web một cách dễ dàng.
Từ những tính năng ở trên, cũng như hiểu rõ được định nghĩa Joomla là gì bạn có thể hình dung được những lợi ích mà mà Joomla mang lại như:
Website của bạn sẽ nhanh chóng leo lên top tìm kiếm nhờ vào sự thúc đẩy của các thủ thuật SEO trên Joomla.
Dễ dàng quản lý người dùng vào trang web của bạn nhờ công cụ ACL (Access Control List) của Joomla
Thu hút khách hàng tốt hơn vì giao diện web thiết kế tại Joomla rất thân thiện với khách hàng. Bên cạnh đó là việc hỗ trợ nhiều ngôn ngữ giúp cho khách hàng ở bất cứ nơi đâu trên thế giới đều có thể sử dụng website của bạn.
Tiết kiệm chi phí: Joomla là hệ thống cung cấp rất nhiều tiện ích nhưng được sử dụng hoàn toàn miễn phí.
Sử dụng Joomla có những ưu điểm gì?
Ưu điểm
Cài đặt đơn giản chỉ với 1 click chuột.
Tính ổn định.
Tích hợp TMDT thay vì chỉ là một addon
Nhiều template có sẵn.
Khả năng mở rộng linh hoạt, có thể xử lý traffic khi có cấu hình và kiến trúc phần cứng phù hợp.
Nhược điểm
Với người mới sử dụng thì cần thời gian để làm quen.
So với WordPress, người dùng cần có kỹ năng cao hơn.
Cả Joomla và WordPress đều là hai mã nguồn phổ biến được dùng để xây dựng website. Lời khuyên sử dụng Joomla hay WordPress còn tùy vào nhu cầu của bạn. Có thể kể đến những điểm đáng chú ý như sau:
Joomla cung cấp nhiều chủ đề, plugin để bạn lựa chọn khi tạo website. Trong khi đó, WordPress lại không phổ biến về những điều này.
Nếu bạn xây dựng website phức tạp, có nhiều người dùng đăng ký thì việc sử dụng Joomla sẽ giúp bạn quản lý tốt hơn.
Tuy nhiên, như đã đề cập điểm hạn chế của Joomla, hệ thống này dành cho những người đã có kinh nghiệm, nếu là người mới bạn cần phải đầu tư thời gian để tìm hiểu nó. Còn WordPress dành cho cả dân chuyên và không chuyên.
Nên sử dụng Joomla cho những website nào?
Joomla có thể được sử dụng cho nhiều website, cụ thể bạn có thể sử dụng cho:
Cả Joomla và WordPress đều có thể giúp bạn SEO website. Tuy nhiên, nếu bạn đang tìm kiếm một hệ thống giúp quản lý hiệu quả nhất thì Joomla sẽ mang đến cho bạn những lợi ích kinh doanh đáng kể.
Trong bài trước, Kiểm thử ứng dụng Web – Cái nhìn tổng quát, Thông đã khái quát một số nội dung chính về chủ đề kiểm thử web nhằm giúp các bạn định hình hệ thống kiến thức về mảng kiểm thử web. Trong bài này, chúng tôi xin giới thiệu tiếp một số kiến thức phổ thông về ứng dụng Web nhẳm giúp các bạn mới có thể tiếp cận dễ dàng hơn các định nghĩa căn bản.
Định nghĩa Web
World Wide Web
Hẳn chúng ta đã quá quen thuộc với việc gõ lên thanh URL trên màn hình Internet Explorer (IE), Firefox, Chrome những dòng chữ: http://www.blah blah…com. Từ “Web” mà chúng ta đang tìm hiểu là tên gọi tắt của “World Wide Web” (vâng, chính là chữ www bạn thấy trong URL bên trên). Khi mạng máy tính toàn cầu internet ra đời, nó mở ra một môi trường mạng lưới ảo kết nối mọi máy tính (như mạng nhện – web). Trong đó, tất cả máy tính trở thành những đầu mút kết nối lẫn nhau, mỗi đầu mút chia sẻ thông tin, tài liệu mà nó lưu trữ để tất cả đầu mút khác có thể truy cập và ngược lại. Khi ta kết nối máy tính của mình vào bất kỳ đầu mút nào, ta cũng có thể tiếp cận thông tin của tất cả nơi khác trên mạng lưới. Ta gọi mạng lưới đó là “World Wide Web” – một không gian ảo kết nối tất cả thông tin từ mọi nơi trên thế giới.
Cùng với sự phát triển không ngừng, theo thời gian tất cả máy tính kết nối trong mạng lưới được phân hóa theo 2 mục đích chuyên biệt:
Server: có dung lượng lưu trữ lớn và cấu hình rất mạnh chỉ nhằm mục tiêu chia sẻ thông tin
Client/Workstation: đây chính là máy tính cá nhân/thiết bị của chúng ta khi kết nối internet, chỉ nhằm mục đích truy cập thông tin từ nơi khác và chia sẻ một lượng rất nhỏ thông tin.
Thêm vào đó, các loại hình chia sẻ thông tin trực tuyến không chỉ dừng lại ở việc trao đổi và truy cập dữ liệu. Sự phát triển của công nghệ đã mở ra các loại hình dịch vụ trực tuyến mới với đa dạng mục đích hơn: báo chí, tìm kiếm, kinh doanh trực tuyến, thanh toán trực tuyến, email, mạng xã hội…
Vậy ứng dụng Web là gì?
Ta hãy xem xét một ví dụ đơn giản: khi bạn “lướt Facebook”
Bạn mở Firefox hoặc Internet Explorer và gõ vào URL của trang Facebook https://www.facebook.com/
Màn hình Firefox sẽ hiện ra trang chủ quen thuộc của Facebook. Trên đó hiển thị logo Facebook, dòng slogan “kết nối và chia sẻ” quen thuộc, một form đăng nhập username password và một form đăng ký cho những user mới.
Bạn gõ username, password vào form đăng nhập và click “Log In”
Màn hình Firefox chuyển đến trang cá nhân của tài khoản mà bạn vừa đăng nhập, trên đó hiện ra các dòng status của bạn và bạn bè
Chúng ra nói rằng trang Facebook mà bạn vừa đăng nhập ở trên là một “Ứng dụng Web” (Web Application – xin gọi tắt là WebApp). WebApp này cung cấp cho bạn (là người dùng – một end-user) một dịch vụ mạng xã hội đến từ tập đoàn Facebook. Tất cả mọi WebApp khi được xây dựng đều nhằm mục đích cung cấp một dịch vụ nào đó mà chủ nhân nó muốn (vd: mạng xã hội Facebook, hộp Mail Google, báo điện tử VNExpress, trang mua sắm Lazada). Hãy cùng phân tích chuyện gì đã xảy ra đằng sau màn hình desktop khi bạn thực hiện 4 hành động trên:
Ở bước 1: Facebook, cũng như tất cả mọi WebApp khác, để kết nối và hoạt động được trên mạng internet nó cần được cài đặt lên một máy chủ (Host – Server) và đăng ký một tên miền (vd: “www.facebook.com”). Khi bạn (một end-user) gõ đường URL “https://www.facebook.com/” vào Firefox trên máy mình, ta nói rằng bạn đang thực hiện gửi một yêu cầu (request) đến tên miền “www.facebook.com” nhằm xin phép truy cập vào WebApp Facebook. Tuy nhiên, máy móc không hiểu tiếng người và để phía Server kia giao tiếp được với bạn thì request của bạn cần được thông dịch qua một thứ ngôn ngữ giao tiếp mà server đó có thể hiểu được. Các trình duyệt web (browser) như Firefox, IE, Chrome ra đời nhằm mục đích này. Chúng được cài đặt trên máy tính của bạn (client) để thông dịch các request của bạn qua mã máy, gói đoạn mã máy lại thành từng gói dữ liệu và gửi đến địa chỉ www.facebook.com. Hiện nay, ngôn ngữ giao tiếp thông dụng nhất dùng để giao tiếp với các server trên internet là HTTP (Hypertext Transfer Protocol)
Một gói request http thường có định dạng tương tự như sau:
GET / HTTP/1.1
Host: facebook.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
…
Ở bước 2: Khi server Host kia nhận được gói dữ liệu request của bạn, nó phân tích và chuyển đến một trung tâm điều phối được cài sẵn trên chính nó gọi là Web Server. Trung tâm điều phối này là một phần mềm có nhiệm vụ quản lý và điều phối các tài nguyên của WebApp (resource). Ta hiểu tài nguyên là các thành phần cấu thành một WebApp, trong đó có các trang web (webpage), các file hình ảnh, các file video, các hiệu ứng chữ chạy, chữ nổi .… Web Server này đọc gói request của bạn và nó sẽ hiểu rằng bạn đang cần truy cập vào WebApp “Facebook”. Nó bắt đầu áp dụng quy trình thủ tục được lập trình sẵn là yêu cầu bạn khai báo xem bạn có tài khoản chưa trước khi cho bạn đi xa hơn. Nó soạn ra một gói dữ liệu trả về (response) bao gồm mã cho phép truy cập và nội dung trang web homepage của Facebook.
Một gói response http thường có định dạng tương tự như sau:
HTTP/1.1 200 OK
Date: Sat, 31 May 2015 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354
<html>
<body>
(Nội dung trang web homepage Facebook).
</body>
</html>
Bạn sẽ thấy rằng ngoài thông tin quy định về ngày giờ và mã truy cập, gói dữ liệu này còn kèm theo 2 đoạn tag <html><body>…</body></html>. Giữa 2 đoạn tag này thường là nội dung một webpage được viết dưới định dạng HTML, CSS và Javascript. Đây là các ngôn ngữ trình diễn nội dung web thông dụng và cũng có thể được đọc hiểu bởi browser. Browser nhận gói dữ liệu này, biên dịch nội dung kẹp trong gói response và vẽ lên màn hình trang web Login Facebook với đầy đủ hình ảnh và màu sắc trên máy bạn. Và với những thông tin trình diễn trên màn hình, bạn sẽ hiểu là server muốn bạn đăng nhập với một tài khoản để đi xa hơn. Trên webpage vẽ sẵn form để bạn nhập username và password. Form đăng ký cũng được vẽ sẵn bên dưới để bạn hiểu là bạn cần đăng ký nếu chưa có tài khoản.
Ở bước 3: Khi bạn nhập username, password và click “Log In”, cũng giống như ở bước 1 ở trên, bạn đã thực hiện 1 thao tác gửi request để yêu cầu được truy cập vào trang tài khoản cá nhân của tài khoản mà bạn nhập vào. Browser cũng sẽ biên dịch request của bạn thành 1 gói http request và gửi đến server kia. Tuy nhiên, lần này có một chút khác biệt là request này còn kèm theo 2 trường usersername và password bạn nhập vào. Ta sẽ có một gói request đại loại như:
POST / HTTP/1.1
content-type:application/x-www-form-urlencoded;charset=utf-8
host: facebook.com
content-length: 1354
Action=GetUserHome&Username=HmacSHA256&Password=45rffdd33yyd35ggd&SignatureVersion=2&Versi
Ở bước 4: Tương tự như quy trình giao nhận bước 1 và 2, gói dữ liệu request lại được chuyển đến Web Server và tại đây bắt đầu quá trình phân tích/điều hướng để gom những tài nguyên (resource) cần thiết nhằm nhào nặn ra nội dung trang wall facebook của bạn. Trong trường hợp này, thông tin cần được xử lý phức tạp hơn vì cần phải truy xuất những bài post và status, hình ảnh liên quan đến tài khoản của bạn. Webserver có thể huy động đến các cổng xử lý khác để xử lý thông tin, hiệu ứng và truy xuất đến cơ sở dữ liệu (database) của Facebook để lấy ra những dữ liệu cần thiết từ tài khoản của bạn. Toàn bộ quá trình xử lý này sẽ dẫn đến một kết quả cuối cùng là tạo ra nội dung trang wall facebook dưới dạng html, css và javascript để đưa vào gói trả về response. Browser trên máy bạn lại nhận response và bung ra trang wall facebook cá nhân của bạn với đầy đủ status, hình ảnh và comment phong phú.
Cứ như thế, ta thấy rằng lướt web thực ra là một vòng tuần hoàn khép kín giữa việc yêu cầu (request) và gửi trả (response) dữ liệu giữa phía người dùng (client) và server. Phía server tạo ra nội dung web dưới dạng mã html, css. Browser ở phía client sẽ đảm nhận vai trò nhận và vẽ lên màn hình người dùng các nội dung sống động. Khi ta nói rằng ta xây dựng và kiểm thử một WebApp, có nghĩa rằng ta xây dựng và kiểm thử toàn bộ hệ thống giúp tạo nên vòng tuần hoàn khép kín trên.
Mô hình hoạt động của 1 ứng dụng web (web application)
Nếu bạn hiểu đúng những nội dung trên, bạn sẽ hình dung được khi test 1 ứng dụng web:
Chúng ta không test browser vì đó chỉ là 1 trình biên dịch thông dụng cho tất cả ứng dụng web. Chúng ta test “dịch vụ” mà server cung cấp cho client.
Quy trình (có thể) sẽ dẫn chúng ta đến việc kiểm thử ở cả 2 phía: máy client và server.
Tùy vào độ lớn của dịch vụ được xây dựng, chúng ta có thể sẽ làm việc với một vòng trao đổi dữ liệu khép kín phức tạp thông qua nhiều trình ứng dụng, đi qua nhiều cơ sở dữ liệu, và thông qua nhiều máy chủ khác nhau trước khi có thể tạo ra một response đến client cho user.
Phạm vi chúng ta cần test sẽ trải dài trên nhiều mảng kiến thức: test trên một ứng dụng server (application), test trên một cơ sở dữ liệu (database), test phần nội dung hiển thị trên trình duyệt client, test việc truyền tải dữ liệu qua lại giữa client và server hoặc (có thể) giữa các server với nhau (API), test các nội dung số và có thể bao gồm cả những quy trình mã hóa dữ liệu (web standards & encryptions).
Ở bài trước mình có giới thiệu về kĩ thuật lập trình GPU với OpenCL bằng C/C++. Hôm nay mình sẽ giới thiệu tiếp kĩ thuật này trên Go.
Sử dụng C/C++ trong Go
Một đặc điểm của Golang là chúng ta có thể thoải mái import các thư viện C/C++ và biên dịch bằng sự hỗ trợ của Cgo, các bác có thể xem lại bài Một số kinh nghiệm làm việc với Cgo để biết thêm chi tiết.
Về cách sử dụng thì chúng ta chỉ đơn giản là viết đoạn code C/C++ trong phần comment đầu file và biên dịch:
Cho nên chúng ta hoàn toàn có thể include thư viện OpenCL từ bên phía C/C++ vào Go để chạy bằng Cgo. Tất nhiên phải chỉ định framework cần dùng ở đầu chương trình luôn, ví dụ:
Bạn có thể lập trình cho Host Program bằng Golang, tuy nhiên, đối với Kernel Program thì nó vẫn là một file .cl và nó vẫn phải dùng cú pháp của C, hoàn toàn không có sự thay đổi nào ở đây cả.
Sử dụng Go Wrappers
Nếu cảm thấy việc khai báo cú pháp theo Cgo là hơi phức tạp và gây rối cho chương trình thì bạn có thể sử dụng các wrapper có sẵn mà cộng đồng Golang đã xây dựng, bản chất các wrapper này vẫn là sử dụng Cgo không có gì khác, chúng chỉ cung cấp cho bạn cú pháp dễ nhìn hơn và dễ build hơn mà thôi.
CUDA Wrapper cho Go
Bài viết này không có ý định tìm hiểu sâu hơn về CUDA cho nên mình sẽ dẫn link để các bạn tham khảo.
Tác giả Arne Vansteenkiste có viết một thư viện tên là mumax3mumax3 hỗ trợ lập trình GPU bằng CUDA, các bạn không nhất thiết phải sử dụng MuMax tuy nhiên có thể sử dụng CUDA wrapper mà MuMax cung cấp.
package mainimport "github.com/mumax/3/cuda"func main(){ N := 3 a := cuda.NewSlice(N) b := cuda.NewSlice(N) c := cuda.NewSlice(N) defer a.Free() defer b.Free() defer c.Free() a.CopyHtoD([]float32{0, -1, -2}) b.CopyHtoD([]float32{0, 1, 4}) cfg := Make1DConfig(N) add_kernel(a.Ptr(), b.Ptr(), c.Ptr(), cfg) fmt.Println("result:", a.HostCopy())}
Với OpenCL thì chúng ta cũng có kha khá là nhiều các wrapper, tuy nhiên ở đây mình chọn sử dụng go-gl/cl vì dự án này được phát triển khá là nghiêm túc và rất active, tài liệu + community đầy đủ.
Cách sử dụng thì rất đơn giản, đầu tiên bạn chỉ cần cài đặt gói go-gl/cl mới nhất, hoặc là bản stable nhất (là bản v1.2):
go get github.com/go-gl/cl/v1.2/cl
Hoặc có thể download và compile lại gói này với lệnh sau để đạt performance tốt hơn:
go install -gcflags="-l -l -l -l" github.com/go-gl/cl/v1.2/cl
Lệnh trên sẽ inline hầu hết mọi function trong package go-gl/cl và vì việc gọi function thì rất tốn kém (xem ở đây), nên inline sẽ giúp giảm thiểu chi phí cho vụ này, tuy nhiên nhược điểm của cách này là dung lượng binary khi build sẽ lớn hơn nhiều.
Cách dùng thì chỉ cần import thư viện trên vào code, và gọi hàm thông qua đối tượng cl:
Mẫu CV IT tiếng Anh (CV English IT) chuẩn là như nào? Bạn đang gặp những khó khăn khi viết CV IT? Đừng lo lắng vì chỉ với vài phút đọc bài viết sau, các bạn sẽ tham được các mẫu CV IT ấn tượng nhất.
Thế nào là một CV IT English chuẩn?
Việc đảm bảo các nội dung cơ bản của một CV rất quan trọng. Vì nó sẽ là yếu tố quyết định CV của bạn có chỉn chu, chuyên nghiệp hay không? Đồng thời, CV cũng là tấm vé để bạn tạo ấn tượng với nhà tuyển dụng.
Dù là CV IT tiếng Anh (CV IT English) hay tiếng Việt, bạn vẫn phải đảm bảo những nội dung cơ bản dưới đây:
Thông tin cá nhân (Personal details)
Liệt kê ngắn gọn họ tên, ngày tháng năm sinh, số điện thoại, địa chỉ nơi ở, email, một số kênh liên lạc khác. Đặc biệt, bạn nên có hình đại diện. Lưu ý hình ảnh phải rõ mặt, email phải đặt đúng quy chuẩn. Bạn có thể tăng thêm dấu ấn cá nhân bằng một vài câu châm ngôn mình yêu thích.
Mục tiêu nghề nghiệp (Career Objective)
Nêu rõ các định hướng mà bạn đang lập ra cho kế hoạch phát triển nghề nghiệp. Sau đó, hãy tóm tắt trong vòng 2-3 câu mục tiêu ngắn hạn/dài hạn.
Trình độ học vấn (Education and Qualifications)
Trình bày ngắn gọn các nội dung như bằng cấp học học thuật, tên trường và ngành học.
Kinh nghiệm làm việc (Work Experience)
Hãy thông minh trong việc lựa chọn và liệt kê những kinh nghiệm có liên quan đến vị trí ứng tuyển hiện tại. Lưu ý, bạn nên sắp xếp chúng theo một trình tự logic.
Sở thích và thành tích hoạt động ngoại khóa (Interests and Achievements)
Tuyệt đối không đưa những sở thích quá trẻ con. Thay vào đó, bạn hãy quan đưa các sở thích rèn luyện về chuyên môn, hoạt động ngoại khóa phát triển kỹ năng mềm,…,
Kỹ năng (Skills)
Đây là mục để bản thể hiện ra những kỹ năng chuyên môn, kỹ năng mềm và khả năng ngoại ngữ của bạn. Phần này cũng quan trọng không kém trong CV ngành công nghệ thông tin.
Người tham khảo/người giới thiệu (References)
Mục này không nhất thiết phải có. Nhưng đối với các vị trí nhiều kinh nghiệm, các thông tin của người giới thiệu rất có giá trị đối với CV English IT của bạn.
Ngoài ra, bạn cũng có thể tham khảo các mẫu CV IT đẹp và cách viết CV xịn dành cho lập trình viên được cập nhật mới nhất.
Ngoài việc đảm bảo về thông tin chính xác, đầy đủ; kiến thức chuyên môn lĩnh vực, những định hướng cụ thể, các lập trình viên Front End cần tập trung nhấn mạnh các kỹ năng như sau:
Kỹ năng sử dụng các ngôn ngữ đánh dấu tiêu chuẩn HTML5, CSS3
Thành thạo ngôn ngữ lập trình JavaScript hay Jquery
Nắm vững toàn bộ quy trình phát triển web
Kỹ năng thiết kế và triển khai responsive ở phần coding
Kỹ năng phân tích và xử lý rủi ro
Chịu được áp lực cao
Devops
Sẽ có khá nhiều thứ bạn phải quan tâm, nắm bắt và chia sẻ nếu muốn CV tiếng Anh cho lập trình Devops của mình trở nên thu hút đấy. Hãy thể hiện trong CV bạn là người có các thế mạnh về system cũng như coding cùng nhiều kỹ năng sau đây:
Biết và sử dụng thành thạo Linux, window, macOS; và các lệnh tương ứng.
Kiến thức cơ bản về: DNS, HTTP, HTTPS, FTP, SSL.
Biết cài đặt và sử dụng vài Web Server phổ biến như: Apache và Nginx. Am hiểu tổng quan về các khái niệm: Caching Server, Load balancer,…
Code một số ngôn ngữ hệ thống như Bash Script, Java, Javascript, Python, PHP…
Tester
Nhiều kỹ năng được chú trọng, tuy nhiên để tạo điểm thu hút trong CV tiếng Anh cho lập trình Tester, bạn cần thể hiện rõ performance của bản thân qua những kỹ năng thực tế:
– Năng lực về Automation framework – yếu tố quan trọng đánh giá về mức độ kiểm thử tự động
– Kỹ thuật kiểm thử bạn đã áp dụng (Boundary, Equivalence, Độ bao phủ code)
– Xử lý các trường hợp hợp – Thiết kế và thực thi; các hoạt động bạn tham gia thể hiện kỹ năng: tìm bug, review bug với khách hàng, quản lý vòng đời bug.
Những chú ý về thể thức và cách trình bày cực kỳ quan trọng trong CV tiếng Anh cho Dev
– Đúng chính tả và đặc biệt lưu tâm về tính đơn giản là quan trọng nhất.
– Đảm bảo không dùng nhiều hơn 2 font chữ khác nhau
– Không nên trình bày quan điểm quá dài dòng dưới dạng đoạn quá nhiều. Ưu tiên việc sử dụng dấu gạch đầu dòng để liệt kê nhằm thể hiện rõ ràng về bố cục.
– Tiếng lóng hay các cách sử dụng thủ pháp nghệ thuật nên được cân nhắc khi đưa vào CV của bạn.
– Nếu có thể, hãy tạo nguồn email chuyên nghiệp ứng vị trí ứng tuyển hiện tại. Ví dụ: “phamanhkhoa.frontenddeveloper”. Tuyệt đối không dùng những email thiếu chuyên nghiệp (vi phạm các cách đặt tên cơ bản về email)
– Lựa chọn kích cỡ ảnh chân dung phù hợp, 3×4 hay 4×5 sẽ là những kích thước phù hợp cho CV của bạn.
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
Giới thiệu Cơ Sở Dữ Liệu (CSDL) – Hệ Quản Trị CSDL
Bài viết được TopDev tổng hợp và chỉnh sửa của tác giả Lê Chí Dũng
Cơ sở dữ liệu là gì? Bạn đã thật sự nắm được các kiến thức chuyên sâu về Database. Vậy hãy cùng TopDev tìm hiểu từ A-Z về CSDL thông qua bài viết này nhé.
CSDL là gì?
Cơ sở dữ liệu (database) là một tập hợp các dữ liệu rời rạc được tổ chức, lưu trữ và quản lý theo hệ thống để có thể dễ dàng truy xuất, chỉnh sửa và cập nhật. Chúng thường được sử dụng để lưu trữ thông tin trong các hệ thống phần mềm và ứng dụng, từ dữ liệu cá nhân cho đến thông tin doanh nghiệp quan trọng. Cơ sở dữ liệu giúp các tổ chức và cá nhân tổ chức dữ liệu một cách có cấu trúc, nhằm mục đích quản lý và xử lý dữ liệu hiệu quả hơn.
VD: Trong cuộc sống bạn có thể thấy rất nhiều cơ sở dữ liệu đó, nếu bạn vào thư viện thì ở trên đó là một cơ sở dữ liệu, phân loại sách theo chủ đề: xã hội, tự nhiên, khoa học … đó cũng là một dạng cở sở dữ liệu đơn giản.
Mục đích ta sử dụng CSDL là vì cho dễ quản lý và tìm kiếm, thống nhất việc lưu trữ thông tin. Có thể tìm kiếm một cách nhanh chóng khi cần thông tin nào đó và cũng có thể lôi các thông tin liên quan với thông tin đó ra luôn.
Đặc điểm của Cơ sở dữ liệu
Cơ sở dữ liệu (CSDL) có nhiều đặc điểm quan trọng giúp quản lý, tổ chức và xử lý dữ liệu một cách hiệu quả. Những đặc điểm này đảm bảo rằng dữ liệu được lưu trữ, truy xuất và bảo mật một cách tối ưu, đồng thời hỗ trợ các ứng dụng và hệ thống trong việc quản lý thông tin. Dưới đây là các đặc điểm chính của cơ sở dữ liệu:
Tính tổ chức và cấu trúc: CSDL tổ chức dữ liệu theo một cấu trúc có hệ thống, thường được thiết kế dưới dạng bảng, đối tượng hoặc mô hình dữ liệu khác. Cấu trúc này giúp dữ liệu được tổ chức một cách hợp lý, dễ dàng truy cập và quản lý.
Khả năng truy xuất và tìm kiếm: CSDL cho phép người dùng truy xuất và tìm kiếm dữ liệu nhanh chóng và hiệu quả thông qua các truy vấn. Các hệ quản trị cơ sở dữ liệu (DBMS) cung cấp ngôn ngữ truy vấn, chẳng hạn như SQL, để thực hiện các thao tác này.
Tính nhất quán và toàn vẹn: CSDL đảm bảo rằng dữ liệu luôn được duy trì một cách chính xác và nhất quán thông qua các ràng buộc toàn vẹn. Các quy tắc này bao gồm khóa chính, khóa ngoại và các hạn chế khác để bảo vệ dữ liệu khỏi lỗi và mất mát.
Khả năng mở rộng: CSDL có thể mở rộng để xử lý khối lượng dữ liệu ngày càng tăng và đáp ứng nhu cầu của ứng dụng. Điều này có thể được thực hiện thông qua việc thêm phần cứng hoặc sử dụng các kỹ thuật phân tán và phân mảnh dữ liệu.
Bảo mật và quyền truy cập: CSDL cung cấp các cơ chế bảo mật để bảo vệ dữ liệu khỏi các truy cập trái phép. Điều này bao gồm việc thiết lập quyền truy cập, mã hóa dữ liệu và theo dõi các hoạt động của người dùng.
Khả năng sao lưu và phục hồi: CSDL hỗ trợ sao lưu dữ liệu định kỳ và phục hồi dữ liệu khi xảy ra sự cố. Các chức năng này giúp đảm bảo rằng dữ liệu có thể được khôi phục về trạng thái trước đó trong trường hợp mất mát hoặc hỏng hóc.
Quản lý giao dịch: CSDL hỗ trợ quản lý giao dịch, đảm bảo rằng các thao tác trên dữ liệu được thực hiện một cách nguyên tử, nhất quán, tách biệt và bền vững. Điều này giúp duy trì tính toàn vẹn của dữ liệu ngay cả khi xảy ra lỗi hệ thống.
Khả năng hỗ trợ đồng thời: CSDL có khả năng xử lý nhiều yêu cầu và giao dịch đồng thời từ nhiều người dùng mà không làm giảm hiệu suất hoặc làm mất dữ liệu. Điều này được thực hiện thông qua các cơ chế khóa và quản lý đồng thời.
Tính tương thích: CSDL có thể tương thích với các ứng dụng và hệ thống khác thông qua các giao thức và giao diện chuẩn. Điều này cho phép tích hợp dữ liệu từ nhiều nguồn khác nhau và hỗ trợ các quy trình doanh nghiệp.
Những đặc điểm này giúp cơ sở dữ liệu đáp ứng nhu cầu quản lý dữ liệu trong các ứng dụng và hệ thống đa dạng, từ các hệ thống nhỏ lẻ đến các ứng dụng quy mô lớn và phức tạp.
Cơ sở dữ liệu có cấu trúc (Structured Database): Dữ liệu được tổ chức theo cấu trúc cố định, thường là các bảng với hàng và cột. Ví dụ: Cơ sở dữ liệu quan hệ (RDBMS) như MySQL, PostgreSQL.
Cơ sở dữ liệu phi cấu trúc (Unstructured Database): Dữ liệu không có cấu trúc cố định, chẳng hạn như văn bản tự do, email, hình ảnh. Ví dụ: Dữ liệu trong các hệ thống lưu trữ đám mây.
Cơ sở dữ liệu bán cấu trúc (Semi-Structured Database): Dữ liệu có cấu trúc nhưng không hoàn toàn theo quy tắc cố định. Ví dụ: Dữ liệu JSON, XML.
Phân loại theo mô hình tổ chức và lưu trữ
Cơ sở dữ liệu quan hệ (Relational Database): Dữ liệu được lưu trữ trong các bảng và có thể được liên kết với nhau thông qua các khóa. Ví dụ: MySQL, Oracle, SQL Server.
Cơ sở dữ liệu phân cấp (Hierarchical Database): Dữ liệu được tổ chức theo cấu trúc cây với các mối quan hệ cha-con. Ví dụ: IBM Information Management System (IMS).
Cơ sở dữ liệu mạng (Network Database): Dữ liệu được tổ chức theo mạng lưới với các mối quan hệ linh hoạt hơn giữa các bản ghi. Ví dụ: Integrated Data Store (IDS).
Cơ sở dữ liệu hướng đối tượng (Object-Oriented Database): Dữ liệu được lưu trữ dưới dạng các đối tượng, tương tự như lập trình hướng đối tượng. Ví dụ: ObjectDB, db4o.
Cơ sở dữ liệu NoSQL (Not Only SQL): Dữ liệu được lưu trữ theo nhiều mô hình khác nhau không phải là bảng. Ví dụ: MongoDB (dữ liệu tài liệu), Cassandra (dữ liệu cột), Redis (dữ liệu key-value).
Phân loại theo mục đích sử dụng
Cơ sở dữ liệu hoạt động (Operational Database): Dùng để xử lý và lưu trữ dữ liệu giao dịch hàng ngày trong doanh nghiệp. Ví dụ: Các hệ thống ERP, CRM.
Cơ sở dữ liệu kho (Data Warehouse): Lưu trữ dữ liệu từ nhiều nguồn để phân tích và báo cáo. Ví dụ: Amazon Redshift, Google BigQuery.
Cơ sở dữ liệu ngữ nghĩa (Semantic Database): Lưu trữ dữ liệu với ý nghĩa ngữ nghĩa để hỗ trợ tìm kiếm và truy vấn thông minh. Ví dụ: Cơ sở dữ liệu RDF, OWL.
Phân loại theo mô hình triển khai
Cơ sở dữ liệu tập trung (Centralized Database): Được lưu trữ và quản lý tại một địa điểm duy nhất. Ví dụ: Cơ sở dữ liệu trong các hệ thống máy chủ trung tâm.
Cơ sở dữ liệu phân tán (Distributed Database): Dữ liệu được lưu trữ và xử lý tại nhiều địa điểm khác nhau, kết nối qua mạng. Ví dụ: Google Cloud Spanner, Apache Cassandra.
Cơ sở dữ liệu tập trung có bản sao (Centralized with Replica Database): Kết hợp giữa cơ sở dữ liệu tập trung và phân tán, với một cơ sở dữ liệu chính và các bản sao ở các địa điểm khác. Ví dụ: Hệ thống sao lưu dữ liệu trong các dịch vụ đám mây.
Mô hình cơ sở dữ liệu
Cơ sở dữ liệu là phần quan trọng trong việc tổ chức và quản lý dữ liệu. Các mô hình cơ sở dữ liệu khác nhau cung cấp cách tiếp cận khác nhau để lưu trữ, truy xuất, và quản lý thông tin. Dưới đây là ba mô hình cơ sở dữ liệu phổ biến: phân cấp, quan hệ và mạng.
Mô hình cơ sở dữ liệu
Mô Hình Cơ Sở Dữ Liệu Phân Cấp (Hierarchical Database)
Mô hình cơ sở dữ liệu phân cấp (Hierarchical Database) tổ chức dữ liệu theo cấu trúc cây, nơi các bản ghi dữ liệu được sắp xếp theo mối quan hệ cha-con. Đây là mô hình cơ sở dữ liệu đầu tiên được phát triển và đã được sử dụng rộng rãi trong những năm 1960 và 1970.
Trong mô hình phân cấp, mỗi bản ghi (hoặc nút) có thể có một số bản ghi con, nhưng mỗi bản ghi con chỉ có một bản ghi cha. Cấu trúc này giống như một cây gia đình hoặc một danh mục thư viện, nơi các mục lục con nằm dưới các mục lục lớn hơn. Ví dụ, một cơ sở dữ liệu phân cấp có thể tổ chức thông tin nhân viên trong một công ty, với các phòng ban là các nút cha và các nhân viên là các nút con.
Mô Hình Cơ Sở Dữ Liệu Phân Cấp (Hierarchical Database)
Ưu điểm:
Dễ dàng và trực quan trong việc mô hình hóa các mối quan hệ có cấu trúc rõ ràng.
Hiệu suất tốt với các truy vấn theo cấu trúc cây.
Nhược điểm:
Kém linh hoạt trong việc xử lý các mối quan hệ phức tạp hoặc nhiều cấp độ.
Khó khăn trong việc thực hiện các thao tác thay đổi cấu trúc dữ liệu.
Cơ Sở Dữ Liệu Quan Hệ (Relational Database)
Mô hình cơ sở dữ liệu quan hệ (Relational Database) là mô hình phổ biến nhất hiện nay. Dữ liệu được tổ chức trong các bảng (hay còn gọi là thực thể), mỗi bảng bao gồm các hàng và cột. Các bảng có thể liên kết với nhau thông qua các khóa (keys), chẳng hạn như khóa chính (primary key) và khóa ngoại (foreign key).
Trong mô hình quan hệ, dữ liệu được lưu trữ trong các bảng với định dạng cấu trúc rõ ràng, và các mối quan hệ giữa các bảng được quản lý thông qua các thuộc tính chung. Ví dụ, một cơ sở dữ liệu quan hệ có thể có một bảng lưu thông tin về khách hàng và một bảng khác lưu thông tin về đơn hàng, với khóa ngoại liên kết đơn hàng với khách hàng.
Cơ Sở Dữ Liệu Quan Hệ (Relational Database)
Ưu điểm:
Tính linh hoạt cao trong việc quản lý và truy xuất dữ liệu nhờ vào các mối quan hệ giữa các bảng.
Dễ dàng thực hiện các truy vấn phức tạp bằng cách sử dụng ngôn ngữ truy vấn SQL (Structured Query Language).
Nhược điểm:
Có thể gặp khó khăn với hiệu suất khi làm việc với khối lượng dữ liệu rất lớn hoặc cấu trúc dữ liệu phức tạp.
Đòi hỏi phải quản lý cấu trúc dữ liệu và các mối quan hệ một cách chặt chẽ.
Cơ Sở Dữ Liệu Mạng (Network Database)
Mô hình cơ sở dữ liệu mạng (Network Database) là một mô hình tiến hóa từ mô hình phân cấp, cung cấp sự linh hoạt cao hơn trong việc tổ chức dữ liệu. Trong mô hình mạng, dữ liệu được lưu trữ theo dạng mạng lưới, cho phép các bản ghi có thể có nhiều mối quan hệ cha-con, không bị giới hạn như trong mô hình phân cấp.
Mô hình mạng sử dụng các liên kết để kết nối các bản ghi với nhau, cho phép một bản ghi có thể liên kết với nhiều bản ghi khác. Điều này làm cho mô hình mạng phù hợp với các ứng dụng có yêu cầu xử lý mối quan hệ phức tạp giữa các phần tử dữ liệu.
Ưu điểm:
Linh hoạt trong việc xử lý các mối quan hệ phức tạp và đa chiều giữa các bản ghi.
Có thể cải thiện hiệu suất khi xử lý các truy vấn yêu cầu liên kết dữ liệu từ nhiều nguồn.
Nhược điểm:
Cấu trúc dữ liệu có thể trở nên phức tạp và khó quản lý, đặc biệt là khi mở rộng hệ thống.
Cần có sự hiểu biết sâu về mô hình mạng để thiết kế và duy trì cơ sở dữ liệu hiệu quả.
Ứng Dụng Của Cơ Sở Dữ Liệu
Cơ sở dữ liệu (CSDL) là công cụ quan trọng trong việc quản lý và tổ chức thông tin, cung cấp các lợi ích và ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau. Dưới đây là các ứng dụng tiêu biểu của cơ sở dữ liệu
Quản lý doanh nghiệp
Trong môi trường doanh nghiệp, cơ sở dữ liệu được sử dụng để quản lý thông tin khách hàng, đơn hàng, hàng tồn kho và các quy trình kinh doanh khác. Ví dụ, hệ thống ERP (Enterprise Resource Planning) sử dụng cơ sở dữ liệu để tích hợp và quản lý các chức năng kinh doanh như tài chính, nhân sự và sản xuất.
Ngành ngân hàng và tài chính
Ngành ngân hàng sử dụng cơ sở dữ liệu để quản lý tài khoản khách hàng, giao dịch, báo cáo tài chính và các hoạt động ngân hàng khác. Hệ thống cơ sở dữ liệu giúp theo dõi các giao dịch trong thời gian thực và đảm bảo tính chính xác của thông tin tài chính.
Ngành y tế
Trong ngành y tế, cơ sở dữ liệu được sử dụng để lưu trữ hồ sơ bệnh nhân, kết quả xét nghiệm, lịch sử điều trị và thông tin y tế khác. Cơ sở dữ liệu giúp cải thiện khả năng truy cập và chia sẻ thông tin giữa các cơ sở y tế, hỗ trợ trong việc chẩn đoán và điều trị bệnh.
Ngành giáo dục
Các tổ chức giáo dục sử dụng cơ sở dữ liệu để quản lý thông tin sinh viên, điểm số, lịch học và tài nguyên học tập. Hệ thống quản lý học tập (LMS) thường sử dụng cơ sở dữ liệu để cung cấp các công cụ hỗ trợ học tập và quản lý lớp học.
Thương mại điện tử
Trong thương mại điện tử, cơ sở dữ liệu được sử dụng để lưu trữ thông tin sản phẩm, đơn hàng, khách hàng và giao dịch. Các hệ thống cơ sở dữ liệu giúp quản lý các hoạt động kinh doanh trực tuyến và cung cấp trải nghiệm mua sắm hiệu quả cho người tiêu dùng.
Khoa học và nghiên cứu
Cơ sở dữ liệu được sử dụng trong các lĩnh vực khoa học và nghiên cứu để lưu trữ và phân tích dữ liệu thí nghiệm, nghiên cứu và các thông tin liên quan khác. Các cơ sở dữ liệu khoa học hỗ trợ việc lưu trữ dữ liệu lớn và cung cấp công cụ phân tích mạnh mẽ.
Tóm lại, cơ sở dữ liệu đóng vai trò quan trọng trong việc quản lý và sử dụng thông tin trong nhiều lĩnh vực khác nhau. Các đặc điểm nổi bật của cơ sở dữ liệu giúp tổ chức dữ liệu một cách hiệu quả, bảo mật và dễ truy cập. Theo dõi TopDev để tiếp tục seri về CSDL bạn nhé!