Home Blog Page 30

Vietnam Web Summit 2023 – BỨC TRANH TOÀN CẢNH CÔNG NGHỆ TẠI VIỆT NAM

Vietnam Web Summit 2023

Bối cảnh công nghệ năm 2023 tiếp tục được định hình bởi Cuộc cách mạng công nghiệp 4.0. Các công nghệ mới như AI, Cloud, Data,… ngày càng phát triển mạnh mẽ, có tác động sâu sắc đến mọi lĩnh vực của đời sống, từ sản xuất, kinh doanh, dịch vụ, đến giáo dục, y tế, giải trí,… 

Đứng trước những cơ hội và thách thức từ sự phát triển phi thường của công nghệ, việc làm chủ và ứng dụng chúng vào đời sống là một trong những vấn đề được quan tâm. Vietnam Web Summit 2023 trở lại với chủ đề Human & Tech: Co-Create The Future, hướng đến phân tích bối cảnh công nghệ Việt Nam ở hiện tại đồng thời mở ra viễn cảnh mới, nơi sự sáng tạo được chắp cánh vươn xa nhờ có Công nghệ.

Vietnam Web Summit 2023

Human & Tech: Co-Create The Future – Chung sức đồng kiến tạo tương lai

Chúng ta đang ở một thời điểm mà thế giới luôn xoay chuyển không ngừng, công nghệ hiện đại liên tục ra đời và mang đến sự bùng nổ không tưởng. Không chỉ dừng lại ở vai trò hỗ trợ, lĩnh vực công nghệ hiện nay đang dần định hình tương lai của chúng ta.

Bởi thế, con người và công nghệ phải là hai cá thể không thể tách rời. Sự kết hợp hài hòa giữa khả năng sáng tạo của con người và sức mạnh đột phá của công nghệ sẽ góp phần mang đến một bức tranh toàn cảnh về tương lai đầy triển vọng.

Không chỉ nói đến phương diện gắn kết giữa công nghệ và con người, mà con người cũng cần có sự kết nối tư duy cùng nhau. Sự hợp tác giữa người với người, thông qua công nghệ, sẽ tạo nên những giải pháp tối ưu cho các bài toán, thách thức của thời đại.

Vietnam Web Summit 2023

Vietnam Web Summit 2023 – Hội nghị Công nghệ đáng mong đợi trong tháng 12 này 

Đi qua chặng hành trình 7 năm của mình, Vietnam Web Summit đã dần trở thành nơi gặp gỡ, kết giao của những tín đồ công nghệ. Tại đây, chúng ta sẽ cùng nói về những ý tưởng mới, những xu hướng dẫn đầu và cách mà công nghệ thay đổi cuộc sống.

Sự trở lại của Vietnam Web Summit 2023: Human & Tech: Co-Create The Future được kỳ vọng  mang đến cho người tham gia một câu chuyện mới. Không chỉ xoay quanh các chủ đề về Technical, Business và Marketing, sự kiện năm nay còn chứa đựng loạt nội dung mới mẻ về bài toán thu hút và giữ chân nhân tài.

Đặc biệt, sự kiện Vietnam Web Summit 2023: Human & Tech: Co-Create The Future sẽ mở đăng ký vé miễn phí dành cho tất cả những ai yêu thích và quan tâm đến bất kì lĩnh vực nào tại sự kiện. 

Một số điểm nhấn tại Vietnam Web Summit 2023: Human & Tech: Co-Create The Future

Cơ hội giao lưu diễn giả

Vietnam Web Summit 2023

Với sự góp mặt từ hơn 60 diễn giả uy tín đến từ các công ty công nghệ, người tham gia được lắng nghe chuyện nghề của họ và có cơ hội trực tiếp tương tác, phản biện.

Loạt chủ đề hấp dẫn

Cơ hội để trở thành một trong những người đầu tiên chạm tay đến những xu hướng công nghệ mới nhất với các nhóm nội dung về:

  • Bối cảnh công nghệ tại Việt nam
  • Nhân sự & định hướng phát triển nhân tài IT
  • Diễn đàn đổi mới công nghệ: AI, Cloud và hơn thế nữa.

Cơ hội kết nối và phát triển

Sự kiện mang đến một không gian dành riêng cho việc Networking dành cho các tín đồ công nghệ, các doanh nghiệp và khách hàng.

Vietnam Web Summit 2023: Human & Tech: Co-Create The Future mở ra một không gian công nghệ đầy mê hoặc, hứa hẹn mang đến cho người tham dự không chỉ là những kiến thức mới, mà còn là sự kết nối đầy giá trị giữa con người và công nghệ hiện đại. Từ đó mong muốn cộng đồng công nghệ nói chung và IT Việt Nam nói riêng sẽ ngày càng phát triển và kiến tạo nên một nguồn sức mạnh to lớn nữa.

Sự kiện năm nay sẽ được tổ chức tại hai địa điểm là thành phố Hồ Chí Minh và Thủ đô Hà Nội, quy tụ hàng chục Diễn giả uy tín như Hiếu PC, Philip Hùng Cao, Wilson Lieu, Sven Pruessing, Subbaiyan Ganapathy, Thảo Trần… cùng sự tham gia của các doanh nghiệp như Metro Digital, ABC, Vietguys,… Đây hứa hẹn là một trong những sự kiện về Công nghệ uy tín và đáng mong chờ nhất trong tháng 12 này. 

ĐĂNG KÝ THAM GIA HOÀN TOÀN MIỄN PHÍ TẠI: https://topdev.vn/s/oztngOJU

Tham khảo AGENDA sự kiện tại: https://topdev.vn/vws/agenda-vws2023

====================

THÔNG TIN SỰ KIỆN | Vietnam Web Summit 2023

Hồ Chí Minh – 01.12.2023 – Grand Palace, 142/18 Cộng Hòa, P.4, Q.Tân Bình, TP.HCM

Hà Nội – 08.12.2023 – Vạn Hoa Thiên Sơn Plaza – 89 Lê Đức Thọ, Quận Nam Từ Liêm, Hà Nội

Thông tin chi tiết xem tại: https://vietnamwebsummit.comhttps://Topdev.vn/vws

________________________

Về TopDev – Đơn vị tổ chức sự kiện Vietnam Web Summit 2023:

TopDev hiện là một trong những nền tảng tuyển dụng chuyên về IT hàng đầu tại Việt Nam sở hữu hơn 300.000 profile lập trình viên và Cộng đồng Lập trình viên lớn nhất Việt Nam.  Ngoài ra, TopDev là một trong những đơn vị tiên phong ở lĩnh vực IT tại Việt Nam giúp xây dựng và phát triển thương hiệu tuyển dụng cho hàng trăm công ty công nghệ trong và ngoài nước. Hơn thế, TopDev còn là đơn vị chuyên khảo sát, phân tích và phát hành các báo cáo về thị trường và nhân lực IT tại Việt Nam cùng nhiều tính năng hữu ích cho cộng đồng Lập trình viên như Tạo CV online, Chuẩn hóa CV, Trách nghiệm tính cách, Quy đổi lương Gross-Net.

Chỉ cần một bản CV hay nhiều bản cho nhiều công việc khác nhau?

Chỉ cần duy nhất một bản CV hay nhiều bản cho nhiều công việc khác nhau?

Bài viết được sự cho phép của tác giả Lê Tuấn Anh

Hiện nay khi đi ứng tuyển công việc trên các trang TopDev, LinkedIn hay các tin tuyển dụng Facebook, chúng ta đều cần có CV. Khi chúng ta tìm việc, chắc chắn chúng ta không chỉ ứng tuyển cho một công việc hoặc một công ty duy nhất. Với việc ứng tuyển cho nhiều vị trí ở nhiều công ty khác nhau, nhiều bạn băn khoăn về việc nên viết một bản CV để rải đi nhiều nơi hay với mỗi nơi nên viết một bản khác nhau? Trong bài viết này mình sẽ giải đáp kỹ cho bạn phần này.

Câu trả lời nhanh là bạn nên có một bản “Master CV” hay “CV Chung” ghi lại tất cả những kỹ năng, kinh nghiệm, kiến thức bạn có – bản này dài bao nhiêu trang cũng được, không dùng bản này để ứng tuyển. Khi ứng tuyển, từ bản “CV Chung” ở trên, bạn chọn lọc thông tin sao cho phù hợp để thành một “CV Riêng”, dành riêng cho công việc bạn định nộp, cộng với việc thêm thắt một số từ khoá phù hợp (mình sẽ hướng dẫn bên dưới), bạn sẽ có một bản CV có cơ hội trúng tuyển cao. Cụ thể “CV Chung” và “CV Riêng” viết sao cho tốt bạn đọc tiếp ở dưới nhé.

1/ Cách viết bản Master CV – CV Chung

Gọi là “Master CV” tức là bạn có thể viết mọi thông tin có thể, giống như một “bách khoa toàn thư” giới thiệu về bản thân. Cụ thể các đề mục bạn có thể có trong một “CV Chung” đó là:

  • Thông tin cá nhân: Tên, Email, Số điện thoại. Địa chỉ LinkedIn với đa số chúng ta hoặc link Blog, Portfolio, Behance, Github với các bạn bên các mảng như Content, Thiết kế, IT.
  • Học vấn: Liệt kê từ học vấn đại học/cao đẳng, cho đến các khoá học ngắn hạn về kỹ năng mềm hoặc chuyên môn bạn học offline hoặc học online – không phân biệt kỹ năng gì hay ngành nghề gì.
  • Kỹ năng: Liệt kê tất cả các kỹ năng mềm (kiểu như giao tiếp, làm việc nhóm, thuyết trình) và kỹ năng cứng (ví dụ Marketing thì cần chạy quảng cáo Facebook, tổ chức sự kiện).
  • Kinh nghiệm & hoạt động ngoại khoá: Liệt kê hết các kinh nghiệm và hoạt động ngoại khoá bạn đã tham gia tại đây, với mỗi công việc cố gắng suy nghĩ 10-15 gạch đầu dòng khác nhau mô tả các đầu việc bạn đã làm (có kết quả công việc trong đó).
  • Thành tích & giải thưởng: Bất kỳ thành tích và giải thưởng nào từ trong trường học cho đến chỗ làm hoặc trong CLB, bạn nêu hết tại đây.
  • Người giới thiệu: Ghi ra tên, email, số điện thoại, chức vụ và công ty của bất kỳ người nào có khả năng nói tốt về bạn vào phần này.

“CV Chung” là nơi dùng để tổng hợp thông tin, vì vậy bạn không cần phải “suy nghĩ nhiều” để chọn lọc cái gì nên ghi cái gì không nên ghi. Khi nghĩ ra bất kỳ thông tin nào, cứ ghi hết vào bản CV này. CV này có thể dài nhiều trang, không nộp cho người khác nên không sao cả. Với bản CV này, mình gợi ý bạn nên dùng Google Doc hoặc Word để tạo, vì bản CV này không cần đẹp, chủ yếu để lưu trữ thông tin.

Tạo CV online miễn phí, nhanh chóng trên TopDev

2/ Cách viết “CV Riêng” – cho riêng từng công việc bạn nộp

Nếu như ở trên bạn có thể viết “xả láng”, với CV dùng để nộp cho công ty, bạn nên chắt lọc trong khoảng tối đa 2 trang đổ lại. Các đề mục trong CV vẫn giống như ở trên, nhưng thông tin cần cắt gọn lại, cụ thể theo hướng dẫn dưới đây:

  • Thông tin cá nhân: viết và trình bày sao cho gọn gàng nhất trong khoảng 1-2 dòng. Đừng để địa chỉ dài (chỉ nên để Quận/Thành phố), đừng để link dài ngoằng kiểu https://www.linkedin.com/in/anhtuanle234/ mà hãy dùng tính năng hyperlink để chèn link (ví dụ: LinkedIn).
  • Kỹ năng: Bạn nên chọn lọc khoảng 6-7 kỹ năng cốt lõi liên quan nhất đến công việc, cố gắng sử dụng nhiều các kỹ năng cứng. Kỹ năng mềm thường ai cũng có, khó làm bạn ấn tượng với người khác. Ví dụ một người làm Content có bộ kỹ năng “Tìm kiếm thông tin”, “Thiết kế hình minh hoạ”, “Viết bài chuẩn SEO” sẽ hay hơn là “Giao tiếp”, “Làm việc nhóm”. Bạn có thể xem chi tiết hướng dẫn viết kỹ năng trong CV tại đây.
  • Kinh nghiệm: Mỗi công việc cũng chỉ nên tập trung khoảng 6-8 gạch đầu dòng. Mỗi gạch đầu dòng phải làm sao để có số liệu kết quả và chứng minh cho một kỹ năng đã viết ở kỹ năng.
  • Học vấn: Ngoài học vấn chính quy, bạn chọn ra 2-3 học vấn phụ bổ sung, đừng nên viết quá nhiều.
  • Thành tích & giải thưởng: có thể cân nhắc gộp chung nếu đó là thành tích của học vấn hoặc thành tích của kinh nghiệm làm việc.

  CV chuẩn ATS là gì? Bí kíp đậu phỏng vấn với CV chuẩn ATS

  Tối ưu hóa CV bằng ChatGPT: Gây ấn tượng nhà tuyển dụng ngay từ lần đầu

Sau khi đã hoàn thành việc cắt gọt ở trên, bạn có thể dành chút thời gian phân tích JD và website công ty để chọn ra những từ khoá hay, đặc trưng của công ty đó để đưa vào CV. Việc này giúp cho CV của bạn thu hút người đọc hơn và tăng cơ hội trúng tuyển hơn.

Chúc các bạn có một bản CV chỉn chu.

Bài viết gốc được đăng tải tại anhtuanle.com

Xem thêm:

Sự khác biệt giữa Flexbox với Grid

Sự khác biệt giữa Flexbox với Grid

Khi nhắc đến bố cục layout trong Website thì các lập trình viên Frontend luôn có hai công cụ trợ giúp đắc lực là Flexbox và Grid. Cả hai đều có những đặc điểm riêng dành cho từng mục đích sử dụng khác nhau giúp tạo nên giao diện ứng dụng Web thống nhất trên nhiều kích thước màn hình. Bài viết hôm nay chúng ta cùng nhau tìm hiểu về sự khác biệt giữa Flexbox với Grid để xem khi nào nên sử dụng mỗi loại layout này nhé.

Xây dựng layout cho Website

Khái niệm layout được sử dụng để chỉ bố cục, cách sắp xếp, trình bày các thành phần trên một sản phẩm thiết kế, bao gồm cả tỷ lệ, khoảng cách và việc lựa chọn vị trí của từng phần tử. Với một Website, layout chính là cách dàn trang, sắp xếp vị trí các phần tử hiển thị lên trang.

Sự khác biệt giữa Flexbox với Grid

2 công cụ chính giúp chúng ta xây dựng layout cho một Website là Flexbox và Grid. Flexbox giúp bạn tạo ra layout 1 chiều (chiều ngang hoặc chiều dọc) và bạn sẽ thường được thấy và sử dụng nó trong những phần như header của trang chứa các nút (button) điều hướng. Nếu bạn muốn tạo ra một layout ở cả 2 chiều (chiều dọc và chiều ngang) thì lúc này Grid sẽ giúp bạn thực hiện.

Chúng ta cùng đi sâu hơn vào từng loại trên nhé.

Sự khác biệt giữa Flexbox với Grid

Flexbox

Ý tưởng chính của Flexbox là cung cấp một container có khả năng thay đổi các phần tử bên trong nó về mặt chiều rộng, chiều cao, thứ tự hiển thị để lấp đầy không gian có sẵn. Điều này sẽ giúp việc đối ứng trên các loại thiết bị hiển thị và kích thước màn hình trở nên linh hoạt và hiệu quả hơn.

Flexbox

Để triển khai Flexbox, chúng ta khai báo thuộc tính display: flex cho phần tử HTML trở thành flex container, các phần tử bên trong container được gọi là flex item. Trục chính sẽ là trục cùng chiều sắp xếp của các flex item được gọi là main axis, trục vuông góc với trục chính được gọi là cross axis.

Như hình dưới thì main axis là trục nằm ngang còn cross axis là trục dọc. Nếu chúng ta khai báo hướng của flexbox là nằm dọc (flex-direction: columns) thì sẽ ngược lại. Hướng của flex sẽ là từ trái sang phải và trên xuống dưới tương ứng với các thuộc tính startend.

Flexbox

Flexbox sẽ rất hữu ích đối với các thành phần như menu dọc, thanh điều hướng,… và rất thích hợp cho việc xử lý giao diện responsive.

  Hướng dẫn học CSS Grid toàn tập phần 1

  Vài vấn đề thường gặp khi làm việc với Flexbox

Grid

Nếu như Flex chỉ cho phép bố trí layout 1 chiều thì Grid là dạng bố cục 2 chiều, nghĩa là nó có thể quản lý cả cột và hàng – tương tự khi khi làm việc với bảng (Tables). Grid sinh ra nhằm xử lý nhiều giao diện phức tạp và giúp đi sâu vào tùy chỉnh từng vùng của giao diện. 

Grid

Để triển khai Grid chúng ta khai báo thuộc tính display: grid hoặc display: grid-inline cho phần tử HTML trở thành container. Các phần tử con trong container gọi là grid items, mỗi một hàng hay một cột bên trong nó được gọi là grid track. Hai bên lề trái phải, trên dưới của một grid tracks được gọi là grid line, nó sẽ được đánh số từ 1 đến n theo chiều trái sang phải và trên xuống dưới. Mỗi ô trong grid được gọi là grid cell, tập hợp nhiều ô tạo thành các hình vuông hay hình chữ nhật được gọi là grid area. Các khái niệm này khá thân thuộc và tương tự như các ô trong một bảng (Table).

Nhờ có thể tùy chỉnh giao diện theo cả 2 chiều khiến Grid được lựa chọn để giải quyết các giao diện phức tạp đặc biệt là dành cho những container có chứa rất nhiều items. Grid cũng đáp ứng được việc đối ứng trên nhiều loại màn hình khác nhau thông qua các thuộc tính repeat, mimax hay sử dụng đơn vị fr

Sự khác biệt giữa Flexbox với Grid

Điểm khác nhau cơ bản trước nhất giữa Flexbox và Grid là tư duy dựng layout, Flexbox sẽ lấy nội dung (content) làm nền tảng (content-first), từ đó bố trí các phần nội dung theo 1 trật tự để hiển thị lên màn hình; trong khi đó, Grid tạo ra layout trước (layout-first), sau đó xác định vị trí mà các phần tử được đặt vào rồi sẽ hiển thị lên.

Sự khác biệt giữa Flexbox với Grid

Cả 2 đều có ưu điểm trong việc dựng layout dành cho Website nhờ khả năng quản lý, kiểm soát tốt các phần tử con bằng cách phân chia không gian thích hợp, đáp ứng được responsive trên nhiều loại màn hình. Điểm khác biệt giữa Flexbox và Grid bao gồm:

  • Mục tiêu sử dụng: Flexbox thường dùng cho việc tạo ra các cấu trúc giao diện đơn giản, bố cục một chiều. Trong khi đó Grid có khả năng tạo ra những cấu trúc phức tạp với bố cục 2 chiều.
  • Trường hợp nên sử dụng: để sử dụng Grid, chúng ta thường phải xác định vị trí của các phần tử từ trước một các chính xác, chặt chẽ. Flexbox thì có thể sử dụng khi các phần tử con có kích thước không cố định.
  • Hỗ trợ trình duyệt: Cả 2 hầu như được hỗ trợ tốt trên các trình duyệt phổ biến, hiện đại hiện nay. Tuy nhiên nếu sử dụng Grid bạn có thể gặp phải vấn đề liên quan đến một vài tính năng sẽ thực hiện khác nhau trên các trình duyệt khác nhau.

Xem thêm các việc làm CSS hấp dẫn trên TopDev

Kết hợp giữa Flex và Grid

Trên một Website, để tận dụng được ưu điểm của cả 2 layout trên thì chúng ta thường kết hợp chúng với nhau và áp dụng vào tùy từng vị trí hay phần tử trên trang. Ví dụ như hình dưới đây, grid được sử dụng để dựng layout cho toàn trang còn flex được sử dụng cho việc tạo ra thanh header của trang.

Kết hợp giữa Flex và Grid

Việc kết hợp giữa Grid và Flex không chỉ giúp chúng ta tận dụng được ưu điểm của cả 2 layout trên mà đồng thời còn giúp khả năng đối ứng đa màn hình cho website trở nên linh hoạt và cải thiện trải nghiệm của người dùng lên rất nhiều.

Kết bài

Như vậy qua bài viết này chúng ta đã cùng nhau hiểu rõ hơn về 2 công cụ Flexbox và Grid cũng như cách sử dụng của chúng. Nắm rõ và kết hợp chúng với nhau giúp anh em Frontend Developer có thể linh hoạt xây dựng các Website theo đúng yêu cầu người dùng. Hy vọng bài viết hữu ích dành cho bạn và hẹn gặp lại trong các bài viết tiếp theo của mình.

Tác giả: Phạm Minh Khoa

Có thể bạn quan tâm:

Xem thêm Việc làm IT hấp dẫn trên TopDev

IoB (Internet of Behavior) là gì? – Xu hướng của thời đại mới

IoB (Internet of Behavior) là gì?

Lại là IO, IO này chắc chắn không phải là input output hồi mới nghe khi lững thững bước chân vào nghề lập trình rồi, IOB là gì thì nghe còn mới. Chứ còn IoT (Internet Of Thing), IoV (Internet Of Vehicle) thì hẳn anh em đã quá quen.

Đoán bừa thế chứ nếu anh em không quen thì ghé đây đọc qua về IoT và IoV nha.

IoB là gì?Công nhận là công nghệ thay đổi cực nhanh, kéo theo đó là sự phát triển của các giao thức truyền thông mới. Xin mời anh em cùng đón đọc để hiểu thêm về IOB.

Bắt đầu ngay thôi nào!

1. IoB là gì?

Luôn bắt đầu với định nghĩa, nhưng lần này có vẻ như không quá khó hiểu để làm với IOB

IoB offers a revolutionary way to monitor, control and model human behavior. As tech leaders in this ever-evolving industry, we must stay ahead of upcoming trends so that we can take advantage of its many benefits. IoB cung cấp một phương pháp mang tính cách mạng để giám sát, kiểm soát và mô hình hóa hành vi của con người. Với tư cách là những người dẫn đầu về công nghệ trong ngành không ngừng phát triển này, chúng ta phải đón đầu các xu hướng sắp tới để có thể tận dụng nhiều lợi ích của nó.

Vẫn hơi khó hiểu, sorry anh em. Để làm rõ hơn.

IoB là gì?
IOB nói chung là hệ thống các cảm biến, cũng có thể có một số công nghệ khác như camera, nhưng mục đích chung là sử dụng để theo dõi, phân tích và dự đoán hành vi của con người. Tất nhiên IOB không chỉ có mỗi IOB là thành được, bản thân trong đó còn có kết hợp AI (trí tuệ nhân tạo), ML (học máy), phân tích dữ liệu lớn, điện toán đám mây, thiết bị Internet Of Things (IoT), Mobile app,…

Cả một đống thứ trong đó nhưng tựu chung đều liên quan tới Behavior (hành vi của con người).

Vậy thu thập data để làm gì?

  Cập nhật công nghệ hiện tại và xu hướng mới trong tương lai
  Digital Twins – xu hướng công nghệ cho ngành IoT

2. Ứng dụng của IOB (Internet of behavior)

Sau khi đã có toàn bộ dữ liệu phân tích hành vi của con người. Dữ liệu được thu thập sau đó có thể được sử dụng cho nhiều mục đích khác nhau như phân tích dự đoán hoặc quy trình ra quyết định tự động.

Lợi ích chính của việc sử dụng công nghệ IoB là cải thiện hiệu quả và tăng năng suất nhờ tự động hóa được kích hoạt bằng phân tích dự đoán. Giờ đây, khi mà AI phát triển mạnh như anh em đã biết. Ta có thể kết hợp AI để phân tích mô hình hành vi trong thời gian thực. Cái này giúp cho mấy ông công ty đưa ra quyết định tốt hơn, nhanh hơn đồng thời giảm chi phí liên quan đến lao động thủ công hoặc mấy cái quy trình không hiệu quả.

Ứng dụng của IOB
Mà cái này chỉ là ví dụ nhỏ, còn từ hành vi có thể ứng dụng ti tỉ thứ, như phân tích hành vi mua sắm của khách hàng. Nếu nắm được hành vi thì rõ ràng có thể kích thích mua hàng nhiều hơn. Nghe thôi đã thấy IOB có vô vàn hiệu quả, chắc không không thua IOT đâu anh em!

Xem thêm các việc làm IoT tại TopDev

3. IOB hoạt động như thế nào?

IoB là một công nghệ mang tính cách mạng cho phép giám sát, kiểm soát và mô hình hóa hành vi của con người. Nó kết hợp sức mạnh của các công nghệ đã nói ở trên cho anh em ở trên. IoB đã được sử dụng trong nhiều ngành công nghiệp khác nhau như chăm sóc sức khỏe, bán lẻ, tài chính, giáo dục, giao thông vận tải, v.v.

3.1 Protocols và Ecosystem

Để hiểu IOB hoạt động như thế nào, anh em cùng xem qua một số protocols (giao thức) và ecosystem (hệ sinh thái) thường sẽ có mặt trong IOB.

Như ta đã biết thì IoB hoạt động bằng cách kết nối các thiết bị với nhau thông qua mạng hoặc giao thức như Bluetooth Low Energy (BLE). Loại kết nối BLE này cho phép trao đổi dữ liệu theo thời gian thực giữa các hệ thống khác nhau, sau đó có thể được phân tích bằng thuật toán AI. Hơn nữa mấy loại kết nối kiểu này thường được bảo mật bằng các kỹ thuật mã hóa như (TLS) để đảm bảo bảo vệ quyền riêng tư.

Protocols và Ecosystem
Hơn nữa, hệ sinh thái này cũng bao gồm các nền tảng cloud anh em thường biết như Amazon Web Services hoặc Microsoft Azure. Mà việc sử dụng hoặc đem cloud vào ứng dụng thì chắc chắn sẽ hỗ trợ tốt cho anh em lưu trữ lượng lớn dữ liệu một cách an toàn trên đám mây, khả năng mở rộng (scale) cũng tốt.

3.2 Công nghệ sử dụng

Để hệ thống IoB hoạt động hiệu quả, chắc chắn anh em phải áp dụng một số công nghệ.

Đã là theo dõi behavior thì không thể thiếu những cảm biến phát hiện những thay đổi của con người. Kế đến là giao thức truyền tải thông tin như Wi-Fi hoặc BLE, khả năng tính toán biên cho phép xử lý cục bộ, thuật toán ML phân tích dữ liệu được thu thập, cơ sở dữ liệu để lưu trữ thông tin và API hỗ trợ tích hợp với các ứng dụng hoặc dịch vụ khác.

IOB
Cả đống này kết hợp chung với nhau để tạo ra một hệ thống thông minh có khả năng hiểu các kiểu hành vi của người dùng theo thời gian. Sau khi đã hiểu rồi, bản thân hệ thống anh em buidl lên có thể đưa ra dự đoán về các hành động trong tương lai dựa trên các hành vi trong quá khứ.

3.3 Thách thức trong quá trình xây dựng IOB

Cái khó nhất mà cũng xem như là quan trọng nhất khi anh em xây dựng hệ thống IOB là anh em phải hiểu phải hiểu các giao thức và hệ sinh thái liên quan đến IoB.

Không những bản thân IOB, các công nghệ được sử dụng để triển khai nó anh em cũng cần phải có lượng kiến thức nhất định. Đơn cử như Cloud, AI, ML, nếu chỉ có data behavior mà không có các công nghệ đi kèm này thì không có ý nghĩa gì.

4. Tương lại rộng mở cho IOB

Không ra đời sớm như IoT, cũng không đang phát triển nóng như IOV (internet of vehicle), tuy nhiên sự phát triển và sử dụng công nghệ IoB đang phát triển nhanh chóng, với những xu hướng mới đang nổi lên trong ngành.

Như năm nay, theo trend và sự phát triển và sử dụng AI ngày càng trở nên phổ biến để phân tích hành vi tự động được hỗ trợ bởi AI. Những giải pháp này có thể giúp xác định các mẫu hành vi của người dùng mà khó có thể phát hiện theo cách thủ công truyền thống.

Còn đối với thu thập dữ liệu, trước đây thì cũng khó chứ không phải dễ đâu anh em, nhưng giờ đây các thiết bị đeo cũng đang được chú ý như một giải pháp thay thế cho các cảm biến truyền thống để thu thập dữ liệu hành vi. Đầy thiết bị thông mình anh em có thể đeo bên người.

IOV (internet of vehicle)
Loại đeo này thì thuận tiện hơn để thu thập thông tin về hoạt động của người dùng mà không cần phải cài đặt thêm các thành phần phần cứng hoặc phần mềm gì. Các tiêu chuẩn về khả năng tương tác cũng đang được phát triển với sự tập trung ngày càng tăng, cho phép các nền tảng khác nhau sử dụng công nghệ IoB tích hợp với nhiều các hệ thống và mạng khác nhau.

Loại này thì vừa giúp bảo mật, vừa giúp người dùng theo dõi theo thời gian thực mà vẫn có tính bảo mật và quyền riêng tư. Lợi hại lợi hại

5. Tham khảo về IOB

IOB hứa hẹn sẽ phát triển trong những năm tiếp theo, anh em có thể tham khảo thêm tại.

Cảm ơn anh em đã đọc bài – Thank you for your time – Happy coding!

Tác giả: Kiên Nguyễn

Có thể bạn quan tâm:

Tìm kiếm việc làm IT mới nhất tại TopDev!

Những đoạn code tùy biến cho VSCode cực đẹp (Phần 2)

Những đoạn code tùy biến cho VSCode cực đẹp

Tác giả: Trần Anh Tuấn

Từ trước tới giờ mình tùy biến VSCode rất nhiều và cũng có nhiều người hỏi về các đoạn code tùy biến đó, người này hỏi, người kia hỏi cho nên mình viết luôn bài này tổng hợp code những cái tùy biến đấy cho các bạn luôn!

VSCode

Trước khi mà các bạn có thể áp dụng được những đoạn code này vào thì các bạn cần xem video này trên kênh Youtube của mình để có thể hiểu cách làm nhé.

Tùy biến active tab 4 góc

:root{
--size: 5px;
}
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active.tab-border-top
  > .tab-border-top-container {
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: transparent;
}
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active.tab-border-top
  > .tab-border-top-container:before,
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active.tab-border-top
  > .tab-border-top-container:after {
  content: "";
  width: var(--size);
  height: var(--size);
  position: absolute;
  border: 2px solid;
  border-image-slice: 1;
}
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active.tab-border-top
  > .tab-border-top-container:before {
  top: 0;
  left: 0;
  border-right: 0;
  border-bottom: 0;
  border-image-source: linear-gradient(-45deg, #4dd78a, #20e3b2);
}

.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active.tab-border-top
  > .tab-border-top-container:after {
  right: 0;
  bottom: 0;
  border-top: 0;
  border-left: 0;
  border-image-source: linear-gradient(-45deg, #6a5af9, #d66efd);
}
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active:before,
 .monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active:after {
  content: "";
  width: var(--size);
  height: var(--size);
  position: absolute;
  border: 2px solid;
  border-image-slice: 1;
}
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active:before {
  left: 0;
  bottom: 0;
  border-top: 0;
  border-right: 0;
  border-image-source: linear-gradient(-45deg, #fc6c8f, #ffb86c);
}

.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active:after {
  top: 0;
  right: 0;
  border-left: 0;
  border-bottom: 0;
  border-image-source: linear-gradient(-45deg, #098dff, #2cccff);
}

Lưu ý: Ở đoạn code trên các bạn sẽ thấy đoạn .tab-border-top thì tùy vào theme, ví dụ theme Dracula sẽ có border-top nhưng một số theme khác thì lại có border-bottom nên class của theme khác có thể là .tab-border-bottom. Cho nên các bạn linh động thay class phù hợp là chạy ổn áp nha.

  9 VSCode extension hay ho

  Những đoạn code tùy biến cho VSCode cực đẹp bởi Evondev (Phần 1)

Tùy biến active tab line gradient

Sử dụng đoạn code này thì khi active tab sẽ có một đường line ở trên cái tab khi mà nó active trong VSCode và nó sẽ chạy qua chạy lại với nhiều màu sắc cho các bạn.

Lưu ý: Cũng tương tự như ở trên thì tùy thuộc vào theme thì sẽ có .tab-border-top hoặc .tab-border-bottom. Các bạn chỉ cần thay vào là chạy đúng kết quả các bạn muốn thôi nhé.

.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active.tab-border-top
  > .tab-border-top-container {
  background-size: 400% 400%;
  background-image: linear-gradient(
    -45deg,
    #fc6c8f,
    #ff2ced,
    #ffb86c,
    #2cccff,
    #20e3b2,
    #ffcc70,
    #c850c0,
    #4158d0
  );
  animation: gradient 5s ease alternate infinite;
  height: 3px;
}
@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

Tùy biến font chữ cho các class

Tùy biến font chữ cho các class

Nhiều bạn hỏi mình sao làm cho chỗ này nó có font chữ khác thì mình cũng chia sẻ cho các bạn luôn. Đầu tiên các bạn cần tải font Dank Mono và cài đặt cho máy tính của các bạn tại đây

Sau khi tải và cài đặt xong cho máy tính rồi thì áp dụng đoạn code này vào là được

.mtk5,
.mtk26 {
  -webkit-font-smoothing: auto;
  font-family: "Dank mono", monospace;
}
.mtk26 {
  font-style: italic;
}

Hãy lưu ý rằng hai class .mtk5 và .mtk26 là tương ứng cho theme mình đang xài(Evondev Dracula), nếu các bạn xài theme khác thì tự tìm class nhé vì mỗi theme thì class nó khác nhau. Tìm như thế nào thì coi video ở trên cùng. Mình đã chỉ tận răng rồi cho nên mấy vấn đề này mình không có hỗ trợ riêng đâu nhé.

Nếu làm theo vẫn chưa được thì có thể tham khảo thêm đoạn code dưới đây, đoạn này bỏ vào trong file settings.json của các bạn nhé. Trong đó Evondev Dracula Normal Contrast là tên theme của các bạn

"[Evondev Dracula Normal Constrast]": {
  "textMateRules": [
    {
      "scope": [
        "entity.other.attribute-name.js",
        "entity.other.attribute-name.jsx",
        "entity.other.attribute-name.ts",
        "entity.other.attribute-name.tsx",
        "entity.other.attribute-name.html",
        "entity.other.attribute-name.pug"
      ],
      "settings": {
        "foreground": "#20e4b2"
      }
    }
  ]
}

Đoạn tùy chỉnh JSON ở trên mục đích là tách cái thuộc tính(attribute) trong thẻ HTML thành một scope riêng biệt để nó sinh ra một class mới như .mtk26 chẳng hạn rồi dựa vào class đó tùy biến màu khác, in nghiêng… tùy vào mục đích mỗi người.

Tùy biến con trỏ

.cursors-layer .cursor {
  background-image: linear-gradient(
    245deg,
    #fcb564,
    #ff65f2,
    #d66efd
  ) !important;
}

Bo góc Tab

.tabs-container > .tab {
  border-right: 0 !important;
}
.tabs-and-actions-container {
  padding: 4px !important;
}

.tabs-container {
  gap: 8px !important;
}
.tabs-container > .tab.active.tab-border-top > .tab-border-top-container {
  --general-gradient-secondary: #fcb564, #ff65f2, #ff69cf;
  height: 0.5px !important;
  background-image: linear-gradient(
    to right,
    var(--general-gradient-secondary)
  );
  width: 50% !important;
  left: 50% !important;
  transform: translate3d(-50%, 0%, 0) !important;
  top: -1px !important;
}
.tabs-container > .tab {
  border-radius: 100px;
  border-color: rgba(255, 255, 255, 0.12) rgb(25, 26, 33)
    rgba(255, 255, 255, 0.12) rgba(255, 255, 255, 0.12);
  border-style: solid;
  border-width: 1px 0 0 0;
}

Border gradient

.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container {
  padding: 8px;
  gap: 8px;
}
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.sizing-fit {
  background-color: #21222c !important;
  border-radius: 4px;
}
.tab.tab-actions-right.sizing-fit.has-icon.tab-border-top.active .tab-label {
  position: relative;
}
.tab.tab-actions-right.sizing-fit.has-icon.tab-border-top.active:before {
  content: "";
  position: absolute;
  background: #21222c;
  top: 50%;
  left: 50%;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  border-radius: inherit;
  transform: translate(-50.1%, -50.1%);
  border-radius: inherit;
}
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.sizing-fit.active {
  background-image: linear-gradient(
    45deg,
    #fcb564,
    #ff65f2,
    #d66efd,
    #6a5af9,
    #2cccff,
    #20e3b2
  );
}
/* hide border top */
.monaco-workbench
  .part.editor
  > .content
  .editor-group-container
  > .title
  .tabs-container
  > .tab.active.tab-border-top
  > .tab-border-top-container {
 display: none !important;
 }

Dành cho ai dùng theme Evondev Dracula

Đây là toàn bộ code tùy biến hiện tại của mình, nếu bạn thích thì có thể copy vào hết là y hệt mình, tuy nhiên nếu bạn đang dùng máy có độ phân giải cao thì nó sẽ đẹp hơn nhé, ví dụ như Macbook chẳng hạn

:root {
 --gradient-dir1: to top right;
 --gradient-dir2: to bottom left;
 --gradient-dir3: to right top;
 --gradient-dir4: to left bottom;
 --gradient-dir5: to top left;
 --size: 5px;
}
.mtk10,
.mtk15 {
 color: transparent;
 background-image: linear-gradient(var(--gradient-dir4), #fc806c, #ff1bd1);
 -webkit-background-clip: text;
 background-clip: text;
 -webkit-text-fill-color: transparent;
}

.mtk5,
.mtk26 {
 color: transparent;
 background-image: linear-gradient(
   var(--gradient-dir1),
   #4dd78a,
   #20e3b2,
   #a2de6a
 );
 background-clip: text;
 -webkit-text-fill-color: transparent;
 -webkit-background-clip: text;
 -webkit-font-smoothing: auto;
 font-family: "Dank mono", monospace;
 font-size: 14px;
}
.mtk26 {
 background-image: linear-gradient(
   var(--gradient-dir5),
   #4dd78a,
   #20e3b2,
   #a2de6a
 );
 font-style: italic;
}
.mtk23,
.mtk16 {
 color: transparent;
 background-image: linear-gradient(var(--gradient-dir1), #d66efd, #6a5af9);
 background-clip: text;
 -webkit-text-fill-color: transparent;
 -webkit-background-clip: text;
}
.mtk9,
.mtk17 {
 color: transparent;
 background-image: linear-gradient(
   var(--gradient-dir2),
   #098dff,
   #2cccff,
   #2979ff
 );
 background-clip: text;
 -webkit-text-fill-color: transparent;
 -webkit-background-clip: text;
}
.mtk18 {
 color: transparent;
 background-image: linear-gradient(var(--gradient-dir2), #b0beff, #fed9ff);
 background-clip: text;
 -webkit-text-fill-color: transparent;
 -webkit-background-clip: text;
 font-style: normal;
}
.mtk3 {
 color: transparent;
 /* background-image: linear-gradient(
   var(--gradient-dir1),
   #c29ffd,
   #ffb4dc,
   #e39bf7
 ); */
 background-image: linear-gradient(to top, #fce1d0, #ffadd6, #e39bf7);
 background-clip: text;
 -webkit-text-fill-color: transparent;
 -webkit-background-clip: text;
}
.mtk7 {
 color: transparent;
 background-image: linear-gradient(var(--gradient-dir2), #fc6c8f, #ffb86c);
 -webkit-background-clip: text;
 background-clip: text;
 -webkit-text-fill-color: transparent;
}
.mtk8,
.mtk14 {
 color: transparent;
 background-image: linear-gradient(to right, #ffb88c, #eac394);
 -webkit-background-clip: text;
 background-clip: text;
 -webkit-text-fill-color: transparent;
}
.monaco-workbench
 .activitybar
 > .content
 :not(.monaco-menu)
 > .monaco-action-bar
 .action-item.checked
 .active-item-indicator:before {
 border: 0;
 width: 3px;
 height: 100%;
 position: absolute;
 top: 0;
 left: 0;
 background-image: linear-gradient(45deg, #fc6c8f, #ff2ced);
}

.monaco-workbench
 .activitybar
 > .content
 :not(.monaco-menu)
 > .monaco-action-bar
 .badge
 .badge-content {
 background-image: linear-gradient(45deg, #fc6c8f, #ff2ced);
}
.monaco-editor .cursors-layer .cursor {
 background-image: linear-gradient(to top, #6a5af9, #d66efd, #fc6c8f, #ff2ced);
}

.mtki {
 font-style: normal;
}

.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active.tab-border-top
 > .tab-border-top-container {
 width: 100%;
 height: 100%;
 top: 0;
 left: 0;
 background-color: transparent;
}
.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active.tab-border-top
 > .tab-border-top-container:before,
.monaco-workbench
 .part.editor
 > .conten
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active.tab-border-top
 > .tab-border-top-container:after {
 content: "";
 width: var(--size);
 height: var(--size);
 position: absolute;
 border: 2px solid;
 border-image-slice: 1;
}
.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active.tab-border-top
 > .tab-border-top-container:before {
 top: 0;
 left: 0;
 border-right: 0;
 border-bottom: 0;
 border-image-source: linear-gradient(-45deg, #4dd78a, #20e3b2);
}
.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active.tab-border-top
 > .tab-border-top-container:after {
 right: 0;
 bottom: 0;
 border-top: 0;
 border-left: 0;
 border-image-source: linear-gradient(-45deg, #6a5af9, #d66efd);
}
.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active:before,
.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active:after {
 content: "";
 width: var(--size);
 height: var(--size);
 position: absolute;
 border: 2px solid;
 border-image-slice: 1;
}
.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active:before {
 left: 0;
 bottom: 0;
 border-top: 0;
 border-right: 0;
 border-image-source: linear-gradient(-45deg, #fc6c8f, #ffb86c);
}

.monaco-workbench
 .part.editor
 > .content
 .editor-group-container
 > .title
 .tabs-container
 > .tab.active:after {
 top: 0;
 right: 0;
 border-left: 0;
 border-bottom: 0;
 border-image-source: linear-gradient(-45deg, #098dff, #2cccff);
}

Tạm kết

Trên đây là toàn bộ source code tùy biến hiện tại của mình. Hi vọng bài viết ngắn gọn súc tích này sẽ có ích cho các bạn. Giúp các bạn có cảm hứng khi coding hơn.

Bài viết gốc được đăng tải tại evondev.com

Xem thêm:

Xem thêm Việc làm IT hấp dẫn trên TopDev

GW2790QT – Màn hình 2K tốt nhất dành cho lập trình viên

Màn hình 2K tốt nhất dành cho lập trình viên

BenQ – Tập đoàn hàng đầu thế giới về màn hình công thái học và thiết bị thông minh vừa cho ra mắt màn hình lập trình 2K QHD đầu tiên trên thế giới GW2790QT & GW3290QT, với kích cỡ tương ứng 27 inch và 32 inch.

GW2790QT & GW3290QT có chế độ Coding giúp tối ưu hóa độ tương phản hạn chế mỏi mắt, chế độ M-book giảm khác biệt màu sắc so với Macbook, bộ chia cổng USB-C cho phép sạc ngược cùng kết nối đa thiết bị Daisy Chain, và thiết kế công thái học giúp thoải mái sử dụng trong thời gian dài.

Chế độ Coding đầu tiên trên thế giới cùng khả năng đa nhiệm vượt trội

Với màn hình GW90QT, chế độ Coding được thiết kế cho khả năng tối ưu hóa độ tương phản và độ bão hòa, giúp nền đen trở nên tối hơn. Từ đó, dòng code sẽ được hiển thị sắc nét hơn so với màn hình thông thường, giảm thiểu nhức mỏi mắt trong suốt thời gian làm việc.

Màn hình 2K dành cho lập trình viên

Nhằm hỗ trợ các lập trình viên nâng cao hiệu quả công việc, màn hình bảo vệ mắt GW90QT có các tùy chọn độ phân giải FHD và QHD để đọc kí tự tốt hơn. Đặc biệt, độ phân giải 2K QHD hiển thị nhiều không gian cho nội dung trên màn hình, đồng thời cung cấp các chi tiết tuyệt đẹp ngay cả ở các phông chữ nhỏ hơn. Dù làm việc hay giải trí, GW90QT đều dễ dàng thể hiện độ tương phản sắc nét và hình ảnh sống động như thật.

Ngoài ra, với người dùng Macbook, chế độ M-book chuyên dụng giúp giảm thiểu sự khác biệt về màu sắc giữa hai màn hình, từ đó hạn chế mức độ sai lệch khi ra sản phẩm cuối cùng.

mac mode

Kết nối Daisy Chain cho không gian làm việc gọn gàng

GW90QT được trang bị tính năng Daisy Chain với bộ chia cổng USB-C dành riêng cho việc truyền dữ liệu và tích hợp sạc pin với công suất lên tới 65W, đem lại tiện ích 5 trong 1: HDMI, cổng hiển thị DisplayPort, USB và cổng âm thanh (audio port) cho phép chuyển đổi nhanh giữa các thiết bị ngoại vi và thiết bị thông minh khác.

Daisy Chain cho phép kết nối thông thường hoặc kết nối Daisy của 2 – 4 màn hình thông qua cổng DisplayPort. Đồng thời, màn hình còn hỗ trợ cổng USB-C với công suất 60W, cho phép bạn không chỉ dễ dàng kết nối với các thiết bị như máy tính xách tay, máy tính bảng hoặc MacBook mà còn có thể sạc pin cùng lúc, giúp không gian làm việc trở nên gọn gàng.

thiet lap da man hinh

Ngoài ra, GW90QT còn tích hợp loa lọc tiếng ồn cùng micro khử tiếng ồn đảm bảo chất lượng đàm thoại từ xa rõ ràng hơn, từ đó tăng khả năng linh hoạt và tối ưu hóa năng suất làm việc nhóm.

Chức năng công thái học và công nghệ Eye-CareU bảo vệ mắt

Với thiết kế công thái học đặc biệt, GW90QT hỗ trợ tính năng điều chỉnh độ cao và trục xoay linh hoạt nhằm tối ưu khả năng sắp xếp nhiều màn hình nối tiếp theo các hướng khác nhau giúp tối đa năng suất thực hiện. Bên cạnh đó, màn hình còn được thiết kế để xoay được cả 2 chiều, giúp màn hình dọc có thể được đặt ở bên trái hoặc bên phải, tùy thuộc vào sở thích của bạn!

chan ghe dieu chinh do cao

BenQ cũng là tập đoàn đi đầu trong công nghệ bảo vệ mắt BenQ Eye-Care bao gồm Công nghệ giảm tối thiểu ánh sáng xanh (Low Blue Light Technologies), Khử nhấp nháy TUV Rheinland-certified Flicker-Free và Điều chỉnh độ sáng thông minh thế hệ 2 (Brightness Intelligence Gen2), hỗ trợ tùy chỉnh tự động mức sáng màn hình theo nhu cầu. Ngoài ra, chế độ bù hiển thị màu yếu và mô phỏng đọc sách giấy cũng được tích hợp bằng phần mềm BenQ Eye-CareU giúp bảo vệ thị giác trong thời gian làm việc dài.

che do thong minh

Thông qua phần mềm BenQ Eye-CareU, tất cả các tính năng của Eye-Care có thể được điều chỉnh trực tiếp trên màn hình máy tính chỉ bằng một cú nhấp chuột đơn giản. Bạn cũng có thể đặt hẹn giờ hoặc nhận thông báo khi ánh sáng xung quanh không đủ.
Với tất cả những tính năng đặc biệt này, GW2790QT và GW3290QT xứng đáng là màn hình tốt nhất dành cho lập trình viên, nhằm nâng cao hiệu suất làm việc và bảo vệ sức khỏe đôi mắt lâu dài!

Tìm hiểu thêm về màn hình BenQ, vui lòng truy cập: https://www.benq.com/vi-
vn/monitor/home/gw2790qt.html

Mua ngay sản phẩm tại đây: https://shopee.vn/product/276976573/16898015048/

Truy cập ngay việc làm IT đãi ngộ tốt trên TopDev

Prompt Engineer là gì? Cách viết Prompt Engineer đúng chuẩn

Prompt Engineer là gì?

Chà, Prompt Engineer là gì, lại vừa mới đảo cánh ra một vị trí mới trong năm 2023 khi mà AI bùng nổ. Đi kèm với sự phát triển vượt bậc của AI thì prompt engineer cũng trở nên hot hơn bao giờ hết

Vậy prompt engineer là gì? Những công việc nào được Prompt Engineer phụ trách!

Tất cả sẽ được giải thích cụ thể và tường tận qua bài viết dưới đây.

1. Định nghĩa về Prompt Engineer

Prompt engineering is the practice of designing inputs for generative AI tools that will produce optimal outputs. Prompt engineer là phương pháp thiết kế đầu vào cho các công cụ AI tổng hợp để tạo ra kết quả tối ưu.

Nói công cụ đầu vào thì hơi mơ hồ, chi bằng cho anh em một ví dụ cụ thể. Ví dụ anh em nấu bún bò, làm bát cho ấm bụng ngày đông. Nếu bò ở nhà có sẵn trong tủ lạnh, cắt lát đem nấu, ok hơi dai tí nhưng ít nhất bún còn có bò. Còn hơn bún không.

Prompt Engineer là gì?
Nguồn ảnh / Source: zaper.com

Vậy còn nếu ra chợ mua được bò thăn nội, chà bát phở lúc này còn ngon gấp mấy lần. Cao hơn tí nếu có bò wagyu, xương thì đem đi nấu nước, bò thì cắt lát bỏ thêm vào phở. Lúc này thì tuyệt cú mèo.

Ví dụ về bò cho ta thấy nguyên liệu đầu vào ảnh hưởng như thế nào tới kết quả đầu ra. Prompt Engineer cũng vậy, họ là người đem đầu vào tốt hơn cho các công cụ AI. Mà đầu vào tốt hơn sẽ có kết quả tốt hơn.

  Dân IT có thể được ChatGPT hỗ trợ code tự động hóa như thế nào?

  5 công cụ AI hữu ích trong năm 2024 dành cho Developer

2. Đầu vào tốt hơn

Về cơ bản, công việc của Prompt Engineer đúng như mục đích anh em mình đã xem ở trên. Hằng ngày họ sẽ thiết kế, tối ưu đầu vào cho các công cụ AI, mục đích đem lại hiểu quả cao hơn khi sử dụng các công cụ AI.

Prompt Engineer là gì?
Một đoạn mô tả về cách mà prompt engineer sử dụng Midjourney để tạo ra hình ảnh tốt hơn. Nguồn ảnh: wikipedia.com

Một đầu vào tốt sẽ đem lại một đầu ra tốt từ các công cụ AI được phát triển ngày nay. Một số đầu ra thường được giao việc cho prompt engineer bao gồm

    • Viết email tiếp thị, quảng cáo
    • Phân tích và tổng hợp văn bản
    • Tương tác với khách hàng thông qua chatbot
    • Tạo ra tác phẩm nghệ thuật kĩ thuật số
    • Sáng tác nhạc

    Việc làm AI lương thưởng hấp dẫn, mới nhất dành cho bạn!

    3. Một số ví dụ

    Để hiểu hơn về thứ mà prompt engineer thực sự làm. Ví dụ anh em đang muốn một mô hình AI, xây dựng để quảng bá hội thảo lập kế hoạch tài chính của ông sếp CFO sắp tới. Thời nào rồi mà còn ngồi làm tay.

    Tất nhiên luôn cần sự hỗ trợ của ChatGPT. Nếu không có prompt engineer, đơn giản anh em chỉ viết “Write a social post advertising a class.” Chỉ đơn giản và viết một bài viết trên mạng xã hội quảng cáo cho một lớp. Kết quả anh em nhận được sẽ là:

    **Elevate Your Skills: Join Our Class!**
    Unlock new knowledge, connect with experts, and embrace growth. Limited spots available—reserve yours now!
    #LearnWithUs #SkillBuilding #ClassTime

    Viết thì cũng được, nhưng dạng văn bản như thế này khá là chung chung

    Nếu qua tay mọt ông Prompt Engineer, câu prompt truyền lại cho ChatGPT sẽ được sửa lại “Write a short social post advertising a financial-planning workshop with the CFO of Acme, Inc.”. Lần này ông engineer define rõ ràng social post để quảng cáo topic của nó là financial và có cả tên của CFO của Acme

    Rõ ràng đầu vào lần này tốt hơn hẳn, mà đầu vào tốt thì kết quả của AI đem ra cũng tốt hơn.

    **Master Your Finances with the CFO of Acme, Inc.!**
    Get ready to take charge of your financial future! Join our upcoming Financial Planning Workshop featuring the CFO of Acme, Inc. Gain insights, strategies, and expert advice to secure your financial success.
    Limited spots available—don't miss this exclusive opportunity. Reserve your seat today and pave the way to financial freedom!
    #FinancialPlanning #ExpertAdvice #SecureYourFuture

    Câu cú lần này khác hẳn, phấn khích hơn, thu hút được nhiều người hơn khi đăng lên nền tảng mạng xã hội.

    Ví dụ trên đây cho ta thấy tầm quan trọng của Prompt Engineer, người cung cấp những đầu vào tốt hơn cho AI, giúp kết quả từ AI cũng trở nên tốt hơn, phục vụ được nhiều nhu cầu và mục đích hơn.

    Prompt Engineer là gì?
    Khoá học về prompt engineer – Nguồn ảnh / Source: promptengineering.org

    4. Tham khảo

    Cảm ơn anh em đã đọc bài, thank you for your time – Happy coding!

    Tác giả: Kiên Nguyễn  

    Xem thêm:

    Tìm kiếm việc làm IT mới nhất tại TopDev!

    So sánh Golang và NodeJS: Nên chọn nền tảng nào cho dự án của bạn?

    So sánh Golang và NodeJS

    Hiện nay anh em Dev có rất nhiều sự lựa chọn ngôn ngữ lập trình để phát triển Web, 2 trong số đó là NodeJSGolang. Cùng được giới thiệu vào năm 2009, một thời gian dài trước đây, NodeJS luôn tỏ ra vượt trội về thị phần hơn so với Golang. Tuy nhiên những năm gần đây, với sự thay đổi về công nghệ thì Golang đang cho thấy nhiều ưu điểm hơn nhất là về hiệu năng. Bài viết này chúng ta cùng nhau so sánh Golang và NodeJS xem đâu sẽ là lựa chọn của bạn cho dự án Web sắp tới nhé.

    Golang là gì?

    Golang, còn được gọi là Go, là ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google. Go là một ngôn ngữ strongy typed (kiểu mạnh) và có cú pháp giống với ngôn ngữ lập trình C, tập trung vào sự đơn giản và dễ đọc. Được thiết kế với sự đơn giản, hiệu quả và đáng tin cậy giúp nó trở thành lựa chọn phổ biến để xây dựng các hệ thống hiệu suất cao, quy mô lớn.

    Golang là gì?

    Các nhà phát triển khuyên sử dụng Golang trong những dự án bao gồm:

    • Xây dựng các hệ thống có tính đồng bộ cao
    • Phát triển ứng dụng mạng (network applications)
    • Xây dựng các công cụ dòng lệnh (command-line tools)

    Ưu điểm của Golang

    • Tính đồng thời (concurrency): Go hỗ trợ tích hợp đồng thời, có thể tận dụng được tối đa khả năng của các CPU đa lõi
    • Hiệu suất cao: Go là ngôn ngữ biên dịch cùng với nhiều công cụ theo dõi tích hợp giúp tối ưu hóa hiệu suất
    • Cú pháp đơn giản: cú pháp của Go đơn giản giúp dễ học và sử dụng
    • Bộ thư viện chuẩn lớn: Bộ thư viện chuẩn của Golang rất lớn, ngoài ra bạn cũng dễ dàng tích hợp các thư viện của bên thứ 3 để sử dụng một cách nhanh chóng
    • Khả năng mở rộng tốt: mô hình đồng thời và sử dụng bộ nhớ hiệu quả giúp Go dễ dàng mở rộng

      7 sai lầm thường gặp khi học Nodejs

      Thủ thuật xử lý lỗi trong Golang

    Nhược điểm của Golang

    • Không dễ để thành thạo: Mô hình đồng thời và cách thức xử lý lỗi trong Go khác biệt so với các ngôn ngữ lập trình khác, vì thế sẽ gây khó khăn cho các lập trình viên lúc ban đầu
    • Bộ thu gom rác: Mặc dù Go có bộ thu gom rác riêng giúp quản lý bộ nhớ, nhưng ngược lại cũng có thể là nguyên nhân gây ra ảnh hưởng hiệu năng trong một số trường hợp
    • Hạn chế trong việc hỗ trợ GUI: Go tập trung vào hiệu năng, và ngược lại thì nó hỗ trợ về phần giao diện khá hạn chế so với các ngôn ngữ khác
    • Hệ sinh thái đang phát triển: Rõ ràng so với các ngôn ngữ khác thì Go chưa thực sự phổ biến, cũng vì thế mà cộng đồng lập trình viên hỗ trợ còn hạn chế.

    NodeJS là gì?

    NodeJS là một môi trường thực thi đa nền tảng mã nguồn mở được xây dựng trên V8 JavaScript Engine của Chrome. Một trong những tính năng chính của NodeJS là mô hình I/O không chặn, hướng sự kiện giúp cho phép nó xử lý số lượng lớn kết nối đồng thời mà không ảnh hưởng đến luồng chính.

    NodeJS là gì?

    Lý do mà NodeJS được ưu chuộng là khả năng sử dụng JavaScript cho cả phía client và server, giúp lập trình viên trở thành một Fullstack Web Developer chỉ với một ngôn ngữ lập trình. NodeJS thường được sử dụng cho việc xây dựng các ứng dụng phía server (máy chủ), phù hợp với các bài toán xây dựng và phát triển ứng dụng thời gian thực như:

    • Ứng dụng chat
    • Game online
    • Ứng dụng chứng khoán

    NodeJS cũng được lựa chọn để xây dựng APIs, cho phép các ứng dụng giao tiếp với nhau qua Internet. Ngoài ra, nó còn có thể được dùng để xây dựng các ứng dụng dòng lệnh (command-line tools), hay viết các ứng dụng dành cho việc kết nối với các thiết bị IoT hoặc ứng dụng dành cho desktop.

    Tuyển NodeJS lương cao hấp dẫn cho bạn

    Ưu điểm của NodeJS

    • Hiệu suất cao: NodeJS được xây dựng trên V8 Engine với khả năng xử lý nhanh trên một lượng lớn các truy cập, đồng thời không tiêu tốn quá nhiều tài nguyên
    • I/O hướng sự kiện và không bị chặn: khả năng xử lý số lượng lớn kết nối
    • Dễ học: JavaScript là một ngôn ngữ dễ học, dễ hiểu và được sử dụng rộng rãi
    • Cộng đồng hỗ trợ lớn: NodeJS có cộng đồng hỗ trợ rất lớn mạnh với đông đảo thành viên tham gia

    Nhược điểm của NodeJS

    • Single-Threaded: NodeJS chỉ sử dụng một luồng duy nhất để xử lý tất cả các yêu cầu đến, mặc dù có những cải thiện nhưng việc này vẫn gây khó khăn cho các hoạt động I/O bị chặn hoặc yêu cầu mạng
    • Callback Hell: cơ chế xử lý của NodeJS khiến nó phải sử dụng rất nhiều callback, điều này có thể khiến source code trở nên khó đọc mà nếu quản lý không tốt sẽ dễ sinh ra các vòng lặp callback.
    • Hỗ trợ hạn chế đa lõi: NodeJS không được tối ưu hóa để xử lý đa lõi dẫn đến hạn chế khả năng xử lý trên các hệ thống đa lõi

    So sánh giữa Golang và NodeJS

    Golang và NodeJS là 2 công nghệ giúp phát triển ứng dụng ở phía máy chủ (server-side); vậy đâu là lý do để bạn lựa chọn một trong 2 công cụ trên cho dự án tiếp theo của bạn:

    So sánh giữa Golang và NodeJS

    • Về ngôn ngữ và cú pháp: Golang là ngôn ngữ kiểu tĩnh (statically-typed) với cú pháp kiểu C; trong khi JavaScript là ngôn ngữ kiểu động với cú pháp linh hoạt hơn.
    • Tính đồng thời (Concurrency): Golang được thiết kế là một ngôn ngữ đồng thời, hỗ trợ tích hợp các tính năng xử lý đồng thời như Goroutines. Còn NodeJS sử dụng mô hình đơn luồng, mô hình hướng sự kiện với I/O non-blocking.
    • Về mặt hiệu năng: Cả 2 đều được đánh giá cao với hiệu năng tốt; tuy nhiên đối với những tác vụ liên quan đến CPU như tính toán nặng thì Golang tỏ ra hoạt động tốt hơn NodeJS. NodeJS sẽ phù hợp hơn cho việc xử lý số lượng lớn kết nối đồng thời.
    • Môi trường phát triển: Golang yêu cầu một trình biên dịch và một bước build để tạo tệp thực thi; trong khi đó NodeJS là sử dụng ngôn ngữ thông dịch có thể chạy trực tiếp từ dòng lệnh.
    • Quản lý gói: Golang có hệ thống quản lý gói tích hợp cho phép bạn dễ dàng quản lý các phần phụ thuộc và đảm bảo rằng mã nguồn của chúng luôn được cập nhật. NodeJS sử dụng NPM (Node Package Manager), một công cụ riêng biệt được cài đặt và cấu hình.
    • Cộng đồng: cả Golang và NodeJS đều có cộng đồng phát triển lớn, với sự hỗ trợ nhiệt tình. Mặc dù vậy thì NodeJS với sự phổ biến hơn vẫn có cộng đồng lớn hơn so với Golang.

    Tổng kết

    Việc lựa chọn giữa Golang hay NodeJS phụ thuộc rất nhiều vào bài toán mà bạn đang cần phải giải quyết cùng với chuyên môn từng thành viên trong nhóm của bạn. Golang cung cấp hiệu năng mạnh mẽ cho các tác vụ liên quan đến CPU, trong khi đó NodeJS phù hợp với các tác vụ liên quan đến I/O; cả 2 đều là sự lựa chọn tốt cho việc xây dựng ứng dụng web phía server của bạn. Bằng cách nắm được những ưu và nhược điểm của từng công nghệ, bạn sẽ có thể đưa ra quyết định sáng suốt và xây dựng được ứng dụng chất lượng cao đáp ứng nhu cầu của mình. 

    Tác giả: Phạm Minh Khoa

    Xem thêm:

    Xem thêm Việc làm IT hấp dẫn trên TopDev

    So sánh Laravel và Phalcon – Framework nào tốt hơn?

    So sánh Laravel và Phalcon - Framework nào tốt hơn?

    Bài viết được sự cho phép của BBT Tạp chí lập trình

    Gần đây mới xin được việc, công ty làm về Phalcon nên mình cũng dành khá nhiều thời gian để tìm hiểu về nó. Dù trước kia học Laravel là chủ yếu (nhưng xin việc mấy chỗ đó lại từ chối) nên mình dịch bài này để tìm hiểu và so sánh giữa 2 framework chút chơi. Bài viết này so sánh Laravel và Phalcon, khi so sánh cuối mối phần so sánh sẽ có tổng điểm để dễ phân biệt.

    1. Cài đặt và khởi đầu

    Cài đặt và bắt đầu với Laravel rất dễ, bạn chỉ cần dùng composer để cài đặt các gói và sau đó có thể bắt đầu một dự án mới. Bạn cũng có thể copy các file Laravel rồi sau đó bắt đầu chỉnh sửa, code…

    Cài đặt Phalcon khó hơn, thực tế mình đã không thể cài đặt thành công Phalcon 4 và phải nhờ mới cài được Phalcon 3.4. Đó là vì Phalcon không được viết bằng PHP (dù bạn sẽ code bằng php 100%). Nó là một phần mở rộng của C, bạn sẽ cần cài nó trên server hoặc local server đẻ có thể dùng nó yêu cầu biên dịch hoặc tải các bản biên dịch sẵn và kich hoạt thủ công trên web server của bạn.

    Điều này sẽ gây nhiều khó khăn nếu không thành thạo. Phalcon cũng cung cấp một công cụ là Phalcon devtools để giúp bạn tạo dự án và chỉnh sửa code.

    Phải nói thêm là khi tạo dự án, Phalcon thường nhanh hơn Laravel.

    Dó cài đặt Phalcon phức tạp hơn nên phần này Laravel thắng.
    Laravel : 1
    Phalcon: 0

    2. Cấu trúc file

    Đây là phần rất quan trọng với các lập trinh viên.

    Laravel thực sự tổ chức khá tốt, nhưng có một số vấn đề đó là phần model được đặt trong folder gốc app, model được dùng trong một số folder khác như controller… Nó không thực sự clean lắm. Ngoài ra, cấu trúc file có thể tổ trức tốt hơn ở một số phần nữa. Và Laravel là một framework rất nặng do có nhiều file mặc định.

    Phalcon có một chút khác biệt, nó được cài đặt như một phân mở rộng của C trên máy chủ, nên không có file nào của Phalcon trong dự án của bạn, điều này khiến cho cấu trúc thư mục thật sự clean và đơn giản. Bạn có thể dùng các kỹ thuật design pattern của bạn với Phalcon hoặc dùng các các cấu trúc mặc định do Phalcon devtools cung cấp. Vì bạn chỉ có các file bạn cần trong dự án của bạn nên việc upload hay copy, di chuyển nó sẽ rất đơn giản. Bên dưới là cấu trúc thư mục của Phalcon.

    So sánh giữa Laravel và Phalcon

    Cấu trúc thư muc của Laravel dài hơn rất nhiều.

    So sánh giữa Laravel và Phalcon

    Dù vậy cấu trúc này có thể không ảnh hưởng nhiều do ta thường chỉ làm việc với một vài folder, file chứ không dùng hết. Điểm cho phần này là Phalcon nhỉnh hơn:

    Laravel: 1 — Phalcon: 1

    3. Tốc độ và hiệu suất

    So sánh một cách đơn giản. PHP là ngôn ngữ được viết bằng C, một vài phần là C++, nó rất nhanh nhưng PHP tự nó sẽ chậm hơn C/C++ một chút. Laravel được viết bằng PHP, còn Phalcon viết bằng C, nên có thể nói Phalcon nhanh hơn.

    Điểm cho phần này: Laravel : 1 — Phalcon: 2

      Những tính năng cao cấp trong Laravel mà có thể bạn chưa biết

      Cấu hình Laravel Queue trên môi trường production

    4. Độ phức tạp

    Mất bao lâu để có thể học và xây dựng một ứng dụng là vấn đề quan trọng. Laravel thực sự rất dễ học, các tài liệu của Laravel và hướng dẫn của nó thất sự rất dầy đủ, chi tiết, dễ tiếp cận. Laravel rất dễ hiểu ngay cả với người mới.

    Phalcon cũng có các tài liệu tốt trên web của nó. Nhưng thực sự nó khá phức tap cả với người dùng đã có nền tảng chứ chưa nói đến người mới. Phalcon cũng có video hướng dẫn nhưng không nhiều như Laravel.

    Phần này Laravel được đánh giá cao hơn. Tuy nhiên nếu đã thành thạo, Laravel hay framework nào đó dùng MCV thì việc chuyển qua Phalcon sẽ dễ hơn hẳn.

    Laravel: 2 — Phalcon: 2

    5. Kiến trúc

    Hầu hết các framework hiện nay đều dùng kiến trúc MVC (model – view – controller) vì nó dễ sử dụng và được chấp nhận rộng rãi trong cộng đồng lập trình.

    Laravel cũng sử dụng MVC và sử dụng nó rất tốt. Tuy nhiên khi ứng dụng của bạn ngày càng phát triển lớn hơn và bạn gặp vấn đề với MVC, lúc này sẽ cần tới HMVC (Hỉearchical MVC), đây là một mô hình mạnh mẽ, được cải tiến từ MVC để chuyên dùng cho các hệ thống lớn. Gải sử bạn có một trang web với 2 phần blog và diễn đàn, HMVC cho phép chia 2 phần này thành các thành phần MVC để bạn có thể phát triển riêng nhưng vẫn dùng đươc chung với nhau.

    Phalcon cho phép triển khau kiến trúc như vậy trong nó còn Laravel thì hạn chế hơn. Nên phần này Phalcon thắng.

    Laravel : 2 — Phalcon: 3.

    Xem thêm nhiều chương trình tuyển dụng Laravel hấp dẫn trên TopDev

    6. Kết nối cơ sở dữ liệu

    Cơ sở dữ liệu là một phần quan trọng của mọi ứng dụng. Và cả Laravel và Phalcon đều cung cấp các giải pháp rất tốt. Cũng dùng ORM (Object relarional mapping) để tải hoặc lưu dữ liệu dễ dàng.

    Tuy nhiên Laravel có Eloquent để tận dụng các model khi làm việc với cơ sở dữ liệu, Phalcon cũng có công cụ tương tự nhưng thực sự Eloquent dễ dùng hơn.

    Có một công cụ tương tự ORM là ODM (Object document maping) thường dùng cho các CSDL NoSQL như MongoDB. Tiếc là Laravel không hộ trợ nó, để dùng, bạn cần cài them các gói mở rộng. Phalcon thì có hỗ trợ. Vậy nên điểm sau phần này là:

    Laravel : 3 — Phalcon: 4.

    7. Routing và Controller

    Với web app thì mọi vấn đề điều liên quan đến routing. Cả 2 frameworks đều cung cấp các phương thức định tuyến và có khả năng xử lý các HTTP method phổ biến như POST, GET,….

    Định tuyến trong Laravel rất đơn giản, có thể nói Laravel biết nhưng gì bạn muốn và cung cấp cho bạn những gì cần thiết để định tuyến trở nên dễ dàng. Phalcon thì khó định tuyến hơn, một vấn đề thường gặp với định tuyến với Phalcon là thiếu các tham số tùy chọn, nên đôi khi bạn cần định tuyến 2 lần, một với tham số và 1 không có nó.

    Cả hai tham số đều hỗ trợ các tiền tố và nhóm route. Tuy nhiên Laravel hỗ trợ định tuyến cả với tên miền phụ, còn Phalcon thì không.

    Nên về phần định tuyến thì Laravel đã thắng. Điểm sau các phần là: Laravel: 4 — Phalcon: 4

    8. Template engines

    Khi nói tới một ứng dụng thì phần front-end là một trong những phần quan trọng nhất.
    Template engines là các công cụ giúp hỗ trợ bạn kết nói back-end với HTML/CSS và đối khi cả JS để nâng cao trải nghiệm cho ứng dụng của bạn.

    Laravel cung cấp một công cụ mạnh mẽ là Blade, còn Phalcon sử dụng Volt, một phát triển từ Twig( từ Symfony) nhưng đơn giản hơn và được biên dịch trước. Cả Blade và Volt đều tốt nhưng Blade tiện dụng hơn do các chức năng và phương thức có sẵn. Còn Volt thì nhanh hơn do có được biên dịch trước. Blade cũng có thể lưu trong cache để nhanh hơn nhưng bạn cần thiết lập để Laravel làm nó.

    Thật ta tất cả những gì ta cần từ template engines là giúp chúng ta xây dựng front-ent nhanh chóng và cả volt và blade đều làm tốt nhưng volt thì cleaner hơn blade. Điểm phần này cho Phalcon:

    Tổng điểm: Laravel: 4 — Phalcon: 5.

    9. i18n

    Một ứng dụng có thể cần quốc tế hóa, hỗ trợ nhiều ngôn ngữ và nếu không có công cụ rất khó để làm điều đó. Nhiều ứng dụng có thể không cần nhưng với frameworks vẫn rất cần hỗ trợ. Và cả hai đều hỗ trợ tốt việc này.

    Tổng điểm: Laravel: 5 — Phalcon: 6.

    10. Security

    Bảo mật là thứ sẽ thay đổi cuộc sống của bạn, tùy vào việc bạn làm nó tốt hay tệ. Khi viết một ứng dụng, bạn cần có trách nhiệm đảm bảo không ai có thể gian lận và sử dụng chức năng của ứng dụng theo những cách ngoài dự định.

    Cả Laravel và Phalcon đều làm rất tốt việc này, chúng đều có thể giúp phòng thủ trước hầu hết các cuộc tấn công, đặc biệt là các loại tấn công phổ biến như XSS và tiêm SQL. Tuy nhiên, Laravel cung cấp một cách tốt hơn để dùng CSRF token còn Phalcon sẽ khó hơn và cần thiết lập nó. Nên Laravel được điểm lần này.

    Tổng điểm: Laravel: 6 — Phalcon: 6

    11. Middleware

    Bạn cần làm gì khi bạn muốn chạy một công việc nào đó mỗi khi người dùng thực hiện một request nào đó tới ứng dụng của bạn? Dĩ nhiên đó là Middleware. Middleware rất quan trọng trong các ứng dụng phức tạp. Và phần này Laravel thắng vì Phalcon không hỗ trợ middleware. Nếu muốn dùng, bạn cần thiết lập nó trong phương thức __contruct() của controller.

    Tổng điểm: Laravel: 7 — Phalcon: 6.

    12. API Restful

    Một số lập trình viên sử dụng back-end chỉ để dùng cho các API và để thiết kế các hệ thống Restful API. Laravel hỗ trợ việc này, và cung cấp các công cụ để làm tố giúp bạn thực hiện nó bao gồm cả axios và hỗ trợ SCRF.

    Với Phalcon bạn cần thiết lập respone của API controller, chuyển đổi nó thành dạng JSON (Laravel mặc định làm điều đó) và cập nhật CSRF token để request sau không bị lỗi. Nên điểm phần này cho Laravel:

    Tổng điểm: Laravel: 8 — Phalcon: 6.

    13. Tùy biến

    Khi mọi thứ phát triển phức tạp hơn, cao hơn và bạn muốn tùy biến framework của bạn. Điều này thì Phalcon hỗ trợ tốt hơn với Zephir, một ngôn ngữ lập trình cấp cao để viết các phần mở rộng cho PHP cho các lập trình viên PHP mà không cần kiến thức về C.

    Nên khi bạn tùy biến Phalcon bạn vẫn có thể đảm bảo tốc độ của nó, còn khi bạn tùy biến Laravel, bạn cần dùng PHP, điều này khiến cho có thêm nhiều tác vụ được chạy trong ứng dụng và làm tốc độ giảm. Phalcon thắng trong việc tùy biến.

    Tổng điểm: Laravel: 8 — Phalcon: 7.

    14. Cộng đồng

    Điều gì xảy ra khi bạn gặp khó khăn với ứng dụng của bạn, bạn tìm kiếm trên google và thường thì kết quả sẽ dẫn đến Stack overflow. Đó là lúc cộng đồng quan trọng. Một cộng đồng lớn sẽ làm vấn đề của bạn trở lên nhỏ hơn. Khi có cộng đồng lớn, nhiều khả năng vấn đề của bạn đã có người gặp trước đây và khi đó có thể sẽ có lời giải. Rõ ràng cộng đồng Laravel lớn hơn. Nên Laravel thắng.

    Tổng điểm: Laravel: 9 — Phalcon: 7.

    15. Dễ sử dụng

    Một lần nữa đây là điều hay được nhắc đến về Laravel. Rất dễ bắt đầu với Laravel, nó hỗ trợ những cách code hay, đơn giản và dễ học. Phalcon thì yêu cầu lập trình viên cấp cao hơn và họ cảm thấy Laravel quá magic với họ (magic là thuật ngữ dùng khi môt tả việc người dùng không thấy những việc framework làm cho họ ). Nên một lần nữa Laravel thắng.

    Tổng điểm: Laravel: 10 — Phalcon: 7.

    16. Coding style

    Đây là quan điểm khác cá nhân nhưng mình thấy cách code của Phalcon thường “clean” hơn Laravel. Và cách code của Phalcon cũng giúp người khác dễ đọc hơn khi lần đầu đọc code của bạn. Các pattern Phalcon cung cấp cũng cleaner hơn trong các file config và cả các thứ khác.

    Tổng điểm: Laravel: 10 — Phalcon: 8.

    17. Deployment

    Điều cuối cùng cần làm với một ứng dụng là làm cho nó hoạt động, nếu bạn không làm nó thì giống như là bạn không làm gì cả. Đây là một trong những bước quan trọng nhất.

    Laravel được hỗ trợ bởi 90% các hosting service , nên bạn không cần thực hiện nhiều tùy chỉnh và thực hiện những việc khi bạn cài đặt ứng dụng trên hosting service. Bạn chỉ cần tải nó lên.

    Deploy một ứng dụng Phalcon không khó hơn Laravel , đôi khi có thể dễ dàng hơn nếu bạn có thể tìm thấy một vào máy chủ có hỗ trợ cài đặt vài tiện ích mở rông của Phalcon trừ khi bạn cần dùng VPS để triển khai ứng dụng của bạn, bao gồm cả việc cài đặt , thiết lập tùy chỉnh cần thiết và biên dịch.

    Nhìn chung Deploy ứng dụng Phalcon khiến bạn mất nhiều thời gian và tiền bạc hơn Laravel. Nên Laravel được điểm.

    Tổng điểm: Laravel: 11 — Phalcon: 8.

    18. Tài nguyên Front-end

    Phần này không thực sự là một phần của framework nhưng cũng nên nhắc tới. Dùng Laravel rất dễ chịu khi có nhiều hỗ trợ như Webpack . Laravel cũng hỗ trợ Vue và React cùng với việc có thể dùng ngay Bootstrap.

    Phalcon thì hầu như chẳng có mấy tài nguyên về front-end ☹. Nên dù không tính điểm thì Laravel vẫn thắng lần này.

    Kết luận

    Tổng kết lại với điểm số Laravel: 11 — Phalcon: 8. Laravel đã thắng. Nhưng sự khác biệt điểm số không quá lớn. Rõ ràng cả Laravel và Phalcon có ưu điểm riêng, tuy nhiên với một chút ít trải nghiệm cả 2 framework này, mình nhận thấy nếu biết về 1 framework thì việc chuyển qua framework kia khá dễ dàng trường hợp của mình là từ Laravel sang Phalcon).

    Bài viết gốc được đăng tải tại kienthuclaptrinh.vn

    Có thể bạn quan tâm:

    Tham khảo thêm các vị trí tuyển dụng ngành IT tại Topdev

    Time to hire là gì? Mẹo cải thiện chỉ số Time to hire cho HR

    Time to hire là gì? Mẹo cải thiện chỉ số Time to hire cho HR

    Time to hire là một thuật ngữ đóng vai trò quan trọng trong việc quản lý và đánh giá quy trình tuyển dụng. Hiện nay, đa phần các công ty IT đều chú trọng đến chỉ số này để đánh giá và tối ưu hiệu suất tuyển dụng. Vậy Time to hire là gì? Và làm thế nào để tối ưu được chỉ số Time to hire? Hãy cùng TopDev tìm hiểu chi tiết về chủ đề này trong bài viết dưới đây nhé!

    Time to hire là gì? Vì sao lại quan trọng với ngành HR?

    Time to hire (Thời gian tuyển dụng) là một chỉ số quan trọng trong hoạt động tuyển dụng nhân sự. Chỉ số này thể hiện khoảng thời gian từ khi một vị trí tuyển dụng được mở đến khi ứng viên trúng tuyển và bắt đầu làm việc.

    Time to hire là gì

    Thời gian tuyển dụng ngắn giúp doanh nghiệp tiết kiệm chi phí, tăng hiệu quả hoạt động và giữ chân nhân tài. Ngược lại, thời gian tuyển dụng dài sẽ khiến doanh nghiệp gặp nhiều khó khăn, như:

    • Tăng chi phí tuyển dụng: Doanh nghiệp phải trả lương cho các vị trí tuyển dụng đang trống, chi phí cho các công cụ tuyển dụng, chi phí cho các buổi phỏng vấn,…
    • Giảm hiệu quả hoạt động: Doanh nghiệp phải tạm thời ngừng hoạt động của các vị trí tuyển dụng đang trống, dẫn đến giảm hiệu quả hoạt động của doanh nghiệp.
    • Mất cơ hội tuyển dụng nhân tài: Các ứng viên tiềm năng có thể tìm được cơ hội việc làm khác nếu thời gian tuyển dụng quá lâu.

    Vì vậy, time to hire là một chỉ số quan trọng mà các nhà tuyển dụng nhân sự (HR) cần quan tâm. HR cần tìm cách để cải thiện chỉ số này, giúp doanh nghiệp tiết kiệm chi phí, tăng hiệu quả hoạt động và giữ chân nhân tài.

      7 chỉ số đo lường trải nghiệm ứng viên cực quan trọng với doanh nghiệp

      Giải mã bí quyết quản lý nhân viên IT là Gen Z thành công

    Công thức tính Time to hire

    Time to hire được tính theo công thức sau:

    Time to hire = Số ngày kể từ khi đăng tin tuyển dụng đến khi ứng viên chấp nhận thư mời làm việc (Offer) hoặc đến khi ứng viên đi làm (Onboard)

    Công thức tính Time to hire

    Tùy thuộc vào mục tiêu của doanh nghiệp, Time to hire có thể được tính theo một trong hai cách sau:

    Tính từ khi đăng tin tuyển dụng đến khi ứng viên chấp nhận thư mời làm việc (Offer): Cách tính này thường được sử dụng bởi các doanh nghiệp có quy trình tuyển dụng ngắn gọn, không có nhiều vòng phỏng vấn.

    Tính từ khi đăng tin tuyển dụng đến khi ứng viên đi làm (Onboard): Cách tính này thường được sử dụng bởi các doanh nghiệp có quy trình tuyển dụng dài, có nhiều vòng phỏng vấn hoặc cần thời gian để hoàn thiện các thủ tục onboarding.

    Ngoài ra, Time to hire cũng có thể được tính theo từng vị trí tuyển dụng, từng nhóm ứng viên hoặc theo từng kênh tuyển dụng. Điều này giúp doanh nghiệp có cái nhìn tổng quan hơn về tình hình tuyển dụng và có những biện pháp cải thiện phù hợp.

    Việc làm IT Fresher dành cho bạn

    Những yếu tố nào ảnh hưởng đến Time to hire?

    Dưới đây là một số yếu tố có thể ảnh hưởng đến chỉ số Time to hire:

    • Quy trình tuyển dụng phức tạp: Khi quy trình có quá nhiều bước, kiểm tra chi tiết và thủ tục phê duyệt phức tạp, thì tự động thời gian tuyển dụng sẽ tăng lên. Việc cân nhắc giữa đảm bảo chất lượng tuyển dụng và giảm bớt các bước không cần thiết trở nên quan trọng để tối ưu hóa Time to Hire.
    • Cạnh tranh từ thị trường: Mức độ cạnh tranh từ thị trường lao động cũng đóng góp lớn vào Time to Hire. Trong một môi trường cạnh tranh, doanh nghiệp cần phải nhanh chóng đưa ra quyết định để chiếm ưu thế trong cuộc đua tuyển dụng.
    • Số lượng và chất lượng ứng viên ứng tuyển: Nếu có nhiều ứng viên tốt và phù hợp, thì quá trình lựa chọn có thể diễn ra nhanh chóng. Ngược lại, khi có ít ứng viên hoặc chúng không đáp ứng yêu cầu, thời gian tuyển dụng có thể kéo dài.
    • Năng lực của nhà tuyển dụng (HR): Sự hiệu quả của việc tìm kiếm, đánh giá và chọn lọc ứng viên phụ thuộc lớn vào kinh nghiệm và chuyên môn của Recruiters.
    • Vị trí tuyển dụng: Các vị trí có nhu cầu đặc biệt về kỹ năng hoặc kinh nghiệm có thể đòi hỏi thêm thời gian để tìm kiếm và thu hút ứng viên phù hợp.
    • Công cụ tuyển dụng: Các công cụ tuyển dụng hiệu quả như ATS (Apply Tracking System) có thể giúp doanh nghiệp tiết kiệm thời gian và công sức trong quá trình tuyển dụng, rút ngắn thời gian tuyển dụng.

    Mẹo cải thiện chỉ số Time to hire hiệu quả cho HR

    Mẹo cải thiện chỉ số Time to hire

    Cải thiện chỉ số Time to Hire là một bài toán mà nhiều doanh nghiệp cần phải giải để tăng cường hiệu suất tuyển dụng. Dưới đây là một số bí quyết giúp cải thiện chỉ số Time to Hire hiệu quả:

    • Xác định nhu cầu tuyển dụng chính xác: HR cần xác định rõ nhu cầu tuyển dụng IT của doanh nghiệp, bao gồm vị trí, số lượng, yêu cầu công việc,… Điều này giúp HR lựa chọn được kênh tuyển dụng phù hợp và tiết kiệm thời gian.
    • Sử dụng các kênh tuyển dụng hiệu quả: Cần đa dạng hóa các kênh tuyển dụng để tiếp cận được nhiều ứng viên tiềm năng. Một số kênh tuyển dụng hiệu quả bao gồm: mạng xã hội, trang web tuyển dụng, sự kiện tuyển dụng,…
    • Tối ưu hóa quy trình tuyển dụng: HR cần tối ưu hóa quy trình tuyển dụng để loại bỏ những bước không cần thiết, giúp rút ngắn thời gian tuyển dụng. Ví dụ, doanh nghiệp có thể giảm số lượng vòng phỏng vấn, sử dụng các công cụ đánh giá trực tuyến để tiết kiệm thời gian cho cả ứng viên và nhà tuyển dụng.
    • Sử dụng các công cụ hỗ trợ tuyển dụng: Các công cụ hỗ trợ tuyển dụng có thể giúp HR tiết kiệm thời gian và công sức trong quá trình tuyển dụng. Ví dụ, doanh nghiệp có thể sử dụng các công cụ sàng lọc hồ sơ, đánh giá ứng viên trực tuyến hoặc các công cụ quản lý tuyển dụng để tiết kiệm thời gian và công sức.

    Tóm lại, quy trình tuyển dụng được tối ưu hóa, sự linh hoạt trong chiến lược tuyển dụng IT, chất lượng công việc hấp dẫn và khả năng sáng tạo của đội ngũ nhân sự đều đóng vai trò quan trọng trong việc đạt được một Time to Hire lý tưởng. Hy vọng rằng bài viết này đã giúp bạn hiểu được Time to Hire là gì và cách để tối ưu chỉ số quan trọng này. Theo dõi TopDev để cập nhật thêm các bài viết về HR và kiến thức lập trình hữu ích nhé!

    Xem thêm:

    Xem thêm việc làm ngành IT hàng đầu tại TopDev

    Sử dụng thuật toán quay lui giải bài toán phân tích số bằng JavaScript

    Sử dụng thuật toán quay lui giải bài toán phân tích số bằng JavaScript

    Thuật toán quay lui là một trong những câu hỏi thường gặp nhất khi phỏng vấn liên quan đến giải thuật trong lập trình. Trong đó bài toán phân tích số là một ví dụ thường được sử dụng để xem các ứng viên hiểu và triển khai kỹ thuật này như thế nào. Bài viết hôm nay chúng ta cùng nhau tìm hiểu về cách giải bài toán này sử dụng thuật toán quay lui với ngôn ngữ lập trình JavaScript nhé.

    Bài toán phân tích số

    Bài toán: Ở một quốc gia có n loại tiền gồm các mệnh giá a1, a2, …, an. Có những cách nào để lấy các tờ tiền sao cho tổng tiền của chúng là S. Trong đó mỗi mệnh giá có thể lấy được nhiều lần.

    Bài toán phân tích số

    Ví dụ chúng ta có 3 loại mệnh giá 10 đ, 20 đ và 50 đ, để lấy được ra số tiền 100 đ chúng ta có thể có một số cách như là :

    • 10 tờ 10 đ 
    • 2 tờ 50 đ 
    • 3 tờ 10 đ + 1 tờ 20 đ + 1 tờ 50 đ

      JavaScript có thể làm được nhiều hơn bạn nghĩ!

    Thuật toán quay lui

    Quay lui – Backtracking là một kỹ thuật thiết kế giải thuật dựa trên giải thuật đệ quy, ý tưởng của nó là việc tìm lời giải cho từng bước một, mỗi bước sẽ chọn ra một trong số các lựa chọn khả dĩ và đệ quy. Mục tiêu của thuật toán quay lui là sẽ liệt kê hết tất cả các cấu hình có thể có, với mỗi cấu hình được xây dựng bằng cách xây dựng từng phần tử, mỗi phần tử được chọn bằng cách thử tất cả các khả năng. Vì tính chất này mà thuật toán Backtracking còn được gọi tên là phương pháp vét cạn.

    Thuật toán quay lui

    Backtracking khi triển khai, liệt kê hết các cấu hình có thể sẽ cho chúng ta một đồ thị dạng cây với giá trị của mỗi node sẽ là giá trị đạt được khi ghép các phần tử ban đầu lại với nhau. Từ đó chúng ta cũng nhận ra được bản chất của thuật toán này là một quá trình tìm kiếm theo chiều sâu DFS (Depth-First Search).

    Áp dụng với bài toán phân tích số, để đưa ra được phương án đúng, chúng ta sẽ xây dựng một danh sách gồm tất cả các tập hợp có thể có khi ghép các mệnh giá tiền với nhau (lưu ý là các mệnh giá có thể lặp lại nhiều lần). Sử dụng đệ quy cho việc gọi xử lý tính toán và tạo tập hợp, điều kiện dừng đệ quy là khi tổng của tập hợp tạo ra lớn hơn hoặc bằng giá trị cần đạt. Trong mỗi lời gọi đệ quy, một vòng lặp sử dụng để duyệt qua một lượt tất cả các phần tử trong mảng mệnh giá tiền.

    Thuật toán quay lui

    Ưu điểm của thuật toán quay lui là việc chúng ta tạo ra được tổ hợp tất cả các phương án hoàn chỉnh có thể là một lời giải, giúp tránh việc phải thử nhiều trường hợp chưa hoàn chỉnh sẽ ảnh hưởng đến thời gian chạy. Trong trường hợp tập hợp đầu vào không đổi thì việc sử dụng đệ quy có nhớ sẽ giúp chương trình đưa ra được kết quả mà không cần chạy lại thuật toán.

    Tuy vậy thì nhược điểm của nó cũng chính là do sử dụng đệ quy tạo ra nhiều công việc dư thừa. Độ phức tạp của Backtracking sẽ ở cấp số mũ trong những trường hợp xấu nhất. Để cải tiến thuật toán, chúng ta có thể làm thêm một số tinh chỉnh đầu vào, ví dụ như nếu tập hợp số tất cả đều là số chẵn thì không thể cho ra tổng giá trị là lẻ; hay nếu tổng là một giá trị chẵn thì số phần tử lẻ luôn phải là mẫu số của 2,…

    Tham khảo việc làm JavaScript tại Hồ Chí Minh trên TopDev

    Triển khai code JavaScript

    Chúng ta sẽ tạo function combinationSumRecursive cho việc gọi đệ quy với các tham số đầu vào:

    • candidates: mảng số đầu vào tương ứng với các mệnh giá tiền
    • remainingSum: giá trị tổng tiền còn lại cần đạt được với mỗi vòng đệ quy. Ban đầu sẽ chính là tổng tiền cần đạt được S
    • finalCombinations, currentCombination: 2 mảng lưu các giá trị kết hợp giữa các mệnh giá
    • startFrom: lưu chỉ số trong mảng mệnh giá cho việc duyệt
      Sự khác biệt giữa encodeURI và encodeURIComponent trong JavaScript

    Giải thuật được triển khai với code JavaScript như dưới đây: 

    function combinationSumRecursive(
      candidates,
      remainingSum,
      finalCombinations = [],
      currentCombination = [],
      startFrom = 0
    ) {
      if (remainingSum < 0) {
        return finalCombinations;
      }
      if (remainingSum === 0) {
        finalCombinations.push(currentCombination.slice());
        return finalCombinations;
      }
      for (
        let candidateIndex = startFrom;
        candidateIndex < candidates.length;
        candidateIndex += 1
      ) {
        const currentCandidate = candidates[candidateIndex];
        currentCombination.push(currentCandidate);
        combinationSumRecursive(
          candidates,
          remainingSum - currentCandidate,
          finalCombinations,
          currentCombination,
          candidateIndex
        );
        currentCombination.pop();
      }
      return finalCombinations;
    }
    export default function combinationSum(candidates, target) {
      return combinationSumRecursive(candidates, target);
    }

    Dễ thấy việc gọi đệ quy sẽ được dừng lại khi remainingSum < 0 (phương án bị loại) hoặc = 0 (sẽ trả về kết quả là 1 phương án đúng). Thuật toán quay lui sẽ cho ra tất cả các tổng có thể có được nhỏ hơn S, vì thế trong trường hợp yêu cầu bài toán có nhiều giá trị S đầu vào, chúng ta có thể xử lý lại code để chỉ cần chạy một lượt đệ quy dành cho giá trị S lớn nhất hay sử dụng đệ quy có nhớ.

    Kết bài

    Như vậy chúng ta đã cùng nhau tìm hiểu về bài toán phân tích số, cách sử dụng giải thuật quay lui để giải quyết nó cũng như triển khai code bằng ngôn ngữ lập trình JavaScript. Hy vọng qua bài viết này các bạn có thể tự tin để trả lời nếu gặp câu hỏi giải thuật đến từ nhà tuyển dụng. Hẹn gặp lại các bạn trong các bài viết tiếp theo của mình.

    Tác giả: Phạm Minh Khoa

    Có thể bạn quan tâm:

    Hàng loạt việc làm IT hấp dẫn trên TopDev đang chờ bạn ứng tuyển..

    20+ nguồn tuyển dụng và chia sẻ kiến thức IT hiệu quả trên Facebook

    tuyển dụng

    Nhận thấy sự bùng nổ mạnh mẽ của Facebook tại Việt Nam, các nhà tuyển dụng IT đã áp dụng nhiều cách thức khác nhau trên nền tảng này nhằm thu hút nhân tài và thực hiện employing branding. 

    Facebook nhận được sự quan tâm lớn khi có nhiều cộng đồng được xây dựng và phát triển về nội dung nhằm tổng hợp, chia sẻ các kiến thức bổ ích về IT.

    Bài viết sau đây, TopDev sẽ chia sẻ với các bạn về những nguồn Recruitment và chia sẻ kiến thức IT tốt nhất.

    Danh sách các group/trang tuyển dụng trên nền tảng Facebook

    tuyển dụng IT Facebook

    (Số lượng thành viên được cập nhật đến ngày 22/11/2023)

    Việc làm IT Fresher dành cho bạn

    Danh sách các group/trang chia sẻ kiến thức lập trình trên nền tảng Facebook

    Có thể bạn quan tâm:

    Xem thêm Top Việc làm Developer trên TopDev

    7 chỉ số đo lường trải nghiệm ứng viên cực quan trọng với doanh nghiệp

    7 chỉ số đo lường trải nghiệm ứng viên cực quan trọng với doanh nghiệp

    Trong thời đại ngày nay, khi mà sự cạnh tranh trên thị trường lao động ngày càng khốc liệt, việc tìm kiếm và giữ chân những ứng viên xuất sắc đã trở thành một thách thức đối với các doanh nghiệp. Do đó, để chiến thắng trong cuộc đua chiêu mộ nhân tài các doanh nghiệp phải tận dụng hiệu quả các “chỉ số đo lường trải nghiệm ứng viên”. Các chỉ số này sẽ giúp doanh nghiệp xác định được những điểm mạnh, điểm yếu của quy trình tuyển dụng hiện tại và có những cải thiện phù hợp để nâng cao trải nghiệm ứng viên.

    Vậy như thế nào là một trải nghiệm ứng viên hiệu quả? Các chỉ số để đo lường trải nghiệm này là gì? Cùng TopDev khám phá trong bài viết dưới đây nhé!

    Trải nghiệm ứng viên là gì? Vì sao cần phải đo lường?

    Trải nghiệm ứng viên (Candidate Experience – CX) là cảm nhận của ứng viên về quá trình ứng tuyển của họ tại công ty. Trải nghiệm ứng viên bao gồm tất cả các tương tác của ứng viên với công ty, từ khi họ biết đến công ty, tìm hiểu thông tin tuyển dụng, nộp đơn ứng tuyển, tham gia phỏng vấn, cho đến khi nhận được kết quả ứng tuyển. Những suy nghĩ và cảm nhận của ứng viên trong quá trình này, dù tích cực hay tiêu cực, đều có thể ảnh hưởng đến công ty.

    Một trải nghiệm ứng viên tích cực sẽ giúp doanh nghiệp thu hút được nhiều ứng viên tiềm năng, đặc biệt là những ứng viên có năng lực và kinh nghiệm. Ngoài ra nó còn thúc đẩy họ chia sẽ những trải nghiệm của mình đến người khác, giúp tăng độ uy tín cho thương hiệu tuyển dụng. Ngược lại, trải nghiệm tiêu cực có thể dẫn đến việc chia sẻ những trải nghiệm này với người khác, tạo ra ảnh hưởng không tốt đối với danh tiếng của công ty.

    Trải nghiệm ứng viên

    Vì vậy, các doanh nghiệp cần phải đo lường trải nghiệm ứng viên để xác định được những điểm mạnh, điểm yếu của quy trình tuyển dụng hiện tại và có những cải thiện phù hợp để nâng cao trải nghiệm ứng viên, từ đó thu hút và tuyển dụng được những ứng viên tài năng.

    5 cách đo lường trải nghiệm ứng viên hiệu quả

    Để đo lường trải nghiệm ứng viên, có nhiều chỉ số và phương pháp đánh giá khác nhau mà doanh nghiệp có thể sử dụng. Dưới đây là một số phương pháp phổ biến:

    1. Khảo sát trải nghiệm ứng viên

    Khảo sát trải nghiệm ứng viên là một công cụ hữu ích giúp các doanh nghiệp hiểu được cảm nhận của ứng viên về quá trình ứng tuyển của họ. Kết quả khảo sát sẽ giúp doanh nghiệp xác định được những điểm mạnh, điểm yếu của quy trình tuyển dụng hiện tại và có những cải thiện phù hợp để nâng cao trải nghiệm ứng viên.

    Khảo sát trải nghiệm ứng viên

    Để tổ chức khảo sát trải nghiệm ứng viên hiệu quả, các doanh nghiệp cần lưu ý những điều sau:

    • Độ dài của khảo sát vừa đủ: Khảo sát không nên quá dài, chỉ nên khoảng 10 câu hỏi để tránh gây khó chịu cho ứng viên.
    • Đa dạng khía cạnh của bảng hỏi: Bảng hỏi nên bao gồm các câu hỏi về nhiều khía cạnh khác nhau của trải nghiệm ứng tuyển, chẳng hạn như mức độ nhanh chóng của quy trình tuyển dụng, sự rõ ràng và đầy đủ về mặt thông tin, tần suất và tốc độ phản hồi, khả năng giới thiệu công ty với người khác hoặc ứng tuyển lại trong tương lai, v.v.
    • Đa dạng hình thức các câu hỏi: Bảng hỏi nên có cả câu hỏi đánh giá thang đo theo mức điểm và câu hỏi mở để thu thập được nhiều thông tin từ ứng viên.

    Dưới đây là một số mẫu câu hỏi khảo sát trải nghiệm ứng viên phổ biến:

    • Cảm nhận chung của bạn về trải nghiệm ứng tuyển của mình tại công ty này như thế nào?
    • Khả năng bạn sẽ giới thiệu công ty này với bạn bè hoặc đồng nghiệp là bao nhiêu?
    • Bạn có tin tưởng rằng quy trình tuyển dụng của công ty là công bằng và minh bạch không?
    • Bạn có thấy quy trình tuyển dụng của công ty là hiệu quả và phù hợp không?
    • Bạn có sẵn sàng ứng tuyển cho các vị trí khác của công ty trong tương lai không?

    Các doanh nghiệp có thể điều chỉnh các câu hỏi khảo sát này cho phù hợp với quy trình tuyển dụng và nhu cầu của mình.

      Phương pháp lập Kế hoạch tuyển dụng

      [Update] Bắt nhịp 8 xu hướng tuyển dụng IT nổi bật trong năm 2023 – 2025

    2. Đo lường trải nghiệm ứng viên bằng CNPS

    CNPS là gì? CNPS là chỉ số đo lường trải nghiệm ứng viên (Candidate Net Promoter Score), là một chỉ số tương tự như Net Promoter Score (NPS) được sử dụng để đo lường các yếu tố cảm xúc của ứng viên trong quá trình tuyển dụng.

    CNPS là câu trả lời điển hình cho câu hỏi: “Khả năng bạn sẽ giới thiệu công ty này với bạn bè hoặc đồng nghiệp của mình ở mức nào, trên thang điểm từ 0 đến 10?”

    Ứng viên sẽ đánh giá câu hỏi này trên thang điểm từ 0 đến 10, với 0 là “Không có khả năng giới thiệu” và 10 là “Rất có khả năng giới thiệu”.

    Câu trả lời sẽ được phân theo 3 nhóm:

    • Promoters (9-10): Những ứng viên này rất hài lòng với trải nghiệm ứng tuyển của họ và có khả năng giới thiệu công ty với người khác.
    • Passives (7-8): Những ứng viên này hài lòng với trải nghiệm ứng tuyển của họ nhưng không chắc chắn về khả năng giới thiệu công ty.
    • Detractors (0-6): Những ứng viên này không hài lòng với trải nghiệm ứng tuyển của họ và có khả năng không giới thiệu công ty.

    Cách tính CNPS: CNPS = %Promoters – %Detractors

    CNPS là gì?

    3. Thời gian tuyển dụng (Time-to-hire)

    Thời gian tuyển dụng là khoảng thời gian từ khi ứng viên nộp đơn đến khi nhận được kết quả tuyển dụng. Thời gian tuyển dụng quá dài có thể khiến ứng viên thất vọng và mất hứng thú với vị trí ứng tuyển, từ đó dẫn đến giảm tỷ lệ tuyển dụng thành công.

    Có nhiều cách để đo lường thời gian tuyển dụng, bao gồm:

    • Tính thời gian trung bình từ khi ứng viên nộp đơn đến khi nhận được kết quả tuyển dụng: Đây là cách đo lường thời gian tuyển dụng phổ biến nhất.
    • Tính thời gian trung bình cho từng giai đoạn của quy trình tuyển dụng: Cách đo lường này giúp các doanh nghiệp xác định được những giai đoạn nào trong quy trình tuyển dụng đang mất nhiều thời gian.
    • Tính thời gian tuyển dụng theo vị trí tuyển dụng: Cách đo lường này giúp các doanh nghiệp xác định được những vị trí tuyển dụng nào có thời gian tuyển dụng dài.

    4. Tỷ lệ chuyển đổi của trang web tuyển dụng (Career site conversion rate)

    Tỷ lệ chuyển đổi của trang web tuyển dụng (Career site conversion rate) là tỷ lệ phần trăm các lượt truy cập vào trang web tuyển dụng dẫn đến một hành động cụ thể, chẳng hạn như nộp đơn ứng tuyển, đăng ký nhận thông tin tuyển dụng, hoặc chia sẻ trang web tuyển dụng.

    Tỷ lệ chuyển đổi của trang web tuyển dụng là một chỉ số quan trọng giúp các doanh nghiệp đánh giá hiệu quả của trang web tuyển dụng. Một tỷ lệ chuyển đổi cao cho thấy rằng trang web tuyển dụng đang hiệu quả trong việc thu hút và chuyển đổi các lượt truy cập thành ứng viên.

    Tỷ lệ này thường được tính theo công thức:

    Career site conversion rate = (Số đơn ứng tuyển / Số lượng unique clicks) x 100

      10 Bí quyết tuyển dụng giúp bạn tăng tỉ lệ nhận offer tức thì!

      Applicant Tracking System là gì? ATS hoạt động ra sao

    5. Tỷ lệ bỏ qua đơn đăng ký (Application form abandon rate)

    Tỷ lệ bỏ qua đơn đăng ký (Application form abandon rate) là tỷ lệ phần trăm các ứng viên bắt đầu điền đơn đăng ký nhưng không hoàn thành quá trình đăng ký. Một tỷ lệ bỏ qua đơn đăng ký cao cho thấy rằng quy trình tuyển dụng đang có vấn đề khiến ứng viên không muốn hoàn thành quá trình đăng ký.

    Tỷ lệ này thường được tính theo công thức:

    Application form abandon rate = (Ứng viên bỏ qua đơn đăng ký / Tổng số ứng viên bắt đầu điền đơn đăng ký) x 100

    6. Tỷ lệ phản hồi email của ứng viên (Email response rate)

    Tỷ lệ phản hồi email của ứng viên (Email response rate) là tỷ lệ phần trăm các email được gửi đến ứng viên nhận được phản hồi. Có nhiều nguyên nhân khiến tỷ lệ phản hồi email của ứng viên cao, bao gồm: Nội dung email hấp dẫn và phù hợp với đối tượng nhận, chủ đề email rõ ràng và thu hút, lời kêu gọi hành động rõ ràng, tính chuyên nghiệp của email,…

    Tỷ lệ phản hồi email

    Tỷ lệ này thường được tính theo công thức:

    Email response rate = (Số email nhận được phản hồi / Số email được gửi đến ứng viên) x 100

    7. Tỷ lệ chấp nhận lời mời làm việc (Acceptance rate)

    Tỷ lệ chấp nhận lời mời làm việc (Acceptance rate) là tỷ lệ phần trăm các ứng viên được mời làm việc chấp nhận lời mời. Tỷ lệ chấp nhận lời mời làm việc cao cho thấy rằng quá trình tuyển dụng đang hiệu quả trong việc thu hút và tuyển dụng được những ứng viên phù hợp. Việc đo lường tỷ lệ chấp nhận lời mời làm việc giúp các doanh nghiệp xác định được hiệu quả của quá trình tuyển dụng hiện tại để có những cải thiện phù hợp.

    Tỷ lệ này thường được tính theo công thức:

    Acceptance rate = (Số ứng viên chấp nhận lời mời làm việc / Tổng số ứng viên được mời làm việc) x 100

    Việc đo lường và cải thiện trải nghiệm ứng viên là một quá trình liên tục. Các doanh nghiệp cần thường xuyên thu thập phản hồi từ ứng viên để có những cải thiện phù hợp. Hy vọng rằng với những chỉ số đo lường trải nghiệm ứng viên mà TopDev đã chia sẽ sẻ giúp các doanh nghiệp tối ưu được quy trình tuyển dụng sao cho hiệu quả nhất.

    Xem thêm:

    Xem thêm việc làm ngành IT hàng đầu tại TopDev

    Code convention là gì? Một số quy tắc chung khi viết code lập trình

    Code convention là gì? Một số quy tắc chung khi viết code lập trình

    Code convention là một thuật ngữ mà bất kể lập trình viên nào cũng từng nghe đến và áp dụng trong công việc và dự án. Dù cho thực tế rằng việc áp dụng coding convention trong một team phát triển là điều không dễ nhưng đấy vẫn được xem là một trong những checklist bắt buộc khi triển khai viết code. Bài viết hôm nay chúng ta cùng tìm hiểu xem code convention là gì và một số quy tắc chung khi viết code trong lập trình nhé.

    Code convention là gì?

    Code convention là một tập hợp các quy tắc chung dành cho lập trình viên khi viết code nhằm giúp source code dễ đọc, dễ hiểu, dễ quản lý và bảo trì trong tương lai. Trong một dự án có nhiều thành viên, nếu mỗi người viết code theo một “kiểu” (style) khác nhau thì việc đọc code sẽ trở nên vô cùng khó khăn. Chính vì vậy mà coding convention được xem như một quy ước cơ bản áp dụng từ trước khi bắt đầu triển khai dự án.

    Code convention là gì?
    Nguồn: https://javascript.info/article/coding-style/code-style.svg

    Tác dụng của Code convention:

    • Giúp nâng cao hiệu quả khả năng làm việc nhóm
    • Tạo sự đồng bộ cao trong source code cũng như trong hiểu biết của các thành viên về nghiệp vụ dự án
    • Tạo điều kiện thuận lợi cho các bước bảo trì và nâng cấp phần mềm
    • Giúp các thành viên trong team có khả năng review lại source code của chính mình và người khác, đồng thời cũng dễ dàng tìm được các lỗi tiềm ẩn trong code
    • Tạo sự thống nhất giữa các dự án trong một tổ chức, từ đó giúp nâng cao khả năng tái sử dụng source code giữa các bộ phận.

      Code PHP chuẩn convention với PHP CodeSniffer

      Viết clean code: Code “đẹp trai” và code “xấu gái” có gì hay ho?

    Với mỗi ngôn ngữ lập trình khác nhau thì sẽ có những bộ coding convention khác nhau dành riêng, mỗi team hay dự án có thể lựa chọn và áp dụng. Chẳng hạn như với Java chúng ta có bộ convention của Oracle hay của Google. Với C# có bộ convention của Microsoft hay như Airbnb cung cấp rất nhiều bộ coding convention dành cho JavaScript, Ruby hay HTML/ CSS. Code convention sẽ được áp dụng đối với tất cả các thành viên trong dự án (lập trình viên viết code) trên các Code Editor hay IDE tích hợp sẵn. Ngoài ra, coding convention còn thường được sử dụng cho các bước auto deploy (build tự động trên các môi trường kiểm thử) và được xem như một bước kiểm thử trước khi thực hiện build và chạy chương trình.

    Hầu hết các IDE phổ biến hiện nay đều có tính năng thiết lập code style (tương tự code convention), nó sẽ thực hiện việc check code convention ngay lúc chúng ta viết code và có thể đưa ra các gợi ý chỉnh sửa ngay lập tức, rất tiện lợi và hữu ích dành cho anh em lập trình viên.

    Code convention là gì?

    Một số quy tắc chung khi viết code lập trình

    Mục đích của việc viết code là để giải quyết được bài toán đặt ra với những logic xử lý tối ưu; đồng thời càng đơn giản dễ hiểu thì càng tốt. Viết code không chỉ để chạy được, chạy đúng mà còn dành để cho những thành viên khác trong team, hoặc những người tiếp nhận source code về sau đọc hiểu; vì vậy hãy luôn giữ cho code của mình “sạch”, “rõ ràng” và “đơn giản” (clean, clear and simple).

    Xem thêm các việc làm PHP lương cao trên TopDev

    Quy tắc đặt tên

    Quy tắc này áp dụng trong việc đặt tên các biến, hằng số, class, function,… 3 quy tắc đặt tên phổ biến thường được sử dụng trong nhiều ngôn ngữ lập trình khác nhau:

    • Camel case: viết thường từ đầu tiên trong cụm, những từ còn lại thì viết hoa ký tự đầu. Ví dụ như firstName, lastName. Camel case thường sử dụng cho khai báo tên biến, tên hàm hay tên phương thức.
    • Pascal case: viết hoa ký tự đầu của mỗi từ trong cụm. Ví dụ FirstName, LastName. Quy tắc này thường được áp dụng khi khai báo tên class hoặc sử dụng cho tên biến trong một số ngôn ngữ lập trình.
    • Snake case: toàn bộ các từ đều viết thường và được phân cách bởi dấu “_” (underscore). Ví dụ first_name, last_name. Snake case thường dùng cho việc đặt tên hằng số hoặc tên của chương trình.

    Một số quy tắc chung khi viết code lập trình

    Quy tắc số lượng

    • Một lớp (class) không nên vượt quá 500 dòng
    • Một hàm (function) không nên vượt quá 30 dòng, không nên chứa quá 5 tham số và chỉ nên làm duy nhất một việc
    • Một dòng code không nên dài quá 80 ký tự
    • Một câu lệnh không nên lồng quá 4 cấp

    Quy tắc comment

    • Không nên comment out đoạn code không dùng, hãy xóa nó đi
    • Comment để làm rõ logic xử lý đoạn code phức tạp
    • Comment để lưu ý, cảnh báo những trường hợp có thể xảy ra trong logic luồng code
    • Không nên comment để giải thích những logic, tính năng đơn giản, chú thích những điều hiển nhiên. Thay vào đó nên đặt tên function, class thể hiện nó.

    Quy tắc xuống hàng

    • Nếu một hàm có nhiều cấp lồng nhau, mỗi cấp nên được xuống dòng
    • Các đoạn code bằng cấp nên ở cùng một cột với nhau (khoảng cách với lề sẽ bằng nhau)
    • Nên xuống hàng trước các toán tử

    Đây là một số coding convention cơ bản mà bạn thường/ nên áp dụng trong nhiều ngôn ngữ lập trình khác nhau. Ngoài ra, mỗi ngôn ngữ hoặc framework sẽ có những bộ convention được đề xuất sử dụng, các bạn có thể tự tìm hiểu thêm để áp dụng vào từng dự án một cách hiệu quả nhất nhé.

    Kết bài

    Rõ ràng việc áp dụng code convention là rất cần thiết trong mọi dự án phát triển phần mềm đối với team lập trình; vì vậy hiểu rõ và áp dụng được nó trong công việc sẽ giúp bạn lập trình tốt hơn, có khả năng làm việc với nhiều thành viên cùng hoặc khác môi trường hay ngôn ngữ lập trình.

    Hãy áp dụng những quy tắc chung mà bài viết đề cập cũng như tìm hiểu thêm các quy tắc khác được đề xuất vào việc viết code của bạn để xác nhận sự hiệu quả của nó mang lại nhé. Cảm ơn các bạn đã đọc và hẹn gặp lại trong các bài viết tiếp theo của mình.

    Tác giả: Phạm Minh Khoa

    Có thể bạn quan tâm:

    Xem thêm việc làm CNTT hấp dẫn trên TopDev

    Lộ trình và cách học Javascript hiệu quả bạn nên biết

    Lộ trình và cách học Javascript từ zero đến hero

    Bài viết được sự cho phép của BBT Tạp chí lập trình

    JavaScript là một trình lập ngôn ngữ đã trở nên phổ biến trong những năm gần đây, được hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome,… thậm chí cả các trình duyệt trên thiết bị di động.

    Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu về lộ trình và cách học JavaScript  để có hiệu quả tốt nhất.

    JavaScript là gì?

    JavaScript là gì?

    JavaScript là ngôn ngữ lập trình phổ biến được sử dụng để tạo ra các trang web tương tác. Nó được tích hợp và nhúng vào HTML trợ giúp cho trang web của bạn trở nên sống động hơn. JavaScript cho phép kiểm soát các hoạt động tốt hơn của trang web khi chỉ sử dụng mỗi HTML.

    Từ tạo bảng mới trên mạng xã hội sẽ hiển thị hình ảnh động và bản đồ tương tác, các chức năng của JavaScript có thể cải thiện trải nghiệm của người dùng trang web. Các hiệu ứng slide, menu xổ xuống, các hình ảnh chạy lại rất đẹp,… tất cả các chức năng này đều được xử lý bằng Javascript.

    Lợi ích của việc học JavaScript

    Triển khai lệnh client

    Nhờ Javascript, các lập trình viên có thể dễ dàng viết lệnh cho khách hàng, tích hợp các lệnh tiếp theo vào HTML, cho phép trang web tương tác, trả lời người dùng ngay lập tức và tạo ra giao diện hiển thị phong phú hơn.

    Viết mã phía máy chủ

    Người lập trình có thể viết mã phía máy chủ bằng JavaScript.

    Đơn giản hóa phát triển ứng dụng phức hợp web

    Javascript cho phép các nhà phát triển đơn giản hóa thành phần ứng dụng, qua đó đơn giản hóa việc phát triển các ứng dụng web phức tạp.

    Thiết kế web đáp ứng

    JavaScript cho phép thiết kế web đáp ứng – mức độ ưu tiên trên cả máy tính và thiết bị di động chỉ với một mã hóa.

    Google AMP

    Để tham gia vào dự án Tăng tốc trang di động (AMP) của Google, các nhà lập trình phải sử dụng ngôn ngữ lập trình JavaScript.

    Nhiều chuyển đổi

    Mặc dù thiếu một số tính năng phức tạp được cung cấp bởi các ngôn ngữ lập trình hiện đại như JavaC#, nhưng JavaScript vẫn có thể dễ dàng mở rộng bằng cách sử dụng các bộ chuyển đổi như CoffeeScript, TypeScript, DukeScript và Vaadin.

      Giải bài toán về dãy con tăng dài nhất trong JavaScript

      Một số cách để viết mã dễ đọc hơn trong JavaScript/Node.js

    Lộ trình học JavaScript

    Giai đoạn 1. Học và làm quen với các nội dung cơ bản về JavaScript

    Bước đầu tiên yêu cầu người học nắm vững các kiến ​​thức cơ bản liên quan đến JavaScript. Bạn cần có một nền tảng vững chắc để có thể bước những bước tiếp theo. Một số nội dung quan trọng bạn cần quan tâm tới là:

    • Nền tảng kiến ​​thức của JavaScript
    • Các khái niệm cơ bản xung quanh ngôn ngữ JavaScript
    • Các đối tượng có sẵn trong JavaScript
    • Sử dụng Git để lưu trữ và chia sẻ nguồn mã
    • Trình bày các khái niệm cơ sở của Đối tượng Lập trình mô hình
    • Trình bày được trình bày trong quá trình thiết kế, xây dựng và thực thi một ứng dụng
    • Dữ liệu cấu hình
    • Nền tảng web
    • Trình duyệt nổi bật và cách thức hoạt động của chúng
    • Tên miền và hosting là gì?

    Tham khảo việc làm JavaScript tại Hồ Chí Minh trên TopDev

    Giai đoạn 2. Tìm hiểu về các cú pháp cơ bản của ngôn ngữ JavaScript

    • Cách khai báo biến: Khai báo và sử dụng biến trong JavaScript với var và let, khai báo hằng số trong JS.
    • Câu lệnh JavaScript: Là đơn vị cơ sở của trình cài đặt ngôn ngữ. Chúng tôi đưa ra hướng dẫn cho máy tính để thực hiện một thao tác.
    • Từ khóa: Là các từ bao gồm ý nghĩa chính trong JavaScript. Ví dụ như: break, case, default, delete,…
    • Giăm bông. Hàm này là một trong cơ sở nền tảng, một thành phần không thể thiếu đối với chương trình cấu hình. Nhờ có chức năng mà chương trình trở nên rõ ràng, dễ hiểu bằng cách làm lạnh các đoạn mã lặp lại.
    • Object. Trong JavaScript, các đối tượng thường được so sánh với các đối tượng thực tế từ cuộc sống thực tế. Mọi giá trị có trong JavaScript (ngoại trừ các giá trị nguyên thủy) đều được xem là các đối tượng.
    • Học trình lập ngôn ngữ Typescript: mảng và các phương thức có trong Typescript

    Giai đoạn 3. Hãy sử dụng các kiến ​​thức cơ bản về HTML, CSS và JavaScript

    Trọng tâm của giai đoạn này yêu cầu người học tải tổng thể các cơ sở lập trình ngôn ngữ kiến ​​thức. Nó sẽ giúp bạn tạo một trang web bao gồm HTML, CSS, Javascript. Lời khuyên cho bạn là bạn nên học JavaScript trước. Bài hát đó được tìm hiểu về HTML và CSS. Điều này sẽ giúp việc tiếp cận cũng như tạo ra các giao diện đơn giản đầu tiên trở nên dễ dàng hơn.

    Khi bạn hoàn thành giai đoạn 3 cũng là lúc bạn đã có nền tảng kiến ​​thức ban đầu. Một mẹo trước khi các bạn tiến tới giai đoạn nâng cao cao đó là hãy thực hiện các bài tập của 3 giai đoạn đầu thật sự nhuần nhuyễn. Khi cơ sở kiến ​​thức đã thực sự chắc chắn, việc học cao hơn một chút cũng không phải là vấn đề quá lớn.

    Xem việc làm javascript đãi ngộ tốt trên TopDev

    Giai đoạn 4. Gắn JavaScript với front-end

    Bước này tập trung giúp bạn khai thác các tổ hợp nội dung hợp quan trọng khác về CSS như:

    • Phản hồi thiết kế
    • Xây dựng công cụ
    • Git

    Bạn cần liệt kê một số kiến ​​thức cần đạt được trong công việc thiết kế trang web tốt hơn, cách sử dụng Git hoặc các ứng dụng tiện ích khác để xây dựng một trang web hoàn chỉnh.

    Giai đoạn 5. JavaScript và các Framework

    Trong quá trình học, danh mục về Framework là nội dung không thể bỏ qua. React, Angular và Vue là những loại phổ biến hiện nay mà bạn cần tìm hiểu. Có thể thấy, các tính năng đa phương tiện hoặc phức tạp nhất trên trang web đều được thực hiện nhờ sự trợ giúp của JavaScript. Một lời khuyên nên nhỏ ở bước này là bạn nên học React trước, CSS trong JS; hoặc có thể là cả Styled Component; hay các mô-đun CSS.

    Giai đoạn 6. Gắn Javascript với backend

    Ở giai đoạn cuối cùng này, bạn cần phải đáp ứng một số yêu cầu về kiến ​​thức sau:

    • Có khả năng đọc các dữ liệu quan trọng từ cơ sở dữ liệu và hiển thị cho người dùng theo Frontend.
    • Cách lưu trữ và bảo mật thông tin nguồn.

    Khi đã có nền tảng ổn định về kiến ​​thức trong giai đoạn 6, bạn hãy tự đánh giá lại toàn bộ quá trình học của mình.

      Xử lý bất đồng bộ với Promise.all trong JavaScript

    Cách học JavaScript hiệu quả

    Đặt tiêu chuẩn và lựa chọn những thứ cần học

    Mục tiêu học Javascript
    Mục tiêu học Javascript

    JavaScript thực sự rất rộng rãi, để học hết và hiểu được chúng chắc chắn mất hàng năm vì không chỉ có JavaScript mà còn các biến thể, các framework của nó. Vì vậy, nên chọn 1 công nghệ và tập trung vào học nó.

    Nhưng nếu bạn chỉ mới bắt đầu, việc đưa ra quyết định này sẽ rất khó khăn vì rất khó để tìm ra “nơi bắt đầu” của bạn ở đâu. Trong trường hợp này, bạn sẽ cần theo một chương trình học tốt.

    JavaScript có thể sử dụng để xây dựng giao diện người dùng, xử lý dữ liệu ở phía máy chủ, xây dựng ứng dụng di động, trò chơi, trí tuệ nhân tạo,… Mỗi hướng dẫn đều có 1 công nghệ riêng biệt.

    Vì vậy, để không bị choáng ngợp và buồn chán, bạn chỉ nên tập trung vào một thứ và bỏ qua tất cả những thứ khác bên ngoài nó.

    Bắt đầu dự án cá nhân của bạn

    Nếu bạn không áp dụng kiến ​​thức của mình vào dự án thực tế thì việc học đó sẽ vô ích. Cách tốt nhất để chúng ta đi lên nhanh chóng bắt tay vào làm, tất nhiên là không phải theo hướng nhảy vào dự án lớn ngay lập tức, mà chúng ta cần bắt đầu với những dự án nhỏ rồi đi lên dần dần.

    Khi thực hiện bất kỳ dự án thực tế nào, mỗi khi hoàn thành chức năng, chúng ta hãy thử bổ sung thêm một chức năng mới và tăng dần khả năng của chúng ta cũng tăng lên theo.

    Thực hành thường xuyên

    Một cách khác để học hiệu quả JavaScript là tích cực luyện tập. Có nghĩa là bạn dành nhiều thời gian để viết mã hơn là chỉ xem hoặc đọc các hướng dẫn.

    Cố gắng viết mã ít nhất 30 phút hoặc một giờ mỗi ngày. Bằng cách viết mã thường xuyên và thực hiện những gì bạn đã học, bạn sẽ cải thiện kiến ​​thức JavaScript của mình nhanh hơn.

    Tham gia cộng đồng cài đặt, các buổi gặp gỡ và sự kiện

    Lợi ích mang lại của việc tham dự các buổi gặp mặt và các sự kiện là vô cùng đáng kể. Nó cho phép chúng ta học hỏi từ những người có nhiều kinh nghiệm sử dụng Javascript. Nhưng công việc học không chỉ dừng lại ở những bài thuyết trình mà còn tiếp tục diễn ra trong các cuộc trò chuyện mà chúng ta có sau đó.

    Đôi khi cách tốt nhất để học Javascript không phải là ngồi chúi mũi vào học hoặc đọc sách, mà đó là sự trao đổi với những người khác đang học hỏi, khám phá và đạt được thành tựu cùng bạn.

    Chương trình đào tạo mã hóa

    Có thể thiết lập đường học dành riêng cho bạn. Mặc dù bạn biết rằng bạn có thể cung cấp bản câu hỏi cơ bản về hướng dẫn học tập theo yêu cầu hoặc từ các chương trình sách, nhưng bạn muốn có thêm một chút hỗ trợ và hướng dẫn trong suốt quá trình giáo dục của bạn mình, cũng như chứng chỉ sau khi hoàn thành.

    Nếu đúng như vậy thì một chương trình đào tạo Coding Bootcamp có thể là chương trình dành riêng cho bạn. Chương trình đào tạo trung bình có xu hướng kéo dài từ 5-6 tháng đến 1-2 năm, tùy thuộc vào trình bày của chúng để bổ sung theo lịch trình bán thời gian hoặc toàn thời gian.

    Kết luận

    Học JavaScript là một quá trình đòi hỏi sự triển khai và nỗ lực. Tuy nhiên, nếu bạn nắm vững kiến ​​thức và kỹ năng cơ bản, bạn có thể học JavaScript một cách hiệu quả và trở thành thành viên lập trình JavaScript thành công.

    Dưới đây là một số lời khuyên được khuyên dùng cho người mới bắt đầu học JavaScript:

    • Hãy bắt đầu với cơ sở kiến ​​thức này. Trước khi bạn có thể học nâng cao các khái niệm, cần nắm chắc các cơ sở kiến ​​thức về JavaScript, bao gồm cú pháp, biến, toán tử, điều khiển cấu trúc, đối tượng và sự kiện.
    • Thực hành thường xuyên. Vui lòng dành thời gian để viết mã và tạo các dự án dành riêng cho bạn.
    • Tham gia vào trình cài đặt cộng đồng. Đây là một cách tuyệt vời để học hỏi từ những người có kinh nghiệm và giải đáp thắc mắc của bạn.

    Chúc bạn thành công trong việc học JavaScript !

    Bài viết gốc được đăng tải tại kienthuclaptrinh.vn

    Xem thêm:

    Tìm việc làm IT mới nhất trên TopDev

    Applicant Tracking System là gì? ATS hoạt động ra sao

    ATS trong tuyen dung

    Công nghệ phát triển hướng đến giải quyết và cải tiến cho mỗi quy trình, hoạt động của doanh nghiệp cũng như đời sống. Đối với lĩnh vực tuyển dụng, sự xuất hiện của phần mềm ATS (Applicant Tracking System) mang đến nhiều thay đổi đáng kể, cả đối với nhà tuyển dụng và ứng viên. Vậy phần mềm ATS là gì? Chúng được sử dụng ra sao? Những thắc mắc về phần mềm ATS trong tuyển dụng sẽ được TopDev giải đáp tại bài viết dưới đây.

    Hệ thống sàng lọc tự động ATS (Applicant Tracking System)
    Hệ thống sàng lọc ứng viên ATS (Applicant Tracking System)

    Applicant Tracking System là gì?

    Applicant Tracking System (ATS) hay còn gọi là Hệ thống quản lý hồ sơ ứng viên là phần mềm quản lý quy trình tuyển dụng từ đầu đến cuối một cách tự động hóa. ATS được thiết kế để giúp nhà tuyển dụng tiết kiệm thời gian và chi phí trong việc thu thập, sắp xếp và sàng lọc hồ sơ các ứng viên.

    Các tính năng nổi bật của Applicant Tracking System

    Các tính năng nổi bật của Applicant Tracking System
    Các tính năng nổi bật của Applicant Tracking System

    Applicant Tracking System (ATS) là một công cụ quan trọng giúp các công ty quản lý quy trình tuyển dụng hiệu quả hơn. Cùng chúng tôi điểm qua các tính năng nổi bật của ATS:

    Sàng lọc và quản lý hồ sơ ứng viên

    Khả năng tìm kiếm và sàng lọc ứng viên là một trong các tính năng nổi bật nhất của ATS. Với việc sử dụng từ khóa và tiêu chí cụ thể, hệ thống có thể nhanh chóng tìm kiếm và sàng lọc các hồ sơ phù hợp, tự động loại bỏ những ứng viên không đạt yêu cầu. Điều này giúp nhà tuyển dụng tập trung vào những ứng viên tiềm năng nhất.

    ATS cho phép quản lý hồ sơ ứng viên một cách chuyên nghiệp bằng cách lưu trữ và tổ chức thông tin chi tiết từ sơ yếu lý lịch, thư xin việc đến các tài liệu liên quan. Hệ thống có thể tự động tạo hồ sơ từ các tài liệu nộp qua email, trang web tuyển dụng hoặc nhập liệu trực tiếp, giúp tiết kiệm thời gian và công sức cho nhà tuyển dụng.

    Tìm kiếm ứng viên tiềm năng

    ATS có thể đăng tuyển và theo dõi hiệu quả của các kênh tuyển dụng trên nhiều nền tảng tiềm năng như trang web công ty, các website việc làm và mạng xã hội tuyển dụng lớn, đồng thời theo dõi số lượng ứng viên từ các kênh này để phân tích và đánh giá hiệu quả.

    Theo dõi và quản lý quy trình tuyển dụng

    ATS theo dõi toàn bộ quá trình tuyển dụng từ khi nhận hồ sơ đến khi hoàn tất tuyển dụng, bao gồm quản lý lịch phỏng vấn, gửi lời mời và thông báo cho ứng viên. Nhà tuyển dụng có thể theo dõi trạng thái của từng ứng viên, từ đã nhận hồ sơ, đang phỏng vấn cho đến khi có kết quả.

    Báo cáo và phân tích dữ liệu

    ATS cung cấp các báo cáo chi tiết về hiệu quả tuyển dụng, số lượng ứng viên, thời gian tuyển dụng và các chỉ số quan trọng khác. Phân tích dữ liệu giúp cải thiện chiến lược tuyển dụng, xác định các nguồn ứng viên hiệu quả và dự đoán nhu cầu tuyển dụng trong tương lai.

    Hỗ trợ giao tiếp và tương tác với ứng viên

    Giao tiếp và tương tác với ứng viên cũng được tối ưu hóa. ATS cho phép gửi email tự động và thông báo để cập nhật trạng thái tuyển dụng hoặc yêu cầu thêm thông tin. Điều này không chỉ giúp duy trì liên lạc thường xuyên với ứng viên mà còn tạo ấn tượng chuyên nghiệp cho họ. Ngoài ra, ATS còn có giao diện người dùng thân thiện, giúp ứng viên dễ dàng nộp đơn và theo dõi trạng thái và nhận được phản hồi nhanh chóng từ hệ thống.

    Đảm bảo bảo mật an toàn thông tin

    Hệ thống ATS có chức năng phân quyền truy cập, giúp đảm bảo tính tổ chức chặt chẽ và bảo mật thông tin ứng viên. Tích hợp với các hệ thống quản lý nhân sự (HRM) và các công cụ đánh giá cũng giúp nâng cao hiệu quả quản lý.

    Cuối cùng, việc tuân thủ các quy định về bảo mật dữ liệu và pháp luật lao động là điều mà bất kỳ ATS nào cũng phải đảm bảo. Hệ thống cần lưu trữ dữ liệu an toàn và tuân thủ các quy định bảo mật, đồng thời đảm bảo quy trình tuyển dụng tuân thủ pháp luật lao động hiện hành.

    Cách phần mềm sàng lọc CV ATS hoạt động

    Muốn biết làm thế nào để viết CV IT chuẩn ATS thì trước tiên chúng ta cần hiểu rõ cách hệ thống này hoạt động. Dưới đây là quy trình cơ bản mà một hệ thống ATS trong doanh nghiệp sẽ hoạt động.

    Đặt câu hỏi loại trừ

    Khi bạn nộp hồ sơ qua các hệ thống online của doanh nghiệp, bạn có thể sẽ nhận được yêu cầu trả lời các câu hỏi trực tiếp. Nếu bạn trả lời khớp với yêu cầu của nhà tuyển dụng thì hệ thống ATS sẽ cho hồ sơ của bạn đi tiếp. Ngược lại, nếu câu trả lời không phù hợp hệ thống sẽ gắn cờ hoặc loại bỏ để tiết kiệm thời gian sàng lọc.

    Phân tích cấu trúc CV

    Ở vòng này, ATS sẽ phân tích cấu trúc của CV, bao gồm các phần thông tin liên hệ, học vấn, kinh nghiệm, kỹ năng,… Điều này giúp ATS hiểu CV được tổ chức như thế nào và các thông tin quan trọng được đặt ở đâu.

    Quét từ khóa

    mẹo viết CV IT chuẩn ATS

    Đây là phần rất quan trọng vì nó giúp hệ thống xác định bạn có thật sự phù hợp với vị trí công ty đang cần tuyển hay không. Hệ thống ATS sẽ đọc phần mô tả công việc sau đó quét qua CV của bạn để tìm keywords có liên quan đến vị trí ứng tuyển. Chẳng hạn như bạn ứng tuyển vị trí Java Developer, hệ thống sẽ quét CV và tìm các từ khóa là framework, kỹ năng lập trình liên quan đến vị trí này.

    Đánh giá xếp hạng kết quả

    Hệ thống ATS sẽ đánh giá và chấm điểm mức độ phù hợp của bạn với vị trí ứng tuyển. CV càng có điểm số cao thì khả năng được gọi phỏng vấn trực tiếp với nhà tuyển dụng sẽ càng cao.

      Cách viết CV English IT đẹp chuẩn dành cho lập trình viên

    Tạo CV online miễn phí, nhanh chóng trên TopDev

    Phần mềm ATS có thể đánh giá chính xác hồ sơ ứng viên?

    Chính vì ATS hoạt động như một cổ máy thông qua các tiêu chí và quét từ khóa khi sàng lọc hồ sơ, có rất nhiều hồ sơ ứng viên tiềm năng bị bỏ qua chỉ vì họ chưa biết cách tối ưu CV để qua được vòng ATS.

    Hầu hết các doanh nghiệp lớn với số hồ sơ ứng tuyển lên đến hàng trăm hồ sơ mỗi ngày, thì việc sử dụng ATS trong quy trình tuyển dụng của họ là cần thiết. Vậy làm sao để viết CV chuẩn ATS

    Trải nghiệm công cụ Convert CV online ngay tại đây!

    mẹo viết CV IT chuẩn ATS

    Với CV mới này, bạn có thể biết phần nội dung nào mình còn thiếu, phần nào không cần thiết. Hệ thống cho phép tự do chỉnh sửa và cập nhật nội dung trên CV mới. Ngoài ra, một hồ sơ ứng viên hoàn chỉnh của bạn cũng sẽ được lưu trữ trên hệ thống của TopDev, giúp hệ thống dễ dàng đưa ra các đề xuất công việc phù hợp.

    >>> Tham gia minigame “Chuẩn Hóa CV” nhận ngay quà hấp dẫn anh em nhé

    Tóm lại

    Qua bài viết trên hi vọng bạn có thể hiểu thêm về phần mềm ATS và lợi ích sử dụng ATS trong tuyển dụng. Applicant Tracking System là cách tay đắc lực của các nhà tuyển dụng, nó giúp các quy trình tuyển dụng được chuẩn hóa và rút ngắn thời gian và nâng cao hiệu quả của quá trình tuyển dụng.

    Đừng quên sử dụng công cụ Convert CV để có một chiếc CV chuẩn Developer bạn nhé!

    Xem thêm:

    Xem thêm Top tìm việc IT lương cao HOT nhất trên TopDev

    Buffered Channel là gì? Ví dụ tạo buffer channel

    Buffered Channel là gì? Ví dụ tạo buffer channel

    Anh em làm với Golang chắc hẳn đã nghe qua khác niệm Buffered Channel. Vậy Buffered Channel là gì?

    Bài viết này sẽ giải thích cho anh em khái niệm Buffered Channel. Deadlock trong Buffered Channel và các ví dụ cụ thể giải thích cách Buffered Channel hoạt động.

    Bắt đầu thôi anh em!

    1. Buffered Channel là gì?

    Tới với định nghĩa:

    Channels can be defined as pipes used for Goroutines to communicate. Similar to how water flows from one end to another in a pipe, data can be sent from one end and received from the another end using channels. Channels có thể được định nghĩa là các đường dẫn được sử dụng để Goroutines giao tiếp. Tương tự như cách nước chảy từ đầu này sang đầu kia trong đường ống, dữ liệu có thể nhận vào từ đầu này và chuyển tới đầu kia thông qua channels

    Buffered Channel là gì?

    Rồi, dứt được một chữ Channel trong Buffered Channel. Kênh này như là cái ống, nhầm như con kênh. Dữ liệu đi vào đầu này sẽ đi ra đầu kia, như nước chảy từ đầu kênh tới cuối kênh.

    Còn Buffered (bộ đệm), theo như mặc định trong Golang thì một channel tạo ra sẽ không có Buffered. Kênh không có bộ đệm sẽ chỉ gửi dữ liệu A nếu đầu kia ở channel chấp nhận dữ liệu A. Kênh Buffered Channel sẽ chỉ bị tắc khi bộ đệm full (đầy).

    Đó là chiều gửi đi, còn chiều nhận về thì đầu kia của channel sẽ bị chặn dữ liệu nếu bộ đệm trống (buffered is empty).

      So sánh giữa C++ và Golang 
      Xây dựng REST API cơ bản trong Golang

    2. Khởi tạo bộ Buffered Channel

    Buffered Channel có thể được tạo bằng cách thêm parameter vào hàm make() với kích thước buffer cố định được truyền vào.

    Cú pháp :
    
    ch := make(chan type, capacity)           // change định nghĩa kiểu của channel

    Trong cú pháp ở trên, capacity là con số cần phải lớn hơn 0, nếu channel đó muốn định nghĩa buffer. Nhưng nếu không có buffer (unbuffered channel) thì để giá trị này là 0. Cứ input cái argument này alf 0 thì auto skip vụ buffer.

    Việc làm Golang Hồ Chí Minh hấp dẫn tại TopDev!

    3. Ví dụ tạo buffer channel

    Anh em cùng ví dụ dưới đây về tạo buffered channel.

    package main
     
    import (
        "fmt"
    )
     
    func main() {
     
        // Tạo buffer channel
        // Số lượng là 2.
        ch := make(chan string, 2)
        ch <- "geeksforgeeks"
        ch <- "geeksforgeeks world"
        fmt.Println(<-ch)
        fmt.Println(<-ch)
    }

    Với đoạn code này, đầu ra sẽ là

    geeksforgeeks
    geeksforgeeks world

    Số lượng buffer được tạo là 2, do đó có thể đưa vào channel 2 chuỗi string, không bị mất mát chuỗi nào và in ra kết quả.

    Rồi, ví dụ đầu tiên trơn tru, đầu xuôi đuôi lọt. Cùng tới với ví dụ thứ hai khi bị block do buffer

    package main
     
    import (
        "fmt"
        "time"
    )
     
    func write(ch chan int) {
        for i := 0; i < 4; i++ {
            ch <- i
            fmt.Println("successfully wrote", i, "to ch")
        }
        close(ch)
    }
    func main() {
     
        // Buffer này vẫn có size là 2
        ch := make(chan int, 2)
        go write(ch)
        time.Sleep(2 * time.Second)
        for v := range ch {
            fmt.Println("read value", v, "from ch")
            time.Sleep(2 * time.Second)
     
        }
    }

    successfully wrote 0 to ch
    successfully wrote 1 to ch
    read value 0 from ch
    successfully wrote 2 to ch
    read value 1 from ch
    successfully wrote 3 to ch
    read value 2 from ch
    read value 3 from ch

    Anh em chú ý ở vòng for sẽ chạy từ 0 tới 3, có 4 cái đem vào channels, nhưng channel chỉ có maximum là 2. Lúc này Goroutine chỉ ghi được giá trị 0 và 1 vào trong channel ngay lập tức. Sau đó nó block cho tới khi có ít nhất 1 giá trị được đọc từ kênh ch định nghĩa như dưới đây

    successfully wrote 0 to ch
    successfully wrote 1 to ch

    Sau đó, đọc tiếp giá trị rồi sleeps trong 2 giây. Chu kì này cứ lặp đi lặp lại cho đến khi đóng ch. Cho nên mới có khúc tiếp theo được in ra

    read value 0 from ch  
    successfully wrote 2 to ch

    4. Deadlock trong Buffered Channel

    Deadlock cũng như khái niệm ở các ngôn ngữ khác, lock lại cho tới chết. Trong Buffered Channel được hiểu là chương trình sẽ có lỗi nghiêm trọng trong quá trình thực thi

    package main
     
    import (
        "fmt"
    )
     
    func main() {
        ch := make(chan string, 2)
        ch <- "geeksforgeeks"
        ch <- "hello"
        ch <- "geeks"
        fmt.Println(<-ch)
        fmt.Println(<-ch)
    }

    Như ví dụ trên đây, quá trình ghi vào channels sẽ bị chặn do kênh đã vượt quá size capacity là 2. Thông báo in ra sẽ là

    fatal error: all goroutines are asleep - deadlock!
    
    
    
    goroutine 1 [chan send]:
    
    main.main()
    
        /tmp/sandbox048494311/prog.go:11 +0x8d

    5. Tham khảo

    Cảm ơn anh em đã đọc bài – Thank you for your time – Happy coding!

    Tác giả: Kiên Nguyễn

    Xem thêm:

    Xem thêm các việc làm Developer hấp dẫn tại TopDev

    Tối ưu hóa CV bằng ChatGPT: Gây ấn tượng nhà tuyển dụng ngay từ lần đầu

    Tối ưu hóa CV bằng ChatGPT: Gây ấn tượng ngay từ lần đầu

    Bạn đã biết cách viết CV xin việc bằng ChatGPT chưa? Làm thế nào để tận dụng ChatGPT tạo CV ấn tượng hơn trong mắt nhà tuyển dụng? Với 78% ứng viên đã được nhận sau khi nộp CV và cover letter do ChatGPT viết (theo khảo sát của Resume Buider), thì đây chắc chắn là một công cụ rất đáng để sử dụng.

    Trong bài viết này, chúng ta sẽ tìm hiểu cách tối ưu hóa CV bằng ChatGPT, giúp bạn dễ dàng vượt qua ải sàng lọc của nhà tuyển dụng và cả máy quét CV.

    Lợi ích của việc dùng ChatGPT để viết CV

    dùng ChatGPT để viết CV

    Việc sử dụng ChatGPT để viết CV mang lại nhiều lợi ích quan trọng, đặc biệt là đối với những ứng viên đang tìm kiếm các vị trí phổ biến và muốn làm nổi bật hồ sơ của mình.

    • Hỗ trợ hiệu quả cho các vị trí phổ biến: ChatGPT là một công cụ mạnh mẽ để hỗ trợ việc viết CV khi bạn đang ứng tuyển cho các vị trí công việc phổ biến và thông dụng. Nó giúp bạn nhanh chóng tạo ra một CV chất lượng với ngôn ngữ chuyên nghiệp và phù hợp với yêu cầu thông thường của nhiều ngành nghề.
    • Thể hiện bản thân qua ngôn ngữ tốt hơn: Đối với những người có vốn từ ngữ “có hạn” ChatGPT là người đồng đội lý tưởng. Nó giúp bạn thể hiện bản thân một cách rõ ràng và sáng tạo, vượt qua những khó khăn ngôn ngữ mà bạn có thể gặp phải.
    • Tìm hiểu thêm về vị trí ứng tuyển: ChatGPT không chỉ giúp viết CV mà còn mang lại thông tin chi tiết về vị trí bạn đang ứng tuyển. Bạn có thể nhanh chóng tìm hiểu về các chứng chỉ phổ biến, keyword quan trọng, cũng như kỹ năng và yêu cầu cụ thể liên quan đến công việc.

    Điểm hạn chế của ChatGPT khi viết CV IT

    Mặc dù ChatGPT là một công cụ mạnh mẽ và hữu ích trong việc viết CV, nhưng cũng tồn tại một số điểm hạn chế cần lưu ý:

    • Hiểu biết hạn chế về ngữ cảnh cụ thể: ChatGPT có thể gặp khó khăn trong việc hiểu biết ngữ cảnh cụ thể của một người và vị trí công việc họ đang ứng tuyển. Điều này có thể dẫn đến việc tạo ra một CV có thể không hoàn toàn phản ánh được kinh nghiệm và kỹ năng chính xác của ứng viên.
    • Cần kiểm tra về độ chính xác của thông tin: Mặc dù ChatGPT có khả năng tạo ra văn bản phức tạp, nhưng nó không thể đảm bảo tính chính xác tuyệt đối của mọi thông tin. Việc kiểm tra và chỉnh sửa lại thông tin là cần thiết để đảm bảo sự chính xác.

     

    Kỹ thuật tối ưu hóa CV bằng ChatGPT

    1. Cung cấp câu lệnh mở đầu để mô tả ngữ cảnh

    Để ChatGPT hiểu được ngữ cảnh của tình huống bạn hãy mô tả chi tiết về vị trí công việc, nhu cầu mục đích tìm việc, trình độ chuyên môn,… Mô tả càng rõ ràng thì kết quả trả về từ ChatGPT sẽ càng chính xác.

    Đây là một câu lệnh (prompt) ví dụ bạn có thể tham khảo:

    viết CV xin việc bằng ChatGPT

    “Tôi là một lập trình viên Java với 3 năm kinh nghiệm. Hiện tại tôi đang muốn ứng tuyển vào công ty [tên công ty] tại vị trí Senior Java Developer. Bạn hãy đóng vai là một người viết CV chuyên nghiệp với hơn 15 năm kinh nghiệm, bạn sẽ hỗ trợ tôi viết CV ứng tuyển vào vị trí Senior Java Developer. Tôi cần viết CV với một giọng văn chuyên nghiệp, cấu trúc chuẩn ATS và nội dung phù hợp với vị trí tôi đang ứng tuyển. Bạn chưa cần phải làm gì cả, hãy trả lời “có” nếu bạn đã hiểu.”

    Việc làm AI lương thưởng hấp dẫn, mới nhất dành cho bạn!

    2. Cung cấp các thông tin chi tiết về CV

    Sau khi bạn đã cho ChatGPT biết về bối cảnh và nhiệm vụ mà nó phải làm, bạn hãy cung cấp cho ChatGPT những thông tin mà bạn muốn đưa vào CV. Dưới đây là prompt để bạn yêu cầu ChatGPT chỉnh sửa hoặc bổ sung những phần còn thiếu trong CV:

    “Tôi sẽ cung cấp cho bạn những thông tin sẽ được thể hiện trong CV, bạn hãy phản hồi cho tôi về nội dung này bao gồm những thông tin còn thiếu, cần bổ sung những thông tin nào? Dưới đây là những thông tin của tôi:

    – giới thiệu: Cung cấp tên, email, số điện thoại, địa chỉ.

    – kinh nghiệm làm việc: Phần này liệt kê các vị trí làm việc trước đây của bạn, bao gồm tên công ty, vị trí, thời gian làm việc, và các trách nhiệm và thành tích của bạn.

    – trình độ học vấn: Phần này liệt kê các bằng cấp học vấn của bạn, bao gồm tên trường, chuyên ngành, và năm tốt nghiệp.

    – kỹ năng: Phần này liệt kê các kỹ năng của bạn, bao gồm kỹ năng cứng (hard skills) và kỹ năng mềm (soft skills).

    – Thành tích: Phần này liệt kê các thành tích của bạn, bao gồm các giải thưởng, thành tích cá nhân, và các hoạt động ngoại khóa.”

    Sau khi nhập đầy đủ thông tin ChatGPT sẽ cho bạn một loạt các gợi ý điều chỉnh rất chi tiết.

    viết CV xin việc bằng ChatGPT
    ChatGPT đưa ra gợi ý điều chỉnh sau khi bạn đã nhập thông tin

    3. Điều chỉnh CV phù hợp với vị trí ứng tuyển

    Bước tiếp theo trong kỹ thuật tối ưu hóa CV bằng ChatGPT chính là điều chỉnh nội dung CV sao cho phù hợp với yêu cầu mà nhà tuyển dụng ghi trong JD. Tại đây bạn có thể sử dụng prompt sau:

    “Dựa vào những thông tin mà tôi đã cung cấp ở trên. Hãy phản hồi lại cho tôi về cách điều chỉnh nó cho phù hợp với tin tuyển dụng sau đây: [Dán những yêu cầu trong JD tuyển dụng vào đây]”

    Sau đó bạn sẽ nhận được một số yêu cầu chỉnh sửa phù hợp.

      Dân IT có thể được ChatGPT hỗ trợ code tự động hóa như thế nào?

      ChatGPT liệu có làm lập trình viên mất việc? - Phần 1

    4. Điều chỉnh chi tiết và viết lại từng phần

    Sau khi đã có đầy đủ các thông tin và cả những gợi ý chỉnh sửa bạn hãy viết thành một CV hoàn chỉnh. Dùng prompt sau để yêu cầu ChatGPT tối ưu nội dung:

    “Tôi đã hoàn thành CV của tôi và tôi muốn làm cho nó hấp dẫn hơn, câu từ súc tích và chuyên nghiệp hơn. Đây là CV của tôi: [Dán vào đây]”

    Tương tự, nếu như phần nào trong CV bạn muốn chỉnh sửa và chỉnh sửa như thế nào thì bạn hãy yêu cầu ChatGPT bằng một câu lệnh cụ thể. Chỉ vài bước đơn giản thôi là bạn đã có một chiếc CV hoàn thiện hơn rồi.

    Tạo CV IT chuẩn ATS thông qua công cụ tạo CV online của TopDev

    Những điểm cần lưu ý khi viết CV IT bằng ChatGPT

    • Chất lượng thông tin đầu vào quyết định chất lượng đầu ra: ChatGPT không phải là “thần thánh biến không thành có.” Chất lượng của thông tin bạn cung cấp sẽ trực tiếp ảnh hưởng đến chất lượng và hiệu quả của những gợi ý từ ChatGPT. Để có kết quả tốt nhất, hãy đảm bảo thông tin đầu vào từ CV của bạn là chi tiết và đầy đủ.
    • Trung thực khi viết kinh nghiệm: Bạn là người duy nhất nắm rõ hết về kinh nghiệm cá nhân của mình. ChatGPT có vai trò điều chỉnh và tối ưu hóa CV dựa trên thông tin bạn cung cấp. Hãy chắc chắn rằng bạn mô tả kinh nghiệm của mình một cách cụ thể và rõ ràng để ChatGPT có thể làm việc hiệu quả.
    • Chi tiết và cụ thể về yêu cầu: Cung cấp thông tin về yêu cầu công việc một cách rất chi tiết và cụ thể. Điều này giúp ChatGPT hiểu rõ về các kỹ năng và yêu cầu cụ thể của vị trí IT mà bạn đang ứng tuyển, giúp tối ưu hóa CV theo hướng chính xác.
    • Cung cấp bối cảnh cụ thể: Đừng chỉ liệt kê kỹ năng và nhiệm vụ, hãy giải thích kinh nghiệm của bạn và cung cấp bối cảnh xung quanh. ChatGPT có thể sử dụng thông tin này để tạo ra một câu chuyện liên quan, giúp CV trở nên sống động và thuyết phục hơn.
    • Đặt câu hỏi để bổ sung những nội dung còn thiếu: Hãy sẵn sàng đặt câu hỏi cho ChatGPT để bổ sung thông tin còn trống trong CV của bạn. Điều này giúp đảm bảo rằng mọi khía cạnh quan trọng đều được thể hiện đầy đủ và chi tiết.

    Hy vọng rằng với những chia sẻ về cách tối ưu hóa CV bằng ChatGPT trong bài viết này sẽ giúp việc viết CV của bạn dễ dàng hơn. Tuy nhiên, bạn cần lưu ý một số điều khi sử dụng ChatGPT để đảm bảo CV của bạn được viết một cách hiệu quả. Bạn nên cung cấp thông tin chính xác và đầy đủ, tùy chỉnh CV cho từng vị trí ứng tuyển, kiểm tra kỹ CV trước khi nộp, và sử dụng công cụ kiểm tra ATS. Chúc bạn thành công

    Xem thêm:

    Xem thêm các việc làm về CNTT hấp dẫn tại TopDev

    mgm’s own office in HCMC

    mgm's own office in HCMC

    It has been more than 1 year since our first launch in Ho Chi Minh City, now MGM Technology Partners is proud and happy to share that they have our own building in HCMC from this November.

    It’s a great journey with mgm HCMC and a story to be told behind the new office in 195A Hai Ba Trung. Ward 6, Dist. 3 😀 Let’s discover by watching this video recap.

    Link post: https://www.linkedin.com/posts/mgm-technology-partners-vietnam-co-ltd_mgm-hcmc-office-activity-7127919459528294400-Nbo-/

    mgm technology partners Vietnam Co. Ltd
    Website: http://www.mgm-tp.com
    Join us: https://lnkd.in/gUi_y8GU
    Why mgm: https://lnkd.in/gziNr4iH
    Phone: (+84) 236 3531 77

    SourceTree là gì? Quản lý code bằng Git với SourceTree

    SourceTree là gì? Quản lý code bằng Git với SourceTree

    Đối với anh em lập trình viên hiện nay thì Gitquản lý source code là những kỹ năng bắt buộc phải có để có thể làm việc hàng ngày. Có nhiều công cụ được sinh ra để giúp đơn giản hóa và tối ưu hóa cho công việc này, và SourceTree là một cái tên được nhiều Developer lựa chọn và tin tưởng. Bài viết hôm nay chúng ta cùng nhau tìm hiểu Source Tree là gì và cách quản lý source code bằng Git với SourceTree nhé. 

    SourceTree là gì?

    SourceTree là một ứng dụng quản lý mã nguồn và tương tác với hệ thống quản lý phiên bản source code Git phổ biến nhất hiện nay. Được phát triển bởi Atlassian, một công ty chuyên phát triển sản phẩm dành cho việc quản lý dự án và phần mềm; SourceTree hiện nay có sẵn trên cả hệ điều hành Windows và Mac OS hoàn toàn miễn phí.

    SourceTree là gì?

    Đối với anh em lập trình viên mới tiếp xúc và làm việc với Git thì việc thao tác sử dụng thông qua dòng lệnh (command line) không hề dễ dàng; vì thế những công cụ GUI như SourceTree giúp trực quan hóa các thao tác với Git giúp chúng ta hiểu hơn về cách hoạt động, làm việc hay Git Flow. Ngoài ra thì SourceTree còn có những ưu điểm được anh em Dev yêu thích như:

    • Giao diện tổng quan: nếu như với command line bạn cần thực hiện từng câu lệnh riêng lẻ để xem được số branch đang có, log lịch sử các commit trong dự án hay xem các stash commit bạn đang lưu trữ thì với SourceTree, bạn có thể xem chúng cùng lúc một cách trực quan, tổng quát hơn rất nhiều.
    • Tính năng xem dạng biểu đồ (graph): đây là một tính năng hữu ích nhất, cũng là lý do mà nhiều anh em thuần thục với command line vẫn sử dụng SourceTree để xem được lịch sử các commit, các lần merge code, các nhánh liên quan.
    • Xem sự thay đổi của file: SourceTree cũng cung cấp tính năng xem những phần file được thay đổi trước khi bạn thực hiện lệnh commit. Tính năng này giúp bạn check lại xem có những đoạn code nào mà bạn có thể thêm vào chỉ dành cho mục đích debug, kiểm tra để có thể xóa hoặc commit trước khi đẩy code.
    • Trợ giúp xử lý conflict: cho phép chúng ta xử lý nhanh conflict bằng một số lựa chọn như sử dụng file hiện tại, sử dụng file từ remote,… khá tiện lợi mà không cần mở lại source code.
    • Khả năng tích hợp với nhiều dịch vụ Git: SourceTree cho phép bạn tích hợp, liên kết tài khoản với GitHub, GitLab hay BitBucket, từ đó có thể đồng bộ các thông tin của nhiều dự án (repository) khác nhau nhanh chóng.

    SourceTree là gì?

      Sự khác biệt giữa ‘git merge’ và ‘git rebase’ là gì?

      Bạn có đang dùng git hiệu quả hay không?

    Quản lý source code dự án bằng Git với SourceTree 

    Trước hết để có thể sử dụng tốt SourceTree, bạn bắt buộc phải có kiến thức cơ bản về Git. Các thao tác trên GUI của SourceTree thực chất cũng sẽ là những lệnh Git thực thi ở phía dưới, vì thế bạn cần hiểu rõ chúng để thực hiện chính xác.

    Để bắt đầu với SourceTree, chúng ta có thể dễ dàng download và cài đặt để sử dụng, link phần mềm các bạn có thể xem dưới đây, lựa chọn đúng hệ điều hành để tải, các bước cài đặt cũng khá dễ dàng và nhanh chóng:

    Link download SourceTree: https://www.sourcetreeapp.com/

    Việc đầu tiên trong quản lý source code chính là clone một repository, ở bước này bạn có thể lựa chọn việc tích hợp tài khoản GitLab, GitHub hay BitBucket hoặc đơn thuần là nhập vào địa chỉ remote trực tiếp để kéo source code dự án về. Kết quả nhận được khi mở một dự án trên SourceTree sẽ như dưới đây

    Quản lý source code dự án bằng Git với SourceTree 

    Về mặt giao diện, SourceTree chia thành 3 khu vực chính bao gồm:

    • Header: các thao tác thường sử dụng nhất như Commit, Pull, Push hay tạo Branch và Merge code. Những thao tác này hoàn toàn dễ hiểu và sử dụng khi bạn đã biết cơ bản về Git
    • Left-Side: chứa thông tin về WorkSpace, những file bạn đang chỉnh sửa, thêm mới, … Tiếp đó là thông tin về các nhánh (branches) của cả local và remote; các tags, stash, ….
    • Graph: biểu đồ thể hiện lịch sử các commit, các nhánh và các thao tác merge code giữa các nhánh với nhau. Mỗi nhánh sẽ có một màu sắc riêng khá dễ để theo dõi một cách trực quan.

    Một số lưu ý khi quản lý source code dự án với SourceTree:

    • SourceTree không có đầy đủ các tính năng mở rộng so với việc sử dụng dòng lệnh, vì vậy nếu cần sử dụng các tính năng Git Advanced phức tạp thì bạn nên tránh việc thao tác với SourceTree.
    • SourceTree sẽ yêu cầu đòi hỏi sử dụng tiêu tốn tài nguyên hệ thống đáng kể nếu bạn làm việc trên các dự án lớn. Khi số lượng branch, commit trở nên rất lớn thì việc SourceTree cần tài nguyên để xử lý là không tránh khỏi, lúc này bạn cũng nên ưu tiên làm việc với command line nhiều hơn để tăng hiệu suất
    • Tài liệu mô tả của SourceTree không quá đầy đủ, và có thể nói là bạn sẽ không học được nhiều về Git Flow chuyên sâu nếu như sử dụng SourceTree. Một số thao tác khi thực hiện trên GUI sẽ là tổ hợp của nhiều dòng lệnh, vì vậy bạn vẫn nên cẩn thận trước khi sử dụng.

    Khi nào nên dùng Sourcetree

    Có nhiều lời khuyên từ các Senior Dev cho rằng nên học, sử dụng và làm việc Git với command line cho quen và chuyên nghiệp hơn; không nên sử dụng các tool GUI Git vì có thể khiến bạn không nắm được bản chất của Git Flow hay các thao tác mà các tool đó đã tích hợp sẵn. Tuy nhiên bất cứ công cụ nào sinh ra cũng có mục đích riêng và phục vụ giúp công việc của chúng ta trở nên thuận tiện hơn.

    Nếu bạn thường xuyên làm việc với server, chỉ giao tiếp hoàn toàn thông qua câu lệnh (command line) thì việc sử dụng SourceTree là bất khả thi. Nhưng nếu bạn ở vị trí là người thường xuyên merge code, xử lý các conflict xảy ra thì SourceTree sẽ giúp bạn khá nhiều việc hữu ích.

    Khi nào nên dùng Sourcetree

    Vì vậy nếu bạn yêu thích thao tác với giao diện (GUI), đừng ngại mà sử dụng SourceTree; sự phổ biến của nó là minh chứng cho việc nó vẫn rất hữu ích dành cho anh em lập trình. Nếu bạn cần một công cụ để học về Git, cũng không cần lo lắng quá nhiều về những vấn đề sẽ gặp phải khi chuyển qua command line. Nếu sử dụng thành thạo cả SourceTree và command line thì sẽ giúp bạn đa dạng hóa công cụ làm việc hơn và hiệu quả trong công việc sẽ tăng lên đấy.

    Kết bài

    SourceTree là một công cụ quản lý source code bằng Git với giao diện đồ họa dễ sử dụng, chạy được trên nhiều nền tảng và hoàn toàn miễn phí. Mặc dù có những hạn chế nhất định về tính năng mở rộng cùng những tài liệu liên quan nhưng đây vẫn là một lựa chọn tốt dành cho các anh em lập trình viên. Việc lựa chọn SourceTree hay Command Line phụ thuộc vào sở thích và nhu cầu của bạn trong từng dự án. Hy vọng bài viết hữu ích dành cho bạn và hẹn gặp lại trong các bài viết tiếp theo của mình.

    Tác giả: Phạm Minh Khoa

    Có thể bạn quan tâm:

    Xem thêm Việc làm Developer hấp dẫn trên TopDev