Home Blog Page 29

Có nên nộp hồ sơ công việc mình thích nhưng đang không đăng tuyển?

Có nên nộp hồ sơ công việc mình thích nhưng đang không tuyển?

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

Trước đây mình có tư vấn cho một bạn nữ là du học sinh về nước, học Marketing, rất thích ứng tuyển vào công ty S. của nghệ sĩ T., tuy nhiên chờ hoài không thấy công ty đó tuyển dụng. Mình mới nói bạn đừng chờ, phải thay đổi cách tiếp cận đi, làm ‘thế này thế này‘ thì mới tăng cơ hội trúng tuyển. Sau đó thì bạn trúng tuyển thật. Công ty S. đó không tuyển bạn, nhưng nghệ sĩ T. thì tuyển bạn vào một công ty mới thành lập của ảnh, đúng vị trí Marketing bạn yêu thích luôn. Mình nghĩ trường hợp này cũng thường gặp khi đi tìm việc, tức là chúng ta thích một vị trí hay một công ty nào đó mà chờ hoài họ không tuyển, vậy phải làm sao?

Cách Một Công Ty Tìm Người

Trước khi bắt đầu đi vào các cách thức, bạn đọc cần hiểu về cách mà một công ty thường tìm người, được biểu diễn ở hình tam giác dưới đây.

Cách Một Công Ty Tìm Người

Thông thường chúng ta, người tìm việc thường bắt đầu từ đỉnh tam giác, tức là tìm việc qua nộp CV. Công ty mở tin tuyển dụng thì mình nộp CV, không mở thì thôi. Tuy nhiên, công ty tìm người đã bắt đầu từ đáy của tam giác rồi.

Đầu tiên, công ty ưu tiện nội bộ luân chuyển, sau đó tìm qua mạng lưới quan hệ, rồi mãi sau mới đến kênh cuối cùng là đăng tuyển. Vậy tức là có khi với nhiều vị trí chưa cần đăng tuyển, công ty đã tìm được người rồi. Như vậy nếu ứng viên là chúng ta cứ ngồi chờ tin tuyển dụng thì bỏ lỡ cơ hội mất.

  Tại sao hồ sơ của bạn chưa được gọi đi phỏng vấn?

Chúng ta cần làm gì để tăng khả năng chúng tuyển?

1/ Ứng tuyển trực tiếp tại website công ty đó. Cách này phù hợp với những bạn đang nhắm đến các công ty lớn. Bởi lẽ các công ty lớn thường đều đầu từ các trang tuyển dụng riêng, bạn cứ tìm từ khoá ‘tên công ty + career‘ là đều ra. Lấy ví dụ như Career FPT SoftwareTikTok Careers.

2/ Tự giới thiệu đến mọi người trong môi quan hệ. Bạn soạn một bản CV thật chi tiết, kèm theo 100-200 từ giới thiệu về nhu cầu tìm việc của bản thân (kiểu công việc gì, lương nhiêu, ở đâu, sếp như nào…) sau đó bạn gửi email tới những người có thể giới thiệu công việc (sếp cũ, đồng nghiệp cũ, bạn bè), hoặc tự giới thiệu lên LinkedIn như ví dụ này.

3/ Liên hệ với một chuyên viên tuyển dụng. Cái này bạn nên tận dụng LinkedIn. Bạn lên LinkedIn gõ vào từ khoá ‘recruiter’ hoặc ‘headhunter’, sẽ cho ra nhiều cái tên những người đang là nghề này. Bạn chủ động nhắn tin cho họ kèm CV và đoạn giới thiệu ở trên, nếu lịch sự, chủ động và đủ may mắn, cơ hội sẽ đến với bạn ngay.

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

4/ Bạn chủ động liên hệ đa kênh với công ty. 

Cái này phù hợp để áp dụng với các công ty vừa và nhỏ. Nếu bạn thực sự thích công ty đó, bạn có thể liên hệ với họ qua các kênh như Facebook fanpage, Instagram, Tiktok, gửi email thẳng (trong website công ty có email). Trong nội dung gửi hãy kèm CV, nói rõ việc bạn thích công ty thế nào, bạn có thể làm được gì, và biết đâu công ty sẽ có một vị trí phù hợp cho bạn.

5/ Tham gia ngày hội nghề nghiệp. Cái này phù hợp cho sinh viên, cả người đi làm cũng có thể tận dụng. Các trường đại học năm nào cũng có ngày hội nghề nghiệp, trong ngày hội đó là có vô vàn các công ty tham gia và mong muốn tuyển dụng được người. Vậy lần tới tham dự ngày hội nghề nghiệp, hãy chuẩn bị một bản CV, kèm một bản A4 giới thiệu nhanh về nhu cầu bản thân và đưa đến các công ty ở đây. Đừng ngại. Nếu bạn ngại thì cơ hội vụt mất.

6/ Xây dựng thương hiệu cá nhân. Nãy giờ mình nói nhiều về việc chủ động tìm đến nhà tuyển dụng. Tuy nhiên có một cách khác là xây dựng thương hiệu cá nhân đủ mạnh và hay ho để nhà tuyển dụng phải tìm đến mình. Hiện nay xây dựng thương hiệu cá nhân không còn khó, bạn có thể bắt đầu ngay với một kênh Tiktok hoặc một fanpage chia sẻ về chủ đề mình thích.

Chúc bạn tìm việc thành công.

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

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

Top 6 mẹo của PHP giúp anh em code tốt hơn

Top 6 mẹo của PHP giúp anh em code tốt hơn

Học lập trình chính quy, bài bản, từ A tới Z nhưng đôi khi anh em quên mất ngôn ngữ lập trình nào cũng có tip và trick. Tip và trick là những lưu ý nhỏ đôi khi anh em quên mất, nhưng chính tip với trick nho nhỏ đó đôi khi lại giúp đỡ anh em rất nhiều.

Anh em lập trình PHP nên biết những trick này, biết để dùng cho đúng, đôi khi một mẹo hay đáng giá hơn ngàn lượng vàng. Ngoài ra biết mẹo đỡ mất công anh em research, xử nhanh gọn vấn đề tiết kiệm thời gian.

mẹo PHP
Cho vui thôi chứ PHP vẫn đáng yêu nha anh em. Làm web mà ko có PHP thì hết zui.

Bắt đầu thôi anh em, có trick nào hay thì lưu lại, hoặc bookmark cả bài viết sau mà tìm kiếm cho dễ nha!

1. If và else

Tips và trick này là đơn giản và phổ biến nhất khi anh em làm việc với PHP. Thông thường nhiều anh em sẽ thấy tip này trước đây nhưng chưa chú ý lắm. Nói chung if mà đi với else thì không có gì sai.

Rõ ràng là sinh ra if để đi với else, trước nay vẫn thế, tuy nhiên đôi khi else là dư thừa không cần thiết. Anh em xem thử ví dụ sau đây:

function output_gender(bool $user_is_male) {
    if ($user_is_male) {
        return "User is male";
    } else {
        return "User is female";
    }
}

Trong trường hợp này kết quả đầu ra sẽ tuỳ thuộc vào biến $user_is_male, giá trị true hay false. Lúc này else rõ ràng là dư thừa do return đã có ở trong, nếu đúng thì đã return và trả về code, không có gì phải else.

Viết lại ngắn gọn rõ ràng súc tích hơn như sau:

function output_gender(bool $user_is_male) {
    if ($user_is_male) {
        return "User is male";
    }

    return "User is female";
}

Tip này tuy nhỏ, nhiều anh em có thể biết rồi nhưng cho những anh em mới, tip này sẽ khá là bổ ích

mẹo PHP
Nguồn ảnh/ Source: detriamelia.com

2. Verifying multiple strings

Giả sử anh em muốn kiểm tra xem chuỗi string thuộc về case nào trong các case. Thường sử dụng switch case anh em sẽ viết như sau:

$item = "candy";

switch ($item) {
    case 'candy':
        return true;
    case 'toy':
        return true;
    default:
        return false;
}
// we're not adding break because we're using return

// or
if ($item == 'candy' || $item == 'toy') {
    return true;
}

return false;

Đoạn code này sẽ trả về true nếu chuỗi là candy hoặc toy . Cách viết này hoàn toàn là đúng, không có gì sai nha anh em. Tuy nhiên cách viết này lặp đi lặp lại khá mất công sức. Thay vào đó anh em có thể sử dụng array

if (in_array($item, ["candy", "toy"])) {
    return true;
}

return false;

Thâm chí không cần cả if và else, chỉ một dòng duy nhất

return in_array($item, ["candy", "toy"]);

Cũng có một cách khác anh em có thể viết ngắn gọn như sau:

return ($item == 'candy' || $item == 'toy');

  Cài đặt môi trường lập trình web PHP

  Substr trong php là gì? Ví dụ về substr

3. Hai dấu hỏi (??)

Anh em làm việc lâu với php chắc không còn lạ gì với double question mark. Đây là cách nhanh nhất để viết điều kiện if else trong code php. Anh em cùng xem qua ví dụ sau về mẹo PHP:

$data = [
    "a" => 1,
    "b" => 2,
    "c" => null,
];

return $data["c"] ? $data["c"] : "No data";

Dòng cuối cùng này kiểm tra xem c có ở trong mảng data hay không?. Nếu không tồn tại sẽ trả về No data. Đống code loằng ngoằng khó chịu này có thể gom lại thành 1 dòng.

return $data["c"] ?? "No data";

Trường hợp này hai dấu hỏi ??, tương tự với || ở các ngôn ngữ lập trình khác. Tip này tuy đơn giản nhưng hữu ích và có thể nhiều anh em đã biết rồi. Tuy nhiên một số anh em có thể chưa biết nên lưu lại nhé.

Xem ngay tin tuyển dụng PHP lương cao trên TopDev

4. PHP và HTML

Trong quá trình làm dự án có cả FrontendBackend, không tránh khỏi những lúc anh em muốn viết PHP trong HTML và HTML trong PHP. Thông thường anh em sẽ thực hiện mẹo PHP này như sau:

<?php
foreach ($items as $item) {
    echo '
        <div class="product__card">
            <h3>{$item->name}</h3>
        </div>
    ';
}
?>

Code này thì khá là rõ ràng, tuy nhiên HTML kiểu này anh em thường viết theo string. Mà viết theo string thì hay nhầm lẫn, thiếu tag, sai syntax các kiểu. Có một tips anh em có thể thử:

<?php foreach ($items as $item): ?>
    <div class="product__card">
        <h3><?php echo $item->name; ?></h3>
    </div>
<?php endforeach; ?>

Trường hợp có nhiều if else và for each, anh em có thể maintain theo cách sau:

foreach (...):
// code
endforeach;

// also works with if
if (...):
// code
endif;

// also
if (...) #one line code

while():
// ...
endwhile;

PHP mix với HTML chưa bao giờ là dễ

mẹo PHP
Nguồn ảnh/ Source: stackoverflow.com

5. Functional blocks

Function block (khối function), có thể là một tính năng đơn lẻ hoặc một tác vụ phức tạp, như ví dụ dưới đây anh em có thể viết function gọn nhẹ redirect to:

function redirectTo($route) {
    header("location: $route", true, 302);
}

Với các function kiểu này, mỗi khi anh em muốn redirect tới home thì chỉ cần gọi function redirectTo. Thay vì header("location: /home", true, 302) anh em chỉ cần gọi function redirectTo("/home"). Viết function kiểu đó vừa gọn nhẹ, vừa clear. Code cũng tái sử dụng tốt hơn.

Ý tưởng này anh em cũng có thể apply cho gửi function và nhiều tác vụ khác. Đơn cử như gửi notification dưới đây.

UserNotification::send($user_id, $notification);

Mẹo PHP này tuy nhỏ nhưng khá bổ ích, anh em nhớ note lại nha.

6. Đệ quy và sự lặp lại

Mục đích của mẹo PHP này khá đơn giản, anh em nên cố gắng sử dụng đệ quy càng nhiều càng tốt. Thay vì lặp lại quá nhiều, cứ khi nào thấy quá nhiều thì cố gắng sử dụng đệ quy.

/**
 * Returns request data
 *
 * This methods returns data passed into the request (request or form data).
 * This method returns get, post, put patch, delete or raw faw form data or NULL
 * if the data isn't found.
 *
 * @param string|array $params The parameter(s) to return
 * @param bool $safeData Sanitize output
 */

Hàm này trả về array hoặc string tuỳ theo input đầu vào. Giải pháp là nếu đầu vào là array thì sẽ loop từng item trên array đó.

public function get($params, bool $safeData = true)
{
    if (is_string($params)) return $this->body($safeData)[$params] ?? null;

    $data = [];
    foreach ($params as $param) {
        $data[$param] = $this->body($safeData)[$params] ?? null;
    }
    return $data;
}

Sẽ có một đoạn lặp đi lặp lại là $data[$param] = $this->body($safeData)[$params] ?? null;. Thay vì lặp foreach kiểu đó, anh em có thể sử dụng đệ quy:

public function get($params, bool $safeData = true)
{
    if (is_string($params)) return $this->body($safeData)[$params] ?? null;

    $data = [];
    foreach ($params as $param) {
        $data[$param] = $this->get($param, $safeData); // I called the function again
    }
    return $data;
}

7. Tham khảo

Ngoài ra anh em có thể tham khảo thêm một số mẹo PHP khác:

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:

 

So sánh Data Analyst với Business Analyst, nên chọn cái nào?

So sánh Data Analyst với Business Analyst

Data AnalystBusiness Analyst là 2 vị trí công việc khác nhau nhưng thường hay bị nhầm lẫn vai trò, chủ yếu là do đều cùng chức danh là nhà phân tích. Với sự phát triển của Big Data thì 2 vị trí trên ngày càng trở nên quan trọng trong một tổ chức. Để hiểu rõ hơn vai trò, nhiệm vụ của từng vị trí, bài viết hôm nay chúng ta cùng đi so sánh giữa Data Analyst và Business Analyst nhé.

Trước tiên, chúng ta cùng đi vào từng vai trò một để hiểu được công việc của một Nhà phân tích dữ liệu và Nhà phân tích kinh doanh là gì?

Data Analyst là gì?

Data Analyst – Chuyên viên phân tích dữ liệu là người sử dụng các công cụ đặc biệt để kiếm tra dữ liệu trong doanh nghiệp, sau đó sử dụng dữ liệu đó một cách chính xác và hiệu quả nhằm đưa ra các báo cáo, đánh giá về một vấn đề cụ thể trong tổ chức.

Data Analyst là gì?

Data Analyst có vai trò đảm bảo tính chính xác và khả năng sử dụng lại được dữ liệu, song song với đó là việc bảo vệ dữ liệu của tổ chức khỏi nguy cơ mất mát, bị đánh cắp. Với sức mạnh đến từ dữ liệu thì chuyên viên phân tích dữ liệu đóng vai trò quan trọng trong nhiều lĩnh vực khác nhau từ nông nghiệp, thực phẩm, du lịch,… nhằm có thể tận dụng được tiềm năng của dữ liệu để đưa ra những quyết định chiến lược quan trọng, tăng sức cạnh tranh của doanh nghiệp.

Business Analyst là gì?

Business Analyst – Chuyên viên phân tích kinh doanh là người có những hiểu biết về nghiệp vụ của hệ thống và trong lĩnh vực kinh doanh của doanh nghiệp, tổ chức. Business Analyst đóng vai trò xử lý các yêu cầu dịch vụ và đưa ra các giải pháp để cải tiến hệ thống hiện tại.

Data Analyst là gì?

Để làm việc như một chuyên viên phân tích kinh doanh, bạn cần có kiến thức về thống kê, phân tích định lượng, phân tích hoạt động kinh doanh, có khả năng trình bày, trực quan hóa dữ liệu để từ đó giải quyết các vấn đề liên quan đến kinh doanh, chiến lược hay giúp đưa ra quyết định. 

Có thể thấy một trong những kỹ năng quan trọng nhất mà Business Analyst cần có chính là phân tích dữ liệu được thu thập từ các nguồn khác nhau liên quan đến các hoạt động của tổ chức cũng như thị trường. Vì vậy mà công việc của Business Analyst sẽ có phần tương đồng với vai trò của một Data Analyst. Điểm khác nhau giữa 2 vị trí chuyên viên phân tích này là gì?

  Data scientist vs data analyst: những khác biệt mà bạn cần biết

  Phỏng Vấn Data Analyst: TOP 5 Câu Hỏi Bạn Không Nên Bỏ Qua!

So sánh giữa Data Analyst và Business Analyst

Data Analyst là gì?

1. Về nhiệm vụ

Business Analyst (BA) có nhiệm vụ chính là phân tích, xây dựng và phát triển kinh doanh. Để đạt được điều này thì BA cũng có nhiệm vụ lập báo cáo, xây dựng quy trình, thiết lập KPI cho từng bộ phận; từ đó giúp doanh nghiệp và tổ chức nhận định được một cách chính xác về thực trạng hiện tại và đưa ra được quyết định cho tương lai. Data Analyst (DA) có phạm vi nhiệm vụ nhỏ hơn, tập trung chính vào việc nghiên cứu, xử lý, bảo mật dữ liệu, hỗ trợ cung cấp các báo cáo mà tổ chức hay chính BA cần đến với từng nhiệm vụ cụ thể.

2. Về dữ liệu

DA là người thao tác trực tiếp với dữ liệu thô (dữ liệu nguồn) từ rất nhiều nguồn khác nhau; mức độ tin cậy và chính xác của dữ liệu cũng là một vấn đề là DA cần phải có biết tiền xử lý. Một DA có thể xuất phát từ người chuyên về kỹ thuật, sử dụng mô hình dữ liệu viết các câu lệnh để truy vấn các cơ sở dữ liệu từ các hệ quản trị cơ sở dữ liệu khác nhau. 

Đối với dữ liệu, BA thường sẽ được tiếp nhận số liệu báo cáo từ các bộ phận phía dưới, trong đó có DA. Dữ liệu dành cho BA đòi hỏi có sự tổng hợp và có ngữ nghĩa; tính chính xác cũng cao hơn so với dữ liệu mà DA xử lý.

Xem thêm tuyển dụng Data Analytics lương cao trên TopDev

3. Về kỹ năng

DA yêu cầu kỹ năng xử lý và phân tích dữ liệu thô để tìm ra những thông tin có giá trị. Để tối ưu hóa công việc này, DA là người xây dựng mô hình dữ liệu từ ban đầu hoặc sẽ là người xử lý chuẩn hóa dữ liệu doanh nghiệp hiện có. Ngoài ra, sau khi thu thập, xử lý, DA sẽ cần những kỹ năng sử dụng công cụ phân tích số liệu, kiến thức về thống kê cùng kỹ năng sử dụng các công cụ trực quan hóa để diễn giải và trình bày số liệu cho người khác.

BA yêu cầu nhiều hơn về các kiến thức kinh doanh cũng như nghiệp vụ trong doanh nghiệp, vì vậy họ cần có nhiều kiến thức tổng quan khác nhau liên quan đến quy trình, sản phẩm, lĩnh vực kinh doanh của tổ chức. Kỹ năng phân tích số liệu chỉ là một trong nhiều kỹ năng là BA cần phải có, tiếp đó họ cần nghiên cứu để có thể đưa ra được các cải tiến và đề xuất giải pháp trong kinh doanh. Cũng vì vậy, BA sẽ làm việc với nhiều phòng ban và bộ phận khác nhau, từ đó cần trang bị thêm các kỹ năng liên quan đến việc lắng nghe, giao tiếp cùng khả năng trình bày và thuyết phục người khác.

Kết bài

Từ những phân tích trong bài viết, có thể thấy Business Analyst là vị trí có phạm vi, vai trò, nhiệm vụ rộng hơn trong tổ chức so với Data Analyst. Điểm khác nhau cơ bản ở đây chính là việc Data Analyst chủ yếu tập trung vào phân tích dữ liệu, trong khi đó Business Analyst tập trung vào khía cạnh nghiệp vụ kinh doanh.

Vì vậy, nếu bạn có dự định trở thành một trong hai vị trí trên, hãy cân nhắc thật kỹ và có quyết định phù hợp với khả năng và định hướng của mình trong tương lai nhé. Cảm ơn các bạn đã đọc bài 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 tuyển dụng IT hấp dẫn trên TopDev

SharePoint Developer là gì? Cần học gì để trở thành lập trình viên SharePoint

SharePoint Developer

Ra đời từ đầu những năm 2001, SharePoint được Microsoft giới thiệu với mục đích chủ yếu là để lưu trữ và quản lý tài liệu trong doanh nghiệp, tổ chức. Hiện nay, SharePoint trở thành một nền tảng dùng để phát triển ứng dụng Web, tích hợp với bộ công cụ Office với nhiều sản phẩm và công nghệ hữu ích cho người dùng.

Cũng nhờ đó mà anh em lập trình viên có hướng đi mới trở thành một SharePoint Developer, xây dựng và phát triển các ứng dụng trên nền tảng mạnh mẽ này. Bài viết hôm nay chúng ta cùng nhau tìm hiểu xem SharePoint Developer là gì? và cần học gì để trở thành một lập trình viên SharePoint nhé.

SharePoint là gì?

SharePoint là một nền tảng cộng tác làm việc (collaboration) dựa trên Web (web-based). Các doanh nghiệp sử dụng SharePoint sẽ tạo các trang Web nội bộ dành cho đội nhóm hoặc quy mô toàn công ty với tính bảo mật cao; từ những trang Web này, các thành viên trong tổ chức có thể truy cập, chia sẻ và chỉnh sửa các tài liệu một cách dễ dàng.

SharePoint là gì?

SharePoint có 4 nhóm người dùng chính gồm:

  • Developer: nhà phát triển SharePoint
  • Consultant: chuyên gia tư vấn, cầu nối giữa Developer và khách hàng có nhu cầu sử dụng SharePoint
  • Administrator: quản trị viên chịu trách nhiệm bảo mật, phân quyền, đảm bảo hoạt động của hệ thống
  • End-User: người sử dụng đầu cuối, thao tác với giao diện của SharePoint và không liên quan đến mặt kỹ thuật của hệ thống

SharePoint Developer là gì?

SharePoint Developer là các nhà phát triển SharePoint có vai trò chính tương tự như một lập trình viên tham gia vào quá trình xây dựng và phát triển các thành phần, ứng dụng dựa trên nhu cầu của doanh nghiệp.

SharePoint là gì?

SharePoint cung cấp nền tảng có sẵn các tính năng, tiện ích hỗ trợ nhu cầu của doanh nghiệp trong các hoạt động làm việc nhóm, hợp tác, quản lý tài nguyên, tài liệu,… SharePoint Developer là những người sẽ viết code xây dựng các Website trên SharePoint, tận dụng nền tảng này để tạo ra những ứng dụng đáp ứng nhu cầu tùy biến của tổ chức hay khách hàng.

Việc lựa chọn SharePoint làm nền tảng giúp các lập trình viên tiết kiệm được rất nhiều thời gian, chi phí viết code, xây dựng tính năng; doanh nghiệp cũng giảm bớt được chi phí, tối ưu hơn so với xây dựng từ đầu.

  Bỏ túi 8 API hữu ích cho anh em developer

  Top 9 app học lập trình tốt nhất cho các developer

Những kỹ năng cần có để trở thành SharePoint Developer

SharePoint là một nền tảng cộng tác làm việc, hay nói cách khác thì lập trình viên SharePoint sẽ tạo ra các ứng dụng, phần mềm giúp hỗ trợ các doanh nghiệp làm việc theo đội nhóm, quản lý, chia sẻ sử dụng các tài nguyên. Vì vậy, để làm việc cùng SharePoint, trước hết chúng ta cần có khái niệm về phần mềm, công cụ cộng tác cùng các quy trình nhóm áp dụng trong tổ chức doanh nghiệp mà SharePoint áp dụng. 

Tiếp theo đó, để làm việc, viết code, xây dựng các ứng dụng trên nền tảng SharePoint, lập trình viên cần trang bị những kỹ năng như dưới đây:

Kiến trúc SharePoint và mô hình đối tượng

Kiến trúc SharePoint và mô hình đối tượng

Các thành phần kiến trúc trong SharePoint bao gồm Web Application (ứng dụng Web), Site Collection (tập hợp các trang), Site (Trang), Library (Thư viện) và các Web Part/Workflow – chỉ ra cách lưu trữ và truy xuất thông tin trong SharePoint. Nắm rõ được các thành phần này là điều bắt buộc để bạn có thể làm việc với nền tảng SharePoint. Để thao tác với dữ liệu giữa các thành phần này, chúng ta cũng cần nắm được CAML (Collaboration And Markup Language) – ngôn ngữ truy vấn và truy xuất dữ liệu trong SharePoint, đồng thời thực hiện thao tác dữ liệu dựa trên mô hình đối tượng (Object Model).

Tuyển dụng việc làm Web Developer lương cao hấp dẫn trên TopDev!

Ngôn ngữ lập trình

C#JavaScript là 2 ngôn ngữ lập trình chính sử dụng trong SharePoint. Để tùy chỉnh các chức năng trong SharePoint, bạn cần nắm vững các khái niệm về biến, kiểu dữ liệu, vòng lặp, điều kiện và hàm trong C# để bắt đầu viết code. JavaScript sẽ dành cho việc xây dựng danh sách, tạo biểu mẫu hay các thành phần trong Web. Ngoài ra thì do SharePoint sẽ tạo ra các trang Web nội bộ trong doanh nghiệp sử dụng, vì vậy bạn cũng cần trang bị các kiến thức Frontend Web bao gồm HTML, CSS hay sử dụng thư viện jQuery để tùy chỉnh giao diện người dùng.

Kiến trúc SharePoint và mô hình đối tượng

Để thực hiện các thao tác với dữ liệu (query data), SharePoint sử dụng CAML (Collaboration and Markup Language) – ngôn ngữ truy vấn dựa trên cấu trúc XML. Vì vậy bạn cũng cần thành thạo với ngôn ngữ này để sử dụng.

Hiểu về vòng đời phát triển phần mềm trong SharePoint

Vòng đời phát triển phần mềm SDLC (Software Development Lifecycle) là kiến thức cần thiết để trở thành một SharePoint Developer. Mỗi một dự án cần được triển khai theo trình tự các bước trong vòng đời phát triển phần mềm, từ phân tích, thiết kế đến triển khai và kiểm tra, sau đó là bảo trì. 

Kiến trúc SharePoint và mô hình đối tượng

Trong quá trình viết code, SharePoint bắt buộc tuân theo các quy ước có sẵn và phải đáp ứng tiêu chuẩn đặt ra từ trước, cùng với việc có tài liệu rõ ràng. Một ứng dụng Web viết trong SharePoint có thể được trở thành các plugins, app để tái sử dụng, do vậy cần tuân thủ quy trình, kiếm thử đảm bảo các thành phần trong source code hoạt động đúng yêu cầu.

Kết bài

Như vậy chúng ta đã cùng nhau tìm hiểu về SharePoint Developer cũng như những kỹ năng mà một lập trình viên SharePoint cần có. SharePoint đang là một công cụ, nền tảng mà Microsoft tập trung đẩy mạnh, vì thế thành thạo sử dụng và lập trình SharePoint sẽ giúp bạn có nhiều cơ hội việc làm tốt hơn. 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

Xem thêm:

Xem thêm tuyển dụng IT hấp dẫn trên TopDev

List 10 việc cần chuẩn bị trước khi “nhảy việc”

List 10 việc cần chuẩn bị trước khi

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

Nếu bạn làm việc ở nhiều doanh nghiệp trong một thời gian ngắn (dưới 1 năm), khi đi phỏng vấn hoặc tìm việc mới bạn sẽ gặp phải băn khoăn từ phía nhà tuyển dụng với mác “hay nhảy việc”. Thực tế đây là một lo lắng dễ hiểu từ phía doanh nghiệp, không ai muốn mất công tuyển dụng và đào tạo một nhân viên chỉ để làm một thời gian ngắn rồi người đó đi sang nơi khác.

Vấn đề là có rất nhiều lý do khiến một người nghỉ việc, từ những lý do chủ quan như thay đổi định hướng công việc, stress cho tới những lý do khách quan như công ty cắt giảm, kết thúc dự án. Có sự chuẩn bị kĩ càng trước khi ra quyết định đổi việc sẽ giúp bạn có được những lựa chọn nghề nghiệp hợp lý hơn sau này, cũng như dễ dàng thuyết phục nhà tuyển dụng hơn khi được hỏi về thời gian cam kết làm việc.

Nếu bạn đang có ý định nghỉ công việc hiện tại và tìm kiếm công việc mới, đây là một số điều bạn cần làm trước khi ra quyết định.

1/ Đo lường độ hài lòng với công việc hiện tại.

Trong thời gian đi làm, bạn nên ghi lại trong sổ hoặc note trên máy tính về những việc bạn làm hàng ngày. Việc gì bạn cảm thấy thích? Việc gì làm bạn không thích? Những stress bạn đang có từ công việc này đến từ tính chất công việc, mức lương, con người hay môi trường làm việc? Bạn chỉ đơn giản đang cảm thấy hơi chán hay công việc đang thật sự ảnh hưởng tiêu cực đến sức khoẻ thể chất và tinh thần của bạn?

Bạn cần phân tích thật kĩ 7 tiêu chí chọn việc để xem mình đang hạnh phúc và không hạnh phúc với tiêu chí nào, như vậy khi tìm kiếm cơ hội mới bạn sẽ có thứ để so sánh. Nếu bạn đang xuống dốc về thể chất, chất lượng giấc ngủ giảm sút, thường xuyên cáu gắt hoặc tâm trang tiêu cực – đó là dấu hiệu đỏ về việc thay đổi.

2/ Đánh giá lại sở thích, kĩ năng và giá trị công việc

Đây là ba yếu tố cốt lõi hình thành bản thân bạn trong công việc. Bạn có thể kiểm tra lại sở thích và kĩ năng thông qua trắc nghiệm Hollandchọn lựa giá trị nghề nghiệp trong danh sách nhiều giá trị khác nhau. Ngoài ra, bạn có thể dành thời gian xem lại một lượt các công việc và dự án mình đã làm từ trước đến giờ, xem trong đó có phần việc nào bạn thích, phần việc nào bạn ghét. Có thể bạn không hài lòng với công việc hiện tại nhưng vẫn có một vài đầu việc nhỏ bạn cảm thấy ổn và vui vẻ, đó là đầu việc gì cần chỉ rõ được ra.

  "Vì sao nghỉ việc tại công ty cũ?": 5 lý do thuyết phục nhà tuyển dụng

3/ Bắt đầu tìm kiếm các vị trí làm việc khác trong lĩnh vực của mình

Nếu bạn nhảy từ lĩnh vực A sang lĩnh vực B, bạn có thể mất rất nhiều thời gian để học lại từ đầu. Chính vì vậy, mình khuyên các bạn hãy bắt đầu bằng việc nghiên cứu thật kĩ xem trong ngành nghề của mình có vị trí công việc nào khác mình có thể thử hay không.

Ví dụ, cùng là lĩnh vực Marketing nhưng có nhiều các đầu việc khác nhau như Sales, SEO, Content, Telemarketing, Email Marketing…, mỗi công việc lại đòi hỏi đặc trưng tính cách khác nhau. Để làm được việc này, bạn cần sử dụng Google. Bạn lên Google tìm “các công việc ngành A” hoặc “jobs in A industry” để xem chi tiết các công việc.

4/ Hoặc tìm kiếm các ngành hàng, thị trường khác với vị trí mình đang làm

Với những vị trí công việc bạn có thể làm việc được trong nhiều kiểu công ty khác nhau. Ví dụ bạn có thể làm nhân sự ở bất kỳ kiểu công ty nào: bất động sản, giáo dục, bảo hiểm, tài chính… Rất có thể bạn đang không hài lòng với môi trường ngành hàng hiện tại mình đang làm, nhưng sẽ vẫn ổn nếu có cơ hội làm việc ở ngành hàng khác. Hãy suy nghĩ theo hướng này.

5/ Phỏng vấn người làm trong mảng đó

Nếu bạn đang quan tâm đến một công ty mới, lĩnh vực mới hoặc một ngành nghề mới mà chưa có cơ hội được trải nghiệm, việc bạn có thể làm là tìm một ai đó trong lĩnh vực đó, kết nối và tìm kiếm thông tin. Thời nay là thời đại thông tin, không lo thiếu thông tin, chỉ lo bạn thiếu sự chủ động. Bạn có thể sử dụng LinkedIn để tìm kiếm, kết nối hoặc tìm đọc về một số nghề tại thư viện nghề nghiệp của hướng nghiệp Sông An.

Tạo CV online miễn phí

6/ Chuẩn bị một khoản tiết kiệm

Nếu bạn không chịu nổi nữa và quyết định nghỉ việc để nghỉ ngơi, bạn nên có một khoản tiết kiệm tối thiểu bằng 3-6 tháng chi tiêu thông thường của bản thân. Trong tài chính cá nhân gọi đây là “Quỹ khẩn cấp“. Nếu chuyên tâm tìm việc, mình tin rằng chỉ cần 2-3 tháng tập trung là bạn có thể tìm được công việc phù hợp. Tuy nhiên trong thời gian đó bạn cũng cần ăn, nên việc có một khoản tiết kiệm giúp bạn cảm thấy thoải mái và đỡ áp lực hơn khi đi tìm việc.

  Nhảy việc thất bại, có nên quay lại công ty cũ làm việc?

7/ Update lại CV và các thông tin trên các trang tuyển dụng

Nếu một thời gian dài không tìm việc, các thông tin trên CV và trên các trang tìm việc như TopDev, TopCV của bạn sẽ bị cũ. Nếu bạn có ý định tìm việc mới, bạn cần dành ra một vài hôm để cập nhật lại CV mới nhất, vừa sử dụng để đi ứng tuyển các công ty, vừa tạo điều kiện khi nhân sự tìm kiếm CV của bạn sẽ có được các thông tin mới nhất. Bạn có thể xem các hướng dẫn cập nhật CV mới nhất tại đây.

8/ Thông báo đến các mối quan hệ

Nếu đến một thời điểm bạn đã quyết định đổi việc và đã có trong đầu một số ý tưởng công việc mới, đừng ngần ngại liên hệ lại những người bạn cũ, sếp cũ, những người bạn đang giữ quan hệ tốt để thông báo về ý định đổi việc của bạn. Bất kì ai cũng có thể là người tiềm năng biết một số những công việc hay ho để giới thiệu cho chúng ta.

9/ Xây dựng thương hiệu cá nhân và dành thời gian học kĩ năng mới

Khoảng thời gian giữa lúc muốn nghỉ công việc cũ và tìm công việc mới thường làm cho chúng ta bị chây ì. Hãy hạn chế việc này bằng việc xây dựng thương hiệu cá nhân cho bản thân hoặc học một thứ gì đó mới. Ví dụ, bạn viết blog hoặc quay Tiktok chia sẻ một số kiến thức về lĩnh vực bạn biết. Hoặc bạn lên Udemy, Coursera để tìm học một khoá học mới về một kĩ năng bất kì trong lĩnh vực mới bạn quan tâm.

10/ Tinh thần và sức khoẻ đi đôi với công việc

Khoảng thời gian suy nghĩ về việc có nên nghỉ việc hay không là khoảng thời gian rất stress với nhiều người. Hãy nhớ rằng cách để giảm bớt stress là bạn có sức khoẻ tinh thần và thể chất tốt. Đừng vì công việc mà bỏ quên việc ăn uống, tập luyện hay ngồi thiền. Dù công việc đang không ổn, dù chưa tìm được việc ưng ý, hãy cố gắng tiếp tục duy trì các thói quen tốt về ăn uống, tập luyện – điều này giúp cho bạn có được tâm trí và tinh thần minh mẫn, tự tin tìm kiếm các công việc tiếp theo.

Khi bạn có ý định đổi việc và vẫn có nhiều băn khoăn, bạn có thể đặt lịch tư vấn hướng nghiệp cùng Tuấn Anh – mình sẽ có các bài tập và các buổi nói chuyện giúp bạn bóc tách vấn đề, tìm kiếm công việc phù hợp và viết lại hồ sơ tốt nhất.

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

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

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

Axios là gì? So sánh Axios và Fetch

Axios là gì

Anh em lập trình Web thì chắc không còn xa lạ gì với Axios, một thư viện giúp chúng ta xử lý các request giữa client và server. Axios được ưa chuộng và sử dụng rộng rãi trong rất nhiều dự án và nó luôn được nằm trong top 20 những thư viện được download (gần 50 triệu lượt mỗi tuần) và sử dụng nhiều nhất từ NPM. Bài viết hôm nay chúng ta cùng đi trả lời cho câu hỏi Axios là gìtại sao nên sử dụng Axios nhé. 

Axios là gì?

Axios là một thư viện HTTP Client dựa trên Promise, có thể chạy được trên cả trình duyệt và NodeJS (phía server). Ở phía trình duyệt, Axios sử dụng XMLHttpRequest (XHR) cung cấp một API cho việc gọi và xử lý request/ response lên server; ngược lại ở phía server thì Axios sử dụng native module http trong NodeJS để xử lý. 

Axios là gì?

Tính năng Axios cung cấp:

  • Tạo request từ trình duyệt bằng XMLHttpRequest
  • Tạo request từ NodeJS bằng http
  • Hỗ trợ Promise API
  • Cho phép tiền xử lý trước lúc gửi request và nhận response với tính năng Interceptor
  • Chủ động biến đổi dữ liệu request và response, hỗ trợ mặc định kiểu JSON data
  • Hỗ trợ hủy request chủ động bằng AbortController
  • Hỗ trợ client chống lại tấn công kiểu XSRF

Việc sử dụng Axios cũng giúp chúng ta tiết kiệm được nhiều thời gian viết code, source code trở nên ngắn gọn và dễ đọc hơn. Nhờ vậy, Axios đang là thư viện được sử dụng phổ biến trong các ứng dụng Web hiện nay.

  TOP 10 Web Framework tốt nhất, đáng dùng nhất – Phần 1

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

Cài đặt và sử dụng Axios

Việc cài đặt Axios khá đơn giản và bạn có thể sử dụng một trong những cách dưới đây:

  • Sử dụng npm: $ npm install axios
  • Sử dụng bower: $ bower install axios
  • Sử dụng jsDelivr CDN: <script src=”https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js”></script>
  • Sử dụng unpkg CDN: <script src=”https://unpkg.com/axios/dist/axios.min.js”></script>

Axios cung cấp sẵn alias cho tất cả phương thức request được hỗ trợ:

  • axios.request(config)
  • axios.get(url[, config])
  • axios.delete(url[, config])
  • axios.head(url[, config])
  • axios.options(url[, config])
  • axios.post(url[, data[, config]])
  • axios.put(url[, data[, config]])
  • axios.patch(url[, data[, config]])

API Axios là những Promise (tác vụ bất đồng bộ), vì thế chúng ta dễ dàng xử lý Response trả về sử dụng then hay catch để bắt lỗi nếu có xảy ra. Một lời gọi API hoàn chỉnh trong Axios sẽ được thực hiện với đoạn code như dưới đây:

axios
  .get("/user/12345")
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    if (error.response) {
      console.log(error.response.data);
    } else if (error.request) {
      console.log(error.request);
    } else {
      console.log("Lỗi", error.message);
    }
  });

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

Interceptors trong Axios

Interceptors là tính năng hữu ích và là lý do mà Axios được nhiều anh em Frontend Dev sử dụng; đây là một chức năng giúp chúng ta có thể can thiệp vào trước lúc mọi request được gửi đi và mọi response được nhận về, thông qua đó xử lý các bài toán tổng quan thường xảy ra, ví dụ:

  • Đính kèm token xác thực
  • Xử lý refresh token nếu response trả về lỗi (thông thường mã lỗi là 401)
  • Biến đổi dữ liệu response về theo định dạng chung
  • Cancel request nếu cần thiết

Axios là gì?

Có 2 loại Interceptors trong Axios:

  • Request Interceptors: cho phép chúng ta can thiệp vào trước mọi request được gửi đi
axios.interceptors.request.use(
  function (config) {
    // Thực hiện kịch bản gì đó trước khi gửi
    return config;
  },
  function (error) {
    // Thực hiện kịch bản gì đó khi yêu cầu bị lỗi
    return Promise.reject(error);
  },
);
  • Response Interceptors: cho phép chúng ta can thiệp vào trước mọi response được nhận về
axios.interceptors.response.use(
  function (response) {
    // Thực thi các kịch bản cần thiết ở đây
    // trước khi response đến điểm cuối
    return response;
  },
  function (error) {
    // Thực thi đối với các phản hồi bị lỗi
    // status code: 4xx, 5xx.
    return Promise.reject(error);
  }
);

So sánh Axios và Fetch

Cả Axios và Fetch đều là những thư viện sử dụng để thực hiện HTTP Request, hỗ trợ hầu hết các request methods từ POST, GET, PUT, DELETE,… Cả 2 cũng đều cung cấp hỗ trợ Promise để xử lý request và nhận response thông qua then và catch. Vậy điểm khác nhau giữa Axios và Fetch là gì và nên lựa chọn thư viện nào?

So sánh Axios và Fetch

Trước tiên, Fetch là một công cụ được tích hợp sẵn trong các trình duyệt hiện nay, là một phần tiêu chuẩn JavaScript mà bạn không cần cài đặt gì thêm. Đấy là ưu điểm nhưng cũng là nhược điểm của Fetch so với Axios. Fetch nhẹ nhàng, không cần đòi hỏi cài đặt thêm như Axios nhưng mức độ tương thích giữa các trình duyệt lại có sự khác nhau; trong khi đó Axios đảm bảo được tính nhất quán mà không phụ thuộc vào version của trình duyệt.

Ngoài ra, Axios cung cấp cho chúng ta nhiều tính năng hơn so với Fetch, cụ thể:

  • Xử lý JSON tự động. Fetch sẽ yêu cầu bạn gọi .json() để chuyển đổi
  • Tính năng Interceptors. Fetch không tích hợp
  • Tính năng hủy request. Fetch không có tính năng này
  • Hỗ trợ cài đặt plugin mở rộng. Fetch yêu cầu viết mã tùy chỉnh nếu muốn

Thực tế dự án với các ứng dụng Web đơn giản, không đòi hỏi các tương tác nhiều với người dùng như các Web tin tức, giới thiệu,… thì sử dụng Fetch là đủ. Axios sẽ phù hợp hơn cho các ứng dụng client có nhiều chức năng hơn như Single Page Application, các hệ thống quản trị nội dung, thao tác CRUD với dữ liệu.

Kết bài

Như vậy chúng ta đã cùng nhau tìm hiểu về Axios, những tính năng mà thư viện này mang lại. Axios là một thư viện HTTP Request được ưu chuộng trong cộng đồng phát triển Web hiện tại với sự hữu ích và tiện lợi mà nó mang lại; vì thế khi bắt đầu với một project Web, bạn có thể cân nhắc lựa chọn và sử dụng nó làm thư viện xử lý các lời gọi API của mình. 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

Lộ trình trở thành Ruby Developer cho người mới bắt đầu

Lộ trình trở thành Ruby Developer cho người mới bắt đầu

Bước đầu tiên để phát triển sự nghiệp bản thân là xác định rõ những gì anh em muốn. Anh em muốn thành lập trình viên chuyên nghiệp hay học thêm chỉ như một ngôn ngữ mới.

Nếu anh em xác định Ruby là ngôn ngữ lập trình chính (main skill) thì road map chiến đấu ngôn ngữ này cần được sắp xếp và lên kế hoạch bài bản. Một kế hoạch tốt vừa tiết kiệm công sức, vừa giúp anh em giỏi lên nhanh chóng.

Bài viết này giới thiệu tới anh em lộ trình chi tiết giúp anh em trở thành Ruby Developer!

1. Ruby là gì?

Đầu tiên Ruby là ngôn ngữ lập trình chứ không phải đá đỏ. Khi nói đến ngôn ngữ lập trình, có rất nhiều ngôn ngữ để anh em có thể lựa chọn, từ Python đến C#, cho tới Java, Golang. Nhưng nếu anh em đang muốn phát triển ứng dụng thiệt là nhanh thì Ruby là ngôn ngữ dành cho anh em. Không trật vào đâu được.

Lộ trình trở thành Ruby Developer

Ruby là open-source scripting language (dạng ngôn ngữ kịch bản), tất nhiên là open source. Ông này thì tạo ra 90 bởi Yukihiro Matsumoto. Ông Matsumoto này tạo ra Ruby với mục đích thúc đẩy lập trình hướng đối tượng (OOP) và tái sử dụng code, tái sử dụng càng nhiều thì tốc độ phát triển lên cao, ngoài ra Ruby cũng có cú pháp đơn giản để xử lý dữ liệu (data process) và logic. Logic thì cho problem solving.

Đó là câu chuyện về Ruby, anh em có thể đọc sơ history của Ruby on Rails.

  Những điều cần biết về Ruby on Rail developer
  Ruby vs Python: Đâu mới là ngôn ngữ tốt hơn cho lập trình ứng dụng

2. Kế tới là Rail, từ Ruby tới Ruby on Rail

Như đã giới thiệu thì Ruby là ngôn ngữ lập trình, còn thêm Rail nữa thì lại trở thành framework, với các module xây dựng sẵn giúp anh em đơn giản hoá việc xây dựng website. Chính vì vậy, Rails là mở rộng ngôn ngữ Ruby. Nó giúp giải quyết các vấn đề hàng ngày, đảm bảo dễ sử dụng khi anh em xây dựng website. Thay vì vật lộn mới mấy thứ common, code ì ạch từng module thì Rails cung cấp những giải pháp đó anh em từ đầu.

Lộ trình trở thành Ruby Developer

Nói vậy không có nghĩa là Rail giải quyết hết nha, nếu module hoặc logic đó anh em cảm thấy cần động vào sâu thì vẫn phải động tới Ruby. Ruby on Rails cũng là một ngôn ngữ đáng để học, đầu tiên là nó open source. Hai nữa là Ruby cũng phổ biến và nhu cầu về Ruby on Rails thì thấy mỗi ngày một nhiều. Ruby và RoR sau Laravel cũng trở thành framework Web phổ biến. Điển hình có GitHub, eBay và Twitter đang sử dụng framework Ruby on Rails.

Tham khảo tuyển dụng ruby on rails lương cao trên TopDev

3. Lương lậu các kiểu

Ngôn ngữ tốt, framework mạnh thì rõ ràng nhu cầu về anh em developer Ruby on Rails tài năng chắc chắn là chỉ có tăng chứ không có giảm, tuy nhiên các nhà tuyển dụng yêu cầu những anh em có kinh nghiệm về Ruby.

Theo như thông tin sơ sơ bộ bộ thì từ Indeed cho thấy lương trung bình của Ruby on Rails developer cao hơn 86% so với mức lương trung bình của các ngôn ngữ khác. Còn theo cái mà anh em developer mình hay coi – Stack Overflow thì năm 2022, Ruby đứng thứ 5 trong danh sách các ngôn ngữ lập trình được trả lương cao nhất.

Do nằm trong top 5 trả lương cao nên, Ruby đúng nghĩa là Ruby luôn, code tới code luôn về mua được cục Ruby đỏ.

4. Cà ri pát (carrer path)

carrer path

4.1 Từ Junior tới Senior

Khi anh em đã thành thạo đã thành thạo Ruby và RoR, lên level thôi anh em. Mấy anh em mà có hơn 5 năm kinh nghiệm trong nghề luôn chú ý nâng cao trình độ ngôn ngữ lập trình của mình. Mà không chỉ kĩ năng code, mấy anh em đó cũng trau dồi kỹ năng giao tiếp cá nhân, kỹ năng quản lý dự án và kỹ năng thiết kế.

Số năm kinh nghiệm làm việc với tư cách là developer có thể tạo nên sự khác biệt cho sự thành công của anh em. Anh em càng dành nhiều thời gian cho các dự án Ruby hoặc Rails thì anh em càng có nhiều khả năng phải đối mặt với nhiều thách thức hơn. Mà đã là cái khó, cái thách thức, thì anh em lại càng có thể trau dồi kỹ năng của mình và đảm bảo là có giải pháp cho mọi vấn đề. Kinh nghiệm lâu năm với Ruby và Rails cũng sẽ trang bị cho anh em những cách sáng tạo, khéo léo để tiếp cận các dự án mới, đảm bảo hiệu quả.

4.2 Kỹ năng, kỹ năng và kỹ năng

Một khi đã lựa chọn trở thành Ruby/Rail developer thì kĩ năng đầu tiên cần trau dồi là code, code Ruby. Tập trung vào thuộc làu làu cú pháp cho Ruby. Ngoài ra cũng cần focus vào lập trình hướng đối tượng cho Ruby on Rails là điều cần thiết, kiến trúc Model View Controller (MVC), API REST,….

Với tư cách là Senior Developer Ruby/Rails, anh em sẽ làm việc với cơ sở dữ liệu có thể bao gồm SQL, MySQL và PostgreSQL. Tất cả đều cần thiết.

Lộ trình trở thành Ruby Developer

Tuy nhiên cho dễ dàng hơn thì nên cung cấp cho anh em 1 danh sách. Liên quan tới việc trở thành Senior Developer.

    • Cú pháp (syntax) : Anh em sẽ cần viết một số ngôn ngữ cơ bản bao gồm: vòng lặp, câu lệnh điều kiện (if-else), lớp (class), mô-đun, v.v.
    • Lập trình OOP (OOP Programming): Khi làm việc với lập trình hướng đối tượng, anh em cần biết cần biết một số khái niệm về OOP trong Ruby, chẳng hạn như các lớp, đối tượng, tính kế thừa, khối (block) và mở rộng mô-đun.
    • Kiến trúc MVC: Như đã đề cập ở trên, MVC là một cấu trúc của framework Ruby on Rails. Anh emc ần biết cần biết mỗi lớp chịu trách nhiệm gì và cách anh em có thể tổ chức chương trình của mình để biết vị trí của từng phần và nó trông như thế nào.
    • ERB/Haml: Hai trong số các hệ thống view/format phổ biến nhất.
    • Unit Test với RSpec: anh em viết Unit test trên toàn bộ hệ thống với Ruby/Rails.
    • API + JSON
    • Giao thức HTTP và REST
    • HTML5 JavaScript CSS
    • Cơ bản về SQL MySQL / PostgreSQL, hai công cụ cơ sở dữ liệu phổ biến.
    • Git: Đây là một công cụ thiết yếu để quản lý mã và giúp ích khi tạo thư mục mới.
    • Công cụ quản lý / dự án: Trello, Asana, Pivotal, GitHub và nhiều công cụ khác.’

Song song với khía cạnh ‘công nghệ’, anh em có thể cân nhắc phát triển các kỹ năng khác, đặc biệt là kỹ năng giao tiếp. Trở thành cấp trên Senior đòi hỏi các tố chất lãnh đạo, quản lý dự án và khả năng trình bày với cấp trên của mình. Giải quyết các kì của khách hàng và các bên liên quan.

5. Road map cụ thể

Chi tiết road map để trở thành Senior Ruby on Rail anh em có thể xem ở đây nhé. Chi tiết và đầy đủ

roadmap Ruby on Rail

Ví như Rail framework, anh emc ần tìm hiểu CRM, User Magement, các Best practice, CLI, REST, MVC. Anh em có thể xem chi tiết trong hình vẽ

6. 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 các việc làm IT lương cao hấp dẫn tại TopDev

Tại sao hồ sơ của bạn chưa được gọi đi phỏng vấn?

Tại sao hồ sơ của bạn chưa được gọi đi phỏng vấn?

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

Bạn cảm thấy kĩ năng và kinh nghiệm mình rất phù hợp với vị trí đó, nhưng cuối cùng hồ sơ vẫn không được gọi đi phỏng vấn. Những lúc như vậy có thể khiến bạn cảm thấy nghi ngờ bản thân một tí, hay là mình chưa đủ tốt, chưa đủ giỏi, mình đang làm sai chỗ nào mà ứng tuyển mấy nơi đều chưa thành công.

Bài viết này mình chia sẻ đến các bạn những lý do vì sao bạn có thể bị loại khi ứng tuyển để từ đó bạn hiểu rõ vấn đề hơn, nhìn nhận việc ứng tuyển chưa thành công ở một góc nhìn tích cực hơn để tiếp tục ứng tuyển cho những vị trí tiếp theo.

Những lý do khách quan

(1) Job Description quá chung chung nên nhà tuyển dụng chưa có tiêu chí đánh giá rõ ràng

Thật ra có những Job Description viết quá chung chung, không làm rõ được kinh nghiệm, kỹ năng hay bằng cấp mà họ đang cần là gì. Với những Job Description kiểu thế này, khó mà biết được lý do vì sao mà bạn không trúng tuyển vì làm gì có tiêu chí gì đâu để đánh giá. Chính vì tiêu chính đánh giá không rõ ràng, nên việc chọn hay không chọn một cá nhân hoàn toàn có thể dựa theo cảm tính, chính vì vậy bạn bị loại chưa chắc đã là vì bạn không giỏi bằng ứng viên được chọn.

Thực tế không phải nhân sự của công ty nào cũng biết cách viết Job Description đúng chuẩn để tìm ra ứng viên phù hợp. Chính vì vậy, ứng viên học cách viết CV thì nhà tuyển dụng cũng phải học qua những khoá học về cách viết Job Description chuẩn.

(2) Tin tuyển dụng đó chỉ đăng cho có và đủ quy trình, thực tế đã tuyển được người nội bộ mất rồi

Đây là trường hợp mình cũng thường gặp ở nhiều công ty lớn trong quá trình làm việc. Với một số tin tuyển dụng, công ty ưu tiên cho ứng viên nội bộ nộp đơn trước – chính vì vậy đôi khi bạn thấy một tin tuyển dụng được đăng lên và sau đó nộp đơn nhưng không thấy phản hồi, rất có thể vì công ty đã tuyển thành công một ứng viên nội bộ rồi.

(3) Bộ phận tuyển dụng bỏ sót mất CV của bạn

Trường hợp này thì mình thường hay gặp ở các công ty nhỏ, hoặc những phòng ban tuyển dụng có nhiều cá nhân cùng sử dụng một email chung. Rất có thể ai đó đã mở email ứng tuyển của bạn nhưng sau đó quên mất, khiến cho hồ sơ của bạn bị thất lạc. Chính vì vậy, nếu sau deadline ứng tuyển 1-2 tuần mà chưa thấy phản hồi, bạn đừng ngại mà email hỏi, biết đâu bị rơi vào trường hợp này.

(4) Hồ sơ của bạn hay, nhưng của người khác lại còn hay hơn

Đây là lý do mà bạn hoàn toàn không thể kiểm soát được và ở mỗi thời điểm bạn ứng tuyển thì tình huống có thể khác nhau. Có những thời điểm không nhiều ứng viên thì hồ sơ của bạn sẽ là một hồ sơ nổi bật. Ngược lại, có những giai đoạn có nhiều người đi tìm việc thì có thể có những ứng viên giỏi hơn bạn cũng đang nộp đơn vào vị trí đó.

  5 mẹo viết CV IT giúp đánh bại hệ thống sàng lọc tự động ATS

Những lý do chủ quan

(5) Hồ sơ của bạn có thể hiện được động lực và sự phù hợp với công việc đó hay không?

Hãy thử trả lời một số câu hỏi dưới đây để tìm ra câu trả lời:

  • Mục tiêu nghề nghiệp trong CV hoặc Cover Letter của bạn có nói rõ được lý do vì sao bạn quan tâm đến vị trí đó, công ty đó hay không? Hay bạn chỉ đang nói chung chung là “tìm kiếm môi trường phù hợp”, “đóng góp cho sự phát triển của công ty”?
  • Nếu bạn đang ứng tuyển cho vị trí quản lý, bạn đã có thể hiện những kỹ năng quản lý ở trong CV hay chưa – hay chỉ đang đưa vào những kỹ năng như “làm việc nhóm”, “giao tiếp”.
  • Khi viết kinh nghiệm làm việc, bạn đã đưa vào những kết quả công việc bạn làm được hay chưa? Hay bạn mới chỉ liệt kê các đầu việc.
  • Bạn nói rằng mình là người chỉn chu, cẩn thận, thái độ tốt – liệu bạn có đang gặp phải các lỗi sai chính tả hay lỗi trình bày trong CV hay không?

  Góp ý khi viết CV cho sinh viên mới ra trường

(6) Bạn đã viết email đúng hay chưa?

Trường hợp này thường gặp ở các bạn sinh viên nhiều hơn. Nhiều bạn hồ sơ rất hay nhưng cách viết email tệ làm cho nhà tuyển dụng có ấn tượng xấu. Trong bài viết này mình đã hướng dẫn rất kỹ từng bước cách viết email gửi đơn ứng tuyển, bạn tham khảo nhé.

(7) Bạn đã mở rộng cách tìm việc chưa?

Nếu chỉ đơn thuần ứng tuyển công việc trên các trang tuyển dụng như TopDev, TopCV, CareerBuilder mà chưa thành công, bạn cần mở rộng thêm cách thức ứng tuyển của bản thân. Ví dụ bạn ứng tuyển qua LinkedIn, tìm thông tin nhân sự đang làm việc trong công ty đó và gửi thư tự giới thiệu, tìm đến các buổi hội thảo có nhân sự công ty đó tham gia để làm quen. Hoặc có những công ty bạn đang thích nhưng chưa đăng tuyển, mình đã từng chia sẻ về cách nộp đơn vào các công ty kiểu này.

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

Nói chung là

Một vài điều mình muốn tóm gọn lại cho bài viết này:

  • Bạn có thể ứng tuyển chưa thành công vì nhiều lý do chủ quan và khách quan; tuy nhiên đừng bao giờ tự cho rằng mình kém cỏi hay không đủ năng lực. Chỉ đơn giản là bạn chưa phù hợp, bạn sẽ thử lại cho đến khi tìm được lựa chọn phù hợp.
  • Bên cạnh việc bị động nộp đơn, bạn cần chủ động thêm trong việc xây dựng thương hiệu cá nhân, xây dựng mạng lưới quan hệ chuyên nghiệp và chủ động giới thiệu bản thân với công ty.

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

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

Top 6 khóa học Google miễn phí siêu chất lượng dành cho lập trình viên

khóa học Google miễn phí

Trong thời đại công nghệ, việc nắm bắt kiến thức mới và cập nhật kỹ năng là chìa khóa để thành công trong lĩnh vực lập trình. Một cách tuyệt vời để nâng cấp kiến thức nhanh chóng chính là học qua các khóa học lập trình từ Google. Một loạt các bài học chất lượng cao, có cả chứng chỉ và đặc biệt là hoàn toàn miễn phí đang chờ đợi bạn.

Hãy cùng TopDev khám phá ngay top 10 khóa học Google miễn phí siêu hay dành cho lập trình viên dưới bài viết này nhé!

Khóa học Google miễn phí: IT Support Professional Certificate

Level: Beginner

Thời gian học: 6 tháng

Khóa học “Google IT Support Professional Certificate” là một khóa học Google miễn phí được cung cấp qua hệ thống đào tạo trực tuyến Coursera. Được thiết kế để đáp ứng nhu cầu ngày càng tăng về chuyên gia hỗ trợ IT chất lượng, chứng chỉ này mang lại cho học viên những kiến thức và kỹ năng cần thiết để bắt đầu sự nghiệp trong lĩnh vực IT Support.

Chương trình bao gồm một loạt các mô-đun chuyên sâu, từ cơ bản đến nâng cao, bao quát nhiều khía cạnh của hệ thống và mạng máy tính. Học viên sẽ được hướng dẫn từ các chuyên gia hàng đầu, học cách xử lý sự cố, triển khai và bảo trì hệ thống, đồng thời có cơ hội thực hành qua các bài lab và dự án thực tế.

khóa học Google miễn phí

Link khóa học: https://www.coursera.org/professional-certificates/google-it-support

Khóa học Google Data Analytics Professional

Level: Beginner

Thời gian học: 6 tháng

Khóa học Google Data Analytics Professional Certificate là một khóa học khá “hot” trong thời đại big data hiện nay, mang lại nhiều lợi ích và cơ hội việc làm hấp dẫn. Khóa học được phát triển bởi Google và giảng dạy trên nền tảng Coursera. Khóa học giúp bạn trang bị kiến thức và kỹ năng thực tế để làm việc với dữ liệu, từ thu thập, xử lý đến phân tích và trực quan hóa.

Bạn sẽ được học các nền tảng và công cụ phân tích dữ liệu phổ biến (PythonSQL, Excel, Tableau). Hiểu cách làm sạch và tổ chức dữ liệu để phân tích, tính toán bằng cách sử dụng bảng tính, SQL và lập trình R. Học cách trực quan hóa và trình bày kết quả phân tích dữ liệu thông qua các bảng điều khiển, và các nền tảng trực quan hóa phổ biến.

khóa học Google miễn phí

Link khóa học: https://www.coursera.org/professional-certificates/google-data-analytics

Khóa học Google Professional Machine Learning Engineer

Level: Intermediate

Thời gian học: 3 tháng

Chứng chỉ Google Professional Machine Learning Engineer là khóa học Google miễn phí uy tín trong lĩnh vực Machine Learning, do Google phát triển và cung cấp qua nền tảng Coursera. Đây là một chương trình chuyên sâu dành cho những ai đã có nền tảng vững chắc về khoa học máy tính và mong muốn nâng cao năng lực để xây dựng, triển khai và quản lý các mô hình học máy hiệu quả trong môi trường thực tế.

Khóa học này dành cho các lập trình viên có kinh nghiệm tối thiểu 1 năm, với kiến thức nền tảng về lập trình, thống kê và học máy cơ bản. Yêu cầu phải có năng lực thực hành trong việc thiết kế, xây dựng, triển khai và vận hành các mô hình học máy trong Google Cloud Platform (GCP).

Link khóa học: https://www.coursera.org/professional-certificates/preparing-for-google-cloud-machine-learning-engineer-professional-certificate

  Các chứng chỉ Tester nên có để theo đuổi sự nghiệp

Khóa học Generative AI Learning Path

Khóa học này do Google Cloud quản lý với nội dung liên quan đến các sản phẩm và công nghệ AI tạo sinh. Khi học khóa học này bạn sẽ hiểu về các nguyên tắc cơ bản của trí tuệ nhân tạo, mô hình ngôn ngữ lớn (LLMs), các kiến trúc trí tuệ nhân tạo và tham gia vào các bài tập thực hành.

khóa học Google miễn phí

Link khóa học: https://www.cloudskillsboost.google/paths/118

Khóa học Google Cloud Computing Foundations: Data, ML, and AI in Google Cloud

Khóa học Google miễn phí này dành cho những cá nhân có ít hoặc không có kiến ​​thức nền tảng hoặc kinh nghiệm về điện toán đám mây. Chúng cung cấp thông tin tổng quan về các khái niệm cơ bản về đám mây, Big Data và ML.

Khi tham gia khóa học này bạn sẽ được học về các nguyên tắc cơ bản về điện toán đám mây, cơ sở hạ tầng trong Google Cloud, mạng và bảo mật trong Google Cloud, Data ML và AI trong Google Cloud.

Link khóa học: https://www.cloudskillsboost.google/course_templates/156

  Những chứng chỉ cần có của một quản lý công nghệ thông tin

Khóa học Google IT Automation with Python Professional Certificate

Level: Beginner

Thời gian học: 6 tháng

Google IT Automation with Python Professional Certificate” là một khóa học chuyên sâu được phát triển bởi Google để giúp học viên trang bị kiến thức và kỹ năng thực hành để tự động hóa các tác vụ IT lặp đi lặp lại, quản lý hệ thống và dữ liệu hiệu quả.

khóa học Google miễn phí

Chương trình học bao gồm các phần:

  • Crash Course on Python
  • Using Python to Interact with the Operating System
  • Introduction to Git and GitHub
  • Troubleshooting and Debugging Techniques
  • Configuration Management and the Cloud
  • Automating Real-World Tasks with Python

Link khóa học: https://www.coursera.org/professional-certificates/google-it-automation

Trên đây là top 10 khóa học Google miễn phí siêu chất lượng dành cho lập trình viên. Hy vọng bài viết này sẽ giúp bạn tìm được khóa học phù hợp với nhu cầu và mục tiêu của mình.

Xem thêm:

Xem thêm tuyển dụng việc làm IT hấp dẫn trên TopDev

Nên gửi CV vào thời gian nào? Định dạng file nào chuẩn nhất?

Nên gửi CV vào thời gian nào?

Sau khi bạn đã chuẩn bị một CV tốt, việc quan trọng là khi nào nên gửi CV và gửi ở định dạng file nào. Bài viết này sẽ chỉ ra thời điểm lý tưởng để gửi CV và quy tắc cơ bản về định dạng file để đảm bảo hiệu quả khi nộp đơn.

Vì sao cần xác định thời gian gửi CV xin việc?

Xác định thời gian gửi CV xin việc là một bước quan trọng trong quá trình ứng tuyển. Thời điểm gửi CV ảnh hưởng trực tiếp đến việc CV của bạn có được nhà tuyển dụng chú ý hay không.

cần xác định thời gian gửi CV xin việc

Có một số lý do chính khiến bạn cần xác định thời gian gửi CV xin việc:

  • Tăng cơ hội được xem xét: Nhà tuyển dụng thường nhận được rất nhiều CV cho mỗi vị trí tuyển dụng. Do đó, họ sẽ có xu hướng ưu tiên xem xét những CV được gửi sớm hơn.
  • Tránh gửi vào thời điểm nhà tuyển dụng bận rộn: Nhà tuyển dụng thường bận rộn nhất vào đầu tuần và cuối tuần. Nếu bạn gửi CV vào thời điểm này, khả năng CV của bạn bị bỏ qua là rất cao.
  • Đối với công ty đa quốc gia: Nếu bạn đang xin việc ở một công ty có chi nhánh hoặc văn phòng trên nhiều quốc gia, cân nhắc múi giờ làm việc của họ để đảm bảo rằng CV của bạn sẽ được xem xét trong thời gian làm việc hành chính.

Nên gửi CV vào thời gian nào là phù hợp nhất?

Trước khi gửi CV bạn có thể tham khảo các thời điểm gửi CV lý tưởng dưới đây để tăng hiệu quả xin việc:

Các ngày phù hợp để gửi CV

Dựa vào kinh nghiệm của các chuyên gia tuyển dụng, thì thứ Ba, thứ Tư và thứ Năm được xem là những ngày lý tưởng để gửi CV. Trong khoảng thời gian này, nhà tuyển dụng thường có nhiều thời gian hơn để xem xét và đọc các hồ sơ ứng viên.

  • Thứ Ba, thứ Tư được coi là thời điểm tốt nhất để nộp CV, bởi đây là lúc mà nhà tuyển dụng đã xử lý và đọc hết các email tồn đọng từ cuối tuần trước. Khi hòm thư tuyển dụng đã được xử lý, việc gửi CV vào thời điểm này có thể thu hút sự chú ý của nhà tuyển dụng.
  • Thứ Năm cũng được coi là một ngày thuận lợi để gửi CV, vì nhà tuyển dụng thường đã có thời gian để kiểm tra email, hòm thư, và có thể dành thời gian đọc CV của bạn.
  • Trong khi đó, bạn nên hạn chế gửi CV vào ba ngày cuối tuần (T6. T7 và Chủ Nhật), do đây là ngày mà nhà tuyển dụng thường giải quyết các công việc cuối cùng trong tuần và chuẩn bị cho tuần tiếp theo.

  Cách viết CV xin việc IT "bao đậu" dành cho người chưa có kinh nghiệm

Thời gian “vàng” để gửi CV trong ngày

Thời điểm hợp lý để gửi CV trong ngày là vào buổi sáng sớm, từ 6:00 đến 10:00. Đây là thời điểm mà các nhà tuyển dụng thường có nhiều thời gian để kiểm tra và đọc CV của ứng viên. Theo một nghiên cứu, tỷ lệ nhận được phản hồi từ nhà tuyển dụng cao hơn 42% nếu ứng viên gửi CV vào buổi sáng sớm.

Nếu bạn gửi CV sau 10:00 sáng, tỷ lệ khả năng tuyển dụng giảm 10% sau mỗi 30 phút. Trong khoảng thời gian 12:00 đến 12:30 trưa, khả năng để CV của bạn được xem xét và mời phỏng vấn là khoảng 11%. Sau thời điểm này, tỷ lệ này tiếp tục giảm đi.

Ngoài ra, hãy tránh gửi CV vào thời điểm lúc 19:30 tối. Đây là khoảng thời gian mà mọi người thường nghỉ ngơi sau một ngày làm việc, và việc gửi email vào thời điểm này có thể ảnh hưởng đến cuộc sống cá nhân của nhà tuyển dụng, tạo ra tâm lý không thoải mái và có thể làm mất cảm giác tích cực đối với CV của bạn.

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

Định dạng file nào chuẩn nhất khi gửi CV?

Ứng viên có thể lựa chọn nhiều định dạng file khác nhau để gửi CV cho nhà tuyển dụng. Tuy nhiên, định dạng file phổ biến nhất vẫn là PDF, bởi nó sẽ không thay đổi định dạng ban đầu khi nhà tuyển dụng mở file ra xem.

Định dạng file nào chuẩn nhất khi gửi CV?

Định dạng file PDF sẽ rất phù hợp với các vị trí ứng tuyển yêu cầu cao về tính sáng tạo như Designer, Marketing, PR,… Với những ngành nghề chỉ yêu cầu CV đơn giản, không có số liệu, biểu đồ phức tạp thì chọn định dạng file Word là điều cần thiết. Vì nhà tuyển dụng có thể mở file nhanh chóng, có thể copy, edit nếu cần thiết.

Hơn thế nữa, nhiều doanh nghiệp đã bắt đầu ứng dụng hệ thống sàng lọc CV tự động (gọi tắt là ATS) để tối ưu hóa quá trình tuyển dụng. Hệ thống này chủ yếu chỉ quét được các CV dạng .doc, tuy nhiên theo thời gian công nghệ đã được nâng cấp, một vài hệ thống đã có thể nhận diện được thông tin dạng PDF. Do đó, để chắc chắn hơn, ở những nơi dùng hệ thống ATS để sàng lọc CV bạn nên gửi ở định dạng .doc và trình bài CV chuẩn ATS.

Tạo CV IT chuẩn ATS miễn phí trên TopDev

Bí kíp tạo CV chuẩn ATS, tăng tỉ lệ đậu ngay từ lần gửi đầu tiên!

Thời điểm gửi CV và định dạng file rất quan trọng, tuy nhiên nếu nội dung CV không đáp ứng được yêu cầu của nhà tuyển dụng cũng như hệ thống sàng lọc CV thì bạn vẫn sẽ bị loại. Do đó, một cách đơn giản và nhanh chóng nhất để có được chiếc CV IT chuyên nghiệp, chuẩn ATS chính là sử dụng công cụ Chuẩn hóa CV của TopDev.

convert CV

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

Với công cụ hoàn toàn mới này, các developer chỉ cần update CV của mình lên, hệ thống sẽ sử dụng AI để tiến hành quét nội dung và đưa ra một CV mới theo đúng chuẩn ATS hiện nay. Hơn thế nữa, hệ thống sẽ lưu trữ hồ sơ của bạn và cho phép tự do chỉnh sửa, cập nhật nội dung từng phần một cách dễ dàng và nhanh chóng.

Trải nghiệm ngay Công cụ Chuẩn hóa CV online ngay!

Việc có một hồ sơ ứng viên hoàn chỉnh sẽ giúp bạn ghi điểm trong mắt nhà tuyển dụng và hệ thống cũng sẽ tự động đề xuất các công việc IT phù hợp với những kỹ năng, kinh nghiệm của từng developer.

Hy vọng rằng bài viết này sẽ giúp bạn biết cách gửi CV xin việc vào lúc nào là phù hợp nhất. Ngoài ra, bạn cũng nên có cho mình một chiếc CV chuẩn để không bị loại bởi hệ thống sàng lọc CV. Chúc bạn thuận lợi trên con đường tìm kiếm việc làm của mình! Đừng quên theo dõi TopDev để cập nhật các thông tin mới nhất liên quan đến tuyển dụng, nghề nghiệp bạn nhé!

Xem thêm:

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

Lộ trình học React Native từ A – Z hiệu quả nhất!

Lộ trình học React Native từ A - Z hiệu quả nhất!

Lộ trình học React Native như nào là câu hỏi nhiều anh em newbie khi bước chân vào build app với React Native cần biết. Nắm bắt được nhu cầu đó, tui xin mạn phép viết bài viết này giúp anh em từng bước tiếp cận React Native theo cách đơn giản nhất có thể.

Okie, bắt đầu thôi nào!

Lộ trình học React Native

1. Cài đặt môi trường các kiểu

Xin lỗi anh em nếu phần đầu tiên mới chỉ đề cập tới môi trường, cài đặt, ngôn ngữ các kiểu. Nhưng dành cho một số anh em mới, việc thiết lập môi trường, cài đặt hay sử dụng IDE nào cũng khá quan trọng. Nên lướt qua, hoặc nói đúng hơn là liệt kê ra đây cho anh em biết

1.1 Cài đặt môi trường iOS

Dưới đây liệt kê các bài viết hướng dẫn thiết lập môi trường iOS

Nếu bài viết hơi khó khăn thì anh em có thể lướt xem youtube rồi step by step cho dễ nhé

1.2 Cài đặt môi trường Android

Dưới đây liệt kê các bài viết hướng dẫn thiết lập Android trước khi lập trình React Native

>>> Xem thêm: React Native là gì? Tại sao React Native lại phổ biến?

2. Styling với React Native

Tất nhiên ngôn ngữ nào có đụng tới UI cũng đều phải học về styling, React Native cũng không phải là một ngoại lệ. Để build được UI đúng, đẹp và mượt mà với React Native, anh em có thể tham khảo thêm các bài viết khác dưới đây

Lộ trình học React Native
Với đống bài viết phía trên, React Native Flexbox chưa bao giờ dễ hiểu như thế. Nguồn ảnh / Source: draftbit.com

Còn đi sâu vào chi tiết hoặc các ví dụ cụ thể, anh em có thể tham khảo về cách tổ chức code, style, các ví dụ khi code với React Native trên github thêm để bổ sung kiến thức.

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

3. Libraries liên quan tới styling

Dưới đây là một số danh sách thư viện anh em có thể tham khảo. Thư viện ngoài việc giúp code nhanh hơn, cũng là một cách học nhanh các style thường hay sử dụng trong React Native.

Tuy nhiên anh em cần lưu ý muốn sử dụng thư viện thì anh em cần có kiến thức nền của style cơ bản. Tốt hơn hết là cứ đi tuần tự nha anh em, từ một tới hai chứ đừng đi ngược hai về một

    •  react-native-CSS – css styling short, viết CSS với React Native giờ không còn gì là khó

Lộ trình học React Native
Tailwind và React Native, sự kết hợp hoàn hảo. Nguồn ảnh / Source: developerslearnit.com

Nếu anh em thấy một số ông cứ code style cho React Native mà làm CSS thuần thì cũng đừng ngạc nhiên. Tuy nhiên mục đích của thư viện build ra là để quá trình development trở nên nhanh chóng và dễ dàng hơn. Nên luyện libraries là cần thiết nha anh em. Không trật đi đâu được.

  Flutter Vs. React Native - Nên chọn framework nào?

4. Component và Layouts

Sau khi đã thạo mướt mườn mượt styling và syntax cơ bản của React Native thì giờ là lúc anh em bắt tay vào build Component và Layouts

Nếu bài viết hơi khó thì anh em có thể thoe các step build form cho dễ nha

hết đống này chắc anh em khá là thạo build các form trong React Native rồi. Tuy nhiên, nếu muốn tham khảo thêm , anh em có thể lượn lờ youtube hoặc github, xem các form build chuẩn chỉnh từ các ông lớn có public source. Đó cũng là cách học khá là hay.

  ReactJS và React Native: Những điểm giống và khác nhau cơ bản

5. Navigation

Sau khi đã build các form, tất yếu tiếp theo anh em sẽ cần học cách chuyển hướng giữa các màn hình. Lúc này ta sẽ tìm hiểu sâu hơn về Navigation.

Lộ trình học React Native
Flipper là công cụ của React Native cho phép anh em fix bug, ngoài ra còn visulization navigation rất tốt

Qua hết đống này chắc anh em React Native Developer tương lai cũng hiểu cách xây dựng Navigation. Sau khi chuyển chuyển giữa các màn hình rồi thì giờ cũng là lúc tìm hiểu thêm về authentication, build app thật tới nơi rồi anh em. Một bài thôi đi gần hết

6. Authentication

Một loại bài viết trên cung cấp cho anh em ví dụ, hướng dẫn cách làm. Xác thực React Native app thông qua JWT, Firebase

7. Tham khảo

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

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

>> Xem thêm: Bộ câu hỏi phỏng vấn React Native hàng đầu cho Developer

Đừng bỏ lỡ việc làm IT mới nhất trên TopDev!

Top 9 quyển sách hay về JavaScript – Từ nhập môn đến nâng cao

Top 9 quyển sách hay về JavaScript

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

JavaScript là một ngôn ngữ lập trình được sử dụng rộng rãi trong phát triển web, mobile và ứng dụng. Để học và thành thạo JavaScript, ngoài các khóa học trực tuyến, tài liệu tham khảo, video hướng dẫn, thì sách JavaScript là một nguồn tài nguyên hữu ích mà bạn không nên bỏ qua.

Sách nhập môn JavaScript

Eloquent JavaScript của Marijn Haverbeke

Eloquent JavaScript
Eloquent JavaScript

Cuốn sách này được coi là một trong những cuốn sách JavaScript hay nhất từng được viết. Nó cung cấp một cách tiếp cận hiện đại và toàn diện cho ngôn ngữ, giải thích những nguyên tắc của việc lập trình, mối quan hệ giữa ngôn ngữ lập trình và máy tính,…

Head First JavaScript Programming của Elisabeth Robson

Head First JavaScript Programming
Head First JavaScript Programming

Cuốn sách này sử dụng một phương pháp tiếp cận “tập trung vào não bộ” để dạy JavaScript. Nó sử dụng phương pháp giảng dạy thực hành, các trò chơi và câu đố nằm trong cuốn sách có thể giúp người đọc nắm bắt JavaScript dễ dàng hơn.

JavaScript & jQuery: Interactive Front-End Web Development của Jon Duckett

JavaScript & jQuery
JavaScript & jQuery

Cuốn sách này cung cấp hướng dẫn về cách sử dụng JavaScript và jQuery để tạo ra các trang web tương tác, chỉ cho bạn cơ bản về lập trình web, làm sao để thiết kế front-end cho một trang web từ việc sử dụng HTML, CSS và JavaScript.

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

Sách nâng cao JavaScript

JavaScript: The Definitive Guide của David Flanagan

JavaScript: The Definitive Guide
JavaScript: The Definitive Guide

JavaScript: The Definitive Guide của David Flanagan là một cuốn sách toàn diện về JavaScript, bao gồm các chủ đề từ cơ bản đến nâng cao. Cuốn sách này là một tài nguyên tuyệt vời cho các nhà phát triển JavaScript ở mọi cấp độ kinh nghiệm.

Secrets of the JavaScript Ninja của John Resig

Secrets of the JavaScript Ninja

Là một cuốn sách nâng cao dành cho các nhà phát triển JavaScript có kinh nghiệm. Cuốn sách này bao gồm các chủ đề như hiệu suất, tối ưu hóa và các kỹ thuật nâng cao khác.

Việc làm JavaScript Hồ Chí Minh dành cho bạn!

You Don’t Know JS của Kyle Simpson

You Don’t Know JS
You Don’t Know JS

Cuốn sách này dạy bạn hiểu cách mà trình duyệt biên dịch và phân tích code của bạn như thế nào. Nếu bạn muốn có một số kiến ​​thức chuyên sâu về JavaScript thì đây là lựa chọn tốt cho bạn. Nó phù hợp đối với các lập trình viên có kinh nghiệm, cũng phù hợp cho mọi người.

  Promise JS là gì? Cách sử dụng Promise trong JavaScript

JavaScript: The Good Parts của Douglas Crockford

JavaScript: The Good Parts
JavaScript: The Good Parts

JavaScript: The Good Parts tập trung vào những kiến thức nền tảng của JavaScript. Đặc biệt, đây cũng là cuốn sách ghi nhận sự phát triển của JavaScript, từ một ngôn ngữ lập trình “nhỏ bé” đến khi trở thành lựa chọn phổ biến trên toàn thế giới.

Sách chuyên đề JavaScript

jQuery in Action

jQuery in Action
jQuery in Action

jQuery in Action là hướng dẫn nhanh và đầy đủ về jQuery, tập trung vào các nhiệm vụ bạn sẽ gặp trong hầu hết mọi dự án phát triển web. Được viết cho những độc giả có ít kinh nghiệm về JavaScript, ấn bản sửa đổi này bổ sung thêm các ví dụ và bài tập mới, cùng với nội dung sâu sắc và thực tế mà bạn mong đợi từ một cuốn sách thực hành.

Node.js in Action

Node.js in Action
Node.js in Action

Node.js in Action, Second Edition là một cuốn sách được sửa đổi kỹ lưỡng dựa trên ấn bản đầu tiên bán chạy nhất. Nó bắt đầu từ đầu và hướng dẫn bạn tất cả các tính năng, kỹ thuật và khái niệm mà bạn cần để xây dựng các ứng dụng Node chất lượng sản xuất.

Bên trên là một số quyển sách JavaScript hay được tổng hợp lại. Với sự đa dạng của các cuốn sách JavaScript trên thị trường, bạn có thể dễ dàng tìm thấy một cuốn sách phù hợp với nhu cầu và trình độ của mình. Hãy dành thời gian nghiên cứu và lựa chọn sách JavaScript một cách kỹ lưỡng để có được kết quả học tập tốt nhất.

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

Tìm hiểu về phong cách Point-Free trong JavaScript

Tìm hiểu về phong cách Point-Free trong JavaScript

Bài viết được sự cho phép của tác giả Tống Xuân Hoài

Vấn đề

Bạn từng nhìn thấy đoạn mã giống như thế này xuất hiện ở đâu chưa?

fetch('https://api.example.com/endpoint')
  .then(toJSON)
  .then(handleResult)
  .catch(handleError);

Lần đầu tiếp xúc với phong cách này, tôi khá là bối rối. toJSONhandleResulthandleError ở đây là gì? Nó là một hàm vậy thì tham số của nó đâu rồi? Tại sao nó có thể chạy được khi mà không cần kết thúc bằng () để có một cuộc gọi hàm chứ? Hay chí ít là, tham số đầu vào của nó đâu?…

Chà, hàng tá câu hỏi hiện ra trong đầu, nhưng lúc đó không có ai để giải thích cho tôi hiểu. Cái gì gặp nhiều ắt sẽ quen, tôi bắt chước theo phong cách đó và ngầm hiểu “À thì ra mình cứ viết theo như vậy, nó sẽ chạy”.

Mãi sau này, tôi hiểu ra phong cách trên người ta gọi là Point-Free. Vậy nếu ngay từ đầu đã khó hiểu như thế tại sao người ta vẫn dùng? Có điều gì mờ ám hoặc thú vị trong cách viết này chăng? Hãy cùng tôi tìm hiểu trong bài viết dưới đây nhé!

  Bỏ túi 6 đoạn code chỉ với một dòng rất hữu ích trong JavaScript

  10 tip tối ưu code trên JavaScript mà web developer nào cũng nên biết

Phong cách Point-Free

Phong cách Point-Free có nghĩa là không cần chỉ định các đối số cho từng ứng dụng hàm. Thuật ngữ “Point” để chỉ một tham số của hàm và Point-Free có nghĩa là không “có chỗ” cho các tham số đó. Mô hình này muốn người đọc tập trung vào chức năng là gì, không quan tâm đến tên cụ thể của các tham số của nó.

Trở lại với một ví dụ đơn giản nhất, chúng ta tạo ra 4 hàm mà nhìn qua thôi cũng đủ biết nó làm gì:

const testOdd = x => x % 2 === 1;
const testUnderFifty = x => x < 50;
const duplicate = x => x + x;
const addThree = x => x + 3;

Sau đó, áp dụng một loạt các thay đổi trên một danh sách dữ liệu số:

const myArray = [22, 9, 60, 24, 11, 63];

const result = myArray
  .filter(testOdd)
  .map(duplicate)
  .filter(testUnderFifty)
  .map(addThree);

Nhìn vào dòng chảy của dữ liệu, theo thứ tự từ trên xuống dưới, lọc ra số lẻ, nhân đôi nó lên, lọc tiếp ra số nhỏ hơn 50 rồi cuối cùng cộng tất cả chúng thêm với 3.

Với phong cách này, tất cả những gì bạn thấy là tên hàm, cả với dòng chảy của dữ liệu. Phong cách này đạt được sự ngắn gọn, nhưng bạn phải cố gắng chọn những tên hàm hay, dễ hiểu.

Trở lại với ví dụ mở đầu, nếu viết theo cách thông thường, mã của bạn có thể trông giống như:

fetch("https://api.example.com/endpoint")
  .then((res) => res.json())
  .then((resJSON) => {
    const { data } = resJSON;
    const dataFiltered = data.filter((item) => item.active === true);
    return dataFiltered;
  })
  .catch((err) => {
    if (err instanceof RangeError) {
      throw new RangeError("The number is outside the range");
    } else if (err instanceof EvalError) {
      throw new EvalError("The code could not be evaluated");
    }
  });

Hơi có nhiều thứ cần phải đọc hiểu nhỉ, hãy “refactor” lại một chút:

const toJSON = res => res.json();
const handleResult = data => data.filter(item => item.active === true);
const handleError = err => {
  if (err instanceof RangeError) {
    throw new RangeError("The number is outside the range");
  } else if (err instanceof EvalError) {
    throw new EvalError("The code could not be evaluated");
  }
};

fetch("https://api.example.com/endpoint")
  .then((res) => toJSON(res))
  .then((resJSON) => handleResult(resJSON))
  .catch((err) => handleError(err));

Ok hơn rồi nhưng vẫn còn mã thừa, chuyển nó thành Point-Free:

fetch('https://api.example.com/endpoint')
  .then(toJSON)
  .then(handleResult)
  .catch(handleError);

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

Ưu và nhược điểm

Ưu điểm dễ nhận thấy nhất của Point-Free là nó tập trung vào hàm thay vì dữ liệu, giúp mã ngắn gọn và dễ đọc hơn nếu đặt tên đủ tốt. Sử dụng kết hợp với các thư viện theo phong cách Point-Free như ramda.jslodash/fp với rất nhiều hàm tiện ích có thể tạo ra sự thống nhất trong dự án của bạn.

Ví dụ thứ 2 sau khi sử dụng hoàn toàn bằng thư viện ramda.js sẽ trông giống như:

const R = require('ramda');

const isOdd = R.pipe(R.modulo(R.__, 2), R.equals(1));
const isUnderFifty = R.lt(R.__, 50);
const double = R.multiply(2);
const addThree = R.add(3);

const handle = R.pipe(
  R.filter(isOdd),
  R.map(double),
  R.filter(isUnderFifty),
  R.map(addThree)
);

const myArray = [22, 9, 60, 24, 11, 63];
handle(myArray);

Tuy nhiên, ưu cũng có thể trở thành nhược điểm cho người mới, người chưa quen với phong cách Point-Free này, nó có thể trở nên khó hiểu hoặc mất nhiều thời gian hơn để tiếp cận.

Tổng kết

Point-Free là một phong cách lập trình tập trung vào tên hàm và bỏ qua tầm quan trọng của đối số. Với cách viết này, chúng ta tập trung nhìn vào luồng xử lý hơn là logic đằng sau chúng. Đối với những người mới bắt đầu, Point-Free có thể gây khó đọc hoặc khó hiểu. Nhưng một khi đã quen, bạn sẽ thấy nó vô cùng hữu ích.

Bài viết gốc được đăng tải tại 2coffee.dev

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

Cách sắp xếp các phần tử trong mảng Javascript

Cách sắp xếp các phần tử trong mảng Javascript

Bài viết được sự cho phép bởi tác giả Sơn Dương

Làm việc với Array – Mảng là một trong những công việc thường xuyên nhất. Mình cũng có nhiều bài viết chuyên sâu hoặc thủ thuật để làm việc với mảng được hiệu quả hơn.

Bài hôm nay, mình sẽ chia sẻ cách sắp xếp các phần tử trong mảng tăng dần hoặc giảm dần.

Nếu để ý kỹ, bạn sẽ nhận ra một vấn đề ở đây. Sắp xếp tăng dần hoặc giảm dần là theo tiêu chí gì? Nếu mảng chỉ gồm các phần tử là số, hoặc string thì đơn giản quá. Nhưng nếu mảng chứa các phần tử là object thì sao?

Chúng ta sẽ cùng nhau tìm hiểu nhé.

Sắp xếp mảng có phần tử là số, String

Chúng ta vào bài toán đơn giản trước nhé. Giả sử, chúng ta có một mảng sau:

const numArray = [9, 5, 3, 2, 8, 6, 1]

Để sắp xếp mảng này, chúng ta có thể sử dụng hàm có sẵn của JS là hàm sort(). Mặc định, hàm sort() chỉ sắp xếp các phần tử theo bảng chữ cái. Do đó, để sắp xếp các số thì cần truyền vào một function so sánh để xác định quy tắc sắp xếp.

const numArray = [9, 5, 3, 2, 8, 6, 1]
// Sắp xếp tăng dần
numArray.sort((a, b) => a - b);
console.log(numArray);
// in ra: [1, 2, 3, 5, 6, 8, 9]

Như ở trên, để sắp xếp tăng dần thì quy tắc là số ở phía sau lớn hơn phía trước, do đó, (a - b) > 0 và trả về true. Ngược lại, để sắp xếp giảm dần, bạn đảo chiều thành (b-a) là được.

Hàm sort() sẽ tác động trực tiếp vào mảng, biến đổi thứ tự của mảng chứ không clone ra mảng mới.

Lưu ý: Mảng cần sắp xếp không nên chứa các phần tử là Infinity hoặc NaN ( Vì Infinity – Infinity là NaN chứ không phài là số 0 – nên không so sánh được).
Tham khảo tuyển dụng javascript lương cao trên TopDev

Sắp xếp mảng có phần tử là Object

Với mảng có phần tử là object, việc sắp xếp sẽ phức tạp hơn chút, không phải vì kỹ thuật phức tạp mà vì cách hiểu của chúng ta: thế nào là lớn hơn, thế nào là kém hơn?

Do đó, trước khi thực hiện so sánh, chúng ta cần xác định tiêu chí cụ thể để sắp xếp là gì?

Ví dụ: Để so sánh giữa hai con người, chúng ta không thể khẳng định chung chung là ông A tốt hơn ông B. Ông A có thể cao,to hơn ông B. Nhưng chắc gì ông A đã đen và hôi hơn ông B.

Tóm lại, để sắp xếp được mảng có phần từ là các objects, bạn cần xác định thuộc tính, tiêu chí cần so sánh trong hàm so sánh.

Giả sử, bạn có mảng cần sắp xếp tăng dần theo độ tuổi: ai lớn tuổi lên trước – ưu tiên người già:

const persons = [
  { name: 'Kiều Phong', age: 30, height: 170},
  { name: 'Lý Quỳ', age: 45, height: 150},
  { name: 'Dương Tiễn', age: 35, height: 180},
];

function compare(a, b) {
  return b.age - a.age;
}

console.log(persons.sort(compare))
// in ra: [{ name: 'Lý Quỳ', age: 45, height: 150},{ name: 'Dương Tiễn', age: 35, height: 180}, { name: 'Kiều Phong', age: 30, height: 170}]

Cũng đơn giản phải không?

  Phân biệt ArrayList và LinkedList

Nếu bạn sử dụng thư viện Lodash thì còn dễ hơn nữa. Bạn chỉ cần phải truyền vào thuộc tính cần so sánh, khỏi cần viết hàm so sánh luôn.

const persons = [
  { name: 'Kiều Phong', age: 30, height: 170},
  { name: 'Lý Quỳ', age: 45, height: 150},
  { name: 'Dương Tiễn', age: 35, height: 180},
];

var sortedPersons = _.orderBy(persons, ['age'], ['desc']);
console.log(sortedPersons);

Cú pháp sắp xếp của Lodash:

_.orderBy(collection, iteratees, orders)

Trên đây là một số cách đơn giản để bạn sắp xếp một mảng. Bạn có cách nào hay hơn thì chia sẻ với mọi người trong phần bình luận nhé.

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

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

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

5 dấu hiệu CV “hết hạn dùng”, cần update ngay!

5 dấu hiệu CV “hết hạn dùng”, cần update ngay!

Đã bao lâu rồi bạn chưa update CV? Làm thế nào để update được một bản CV IT đúng chuẩn hiện tại? Việc thường xuyên update CV là một bước bắt buộc ứng viên nào cũng cần phải làm nếu muốn gây ấn tượng với nhà tuyển dụng. Tuy nhiên, việc làm mới CV không chỉ đơn giản là nhồi nhét những thứ bạn đã làm được trong thời gian qua vào, mà cần có sự chọn lọc và điều chỉnh thông minh.

Vậy nên, bài viết này sẽ gợi ý bạn 5 dấu hiệu nhận biết một bản CV xin việc đã quá cũ, cần update ngay. Bên cạnh đó, bài viết cũng hướng dẫn bạn cách update CV IT đúng chuẩn nhất hiện nay. Bắt đầu thôi nào!

Vì sao cần thường xuyên update CV xin việc?

CV xin việc là một tài liệu quan trọng, giúp bạn giới thiệu bản thân và trình độ chuyên môn của mình với nhà tuyển dụng. Một CV ấn tượng sẽ giúp tăng cơ hội trúng tuyển của ứng viên.

Vì sao cần thường xuyên update CV xin việc?

Việc thường xuyên cập nhật CV xin việc giúp bạn:

  • Đáp ứng xu hướng ngành: Các lĩnh vực liên quan đến công nghệ như ngành lập trình không ngừng phát triển và thay đổi. Bằng cách cập nhật thường xuyên, bạn có thể phản ánh sự theo kịp với xu hướng mới và các công nghệ tiên tiến, giúp nâng cao khả năng cạnh tranh.
  • Tăng cường kỹ năng cá nhân: Công việc mới và các dự án đòi hỏi kỹ năng khác nhau. Cập nhật CV giúp bạn chú ý đến việc phát triển và nâng cao kỹ năng cá nhân, từ đó tăng cường khả năng làm việc hiệu quả trong môi trường mới.
  • Có một CV “chuẩn” hơn, không lỗi thời: Việc thường xuyên cập nhật các cách viết CV mới sẽ giúp CV của bạn trong chuyên nghiệp và dễ đọc hơn. Hơn thế nữa, việc có một CV mới đúng chuẩn còn có thể giúp bạn vượt qua được các hệ thống sàng lọc CV một cách dễ dàng.
  • Thích nghi với thị trường đầy biến động: Làn sóng layoff có thể không chừa một ai, việc cập nhật CV ngay cả khi bạn đang có công việc ổn định là điều cần thiết. Bởi nếu không may bạn bị sa thải thì sẽ có ngay một chiếc CV mới để apply nơi khác.

Theo các chuyên gia nhân sự, bạn nên cập nhật CV ít nhất 6 tháng một lần. Tuy nhiên, nếu bạn có những thay đổi đáng kể trong học tập, làm việc, hoặc CV của bạn đã lỗi thời bạn nên cập nhật CV ngay lập tức.

  5 mẹo viết CV IT giúp đánh bại hệ thống sàng lọc tự động ATS

5 dấu hiệu bạn nên update CV xin việc ngay lập tức

Bạn đã dùng CV này quá lâu

Nếu bạn đã dùng CV này quá lâu, nó có thể trở nên lỗi thời và không còn phù hợp với những yêu cầu của thị trường lao động hiện tại. Bạn có thể cập nhật thêm các kỹ năng mới, những thành tựu mới hoặc thành thạo một ngôn ngữ lập trình mới để làm nổi bật bản thân mình trước nhà tuyển dụng.

Ngoài ra, bạn có thể cập nhật lại mục tiêu công việc nếu có sự thay đổi, điều này giúp nhà tuyển dụng hiểu rõ hơn về bạn.

Bố cục CV chưa hợp lý

Một CV có bố cục rõ ràng, mạch lạc sẽ giúp nhà tuyển dụng dễ dàng nắm bắt được thông tin về bạn và đánh giá năng lực của bạn một cách chính xác. Dưới đây là một số dấu hiệu cho thấy bố cục CV của bạn chưa phù hợp:

  • Thông tin được sắp xếp lộn xộn, không theo thứ tự logic
  • Các phần trong CV không được phân chia rõ ràng
  • Thông tin không được trình bày một cách khoa học, dễ hiểu

Bố cục CV chưa hợp lý

Nếu CV của bạn có một trong những dấu hiệu trên, bạn nên update CV ngay lập tức. Ví dụ, bạn có thể sắp xếp thông tin trong CV theo thứ tự sau: Thông tin cá nhân, Mục tiêu nghề nghiệp, Trình độ học vấn, Kinh nghiệm làm việc, Kỹ năng, Thành tích. Việc cải thiện bố cục CV sẽ giúp bạn tạo ấn tượng tốt với nhà tuyển dụng và tăng cơ hội trúng tuyển.

CV quá dài hoặc quá ngắn

CV quá dài hoặc quá ngắn đều phản tác dụng và khiến nhà tuyển dụng bỏ qua bạn. Nhiều người thường có thói quen bỏ tất cả những thành tựu, kỹ năng mà mình đạt được vào trong CV mặc dù có những thứ không liên quan đến vị trí ứng tuyển. Điều này chỉ làm cho nhà tuyển dụng mất thời gian đọc và khó nắm bắt được thông tin về bạn.

Ngược lại, CV quá ngắn sẽ khiến nhà tuyển dụng không thấy được đầy đủ năng lực của bạn. CV của bạn nên bao gồm tất cả những thông tin quan trọng, chẳng hạn như trình độ học vấn, kinh nghiệm làm việc, kỹ năng, thành tích,… Theo các chuyên gia, chiều dài lý tưởng nhất cho CV là từ 1-2 trang tùy vào kinh nghiệm của bạn.

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

CV không phù hợp với vị trí ứng tuyển

CV của bạn không phù hợp với vị trí ứng tuyển, nó có thể khiến nhà tuyển dụng đánh giá thấp năng lực và bỏ qua CV của bạn. Dưới đây là một số dấu hiệu cho thấy CV của bạn không phù hợp với vị trí ứng tuyển:

  • Trình độ học vấn và kinh nghiệm làm việc không đáp ứng yêu cầu của vị trí: Vị trí ứng tuyển có thể yêu cầu một trình độ học vấn hoặc kinh nghiệm làm việc nhất định. Nếu CV của bạn không đáp ứng những yêu cầu này, nhà tuyển dụng sẽ nghĩ rằng bạn không có đủ năng lực để đảm nhận vị trí.
  • Kỹ năng và kinh nghiệm không phù hợp: Nếu CV của bạn không nhấn mạnh những kỹ năng và kinh nghiệm cụ thể, nhà tuyển dụng sẽ không thấy được bạn có thể đáp ứng được yêu cầu của vị trí.
  • Mục tiêu nghề nghiệp không phù hợp: Mục tiêu nghề nghiệp của bạn nên thể hiện sự phù hợp của bạn với vị trí ứng tuyển.

CV không phù hợp với hệ thống sàng lọc ATS

Nếu CV của bạn không phù hợp với các hệ thống sàng lọc, nó có thể bị loại bỏ ngay từ vòng đầu tiên mà bạn không biết. Hệ thống sàng lọc CV ATS sẽ quét qua CV của bạn và đánh giá mức độ phù hợp với JD sau đó mới chuyển CV đến nhà tuyển dụng đánh giá. Do đó, nếu bạn có kinh nghiệm, kỹ năng phù hợp với yêu cầu công việc nhưng trình bày không đúng theo chuẩn ATS cũng sẽ bị loại bỏ.

CV không phù hợp với hệ thống sàng lọc ATS

Vì vậy, việc có một CV chuẩn ATS là điều rất cần thiết, nhất là một ngành mang tính đặc thù như công nghệ thông tin. Bạn hãy tìm hiểu CV chuẩn ATS là gì, cách sắp xếp bố cục, cách dùng từ khóa như thế nào cho đúng. Ngoài ra bạn cũng có thể sử dụng các công cụ để chuẩn hóa CV thông thường sang CV chuẩn nhanh chóng.

Tạo CV IT chuẩn ATS miễn phí trên TopDev

Nâng cấp CV “đúng chuẩn” với công cụ Convert CV

Nếu bạn đang cần một công cụ giúp việc update CV nhanh chóng hơn, chuẩn ATS thì nhất định phải trải nghiệm tính năng Convert CV của TopDev. Với công cụ hoàn toàn mới này, các developer chỉ cần update CV của mình lên, hệ thống sẽ sử dụng AI để tiến hành quét nội dung và đưa ra một CV mới theo đúng chuẩn ATS hiện nay.

chuẩn hóa cv, nhận ngay quà hấp dẫn 2

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

Hơn thế nữa, hệ thống sẽ lưu trữ hồ sơ của bạn và cho phép tự do chỉnh sửa, cập nhật nội dung từng phần một cách dễ dàng và nhanh chóng. Việc có một hồ sơ ứng viên hoàn chỉnh sẽ giúp bạn ghi điểm trong mắt nhà tuyển dụng và hệ thống cũng sẽ tự động đề xuất các công việc IT phù hợp với những kỹ năng, kinh nghiệm của từng developer.

Trải nghiệm công cụ Chuẩn hóa CV online ngay tại đây!

Hy vọng rằng bài viết này sẽ giúp bạn biết cách làm mới CV của mình chuyên nghiệp và hấp dẫn hơn trong mắt nhà tuyển dụng. Hãy thường xuyên update những điều mới để tiết kiệm thời gian và chủ động hơn trong thị trường việc làm IT đầy biến động này bạn nhé. Đừng quên ghé vào Convert CV để trải nghiệm công cụ tuyệt vời này!

Xem thêm: 

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

Đệ quy là gì? Phương pháp để xây dựng đệ quy

Đệ quy là gì?

Đệ quy là một khái niệm cơ bản nhưng rất quan trọng trong lập trình hay rộng hơn là trong ngành khoa học máy tính. Việc sử dụng đệ quy sẽ giúp chúng ta giải quyết được rất nhiều bài toán trong thực tế lập trình, vì vậy nó được ứng dụng rất nhiều trong cấu trúc dữ liệu và giải thuật. Bài viết hôm nay chúng ta cùng nhau tìm hiểu xem Đệ quy là gì và các phương pháp để xây dựng đệ quy nhé.

Đệ quy là gì?

Trong toán học và khoa học máy tính, đệ quy – Recursion là một phương pháp giải toán mà trong đó lời giải của bài toán phụ thuộc vào một trường hợp nhỏ hơn của cùng một bài toán đó. Trong lập trình, hàm đệ quy được nhận biết đơn giản là việc trong code thực thi hàm có chứa lời gọi đến chính nó (chính hàm đó).

Đệ quy là gì?

Ví dụ đơn giản về đệ quy triển khai code bằng ngôn ngữ lập trình JavaScript, trong code triển khai function recursion có chứa đoạn gọi lại chính nó recursion()

function recursion(count) {
  count++;

  if (count <= 5) {
    console.log("step at", count);
    recursion(count);
  }
}

Một hàm đệ quy bao gồm 2 thành phần:

  • Phần cơ sở: là trường hợp mà bài toán được giải quyết mà không cần phải gọi lại chính nó. Mục đích của phần cơ sở cũng là việc vòng gặp gọi hàm sẽ được dừng lại tại 1 điều kiện xác định, tránh xảy ra vòng lặp vô hạn.
  • Phần đệ quy: là phần xử lý gọi lại hàm, các hành động này sẽ được xử lý gọi liên tiếp cho đến khi lời gọi đến phần cơ sở.

Đệ quy tuyến tính và Đệ quy nhị phân

Trong lập trình nói chung, Đệ quy có thể được chia thành 6 loại, gồm:

  • Đệ quy tuyến tính – Linear Recursion
  • Đệ quy nhị phân – Binary Recursion
  • Đệ quy đuôi – Tail Recursive
  • Đệ quy đa tuyến – Exponential Recursive
  • Đệ quy lồng – Nested Recursion
  • Đệ quy tương hỗ – Mutual Recursion

Các loại đệ quy ở trên đều giống nhau về bản chất đệ quy nhưng có sự khác nhau về số lượng lời gọi đệ quy trong hàm hoặc vị trí của lời gọi. 4 loại đệ quy ở dưới hầu như ít khi được sử dụng trong lập trình mà phần lớn trong nghiên cứu; chúng ta cùng tìm hiểu sâu hơn về đệ quy tuyến tính và nhị phân nhé.

  Stack Overflow Là Gì? Vì Sao Đệ Quy Lại Dễ Gây Tràn Stack?

Đệ quy tuyến tính

Là hàm đệ quy chỉ gọi chính nó một lần trong thân hàm. Ví dụ cơ bản nhất là bài toán tính giai thừa n! trong toán học.

Đệ quy tuyến tính

Đệ quy nhị phân

Là dạng đệ quy gọi 2 lần chính nó, hay hiểu đơn giản là trong code triển khai sẽ có dòng lệnh gọi đến chính hàm đó 2 lần. Bài toán kinh điển trong trường hợp này chính là dãy Fibonacci.

Đệ quy nhị phân

Chúng ta vẫn quen thuộc với công thức tạo ra dãy Fibonacci là: fib(n – 1) + fib(n – 2) từ đó dễ thấy cách triển khai đệ quy nhị phân khi sẽ cần gọi lại 2 lần hàm tính fib. Câu hỏi đặt ra là có thể sử dụng đệ quy tuyến tính cho bài toán Fibonacci này được không? 

Câu trả lời là có, và thậm chí nó sẽ còn tốt hơn về tốc độ so với đệ quy nhị phân. Cách triển khai như dưới đây:

function fib_linearR(a, b, n) {
  if (n <= 2) return b;
  else if (n > 2) return fib_linearR(b, a + b, n - 1);
}

//fib(10) = fib_linearR(1,1,10)

Top việc làm C++ hấp dẫn trên TopDev đang chờ bạn ứng tuyển!

Phương pháp xây dựng đệ quy

Như đã đề cập ở trên, đệ quy bao gồm 2 thành phần là phần cơ sở và phần đệ quy; và để xây dựng đệ quy cũng chính là việc chúng ta đi xác định được logic xử lý và phạm vi của 2 phần này.

Phương pháp xây dựng đệ quy

Xác định Base case

Mục tiêu của Base case là trả về một giá trị cụ thể để có thể kết thúc vòng lặp đệ quy. Thông thường trong hầu hết các bài toán thì Base case được xác định cụ thể với giá trị rõ ràng ngay từ đầu. Ví dụ ở bài toán Fibonacci chúng ta có F(1) = 1 và F(2) = 1; hay với bài toán tính giai thừa của một số thì Factorial(1) = 1. 

Base case sẽ không tạo ra hoặc thay đổi các biến, tham số bên ngoài hàm; nó sẽ luôn trả ra một kết quả khi có cùng một đầu vào. Từ đó chúng ta có thể xây dựng Base case là một Pure function, không tạo ra bất kỳ side effect ngoài bên ngoài phạm vi của nó.

  Khi code bí thì phải làm sao? 5 kinh nghiệm siêu hay để giải quyết vấn đề

Viết logic Đệ quy

Logic đệ quy là việc xác định được khi nào (vị trí) thì gọi lại hàm đệ quy và mỗi lần gọi lại thì vấn đề được thu nhỏ hơn (hay chính là bài toán con). Sau mỗi lần thực hiện gọi lại hàm đệ quy thì bài toán ban đầu sẽ trở nên dễ dàng tính toán hơn và đồng thời đảm bảo được nó sẽ kết thúc vòng lặp vào một trong số các Base case chúng ta đã xây dựng.

Ví dụ như với bài toán Fibonacci, để tính F(5) chúng ta sẽ gọi đến việc tính toán F(4) và F(3) là những bài toán con nhỏ hơn, dễ tính hơn. Và cuối của vòng lặp chúng ta sẽ gọi đến F(2) và F(1) – là những Base case.

Phần đệ quy (Recursion case) rõ ràng sẽ không phải là một Pure Function, nó sẽ sử dụng các tham số ngoài hoặc ít nhất là đọc dữ liệu từ bên ngoài. Hơn nữa, một số bài toán có thể trả về kết quả khác nhau cho cùng một giá trị đầu vào, ví dụ như bài toán tìm đường đi ngắn nhất khi có nhiều lời giải được tìm ra.

Kết bài

Như vậy qua bài viết này chúng ta đã cùng nhau tìm hiểu về Đệ quy, các loại đệ quyphương pháp để xây dựng đệ quy áp dụng trong lập trình. Đệ quy là một kiến thức cơ bản trong cấu trúc dữ liệu và giải thuật và được áp dụng rất nhiều trong lập trình để giải quyết các bài toán thực tế. Vì vậy hãy nắm vững kiến thức này để có thể sử dụng nó một các hiệu quả nhất nhé. Cảm ơn các bạn đã đọc bài 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

Xem thêm những bài viết liên quan dưới đây:

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

10 thủ thuật tìm kiếm nâng cao trên Google cực hữu ích

10 thủ thuật tìm kiếm nâng cao trên Google cực hữu ích

Bài viết được sự cho phép của tác giả Sơn Dương

Google hiện là công cụ tìm kiếm tốt nhất hiện nay, tất cả mọi vấn đề bạn đều có thể lên Google để tra cứu. Với lập trình viên, kỹ năng tìm kiếm Google là một kỹ năng không thể thiếu, không những thế, nó còn là kỹ năng quan trọng nhất trong số những kỹ năng quan trọng của một developer chuyên nghiệp

Hầu hết mọi người đều nghĩ, tìm kiếm trên Google dễ ấy mà, cần gì thì gõ ra rồi nhấn enter là xong chứ gì!

Kể ra họ nghĩ vậy cũng đúng, nhưng với developer thì không phải lúc nào cũng tìm ra câu trả lời ngay từ những câu truy vấn tìm kiếm đầu tiên. Bạn cần phải có thủ thuật Google, các mẹo riêng để tìm ra đúng từ khóa, từ đó mới tìm ra câu trả lời cho vấn đề của bạn.

Chúng ta cùng nhau khám phá những thủ thuật Google xem có gì hay ho nhé!

1. Dùng từ khóa trích dẫn “…”

Nếu bạn muốn nhận được kết quả với cụm từ chính xác, hãy đặt từ khóa trong dấu ngoặc kép “”. Sử dụng dấu ngoặc kép, Google sẽ chỉ hiển thị những kết quả chứa chính xác cụm từ bạn tìm kiếm.

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: “javascript tiếng việt 2021”

2. Sử dụng dấu *

Bạn có thể sử dụng dấu * để Google tự tìm kiếm từ khóa thay thế cho dấu *. Điều này sẽ giúp bạn tìm kiếm dễ dàng trong trường hợp bí ý tưởng không biết từ khóa chính xác là gì.

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: how to * in javascript

3. Sử dụng câu lệnh khoảng (…)

Với câu lệnh (…) giúp bạn dễ dàng tìm kiếm các chủ đề liên quan tới số, chẳng hạn như năm, phiên bản phần mềm…

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: javascript version 2011…2022

  Tích hợp Google ReCaptcha vào form trong React

4. Câu lệnh site:

Đôi khi bạn muốn tìm kiếm bất kể thứ gì trong một trang web. Ví dụ bạn muốn tìm câu trả lời mà chỉ muốn kết quả lấy từ trang stackoverflow (cơ bản mình thấy câu trả lời ở đâu nó hay đúng với câu hỏi của mình), bạn dùng  câu lệnh search:<domain> <từ khóa tìm kiếm>

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: site:vntalking.com javascript

  Lại nói về cách làm thế nào để gọi được API các dịch vụ của Google

5. Câu lệnh AND

Để tìm kết quả mà có chứa kết hợp một số từ trong từ khóa, câu lệnh AND sẽ rất hữu ích trong trường hợp này. Ví dụ, bạn muốn tìm kiếm kết quả mà có cả React và CSS thì bạn gõ lệnh: react AND css

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: react AND css

Tham khảo việc làm Back-end hấp dẫn trên TopDev

6. Filetype

Nếu bạn muốn tìm kiếm đường dẫn tải file hoặc tìm trang cho phép tải một file nào đó, bạn có thể thêm đuôi file vào sau từ khóa tìm kiếm. Cái này rất hữu ích cho bạn nào hay tải ebook, tài liệu…

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: React ebook filetype:pdf

7. Câu lệnh OR

Ngược với câu lệnh AND thì câu lệnh OR cho ra các kết quả thỏa mãn một trong những từ khóa bạn nhập vào

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: React OR Vue masterclass

8. Câu lệnh Define:

Sử dụng câu lệnh define: để tìm định nghĩa cho một từ. Thay vì bạn phải vào các trang từ điển để tra cứu thì bạn có thể sử dụng ngay Google, mọi việc để Google lo.

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: define:oops

9. Câu lệnh Related:

Bạn có thể sử dụng câu lệnh related: để tìm những website tương tự với trang bạn thực sự muốn tìm và có nội dung tương tự. Điều này sẽ trở nên hữu ích khi bạn muốn tìm một giải pháp thay thế cho một trang web.

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: related:w3schools.com

10. Câu lệnh (+)

Phải có thể sử dụng câu lệnh (+) để nhận được kết quả phải chứa hai từ đã cho. Điều này sẽ hữu ích cho người tìm kiếm thứ gì đó mà từ khóa này liên quan tới từ khóa kia.

Thủ thuật tìm kiếm chuyên sâu trên Google

Ví dụ: JavaScript Oops+React

Trên đây là 10 thủ thuật tìm kiếm trên Google, nó sẽ giúp ích cho bạn rất nhiều trong việc tìm kết quả như ý muốn.

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

Xem thêm:

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

Thực hiện “Chuẩn Hóa CV” nhận ngay quà hấp dẫn

chuẩn hóa cv

Trong thời đại số hóa, các công ty lớn thường xuyên nhận hàng trăm đơn ứng tuyển cho mỗi vị trí. Để quản lý hiệu quả lượng lớn hồ sơ này, hệ thống theo dõi ứng viên (ATS) đã trở thành công cụ không thể thiếu. ATS tự động sàng lọc và đánh giá hồ sơ, đòi hỏi mỗi ứng viên phải có một CV đúng chuẩn để không bị loại từ vòng gửi xe. Đây là nơi công cụ “Chuẩn Hóa CV” của TopDev đóng một vai trò quan trọng.

chuẩn hóa cv, nhận ngay quà hấp dẫn 2

1. Giới Thiệu Công Cụ “Chuẩn Hóa CV” của TopDev

TopDev, với sự hiểu biết sâu sắc về thị trường tuyển dụng IT, đã phát triển công cụ “Chuẩn Hóa CV” để giúp các chuyên gia IT tạo ra những hồ sơ xứng tầm. Dựa trên công nghệ tiên tiến từ OpenAI, công cụ này có khả năng tự học hỏi, phân tích và chọn lọc thông tin, sau đó tự động tạo ra một CV hoàn chỉnh theo chuẩn ATS.

Trải nghiệm ngay công cụ Chuẩn hóa CV: Chuẩn hóa CV online

trải nghiệm ngay

2. Thời gian tham gia chương trình và giải thưởng

Theo đó, chương trình trao quà may mắn “SỞ HỮU CV “CHUẨN” – RINH QUÀ TẶNG CỰC MÊ” sẽ được TopDev tổ chức trong 4 tuần, bắt đầu từ ngày 04/12/2023 đến hết ngày 31/12/2023.

Mỗi tuần, TopDev sẽ lựa chọn ngẫu nhiên một người dùng may mắn để trao giải thưởng là

  • 01 giải Nhất: Tai nghe Sony không dây WH-CH520
  • 05 giải Khuyến khích: Cặp voucher vé xem phim 2D tại CGV
  • Đặc biệt, 01 giải nhất tháng: Bàn phím cơ Keychron K8 Pro QMK/VIA Wireless

3. Cách thức tham gia và nhận thưởng

Tham gia chương trình ngay hôm nay chỉ với 3 bước đơn giản:

  • Bước 1: Truy cập: Chuẩn hóa CV online
  • Bước 2: Đăng nhập tài khoản TopDev
  • Bước 3: Upload CV của bạn tại công cụ Convert CV

Đến đây, bạn đã hoàn thành các bước để tham gia chương trình. Mỗi tuần, TopDev sẽ thực hiện chương trình quay số và chọn ra người may mắn thắng giải. Giải thưởng sẽ được công bố vào mỗi thứ hai hằng tuần trong thời gian chạy chương trình, thông qua trên fanpage TopDev và thông báo trực tiếp qua email người dùng may mắn sử dụng trên nền tảng TopDev từ ngày 11/12/2023.

Bạn còn chần chờ gì mà không tham gia chuẩn hóa CV ngay. Đừng để CV của bạn trở thành rào cản, hãy để TopDev giúp bạn tỏa sáng!

trải nghiệm ngay

—–

Lưu ý:

– Các khoản thuế, phí (nếu có) phát sinh từ việc nhận giải thưởng sẽ do cá nhân nhận thưởng chi trả.
– Thời gian tối đa để cá nhân trúng thưởng xác nhận sau khi nhận được email/thông báo qua điện thoại chúc mừng từ TopDev là 15 (mười lăm) ngày, sau thời gian này BTC sẽ chuyển lại thành giải thưởng cho chương trình tiếp theo.
– Email đăng nhập sẽ là căn cứ để xác định người trúng thưởng trong quá trình quay số và chọn người thắng giải.
– Nếu có bất kỳ tình huống phát sinh, TopDev sẽ là bên đưa ra quyết định cuối cùng..

Mọi thắc mắc giải đáp liên quan đến chương trình khuyến mại này, xin liên hệ media@topdev.vn hoặc fanpage TopDev. Bằng việc tham gia Chương trình Khuyến mại này, người dùng mặc định chấp thuận tất cả các Thể lệ và Điều kiện của Chương trình Khuyến mại được liệt kê trên.

5 mẹo viết CV IT giúp đánh bại hệ thống sàng lọc tự động ATS

5 mẹo viết CV IT giúp đánh bại hệ thống sàng lọc tự động ATS

Khi phỏng vấn, nhiều Developer chỉ quan tâm làm thế nào để gây ấn tượng với nhà tuyển dụng trong lần gặp đầu tiên, mà quên đi mất việc phải làm sao để vượt qua vòng sàng lọc CV. Ở các công ty lớn, với lượng apply lên đến hàng trăm thì việc ứng dụng hệ thống sàng lọc ứng viên ATS (Applicant Tracking System) để tăng hiệu quả tuyển dụng là điều tất yếu. Lúc này, nếu CV của bạn không đáp ứng đủ các yêu cầu từ hệ thống thì chắc chắn sẽ bị loại bỏ ngay tức khắc.

5 mẹo cực hay viết CV IT chuẩn ATS

ATS đơn thuần là một hệ thống được xây dựng trên các thuật toán chặt chẽ nên không thể nào nhìn nhận hay phát hiện được tiềm năng thật sự của ứng viên. Do đó, nếu CV của bạn không đủ chi tiết hoặc chưa được tối ưu theo yêu cầu của ATS thì việc bị hệ thống đánh giá thấp sẽ rất đáng tiếc. Vậy nên, dưới đây sẽ là một vài mẹo nhỏ giúp bạn vượt ải sàng lọc nhanh chóng.

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

1. Viết đề mục đơn giản, cấu trúc rõ ràng

ATS sẽ hoạt động bằng cách quét CV để tìm kiếm từ khóa và phân loại chúng vào các mục để dễ đánh giá. Do đó, bạn hãy trình bày các đề mục một các đơn giản và phổ thông nhất. Đừng cố gắng tùy biến theo phong cách cá nhân, điều này có thể làm hệ thống không thể phân loại được.

Để an toàn bạn hãy giữ nguyên tên của các đề mục và trình bày chi tiết, bao gồm các phần như: Thông tin cá nhân, Mục tiêu nghề nghiệp, Trình độ học vấn, Kinh nghiệm làm việc, Kỹ năng, Thành tích. Bạn có thể in đậm, in hoa chữ và tăng size chữ để giúp hệ thống dễ dàng nhận dạng thông tin.

2. Sử dụng từ khóa liên quan đến vị trí ứng tuyển

Tương tự như cách chúng ta tìm kiếm trên Google, hệ thống ATS sẽ thu hẹp hồ sơ ứng viên bằng cách sàng lọc từ khóa. Bạn có thể tìm kiếm các từ khóa liên quan đến vị trí ứng tuyển bằng cách xem mô tả công việc hoặc các vị trí tương tự trên các trang web tuyển dụng.

Một cách hiệu quả khác là sử dụng AI để hỗ trợ phân tích từ khóa. Bạn có thể nhập mô tả công việc và yêu cầu Chat GPT đưa ra các từ khóa liên quan đến mô tả công việc đó. Sau đó bạn hãy sàng lọc các từ khóa phù hợp và đưa vào CV IT của mình.

mẹo viết CV IT chuẩn ATS
Nhập yêu cầu phân tích JD và đưa ra từ khóa từ JD đó

mẹo viết CV IT chuẩn ATS
Kết quả Chat GPT đưa ra

Ngoài ra, bạn cũng nên lưu ý về tần suất xuất hiện của từ khóa cũng như vị trí của từ khóa trong CV. Một số hệ thống ATS sẽ đánh giá mức độ thành thạo của kỹ năng dựa trên số lần từ khóa đó xuất hiện. Ví dụ nếu từ khóa đã xuất hiện một lần trong phần kỹ năng, sau đó lại được nhắc lại ở phần kinh nghiệm làm việc hoặc giáo dục thì hệ thống sẽ đánh giá cao khả năng sử dụng kỹ năng này của bạn.

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

3. Thiết kế đơn giản và bố cục rõ ràng

Một CV sáng tạo sẽ gây ấn tượng trong mắt nhà tuyển dụng nhưng với hệ thống ATS thì không. Một CV có thiết kế bắt mắt, sử dụng biểu đồ, font chữ nghệ thuật sẽ khiến ATS “bối rối” và không đánh giá cao CV của bạn. Thêm nữa, bạn cũng không nên chia thành các cột trong CV vì hệ thống được lập trình đọc data từ trái qua phải, từ trên xuống dưới nên nếu chia cột nội dung sẽ bị lẫn lộn, hệ thống rất khó phân biệt.

Với các vị trí chuyên về kỹ thuật như ngành IT thì bạn chỉ nên viết CV một cách rõ ràng, đơn giản, tuân theo bố cục chuẩn ATS.

4. Kiểm tra lỗi chính tả thật kỹ

Đây là yêu cầu hiển nhiên cho dù bạn viết CV cho hệ thống ATS sàng lọc hay cho nhà tuyển dụng xem. Tuy nhiên, một vài nhà tuyển dụng có thể sẽ bỏ qua lỗi này còn máy móc thì không. Một khoảng cách bị dư hay một từ sai chính tả cũng có thể khiến bạn bị ATS trừ điểm. Do đó, bạn hãy kiểm tra CV của mình thật kỹ trước khi gửi nhé.

  Các kỹ năng cần có trong CV IT để chinh phục mọi nhà tuyển dụng

5. Chọn đúng định dạng file

Hai định dạng file bạn nên sử dụng để gửi CV IT là .pdf và .docx. Tuy nhiên, tệp .docx được cho là hiệu quả và thân thiện hơn với hệ thống đánh giá ứng viên ATS. Do đó, ngoại trừ trường hợp CV tải lên yêu cầu định dạng .pdf thì các trường hợp khác bạn hãy gửi định dạng .docx để chắc chắn rằng ATS có thể phân tích được.

Thuật toán tham lam (Greedy Algorithm) – Thực hành với C++

Thuật toán tham lam (Greedy Algorithm) – Thực hành với C++

Bài viết được sự cho phép bởi tác giả Sơn Dương

Hôm nay chúng ta quay trở lại với series thuật toán chuyên sâu nhé. Mặc dù, nói tới thuật toán là mình cảm thấy đau đầu vì tính phức tạp của nó, nhưng khi đã thẩm thấu xong một thuật toán, bản thân lại cảm thấy vô cùng thích thú

Bài viết hôm nay, mình sẽ đề cập tới thuật toán tham lam (Greedy Algorithms) – nghe tên thôi đã thấy tham rùi.

Cùng với thuật toán “Chia để trị –  Divide and Conquer”, thuật toán tham lam là một trong những thuật toán thường xuyên xuất hiện trong các câu hỏi phỏng vấn tuyển dụng. Thật là thiết sót nếu bạn lại bỏ lỡ không biết về thuật toán này.

Thuật toán tham lam là gì?

Hiểu một cách “nông dân” nhất có thể về thuật toán này như sau: Khi bạn gặp một bài toán lớn phải chứng minh nó đúng. Ví dụ: Chứng minh toàn bộ người dân Việt Nam đều là người cần cù, chịu khó, làm việc chăm chỉ.

Vấn đề là bạn không thể gặp và tiếp xúc tất cả người Việt Nam được. Thay vào đó, bạn gặp điểm một số người thôi, những người cùng quê, cùng gia đình, bạn bè… và bạn thấy đúng là họ đều cần cù, chịu khó, làm việc chăm chỉ cả. Thế là bạn suy ra toàn bộ người Việt Nam đều như vậy.

Tư tưởng của thuật toán này chỉ có vậy thôi.

Cái vấn đề của thuật toán này là: Có thể kết quả cuối cùng không chính xác và phụ thuộc rất nhiều vào bài toán con mà bạn chọn ra để kiểm chứng.

Nhưng ngược lại, thuật toán tham lam lại có ưu điểm là tốc độ xử lý nhanh. “võ đoán” thì lại chẳng nhanh, “may hơn khôn” mà.

Để hiểu hơn về thuật toán này, chúng ta cùng xem xét một ví dụ sau nhé.

  Thuật toán tìm kiếm trong C++

  Bạn biết gì về thuật toán Radix Sort trong JavaScript?

Ví dụ đếm coins sử dụng thuật toán Tham lam

Giả sử trong ví, bạn có một số tờ tiền có các mệnh giá tương ứng: 1$, 2$, 5$ và 10$. Yêu cầu là chọn ra các tờ tiền để có tổng số tiền cần trả cho nhà hàng.

Trường hợp 1: tổng số tiền cần trả là 16$

Sử dụng thuật toán tham lam, bạn sẽ bắt đầu chọn các bước như sau:

  • Đầu tiên, cứ lấy một đồng 10$ đã. Vậy là còn thiếu 6$ nữa
  • Thế thì, tiếp theo, sẽ lấy 1 tờ 5$ và cuối cùng là tờ 1$

Với cách làm này, kết quả và bước thực hiện rất tối ưu. Nhưng… Tại sao bạn lại chọn tờ 10$ trước? Bạn hoàn toàn có thể chọn các tờ tiền khác trước cũng được mà?

Đây chính là đặc điểm của thuật toán tham lam.

Trường hợp 2: tổng số tiền cần trả là 17$

Cũng tương tự như cách ở trên, Bạn có thể sẽ làm như sau:

  • Đầu tiên là lấy tờ 10$ đã.
  • Tiếp theo, bạn lại chọn 7 tờ mệnh giá 1$.

thuật toán Tham lam

Như trong trường hợp này thì thuật toán đã không còn tối ưu nữa.

Cấu trúc cơ bản của thuật toán Tham lam

Dưới đây là một tiêu chí, đặc điểm nhận biết để xem với một bài toán nào đó mà áp dụng thuật toán tham lam liệu có hiệu quả không?

  • Chúng ta được cung cấp một danh sách các tài nguyên giống như coins, tasks,v.v…
  • Chúng ta có thể bắt đầu với nguồn tài nguyên có giá trị lớn nhất.
  • Tiếp theo, chúng ta có thể tiếp tục bổ sung các tài nguyên có giá trị lớn hơn để đạt đưuọc giải pháp tối ưu hóa nhất.

Việc làm C++ lương cao, hấp dẫn dành cho bạn!

Thực hành thuật toán tham lam với C++

Trăm hay không bằng tay quen, để có thể hiểu và làm chủ được một thuật toán, không có gì nhanh hơn là tự tay thực hành giải một bài toán.

Bài toán: Tìm thời gian tốt nhất để mua và bán cổ phiếu

Mô tả bài toán: bạn được cung cấp một mảng giá của một cố phiếu trong một số ngày. Bạn phải chọn ra một ngày để mua cổ phiếu và một ngày khác để bán cổ phiếu đó. Kết quả trả về là lợi nhuận mà bạn kiếm được.

Gợi ý giải pháp: Bỏ qua một bên các kiến thức chuyên ngành về chứng khoán, về “tâm linh”… Chúng ta chỉ bám vào nguyên tắc duy nhất: “Mua đáy bán đỉnh”. Tức là mua khi giá cổ phiếu thấp nhất và bán khi nó có giá cao nhất.

  • Ý tưởng sắp xếp mảng là không khả thi. Vì giá cổ phiếu nó đi theo từng ngày, chứ không có độc lập. Do đó, trước hết bạn tìm giá cố phiếu thấp nhất từ mảng đầu vào đã.
  • Vị trí của phần tử mà có giá cổ phiếu thấp nhất chính là ngày mình sẽ mua cổ phiếu
  • Còn ngày bán, chắc chắn phải là những ngày sau khi bạn mua cổ phiếu đó.
  • Do đó, bạn chạy một vòng lặp bắt đầu từ ngày mua cổ phiếu và tìm giá trị cổ phiếu cao nhất trong số những ngày còn lại.
  • Cuối cùng là trừ giá cổ phiếu ở ngày bán cho giá cổ phiếu tại ngày mua là ra kết quả cần tìm.

Ví dụ dữ liệu:

Đầu vào: [7,1,5,3,6,4]

Kết quả mong muốn: 5

thuật toán Tham lam

Code mẫu:

//C++ Program For Best Time to Buy and Sell Stock
#include
#include<bits/stdc++.h>

using namespace std;

int main() {
    //Implementing the array for prices on ith days of stock
    int n = 6;
    vector<int> prices = {7,1,5,3,6,4};

    //for storing best days to buy and sell stock
    pair<int,int> ans;
    //For storing maximum profit
    int maxProfit = 0;
    //For storing minimum purchase of stock
    int minBuy = INT_MAX;
    //index of minbuy
    int ind;

    for(int i=0;i<prices.size();i++){

        //if we get min price for buying than earlier then we update minBuy and its index
        if(minBuy>prices[i]){
            ind = i;
           minBuy = prices[i];
        }

        //Finding maximum profit by checking selling at ith day prices with minBuy
        if(maxProfit<prices[i] - minBuy){
            maxProfit=prices[i] - minBuy;
            ans = {ind,i};  // storing the days of buying and selling
        }
    }

    //Printing the best time to buy and sell stock and its maximum profit
    cout<<"Best Time to buy on day "<<ans.first+1<<" and sell on day "<<ans.second+1<<endl;
    cout<<"Maximum Profit Will be "<<maxProfit;
    return 0;
}

Chạy chương trình:

Best Time to buy on day 2 and sell on day 5.
Maximum Profit Will be 5

Tạm kết

Như vậy là chúng ta đã tìm hiểu xong về thuật toán tham lam, một trong những thuật toán phổ biến nhất.

Minh hi vọng, sau bài viết này bạn sẽ tự tin đi phỏng vấn mà không còn run sợ khi nhà tuyển dụng hỏi tới!

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

Xem thêm: