Home Blog Page 25

Bí kíp quảng cáo Job cực hiệu quả trên Social Media

Bí kíp quảng cáo Job cực hiệu quả trên Social Media

Theo thống kê của Melwater, số người dùng mạng xã hội trên toàn cầu vào năm 2023 đã vượt mốc 5 tỷ người, tương đương 62.3% dân số thế giới. Tại Việt Nam cũng đã thống kê được có đến 70 triệu người dùng mạng xã hội, với tỉ lệ 71% cao nhất khu vực Đông Nam Á.

Những con số này đã cho thấy sự tác động to lớn của mạng xã hội đến với các doanh nghiệp và thương hiệu trong việc tìm kiếm khách hàng tiềm năng. Cùng với đó cũng chính là cơ hội tuyệt vời để họ “săn” nhân tài bằng cách tiếp ứng viên qua các kênh social media.

Trong bài viết này, hãy cùng TopDev khám phá những bí kíp quảng cáo Job cực hiệu quả trên social media với các bước hướng dẫn chi tiết.

Tầm quan trọng của việc tuyển dụng trên Social Media

Trong thời đại kỹ thuật số phát triển mạnh mẽ như hiện nay, việc tuyển dụng trên mạng xã hội đang trở thành một phần không thể thiếu trong chiến lược nhân sự của các tổ chức và doanh nghiệp. Sự phổ biến của mạng xã hội đã tạo ra một “sân chơi” rộng lớn cho việc tiếp cận và tương tác với ứng viên tiềm năng.

tuyển dụng trên Social Media

Phương pháp tuyển dụng trên social media không chỉ giúp tiết kiệm thời gian và chi phí so với các phương pháp tuyển dụng truyền thống, mà còn mang lại khả năng tiếp cận đối tượng mục tiêu một cách nhanh chóng và hiệu quả. Bằng cách sử dụng các công cụ và chiến lược phù hợp, việc tuyển dụng trên social media không chỉ giúp nâng cao chất lượng ứng viên mà còn tăng cường uy tín và thương hiệu của tổ chức trên “không gian số”.

5 bước quảng cáo Job cực hiệu quả trên Social Media

Để quảng cáo công việc một cách cực kỳ hiệu quả trên mạng xã hội, có một số bước cơ bản mà bạn có thể tuân thủ:

1. Xác định đúng các mục tiêu thực tế

Việc xác định mục tiêu là bước quan trọng đầu tiên trong việc thiết lập chiến dịch quảng cáo job trên mạng xã hội. Đầu tiên, cần xác định rõ ràng mục tiêu cụ thể mà chiến dịch muốn đạt được, có thể là tăng nhận thức về thương hiệu nhà tuyển dụng, thu hút ứng viên tiềm năng, hoặc tăng tương tác từ ứng viên.

Đồng thời, cần xác định rõ vị trí ứng tuyển cần tuyển dụng và các kỹ năng, kinh nghiệm mong muốn để tạo ra thông điệp phù hợp và thu hút đúng đối tượng. Cuối cùng, việc xác định đối tượng mục tiêu, tức là ứng viên tiềm năng, là cực kỳ quan trọng để tập trung tài nguyên và chiến lược quảng cáo vào nhóm đối tượng có khả năng phản hồi tốt nhất.

Các nhà tuyển dụng có thể xác định mục tiêu của chiến dịch quảng cáo job trên social media theo nguyên tắc SMART như sau:

nguyên tắc SMART

  • Specific (Cụ thể): Mục tiêu của chiến dịch cần phải cụ thể và rõ ràng. Ví dụ, “Tăng lượng ứng viên đăng ký cho vị trí kỹ sư phần mềm tại công ty ABC lên 30% trong vòng 3 tháng.”
  • Measurable (Đo lường được): Mục tiêu cần có khả năng đo lường để theo dõi và đánh giá hiệu suất. Trong trường hợp này, việc đo lường được là số lượng ứng viên đăng ký cho vị trí công việc qua mạng xã hội.
  • Achievable (Có thể đạt được): Mục tiêu cần phải thách thức nhưng vẫn phải đạt được trong khả năng của tổ chức và nguồn lực có sẵn.
  • Relevant (Liên quan): Mục tiêu cần phải phản ánh đúng với mục tiêu tổng quát của tổ chức và chiến lược tuyển dụng của họ.
  • Time-bound (Có thời hạn): Mục tiêu cần phải có thời gian cụ thể để hoàn thành. Trong ví dụ này, thời hạn là trong vòng 3 tháng.

  Cách tìm ứng viên trên LinkedIn không phải HR nào cũng biết

  Cách đăng tin tuyển dụng trên Facebook với 5 tuyệt chiêu tối ưu

2. Lựa chọn nền tảng social media phù hợp

Khi lựa chọn nền tảng social media phù hợp cho chiến dịch quảng cáo job, điều quan trọng là hiểu rõ ưu điểm và nhược điểm của mỗi nền tảng, và áp dụng phù hợp với đối tượng mục tiêu của bạn.

Ví dụ, LinkedIn được xem là lựa chọn lý tưởng cho các vị trí tuyển dụng chuyên nghiệp, nhờ vào mạng lưới chuyên ngành mạnh mẽ và tính chất chuyên sâu của nền tảng. Trong khi đó, Facebook thường phù hợp với các vị trí tuyển dụng phổ thông, nhờ vào sự đa dạng và số lượng người dùng lớn. Đối với các vị trí tuyển dụng sáng tạo, Instagram có thể là lựa chọn tốt nhờ vào tính hình ảnh và sự tương tác đặc biệt trên nền tảng này.

Quan trọng nhất là chọn các nền tảng mà đối tượng mục tiêu của bạn thường xuyên sử dụng, từ đó tối ưu hóa hiệu quả của chiến dịch quảng cáo job trên mạng xã hội.

Tổng hợp các việc làm Back-end đang tuyển trên TopDev

3. Tạo nội dung quảng cáo hấp dẫn

Để tạo nội dung quảng cáo hấp dẫn trên mạng xã hội, việc cung cấp thông tin đầy đủ và hấp dẫn về vị trí tuyển dụng là cực kỳ quan trọng. Bạn cần chắc chắn rằng nội dung quảng cáo không chỉ bao gồm tên vị trí, mô tả công việc, và yêu cầu ứng tuyển, mà còn nên làm nổi bật những ưu điểm và lợi ích của việc làm đó để thu hút sự chú ý của ứng viên tiềm năng.

Tạo nội dung quảng cáo hấp dẫn

Sử dụng hình ảnh và video chất lượng cao cũng là một cách hiệu quả để tăng sự hấp dẫn của nội dung quảng cáo, giúp thu hút ánh nhìn và tạo ra ấn tượng mạnh mẽ với người xem. Đồng thời, khuyến khích họ tham gia ứng tuyển thông qua một lời kêu gọi hành động rõ ràng và hấp dẫn.

4. Tiếp cận đúng đối tượng mục tiêu

Bằng cách tận dụng các công cụ nhắm mục tiêu như tuổi, giới tính, địa lý và sở thích, bạn có thể đảm bảo rằng quảng cáo của mình chỉ được hiển thị cho những người có khả năng phản hồi tích cực nhất. Hơn nữa, việc tăng cường tương tác với ứng viên tiềm năng bằng cách trả lời bình luận, tin nhắn sẽ tạo ra một môi trường tương tác tích cực, tăng cơ hội thu hút và giữ chân ứng viên.

Cuối cùng, việc sử dụng các hashtag liên quan đến vị trí tuyển dụng và ngành nghề sẽ giúp tăng khả năng hiển thị quảng cáo của bạn trước đúng đối tượng mục tiêu, thu hút sự chú ý từ những người quan tâm đến lĩnh vực công việc của bạn.

  9 kênh tuyển dụng IT hiệu quả bạn nên sử dụng

5. Theo dõi và đo lường hiệu quả

Để đảm bảo chiến dịch quảng cáo job trên các kên social hoạt động hiệu quả, việc theo dõi và đo lường các chỉ số là bước quan trọng không thể bỏ qua. Bằng cách theo dõi số lượng lượt xem, lượt nhấp chuột, lượt ứng tuyển và các chỉ số khác, bạn có thể đánh giá được hiệu quả của chiến dịch và xác định được những điểm mạnh và điểm yếu của nó.

Theo dõi và đo lường hiệu quả

Từ đó, bạn có thể tối ưu hóa chiến dịch quảng cáo dựa trên kết quả theo dõi, điều chỉnh các yếu tố như nội dung, đối tượng mục tiêu và phương tiện quảng cáo để tăng cường hiệu quả và đạt được mục tiêu tốt nhất có thể.

Tóm lại

Việc quảng cáo job trên social media không chỉ là một xu hướng mà còn là một yếu tố quan trọng giúp các tổ chức tìm kiếm và thu hút nhân tài. Tuy nhiên, để thành công, việc áp dụng các chiến lược và bí kíp phù hợp là không thể thiếu. Từ việc xác định mục tiêu cụ thể, lựa chọn nền tảng phù hợp, tạo nội dung hấp dẫn, đến tiếp cận đúng đối tượng mục tiêu và theo dõi hiệu quả, mỗi bước đều đóng góp vào sự thành công của chiến dịch.

Với sự linh hoạt và sự sáng tạo, việc quảng cáo job trên mạng xã hội hứa hẹn mang lại những kết quả tích cực. Đồng thời, đáp ứng nhu cầu tuyển dụng ngày càng đa dạng và khó khăn của các doanh nghiệp. Chúc bạn thành công!

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

Tìm hiểu về lập trình hướng đối tượng trong PHP

Tìm hiểu về lập trình hướng đối tượng trong PHP

Vào đầu những năm 2000, phiên bản PHP 5.0 được team phát triển ra mắt với việc giới thiệu các tính năng lập trình hướng đối tượng và duy trì cấu trúc đó cho đến những phiên bản mới nhất hiện nay. Điều này có ý nghĩa rất lớn và cho thấy sự đúng đắn của nó khi mà PHP vẫn đang là một trong những ngôn ngữ phổ biến nhất hiện tại; đồng thời các framework PHP được ưa chuộng cũng đang sử dụng hướng đối tượng để triển khai source code của nó.

Trong bài viết này chúng ta cùng nhau tìm hiểu về cách để thực hiện lập trình hướng đối tượng trong PHP để giúp bạn tự tin hơn trong khi làm việc với ngôn ngữ này nhé.

Lập trình hướng đối tượng

Trước tiên chúng ta cùng nhắc lại một chút về lập trình hướng đối tượng nhé. Object-Oriented Programming (OOP) là một kỹ thuật lập trình cho phép chúng ta tạo ra các đối tượng trong code trừu tượng hóa các đối tượng trong thực tế. Ví dụ như ở hình dưới đây ô tô, xe đạp hay tàu thủy đều là những đối tượng (object) phương tiện giao thông nên chúng ta có thể xếp nó vào chung 1 lớp (class) là Vehicle. Trong đó, xe đạp và ô tô lại có chung đặc điểm là có bánh xe, nên chúng ta xếp chúng vào 1 lớp là Wheeled Vehicle.

Lập trình hướng đối tượng trong PHP

Việc gom nhóm thành các lớp giúp chúng ta dễ dàng mô tả đặc điểm của từng đối tượng trong nhóm thông qua việc gán cho nó các thuộc tính (properties) và các phương thức (methods); tạo ra một cấu trúc phân cấp có khả năng kế thừa, tái sử dụng source code một cách rõ ràng.

2 khái niệm cơ bản nhất trong OOP chính là class (lớp) và object (đối tượng): bạn có thể hiểu class như một khuôn mẫu còn đối tượng là một thực thể thể hiện khuôn mẫu đó.

Lập trình hướng đối tượng trong PHP

4 nguyên lý cơ bản của OOP bao gồm:

  • Tính đóng gói (Encapsulation)
  • Tính kế thừa (Inheritance)
  • Tính đa hình (Polymorphism)
  • Tính trừu tượng (Abstraction)

Lập trình hướng đối tượng trong PHP

Như vậy để chúng ta có thể lập trình hướng đối tượng trong một dự án sử dụng ngôn ngữ cụ thể thì trong source code luôn phải định nghĩa được ra những khái niệm ở trên, đồng thời đáp ứng đủ 4 nguyên lý cơ bản giúp triển khai OOP một cách hiệu quả. Tiếp theo chúng ta cùng đi cụ thể vào việc sử dụng PHP để triển khai OOP trong code như thế nào nhé.

  Lập trình hướng đối tượng (OOPs) trong Java

  Các hàm xử lý chuỗi thường dùng trong PHP

OOP trong PHP

Khi mới bắt đầu học PHP, thường các hướng dẫn, ví dụ đơn giản sẽ viết code PHP theo kiểu lập trình hướng thủ tục. Tuy nhiên khi source code của chúng ta trở nên nhiều hơn một chút thì việc viết code theo hướng đối tượng là lựa chọn tốt hơn, và thực tế là các framework PHP hiện nay cũng phần lớn được viết để triển khai OOP.

1. Định nghĩa class và tạo object

Trong PHP,  chúng ta dễ dàng định nghĩa một class trong cặp dấu ngoặc nhọn với các khai báo thuộc tính, hàm khởi tạo cùng các phương thức bên trong; sau đó khởi tạo một object thuộc lớp trên với từ khóa new. Việc gọi hàm thông qua object giúp truy cập đến phương thức đã định nghĩa trong class.

<?php
class Vehicle {
    // Properties
    public $Vehicle;
    // Constructor
    function __construct($Vehicle) {
        $this->Vehicle = $Vehicle;
    }

    // Methods
    function getVehicleName() {
        return 'The Vehicle\'s name: ' . $this->Vehicle;
    }
}

// Create an object
$ship = new Vehicle('Ship');

// Call method
echo $ship->getVehicleName(); // The Vehicle's name: Ship

2. Tính kế thừa

Tính kế thừa thể hiện quan hệ cha con giữa các lớp, giúp các lớp con kế thừa các thuộc tính, phương thức từ lớp cha; từ đó xây dựng được một cấu trúc phân cấp rõ ràng trong chương trình, đồng thời tối ưu được việc tái sử dụng source code.

class WheeledVehicle extends Vehicle {
} 
$bike = new WheeledVehicle('Bike');
echo $bike->getVehicleName(); // The Vehicle's name: Bike

Từ khóa extends giúp chúng ta tạo ra một class WheeledVehicle kế thừa class Vehicle; và khi đối tượng bike được tạo ra, nó đã có sẵn phương thức getVehicleName mà không cần phải khai báo lại.

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

3. Tính đa hình

Tính đa hình thể hiện việc các lớp khác nhau có thể triển khai cùng một phương thức theo các cách khác nhau. Có nhiều cách để triển khai tính đa hình trong PHP, miễn rằng đảm bảo được việc các class có quan hệ kế thừa với cùng 1 class cha và sẽ triển khai phương thức đa hình trong từng lớp con. Từ khóa abstract được sử dụng để tạo phương thức đa hình, hoặc sử dụng từ khóa override cho việc ghi đè.

<?php
abstract class Person
{
    abstract public function greet();
}
class English extends Person
{
    public function greet()
    {
        return 'Hello!';
    }
}
class French extends Person
{
    public function greet()
    {
        return 'Bonjour!';
    }
}

Ở ví dụ trên, chúng ta tạo ra một abstract class Person trong đó khai báo phương thức greet (chào hỏi). Với 2 lớp con English (người Anh) và French (người Pháp) kế thừa từ class cha Person, việc triển khai 2 lớp này khác nhau trong từng lớp con sẽ cho chúng ta kết quả khác nhau khi cùng hành động chào hỏi (greet) là người Anh sẽ chào Hello, còn người Pháp sẽ chào Bonjour.

4. Tính đóng gói

Tính đóng gói thể hiện phạm vi truy cập đến các biến trong một lớp, giúp che giấu hoặc ngăn chặn việc chỉnh dữ liệu từ bên ngoài của một đối tượng. PHP hỗ trợ cả 3 từ khóa khai báo phạm vi truy cập biến tương tự như Java gồm public, protected và private.

<?php
class Car
{
    // data inaccessible outside the class body:
    private $model;
    public function getModel()
    {
        return $this->model;
    }
    public function setModel($modelValue)
    {
        $this->model = $modelValue;
    }
}
$car = new Car();
$car->setModel("Toyota Corolla");
// echo "Model: " + $car->model; => Fatal error: Uncaught Error: Cannot access private property
echo "Model: " . $car->getModel() . "\n";

Ở ví dụ trên, chúng ta không thể truy cập trực tiếp vào thuộc tính model trong đối tượng car thuộc lớp Car; nếu cố tình truy cập đến thì sẽ nhận về lỗi Fatal error: Uncaught Error: Cannot access private property. Việc truy cập bắt buộc thông qua các phương thức get, set được định nghĩa public trong lớp. Điều này đảm bảo rằng biến car không bị can thiệp, chỉnh sửa sai trong quá trình chạy chương trình.

5. Tính trừu tượng

Tính trừu tượng trong OOP thể hiện ở việc chỉ trình bày lên những thông tin cần thiết cho người dùng, bỏ qua những thứ không cần thiết và giấu kín nó. Cụ thể chúng ta xem xét ví dụ dưới đây:

<?php
class Triangle
{
    private $a;
    private $b;
    private $c;
    public function __construct($aVal, $bVal, $cVal)
    {
        $this->a = $aVal;
        $this->b = $bVal;
        $this->c = $cVal;
    }
    public function calcArea()
    {
        $a = $this->a;
        $b = $this->b;
        $c = $this->c;
        $p = ($a + $b + $c) / 2;
        $area = sqrt($p * ($p - $a) * ($p - $b) * ($p - $c));
        return $area;
    }
}
$triangle = new Triangle(3, 4, 5);
echo "Area = " . $triangle->calcArea();

Trong đoạn code trên thì người sử dụng class Triangle chỉ quan tâm đến diện tích (Area) của tam giác, không cần bận tâm đến các biến a, b, c được khai báo hay các bước tính toán diện tích tam giác. 

Kết bài

Như vậy qua bài viết này chúng ta đã cùng nhau tìm hiểu sâu hơn về cách triển khai lập trình hướng đối tượng trong PHP. Nắm vững được kiến thức này sẽ giúp bạn viết code một cách tự tin hơn, đảm bảo cấu trúc dự án và khả năng mở rộng chương trình trong tương lai. 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:

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

8 “mẹo” nhỏ cần làm để tìm việc mới hiệu quả

8

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

Tìm việc là một quá trình tốn thời gian và năng lượng. Có nhiều việc bạn cần phải làm như: đọc tin tuyển dụng, viết hồ sơ, chuẩn bị phỏng vấn. Để tìm việc hiệu quả, bạn cần xem chuyện tìm việc giống như một dự án của bản thân – bạn là trưởng dự án. Để quản lý dự án tìm việc cho bản thân tốt, bạn cần có một danh sách rõ ràng các việc cần phải làm. Dưới đây là danh sách 8 điều cần làm để giúp bạn theo dõi quá trình tìm việc và tìm được công việc đúng với đam mê và sở trường của bản thân.

1/ Công ty đang quan tâm

Tuỳ theo lĩnh vực và ngành nghề bạn đang theo đuổi, bạn nên bắt đầu với danh sách 10-15 công ty tiềm năng trong mảng này. Danh sách 10-15 công ty này rất quan trọng vì nó giúp cho quá trình tìm việc của bạn dễ dàng tìm kiếm và quản lý thông tin hơn. Khi bạn có trong tay tên 10-15 công ty, bạn có thể bắt đầu vào website công ty xem họ đang tuyển vị trí gì, có cựu sinh viên nào của trường mình đang làm việc ở đó hay không, có sự kiện nào có sự tham gia của nhân sự công ty đó, có người bạn nào trên Facebook hay LinkedIn đang làm tại công ty đó hay không?

Công ty đang quan tâm

Thay vì nói chung chung với người khác rằng “tôi muốn tìm việc trong mảng tài chính“, bạn nên nói cụ thể hơn “tôi muốn làm việc cho công ty A (mảng tài chính)” hoặc “tôi muốn làm công việc tài chính trong một công ty công nghệ“, như vậy sẽ dễ dàng hơn để người khác kết nối và giới thiệu bạn với những mối quan hệ mà họ có trong ngành.

Ví dụ, Tuấn Anh có thể đăng một tin trên Facebook hoặc nói với bạn bè mình rằng “tôi muốn làm một vị trí nào đó trong các trường đại học, liên quan đến giảng dạy hoặc hướng nghiệp càng tốt“. Một số bạn bè trong mối quan hệ của mình đang làm việc tại trường đại học đã liên hệ với mình để giới thiệu những tin tuyển dụng mà họ biết.

Nếu bạn chưa biết mình thích công ty này, có thể tham khảo các danh sách như Top 500 doanh nghiệp lớn nhất Việt Nam (cập nhật hàng năm) hoặc danh sách các công ty top theo từng lĩnh vực.

2/ Vị trí và vai trò của vị trí đó

Từ điểm mạnh của bản thân và lịch sử làm việc trong quá khứ, bạn có thể lọc ra được một vài từ khoá liên quan đến công việc mà bạn đang quan tâm. Từ những từ khoá này, bạn gõ vào thanh tìm kiếm của các trang tuyển dụng như TopDev, Glints, Vietnamwork, LinkedIn để cho ra các gợi ý công việc. Ví dụ Tuấn Anh tìm các công việc liên quan đến các từ khoá như “tư vấn hướng nghiệp”, “giảng dạy kỹ năng”, “nhân sự”, “đào tạo”.

Khi đã tìm ra những vị trí ưng ý, bạn không chỉ nên đọc tiêu đề tên công việc mà còn nên đọc kỹ cả các gạch đầu dòng mô tả công việc đó. Hiện nay có nhiều công ty viết tiêu đề công việc một đằng, mô tả công việc một nẻo, hoặc cố tình dùng từ ngữ hoa mĩ để thu hút. Ví dụ những công việc kiểu “business development”, “consultant” nghe rất hay nhưng rất nhiều công việc trong số đó bản chất là “sale” – bán hàng chứ không phải tư vấn và phát triển chiến lược. Vì vậy, phải đọc kĩ từng gạch đầu dòng trong tin tuyển dụng.

  Cách Viết Summary Trên LinkedIn Để Thu Hút Các Nhà Tuyển Dụng

  Những tác động to lớn của trí tuệ nhân tạo trong tuyển dụng

3/ Những mối quan hệ quen biết

Bạn cần có một danh sách những người bạn biết và có khả năng giới thiệu công việc cho bạn, liên hệ với những người này một cách cá nhân qua Facebook, Zalo hoặc một cách chuyên nghiệp qua email.

tìm việc qua mối quan hệ

Khi liên hệ, bạn nên nói về các ý bao gồm: Bạn có thể làm gì? Bạn thích kiểu công việc như thế nào hoặc đang tìm kiếm vị trí gì?, đồng thời nhờ người đó giới thiệu nếu biết có cơ hội nào. Khi nhà tuyển dụng tìm người, kênh đầu tiên thường được ưu tiên là qua các mối quan hệ. Vì vậy cách này có thể giúp bạn tiếp cận được những công việc tốt hơn là các trang tuyển dụng. Bạn cũng có thể sử dụng LinkedIn, tìm các cá nhân đang làm tại công ty bạn thích, kết nối với người ta và giới thiệu về bản thân bạn.

4/ Tham gia các chương trình Mentor / Networking / Hội thảo nghề nghiệp

Hiện nay có rất nhiều người làm nhân sự của các công ty thường xuyên đi làm Mentor cho các chương trình, làm diễn giả các hội thảo hoặc tham gia các sự kiện networking trong ngành. Bạn nên canh những chương trình này và tới để làm quen với những người này. Khi gặp những người này, bạn có thể giới thiệu nhanh về bản thân, xin thông tin liên lạc để về nhà gửi email giới thiệu kĩ hơn kèm CV của bạn.

Một số cộng đồng chuyên ngành bạn cân nhắc:

Một số chương trình Mentor:

5/ Chuẩn bị cách trả lời những câu hỏi phỏng vấn

Chuẩn bị cách trả lời những câu hỏi phỏng vấn

Tuỳ theo người phỏng vấn và công ty mà các câu hỏi có thể khác nhau, tuy nhiên vẫn có những câu hỏi thông dụng như “Giới thiệu bản thân“, “Điểm mạnh của bạn là gì?” hoặc là “Mục tiêu 3-5 năm tới“. Bạn nên xem danh sách các câu hỏi phỏng vấn thông dụng và tập chuẩn bị trước cách trả lời các câu hỏi này ở nhà. Hãy tưởng tượng mình là một vận động viên thể thao, trước khi bước ra sân thi đấu thì cần rất nhiều thời gian tập luyện.

6/ Những mong muốn của bản thân ở chỗ làm

Bạn nên làm rõ những mong muốn cụ thể của bản thân từ mức lương, vị trí địa lý chỗ làm, tính cách của sếp hay cách bài trí văn phòng. Những mong muốn này giúp bạn lựa chọn công việc tốt hơn, tránh việc đi làm một thời gian thấy không đúng ý mình, cũng như có thêm chất liệu để đặt ra câu hỏi ngược lại cho nhà tuyển dụng trong buổi phỏng vấn. Ví dụ bạn có thể hỏi: “Ngoài lương, các chính sách đãi ngộ khác của công ty mình như thế nào?” hoặc hỏi người sếp quản lý trực tiếp là “Phong cách lãnh đạo của anh là gì?”.

Bạn có thể đọc thêm bài viết này để hiểu hơn về 7 yếu tố ảnh hưởng công việc, từ đó vạch ra được các mong muốn cụ thể của bản thân.

7/ Theo dõi thư ứng tuyển

Đừng chỉ gửi đơn ứng tuyển và ngồi chờ phản hồi – vì rất có thể nhiều nhà tuyển dụng sẽ không phản hồi đâu. Việc của bạn là sau khi gửi một đơn đi thì nên ghi chú lại, khoảng 1-2 tuần sau khi gửi thì nên email hoặc gọi điện hỏi thông tin nếu chưa nhận được phản hồi. Ngoài ra, khi đi phỏng vấn về bạn cũng nên gửi một thư cảm ơn và bổ sung thông tin nếu cần.

8/ Xây dựng bảng kế hoạch tìm việc

Như đã nói ở đầu bài, hãy coi việc tìm việc như một dự án cần giải quyết – mỗi ngày bạn cần có mục tiêu và các bước hành động. Ví dụ hôm nay kết bạn với XX người trên LinkedIn, ngày mai tuốt tát lại CV, ngày kia ứng tuyển XX vị trí. Mình từng có một ví dụ về lịch trình một ngày có thể phân công như thế nào để tìm việc, bạn có thể tham khảo tại đây.

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

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

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

React Native hay Ionic: Đâu là lựa chọn tốt nhất để startup?

React Native hay Ionic

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

Câu chuyện khởi nghiệp luôn bắt đầu bằng vấn đề tài chính – thứ gây đau đầu nhất. Đặc biệt các bạn công nghệ khi muốn khởi nghiệp, việc lựa chọn công nghệ để tối ưu chi phí phát triển và maintainance rất quan trọng. Bài viết này mình sẽ chia sẻ với các bạn một góc nhìn về những lựa chọn khi phát triển ứng dụng mobile, giải pháp cho lập trình mobile đa nền tảng: chọn lập trình React native hay Ionic? Những lựa chọn này sẽ ảnh hưởng trực tiếp đến nhân lực, kinh phí và thời gian của bạn trong tương lai.

#1. Dùng Hybrid hay Native? React Native hay Ionic?

Chắc hẳn khi bắt đầu dự án thì trong đầu bạn sẽ có nhiều câu hỏi đại loại như thế đúng không?

Trong bài viết này, mình sẽ cố gắng tìm câu trả lời cho từng câu hỏi, được xem xét ở cả hai mặt mạnh và yếu của Ionic và React Native và chia sẻ trải nghiệm về việc sử dụng chúng để thực hiện dự án của mình.

Hiện nay, khi mà Android và iOS là 2 nền tảng thống trị thế giới mobile. Nếu bạn muốn tiếp cận càng nhiều khách hàng càng tốt thì việc ứng dụng của bạn có mặt trên cả hai nền tảng là điều nên nghĩ tới.

Việc phát triển native app cho cả 2 OS này điều khá tốn kém. Bởi vì mã nguồn ứng dùng cho Android và iOS sẽ hoàn toàn khác nhau, nhân lực dev team cho mỗi OS cũng khác nhau, khả năng bảo trì cũng tốn kém… Vì vậy, với nguồn lực tài chính có hạn, mình nghĩ giải pháp lập trình cross platform là khả thi nhất.

Nếu đã chọn giải pháp lập trình đa nền tảng thì lựa chọn lập trình React Native hay Ionic đây?

Chúng ta sẽ cùng tìm hiểu điểm mạnh và yếu của từng loại nhé

Ionnic là gì? Tại sao tôi nên chọn Ionic mà không phải thứ khác

React Native hay Ionic

Ionic được xây dựng trên nền tảng Apache Cordova và Angular, được phát hành vào năm 2013. Nền tảng này cho phép phát triển các ứng dụng lai(hybrid apps) với sự trợ giúp của HTML, CSS và JavaScript với một code base duy nhất và có thể tái sử dụng.

Để xây dựng các ứng dụng hoàn hảo và đầy đủ chức năng, Ionic sở hữu một bộ UI components và functions. Tuy nhiên, bạn sẽ phải cần cả Cordova và PhoneGap để Ionic có thể hoạt động.

Nếu như bạn đã có kinh nghiệm về Angular, bạn sẽ thấy phát triển ứng dụng với Ionic cực kì dễ dàng vì Ionic 2 tương tự với Angular về cả cấu trúc và cách thiết kế. Ngoài ra, TypeScript cho Ionic cũng là một điểm cộng lớn.

Framework này có một số pre-developed components UI. Nhờ vậy, khối lượng công việc của bạn được giảm đáng kể “Bạn chỉ cần viết mã một lần và sử dụng nó ở bất kỳ đâu.”

Một trong tính năng thú vị đó là khả năng thích ứng với từng OS (theo nền tảng cụ thể). Nếu bạn đang sử dụng các tab, vị trí của chúng sẽ phụ thuộc vào OS của ứng dụng đó.

Ionic cung cấp một lượng lớn các plugin với mức giá hợp lý mà bạn không cần nhờ đến sự can thiệp của bên thứ 3. Ngoài ra, bạn luôn có thể cân nhắc các plugin Cordova nếu bạn không thể tìm thấy plugin bạn muốn. Việc tích hợp các plugin Cordova với phần mềm dựa trên khuôn khổ framework thực sự rất tốt. Vậy để có thể chọn React Native hay Ionic thì cùng khám phá về React Native nhé!

Lập trình React Native là gì? React Native có gì nổi trội?

Lập trình React Native được Facebook xây dựng và phát hành vào năm 2015, ứng dụng kiến trúc ReactJS và có thể tạo ra các ứng dụng cho nền tảng iOS, Android và Universal Windows Platform.

Nó có một tính năng tuyệt vời đó là cho phép xây dựng các ứng dụng đa nền tảng, rất khó phân biệt với các ứng dụng native. Điều này tương tự như khi bạn dịch trên Google dịch và nó sẽ cho bạn một bản dịch tự động.

Nói một cách đơn giản, quá trình này giống nhau: Bạn viết một mã trong các React component. Sau đó, mã này sẽ được hiển thị dưới dạng các thành phần giao diện người dùng native. Tất nhiên là lập trình React Native không sử dụng WebView hoặc trình duyệt để hiển thị UI, do đó các ứng dụng sẽ hoạt động nhanh hơn.

Ngôn ngữ chính của lập trình React Native là JavaScript. Đó là lý do tại sao các developer có thể tái sử dụng code trên các nền tảng khác nhau. Tuy nhiên, bạn sẽ không thể sử dụng một thanh công cụ duy nhất cho tất cả nền tảng. Vì vậy, nếu bạn quyết định chọn React Native, hãy sử dụng các components càng gần với hành vi native của nền tảng càng tốt.

Như bạn đã biết, “cross pflatform” có nghĩa là bạn có thể sử dụng một code base duy nhất cho nhiều nền tảng khác nhau. Tuy nhiên, bạn sẽ không thể viết một code duy nhất và sử dụng nó ở mọi nơi.

Mục tiêu của bạn là xây dựng ứng dụng “native” thực sự với người dùng đúng không? Nếu vậy, bạn sẽ cần phải thay đổi một số code để phù hợp với nền tảng mà ứng dụng chạy

Xem thêm các vị trí tuyển dụng React Native hấp dẫn tại TopDev

#2. Điểm lại những điểm mạnh và yếu của cả 2 để chọn React Native hay Ionic

React Native hay Ionic

1. Ionic

Ưu điểm:

  • Cho dù đó là HTML, CSS, JS hay Angular – nó đều là nền tảng độc lập;
  • Bản chất Ionic được wrapped từ Cordova và PhoneGap;
  • Hoạt động trên UIWebView (nếu là iOS) hoặc WebView (nếu là Android);
  • Nó cho phép tạo các UI ứng dụng di động mặc định dễ dàng và hiệu quả;
  • Bạn có thể sử dụng TypeScript để phát triển.

Nhược điểm:

  • Hiệu suất sẽ giảm đáng kể nếu gọi quá nhiều native code
  • Nếu ứng dụng cần tương tác với phần cứng của thiết bị như Camera, Sensor… sẽ tương đối khó khăn

2. React Native

Ưu điểm:

  • Có thể tái sử dụng code của dự án hiện tại mà không phải code lại từ đầu khi quyết định sử dụng lập trình React Native.
  • Cộng đồng phát triển lớn, do đó bạn sẽ không phải sợ bất kỳ thách thức nào. Mọi người sẵn sàng giúp đỡ bạn khi cần
  • Vì code độc lập với nền tảng (iOS hoặc Android):  Nó có thể được sử dụng trên cả hai nền tảng.
  • Khả năng debug trong React Native rất tốt với nhiều tool hỗ trợ

Nhược điểm:

  • Các components cho Android hơi cùi, vì vậy nếu bạn trau chuốt thì cần phải bỏ efforts để chỉnh sửa lại
  • Nghĩa là đối với các ứng dụng “phức tạp”, có thể yêu cầu nhiều tài nguyên hơn và ngân sách tất nhiên sẽ cao hơn.

Qua bảng so sánh trên, bạn đã có quyết định của mình chọn React Native hay Ionic chưa?

Cá nhân mình thấy React Native vẫn là một nền tảng tuyệt vời. Trước đây mình đã từng xây dựng úng dụng bằng React Native cho phép người dùng chụp ảnh các vụ tai nạn, tạo report bằng PDF hoặc .doc và gửi qua email cho công ty bảo hiểm.

Ứng dụng có thể nhập văn bản bằng bàn phím hoặc giọng nói. vì vậy người dùng có thể dễ dàng thêm mô tả cho từng ảnh. Chỉnh sửa và thay đổi từng dự án cần thiết nhiều lần để gửi lại ở định dạng Word hoặc PDF. Report được lưu trữ trên Cloud cho đến khi dự án bị xóa thủ công khỏi tài khoản của bạn.

Đó là một trong những ví dụ để chứng minh khả năng của React Native.

#3. Về các tiêu chí khác để chọn React Native hay Ionic

Một trong những điểm khác biệt chính để chọn React Native hay Ionic là Ionic dùng để phát triển hybrid apps. Các ứng dụng này sẽ được hiển thị thông qua WebView cho iOS và WebView dành cho Android.

Còn React Native, bạn phát triển các ứng dụng với giao diện người dùng chuẩn. React Native sử dụng các native rendering với Java cho Android và Objective-C cho iOS.

Performance: Hybrid apps (được xây dựng với Ionic) chắc chắn sẽ chậm hơn các ứng dụng được xây dựng với React Native.

Testing: Ionic có 1 điểm cộng vì nó có thể test trong bất kỳ trình duyệt nào. Còn với React Native, bạn sẽ cần một thiết bị hoặc trình mô phỏng(emulator)

Features: Tài liệu của lập trình Ionic rõ ràng hơn lập trình React Native nhiều. Một ưu điểm khác là khi install Ionic có rất nhiều pre-designed được thế kế sẵn, bạn chỉ việc dùng. Còn lập trình React Native thì lại có một tính năng khá thú vị đó là Hot Reload. Tính năng này cho phép debug và cập nhật ứng dụng đang chạy mà không hoàn toàn rebuilding lại.

Cộng đồng phát triển. React Native là một trong những framework phổ biến nhất trên Github. Nó không ngừng được phát triển. Nếu bạn là member của cộng đồng này, bạn có thể dễ dàng tìm thấy câu trả lời cho bất kỳ câu hỏi nào. Tất nhiên, bạn cũng có thể  truy cập vào một số lượng lớn thư viện của bên thứ ba. Khi nói đến Ionic, nó không có lượng người quan tâm lớn như vậy. Tuy nhiên, tốc độc phát triển rất đều đặn.

Lời kết

Vì vậy, làm thế nào chọn đúng cho công ty startup? React Native hay Ionic? Điều này nó phụ thuộc vào từng yêu cầu cụ thể của dự án. Có thể là sự phức tạp của dự án, thời hạn giao hàng, và thậm chí cả các kỹ năng của các lập trình viên.

Thực tế là những nền tảng này có nhiều đặc điểm khác nhau với những dự án khác nhau. Tuy nhiên, mặc dù hoạt động khác nhau nhưng cả hai đều có thể giải quyết yêu cầu của bạn

Cuối cùng, hãy cho mình biết về những ý tưởng mới, sở thích và mong muốn của bạn nhé!

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

Xem thêm:

 

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

Tuyển dụng IT bằng Github và StackOverflow

Github và StackOverflow

“Là HR trong ngành, để tuyển dụng nhân sự IT ngoài các hội nhóm về công nghệ trên Facebook, Linked in phần lớn chỉ đem về hiệu quả cho truyền thông thì các kênh tuyển dụng có hiệu quả cao như TopDev, VietnamWorks, ITViec,… luôn được các doanh nghiệp chú trọng hợp tác. Một số trang Web lớn với sự tham gia lên đến 99% thành viên có sự quan tâm đến ngành IT, bạn đã biết đến? Bí mật sẽ được bật mí bên dưới.

Nếu anh, chị đang tìm cách chiêu mộ các nhà phát triển thì Github và StackOverflow là nơi anh, chị phải đến ít nhất một lần. Hai trang web này là nơi tốt nhất để tìm và tuyển dụng các chuyên gia công nghệ hàng đầu.”

Chúng ta sẽ hiểu về GitHub như thế nào?

 

 là nền tảng phát triển phần mềm lớn nhất thế giới. Đây là nơi các Developer có thể lưu trữ và xem xét code của họ, quản lý dự án và xây dựng phần mềm. Nó còn là social marketing như feed, flower và network grap…Về cơ bản, đây là một trang web nơi các nhà phát triển lưu trữ code của họ và chia sẻ nó với những người khác để cơ hội hợp tác, phát triển thêm hoặc đơn giản là sử dụng.

Còn về Stack Overflow, bạn có biết?

Stack Overflow là cộng đồng trực tuyến lớn nhất, đáng tin cậy nhất để các Developer tìm hiểu và chia sẻ kiến thức của họ. Một cách dễ hiểu hơn, Stack Overflow là một trang web Hỏi & Đáp. Đây là nơi các Developer đăng các câu hỏi liên quan đến lập trình và các vấn đề mã hóa với hy vọng rằng các Developer khác sẽ có thể giúp họ.

Tại sao không phải là Facebook, Linked in mà GitHub và StackOverflow là nơi tốt nhất để tuyển dụng các ứng cử viên công nghệ? Trước tiên chúng ta sẽ lướt mắt sơ qua những con số khủng sau:

GitHub thành lập năm 2008. Hơn 31 triệu người dùng đã đăng ký trên toàn cầu đa phần là dân trong ngành IT. Hơn 100 triệu kho lưu trữ trên nền tảng. Hơn 2,1 triệu doanh nghiệp và tổ chức sử dụng GitHub. 54% Fortune 50 sử dụng GitHub Enterprise.

Stack Overflow cũng không kém cạnh khi có hơn hơn 50 triệu khách truy cập duy nhất đến với Stack Overflow mỗi tháng, cứ sau 12 giây sẽ có câu hỏi mới được đăng lên Stack Overflow. Hơn 10 triệu câu hỏi đã được các nhà phát triển đặt ra và 17 triệu câu trả lời đã được cung cấp

Bạn có biết, theo báo cáo của TopDev có khoảng 30% ứng viên chủ động tìm kiếm việc, nhưng có đến 70% số còn lại là nằm vùng chờ cơ hội, chúng ta hay gọi là passive candidate. Nếu các nhà tuyển dụng biết cách tận dụng sức mạnh của các kênh cộng đồng lập trình để “feed” thông tin công ty của bạn tại ngày hội việc làm IT, thì tỷ lệ cao công ty của bạn sẽ được các ứng viên đặc biệt quan tâm và tìm hiểu. Hãy tham khảo một số báo cáo quan trọng trong ngành IT chỉ có ở TopDev điều này giúp anh, chị có cái nhìn khách quan hơn về thị trường nhân lực IT trong năm nay:

Không phải do lời nguyền nhưng đa số các lập trình viên của chúng ta đều nằm vùng thụ động. Họ thường không tích cực tìm kiếm một công việc, kể cả đâu có đã xuất hiện khái niệm “chuyển công tác”. Đây là lý do tại sao bạn không nhận được CV tiềm năng từ các bài đăng tuyển dụng thông thường trên website công ty, nhóm tìm việc làm trên Facebook và Linked in kể cả khi công ty anh, chị có một JD khá hấp dẫn. Vậy làm sao để tiếp cận các Dev tiềm năng? Câu trả lời đúng nhất trong thời điểm này là bạn cần đến nơi họ tập kết – nơi đó gọi là GitHub và Stack Overflow.

Stack Overflow và GitHub có một lợi thế độc đáo nhưng cực mạnh chính là nguồn ứng cử viên công nghệ tiềm năng. Họ là một nguồn thông tin tuyệt vời về các ứng cử viên có thể giúp bạn đánh giá năng lực và kỹ năng của họ. Bằng cách sử dụng GitHub và Stack Overflow, bạn sẽ có thể hiểu rõ hơn về các công nghệ mà họ làm việc và các dự án mà họ đã làm . Bạn thậm chí có thể xem code thực tế của họ! Thu thập tất cả thông tin và thông tin chi tiết này sẽ giúp bạn dễ dàng phân biệt được trình độ của họ và tìm được một lập trình viên giỏi.

Muốn tuyển dụng nhân tài thành công ngoài những xu hướng tuyển dụng năm 2024 anh,chị cần “chạm đúng chỗ ngứa” của các Developer tiềm năng. Dưới đây là công thức 3 bước kỳ diệu để tiếp cận các Dev trên GitHub và Stack Overflow

Bước 1: Khiêu khích bằng “chiến mã” trong công ty

Hãy khuyến khích các nhân viên tài năng trong công ty anh, chị bao gồm cả các cấp quản lý cao nhất sử dụng GitHub và Stack Overflow. Hướng dẫn họ xây dựng Profile của mình như một “tượng đài” mà bất cứ Developer nào cũng “thèm khát” bằng các siêu dự án mà họ đã tham gia thành công. Điều tiếp theo không kém phần quan trọng là nhân tài trong công ty anh chị phải thường xuyên chia sẻ kiến thức và chuyên môn của mình bằng cách trả lời các câu hỏi từ các Developer khác. Có thể các cấp bậc quản lý sẽ không có thời gian đi tìm từng câu hỏi, nhiệm vụ đó là của bạn và gắn tên họ là điều bạn phải làm khi gặp một câu hỏi đang được sự quan tâm của cộng đồng GitHub và Stack Overflow.

Anh, chị có nghĩ rằng đây là việc làm rất mất thời gian? Nhưng lợi ích mang lại là các Developer của công ty bạn luôn có sự chuyên nghiệp và ngưỡng mộ nhất định từ cộng đồng. Sự đóng góp cho cộng đồng công nghệ là cách tốt nhất để đưa công ty anh, chị lọt vào “ mắt xanh” của các ứng viên tiềm năng chưa lộ diện.

Sử dụng chính chiến binh của mình để làm đại sứ thương hiệu là một cách tuyệt một cách khác đây cũng là nơi để các Developer của bạn xây dựng thương hiệu cá nhân chuyên nghiệp cho riêng mình: một tình huống đôi bên cùng có lợi!

Bước 2: Trở thành một thành viên “kỳ cựu”

Stack Overflow và GitHub là cộng đồng. Thật không may, hầu hết các cộng đồng không được chào đón người lạ đặc biệt là những cá thể “khác biệt” vì đây không thích hợp để bạn “tạo nét”. Nhưng không gì là không thể, quan trọng là bạn có thật sự muốn trở thành người trong cuộc!

Tham gia một cách tích cực! Xây dựng mối quan hệ và trở thành một phần của cộng đồng. Và đừng lo lắng – bạn có thể làm điều đó ngay cả khi bạn không phải là một tín đồ công nghệ! Dành thời gian cho Stack Overflow và GitHub. Khám phá chúng và tìm hiểu cách chúng làm việc.

Ngoài ra, hãy đảm bảo luôn theo dõi tốt nhất trong các cuộc thảo luận về các công nghệ mà bạn quan tâm. Tìm hiểu thêm về các công nghệ đó. Nếu ở vị trí HR thì anh, chị cần thể hiện trách nhiệm và sự chuyên nghiệp trong nghề bằng cách tìm hiểu về công cụ và hướng dẫn lại cho các Dev trong công ty vì mục tiêu và lợi ích phát triển chung.

Bước 3: Cá nhân hóa cách tiếp cận

Sử dụng phương pháp cá nhân hóa để thu hút sự chú ý của các ứng viên tiềm năng của bạn. Nếu bạn đã làm tốt 2 bước như trên thì ngoài lòng tin của ứng viên bạn sẽ có thêm các thông tin về nhu cầu công việc, hành vi và trình độ thông qua quá trình tiếp cận và cách ứng viên thể hiện sự hiểu biết của mình trước cộng đồng.

Thể hiện sự hiểu biết và đánh giá cao của bạn đối với các ứng cử viên tiềm năng của bạn. Hãy chắc chắn tập trung vào nhu cầu và lợi ích của họ. Làm rõ cách làm việc tại công ty của bạn có thể giúp họ đạt được mục tiêu (và ước mơ!). Lưu ý rằng các ứng viên sẽ muốn nghe làm thế nào bạn có thể giúp họ phát triển sự nghiệp, tăng thu nhập hoặc cải thiện danh tiếng của họ. Đây là một trong những bí quyết mấu chốt trong sự thành bại khi tuyển dụng nhân sự IT. Từ hai nguồn GitHub và StackOverflow đa dạng ứng viên tiềm năng trong ngành, chúc anh/chị có thêm cơ sở tuyển dụng thành công nhiều nhân tài IT.

Tham khảo việc làm lập trình viên lương cao trên TopDev

Phân tích “keyword” trong JD để viết CV hiệu quả

tìm keyword trong jd

JD không chỉ đơn thuần là một bảng mô tả công việc mà nó còn ẩn chưa rất nhiều chi tiết về văn hóa công ty, vai trò và kỳ vọng của vị trí công việc mà doanh nghiệp đang tuyển dụng. Việc hiểu các “keyword” này sẽ giúp bạn viết CV nhắm đúng insight và ghi điểm trong mắt nhà tuyển dụng. Hơn nữa, việc tận dụng các từ khóa chính có thể giúp bạn vượt qua vòng sàng lọc của hệ thống ATS.

Để hiểu rõ hơn về cách đọc vị “keyword” trong JD cũng như cách sử dụng các keyword này hiệu quả, mời bạn đọc bài viết dưới đây.

Vì sao việc tìm keyword trong JD lại quan trọng?

tìm keyword trong JD

Việc tìm keyword trong mô tả công việc (JD) là quan trọng vì nó mang lại một loạt các lợi ích cho ứng viên trong quá trình tuyển dụng, bao gồm:

Hiểu rõ yêu cầu công việc: Bằng cách phân tích keyword trong JD, ứng viên có thể hiểu rõ hơn về yêu cầu cụ thể của công việc, bao gồm kỹ năng, kinh nghiệm và phẩm chất cá nhân mà nhà tuyển dụng đang tìm kiếm.

Tối ưu hóa CV: Sử dụng keyword từ JD giúp tối ưu hóa CV của bạn để phản ánh chính xác những yêu cầu của công việc. Điều này làm tăng khả năng CV của bạn được chọn lọc và thu hút sự chú ý của nhà tuyển dụng.

Giúp ATS “nhận diện” CV của bạn: ATS (Applicant Tracking System) là phần mềm được sử dụng để sàng lọc hồ sơ ứng tuyển. ATS thường được lập trình để tìm kiếm các từ khóa cụ thể trong CV. Nếu CV của bạn không chứa các từ khóa quan trọng, nó có thể bị loại bỏ ngay lập tức, dù bạn có đủ năng lực và kinh nghiệm cho vị trí ứng tuyển.

Tăng cơ hội phỏng vấn: Việc sử dụng keyword phù hợp từ JD trong CV giúp làm nổi bật ứng viên và làm tăng khả năng được mời phỏng vấn, vì nhà tuyển dụng thấy rằng bạn có sự phù hợp với yêu cầu công việc của họ.

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

  CV IT Developer là gì? Viết CV IT Developer như thế nào là chuẩn?

Tips để tìm keyword trong JD hiệu quả

tìm keyword trong JD

Để tìm được các keyword quan trọng trong JD một cách hiệu quả, ứng viên có thể làm theo các bước sau:

  • Đọc kỹ và hiểu rõ JD: Bắt đầu bằng việc đọc kỹ JD để hiểu rõ những yêu cầu và mô tả công việc cụ thể. Điều này giúp bạn xác định những keyword quan trọng nhất.
  • Xác định các từ khóa chính: Tìm các từ hoặc cụm từ xuất hiện nhiều lần trong JD, đặc biệt là những từ nào xuất hiện ở phần yêu cầu kỹ năng, trách nhiệm công việc và kinh nghiệm mong muốn.
  • Chú ý đến ngôn ngữ và cụm từ chuyên ngành: Một số ngành nghề có những cụm từ và thuật ngữ chuyên môn riêng. Hãy lưu ý đến những cụm từ này trong JD và sử dụng chúng trong CV của bạn.
  • Chú ý đến các động từ và tính từ mô tả công việc: Những động từ và tính từ trong JD thường là những keyword quan trọng. Hãy lưu ý đến chúng và sử dụng trong CV của bạn để làm nổi bật kỹ năng và thành tích cá nhân.
  • Sử dụng công cụ phân tích và tìm thêm từ khóa: Có nhiều công cụ trực tuyến miễn phí giúp tìm keyword trong JD và các keyword mới (Google Keyword Planner, ChatGPT, Gemini,…). Sử dụng chúng để nhanh chóng tìm ra những từ khóa chính.
  • Tham khảo từ các JD hoặc CV tương tự: Nếu có, tham khảo từ các JD và CV tương tự để tìm ra những keyword phổ biến và quan trọng thường sử dụng trong lĩnh vực đó.

Tham khảo việc làm Java hấp dẫn trên TopDev!

Một số keyword thường được dùng trong JD tuyển lập trình viên

1. Các keyword thường xuất hiện trong phần yêu cầu công việc

Năng động, trẻ trung, chuyên nghiệp

Sáng tạo, hỗ trợ, tự do,

Tự tin, trách nhiệm, cầu tiến,

Cẩn thận, chịu áp lực tốt, linh hoạt,

Chủ động, làm việc nhóm, làm việc hiệu quả,

Báo cáo, phân tích, cải thiện,

Lên kế hoạch, quản lý, xây dựng,

Lập trình, thu thập thông tin, phân tích dữ liệu,

Ví dụ:

Báo cáo kết quả phân tích và đề xuất giải pháp cho ban lãnh đạo.

Hợp tác với các bộ phận khác để triển khai chiến lược và đạt được mục tiêu chung.

Huấn luyện nhân viên mới về kỹ năng phân tích dữ liệu.

Phát triển các mô hình dự đoán để hỗ trợ việc ra quyết định của ban lãnh đạo.

Vận hành hệ thống phân tích dữ liệu và đảm bảo hoạt động ổn định.

2. Các keyword thường xuất hiện trong phần kỹ năng và chuyên môn

  • Ngôn ngữ lập trình: Cụ thể như Java, Python, JavaScript, C++, C#, Ruby, PHP, Swift, Kotlin, và nhiều ngôn ngữ khác tùy thuộc vào yêu cầu của công việc.
  • Framework và thư viện: Ví dụ như React.js, Angular, Vue.js, Node.js, Django, Flask, Spring, Laravel, Express.js, và các framework/ thư viện khác.
  • Công nghệ và công cụ: Ví dụ như HTML, CSS, SQL, NoSQL, Docker, Kubernetes, Git, Jenkins, AWS, Azure, Google Cloud, và nhiều công nghệ và công cụ khác.
  • Kỹ năng lập trình cụ thể: Bao gồm kỹ năng như lập trình hướng đối tượng, lập trình web, lập trình ứng dụng di động, lập trình backend, lập trình frontend, lập trình dữ liệu, và các kỹ năng khác.
  • Kỹ năng kỹ thuật: Bao gồm quản lý cơ sở dữ liệu, thiết kế cơ sở dữ liệu, quản lý dự án phần mềm, kiểm thử phần mềm, và kỹ năng kỹ thuật khác.
  • Kỹ năng mềm: Như teamwork, giao tiếp, tự học, giải quyết vấn đề, tư duy logic, sáng tạo, và khả năng làm việc dưới áp lực.
  • Giáo dục và chứng chỉ: Bao gồm bằng cấp, chứng chỉ lập trình (như Java SE Programmer, AWS Certified Developer), và các khóa học liên quan.

Nên thêm keyword vào những phần nào trong CV?

tìm keyword trong JD

Tiêu đề CV: Nên đặt từ khóa chính liên quan đến vị trí ứng tuyển vào tiêu đề CV để thu hút sự chú ý của nhà tuyển dụng. Tiêu đề CV nên ngắn gọn, súc tích và thể hiện rõ ràng mục tiêu ứng tuyển của bạn.

Kinh nghiệm làm việc: Nên đặt từ khóa vào mô tả kinh nghiệm làm việc để làm nổi bật những thành tích và kỹ năng liên quan đến vị trí ứng tuyển. Ví dụ: “Thiết kế và triển khai thuật toán hiệu quả cho xử lý và phân tích dữ liệu” hoặc “Phát triển và duy trì các API RESTful bằng Node.js và framework Express”

Kỹ năng: Thêm từ khóa vào phần yêu cầu kỹ năng giúp làm nổi bật những kỹ năng và kinh nghiệm cụ thể mà ứng viên cần có. Ví dụ: “Thành thạo về ngôn ngữ lập trình PHP” hoặc “Kinh nghiệm làm việc với hệ quản trị cơ sở dữ liệu quan hệ như MySQL”

Học vấn: Nên đặt từ khóa mô tả học vấn để làm nổi bật những thành tích và kỹ năng học tập liên quan đến vị trí ứng tuyển. Nêu rõ tên trường, chuyên ngành, bằng cấp và điểm số (nếu có).

Tạo CV IT Online tại đây

Lưu ý khi đưa keyword vào CV

Khi đưa keyword vào CV, hãy chú ý tích hợp chúng một cách tự nhiên và phù hợp với nội dung. Sử dụng các keyword chỉ khi chúng thực sự liên quan đến kỹ năng và kinh nghiệm của bạn, và luôn cung cấp bằng chứng cụ thể để minh họa.

Đồng thời, tránh quá tải keywordđảm bảo sử dụng một loạt các từ khóa đa dạng để tăng khả năng được tìm thấy. Cuối cùng, đọc kỹ lại và kiểm tra CV của bạn để đảm bảo rằng các keyword được sử dụng một cách chính xác và hiệu quả.

Tóm lại

Việc tìm và sử dụng keyword trong mô tả công việc (JD) để viết CV là một phần quan trọng trong quá trình tìm kiếm việc làm hiệu quả. Bằng cách tập trung vào các từ khóa quan trọng và phù hợp nhất, CV của bạn có thể thu hút sự chú ý của nhà tuyển dụng và tăng cơ hội được chọn lọc.

Tuy nhiên, việc sử dụng keyword cần được thực hiện một cách tỉ mỉ và chính xác, đảm bảo rằng chúng tích hợp một cách tự nhiên và phản ánh chính xác kỹ năng và kinh nghiệm của bạn. Cuối cùng, chúc bạn thành công có được một chiếc CV xin việc ấn tượng.

Xem thêm:

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

Tư duy tối ưu

Tư duy tối ưu

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

Tại sao nên đọc bài này

  • Làm nhanh hơn > Hiệu quả hơn > Tăng lương > Nhiều thời gian hơn > Chill hơn
  • Nghe về tư duy tối ưu

Lâu rồi không viết gì về technical, có khi mọi người quên mất mình vẫn code hàng ngày, code sml nên muốn viết một vài suy nghĩ về tư duy tối ưu.

Mình là một thằng siêu thích optimize, mọi thứ chạy trong đầu mình khi code luôn là làm sao để code nhanh hơn (deliver nhanh hơn), làm sao để code hiện tại chạy nhanh hơn (BigO gì đó bé nhất), làm sao để làm cho nó “có vẻ nhanh hơn”.

May mắn hồi xưa đi làm công ty cũ thì cũng toàn làm những việc như vậy. Hồi đó thì chỉ nghĩ về mấy thứ như vậy, cho tới khi mình gặp một người anh, có mind set optimize tới từng chi tiết trong cuộc sống. Vậy là mới ồ ra hóa ra mình trình vẫn đang còn còi lắm.

Anyway, let’s start.

Start with WHY

Tối ưu hơn nghĩa là hồi trước task A cần 2H, thì bây giờ task A chỉ cần <2H thì đã gọi là tối ưu, hoặc vẫn 2H nhưng tốn ít năng lương hơn. Cùng kết quả, chất lượng output mà chi phí ít hơn là tối ưu (thường là thời gian). VD api trả về response của bạn vẫn y vậy, nhưng sau khi qua tay bạn phù phép, response time ít hơn…

Tại sao tối ưu quan trọng? Vì thời gian quan trọng. Tới cuối thì một giờ của bạn làm được bao nhiêu value? Nên Optimize là một cách bắt buộc để có thể trở thành một người tạo ra nhiều value hơn.

Optimize pattern

Sequence to parallel/concurrency

Cái gì bạn đang làm tuần tự, hãy biến nó thành tác vụ song song.
function login(email: string, password: string) {
	await validateEmail(email);
	await validatePassword(password);

	await login();
}
Có thể trở thành
function login(email: string, password: string) {
	await Promise.all([validateEmail(email), validatePassword(password)];

	await login();
}

Cái này thì chắc là rất rất phổ biến rồi, thay vì bạn làm 1 xong làm 2, xong làm 3. Thì coi xem trong đống đó có cái gì làm cùng lúc được thì đẩy qua parallel.

Ở code thì mình nghĩ nó cũng khá phổ biến không phải thứ gì quá cao siêu nhưng còn cuộc sống thì sao? Vừa nghe podcast vừa chạy bộ, vừa ăn cơm vừa đọc tin về công nghệ, vừa đi lên cầu thang vừa lấy chìa khóa…

Chà mấy cái kết hợp này đúng là blow my mind luôn, vì trước h mình chỉ nghĩ tới code thôi mà lại không thèm optimize mấy cái trong cuộc sống kiểu như vậy. Mình thấy rất nhiều người tối ưu theo kiểu kết hợp công việc và giải trí. Kiểu như vừa làm việc vừa facebook, vừa tập thể thao vừa xem tiktok. Cũng là một dạng tối ưu! Có điều mọi người mặc định có năng lực tối ưu công việc và giải trí mà lại toàn bỏ qua tối ưu công việc và công việc.

Đối với mình thì tối ưu cho công việc để dành full thời gian giải trí sẽ ok hơn.

Sẽ có một ý phản biện là não người chỉ optimize cho việc tập trung và nếu phải chuyển qua chuyển lại qua nhiều task qua nhiều thì sẽ bị kém hiệu quả rõ rệt. Cái này thực tế mình cũng bị và cũng thấy nhiều. Tuy nhiên việc biến bản thân từ sequence thành parallel là khả thì vì mình thấy không ít người xung quanh của mình tập được skill này. Mình thì cũng vẫn đang tập.

  Một thủ thuật nhỏ để tối ưu code nodejs

  Quy tắc viết code dễ đọc, tối ưu và dễ bảo trì nhất

Indexing – Ngăn nắp

Cái này chắc ai làm backend cũng biết, ai làm FE thì chắc chưa có cơ hội được nghe qua nhiều. Hiểu cơ bản về indexing thì giống kiểu bạn thiết kế một cuốn từ điển. Nếu bạn bỏ từ ngữ lộn xộn vào trong cuốn từ điển đó thì mỗi khi cần tìm từ gì đó chắc phải dò từng trang cho tới khi tìm được từ đó.

Còn nếu cuốn từ điển đã được index thì các từ được kí hiệu theo alphabel, có thêm cái mực ở sách để dễ tìm nữa. Sau khi được index thì bạn tìm từ gì, bạn xem coi ký tự bắt đầu nó nằm ở khoảng nào trong từ điển, tiếp tới kí tự tiếp theo, tiếp theo cho tới khi tìm được đúng từ cần tìm.

Indexing - Ngăn nắp
Hic vd quyển từ điển không biết mọi người còn hiểu không, hình như thế hệ sau này có dt hết rồi nền không hiểu việc tra từ điển vật lý nó ntn.

Thôi nói cách khác để tối ưu theo kiểu indexing, nghĩa là bạn sắp xếp mọi thứ một cách ngăn nắp, có quy tắc phổ biến. Việc bạn code đúng structure, đúng format cũng là một dạng tối ưu như vậy.

Cuộc sống thì sao? Cái tips này đặc biệt hiệu nghiệm với những người hay quên đồ nè. Hồi xưa mình hay quên lắm còn giờ thì gần như không bị nữa. Mình hay có cái balo đi làm, và mỗi ngăn mình đều quy hoạch cho nó đựng gì luôn. Ngăn nào đựng ví, ngăn nào để chìa khóa, ngăn nào để dây sạc. Mỗi lần sử dụng xong thì mình đều lại để đúng ngăn đó.

Nhờ có việc ngăn nắp như vậy nên mình chả bao giờ tốn thời gian đi kiếm đồ vì nếu nó ko ở đó nghĩa là nó bị mất rồi. Mỗi khi có đồ gì mới thì mình đều phải suy nghĩ chỗ riêng cho nó, và tập thói quen để nó ở đâu. Vd như kì này mính mới mua kính, cách để không làm mất kính là mỗi lần ko đeo mà không phải ở nhà mình đều treo vào cổ áo hết.

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

Phản hồi nhanh, keep update

Cái này không phải là tối ưu lắm, mà kiểu đánh lừa não bộ hơn, mấy bạn làm frontend thì chắc biết cái technique này.

Phản hồi nhanh, keep update
Thay vì show loading quay vòng vòng rồi hiện ra một cục. Cái này sẽ giúp users nghĩ là à đang có update gì đó, sắp có kết quả rồi.

Trong bài này mình có liệt kê một số tips để mang lại cảm giác nhanh hơn: Frontend performance pattern

optimize cho Nimbus

Một VD về optimize cho Nimbus. Trước đây nếu query token holding, tụi mình sẽ gom tất cả các chain vào một request. Cái này user phải đợi tới khi có response ở tất cả các chain thì mới xem được portfolio của họ. Sau này tụi mình quyết định tách request thành nhiều chain. Bằng cách này có chain nào trả về data trước là mình có thê update được cho users. Về tổng thời gian kiểu gì cũng chậm hơn cách cũ nhưng về UX thì users cảm thấy nhanh hơn rất nhiều

Trong cuộc sống thì sao? Khi khách hàng hay sếp hỏi/yêu cầu bạn làm một việc gì đó, hãy phàn hổi ngay lập tức, update progress cho người ta. Làm cách này sẽ giúp khách hàng/sếp của bạn nghĩ là bạn đang làm nhanh. Trong khi thực tế bạn im luôn xong làm xong thì thờ gian cũng như nhau. Nhưng mà trong đầu mỗi người gần như được lập trình rồi, tôi thấy có phản hồi sớm, tôi nghĩ nó nhanh hơn và tốt hơn.

Chuẩn bị kịch bản

Mình nhớ hình như trong sách “Những kẻ xuất chúng” có một thí nghiệm như này:

Trong một đội bóng rổ, sau đó chia thành 2 nhóm. 1 nhóm luyện tập việc ném bóng vào rổ ngoài thực tế, nhóm con lại được cho về phòng chỉ cần tưởng tượng mình đang luyện tập việc ném bóng trong đầu. Sau một khoảng thời gian, 2 đội sẽ làm bài test xem hiệu quả ntn. Kết quả là 2 nhóm có bài test với số điểm bằng nhau.

Nghĩa là tưởng tượng mình đang làm một thứ gì đó cũng là một dạng luyện tập hiệu quả. Vì vậy nếu bạn tưởng tượng và tập luyện cho các kịch bản khác nhau thì tới lúc thực tế sẽ giúp ích rất nhiều. Vd trước khi gặp một người mới mình đều dành một ít thời gian gọi là background-check để xem người này ntn, cách tiếp cận và nói chuyện ntn,…

Chuẩn bị kịch bản

Không phải tự nhiên mà khi đi làm lúc nào bạn cũng phải Plan trước cho nhưng việc mọi người sẽ làm. Nó là một cách để tối ưu đó, việc chuẩn bị nhưng công việc sắp tới, dead line cần hoàn thiện sẽ khiến bạn tự co dãn bản thân để fit vào các kịch bản đó. Nếu bạn không plan, nghĩa là bạn có nguy cơ rất lớn chỉ làm được một vài việc và đôi khi những việc như vậy còn không có value nữa.

Còn trong việc code thì sao? Mình luôn chạy kịch bản khi một component này chết thì sẽ xử lý ntn, con DB chết thì làm sao,… Nó không khiến hệ thống của mình build stable hơn, nhưng nó giúp mình mau chóng có biện pháp để xử lý hơn. Có một cái hơi bad là mình thường không ghi lại mà toàn nghĩ trong đầu, nêu hầu hết khi có issue chỉ có mình là giải quyết hiệu quả nhất.

Tối ưu cần sự suy nghĩ, chuẩn bị, luyện tập và sáng tạo

Mình nghĩ chắc là còn cả tỉ cách để một cá nhân tối ưu, nhưng nó xuất phát từ nhu cầu của mỗi người, cũng cần customize lại theo tùy người. Do đó để tối ưu công việc, hay thậm chí là cuộc sống cần rất nhiều năng lượng cho suy nghĩ. Suy nghĩ để xem coi đang có vấn đề ở đâu, suy nghĩ xem chỗ nào đang thừa thãi,… Rồi cả chuẩn bị và tập luyện, vì việc tối ưu là bạn đang bỏ đi những cái cũ, suy nghĩ cũ, cách làm cũ, thói quen cũ,… để thay nó bằng những thứ “có thể” là tốt hơn – hoặc không.

Và cuối cùng, tối ưu cần sự sáng tạo, đối với mình, sáng tạo là đỉnh cao nhất của tối ưu. Bạn thử nghĩ xem có pattern nào mà Elon Musk nghĩ ra việc phóng tên lửa thì không cần vứt luôn cái hệ thống đẩy đi? Dẫn tới tối ưu về chi phí một cách đáng kinh ngạc.

Tối ưu cần sự suy nghĩ, chuẩn bị, luyện tập và sáng tạo

Quy trình để optimize

Có một cái là đôi khi suy nghĩ về optimize quá sớm sẽ là là một cách siêu deoptimize. Cái này đặc biệt hay thấy ở mấy bạn hay over-engineer. Do đó Optimize cần một process để đảm bảo thứ mình nghĩ là optimize thực sự là optimize.

Thường thì mình follow theo cái này. Cái của bác e lươn thì chưa thử

  • Quickly test the idea
  • Make it work
  • Make it fast
  • Make it scalable

The bad side

Mình nghĩ là để tối ưu thì rất khó vì bạn phải hiểu nhiều thứ, hiểu cách mọi thứ đang vận hành như thế nào, hiểu bản thân, hiểu cả team hay công ty mình đang làm, có khi là hiểu đất nước mình đang sống, hiểu cả nền kinh tế đang vận hành. Vì vậy tối ưu cần sự hiểu biết, thử sai và rèn luyện rất rất nhiều. Nên đôi khi cố làm mà không được.

Thôi thì cái gì cũng có giá của nó, giá trá không đủ nên có lẽ chưa học được skill đó thôi. Không optimize cái này thì còn cái khác. Miễn là bạn ám ảnh về điều đó thì mình tin kiểu gì bạn cũng sẽ tối ưu được.

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

Xem thêm:

Xem thêm các công việc ngành IT hấp dẫn trên TopDev

Lập trình nhúng lương bao nhiêu? Làm thế nào để tăng thu nhập?

Mức lương dành cho Embedded Software Engineer

Lập trình nhúng hiện nay đang tạo một xu hướng nghề nghiệp tiềm năng trên thị trường lao động nói chung và nghề lập trình nói riêng. Mức lương dành cho Embedded Software Engineer khoảng bao nhiêu là một câu hỏi mà nhiều bạn mới vào nghề đặt ra; bài viết hôm nay chúng ta cùng nhau tìm hiểu về ngành này và trả lời cho câu hỏi trên nhé.

Công việc của một Embedded Software Engineer

Embedded Software Engineer hay kỹ sư phần mềm nhúng là những người sẽ làm việc với các hệ thống nhúng Embedded System – một hệ thống có thể tự vận hành và thiết kế tích hợp vào các hệ thống lớn hơn tùy theo mục đích sử dụng. Hệ thống nhúng bao gồm cả phần mềm (software) và phần cứng (hardware), vì vậy công việc của kỹ sư nhúng liên quan đến cả việc xây dựng phần mềm nhúng và đồng thời phát triển, nghiên cứu các thành phần của phần cứng.

Công việc của một Embedded Software Engineer

Cụ thể những công việc của một Embedded Software Engineer bao gồm:

  • Đọc hiểu bảng thiết kế hệ thống
  • Thiết kế và phát triển các hệ thống vi xử lý
  • Nghiên cứu, xây dựng, phát triển phần mềm nhúng theo yêu cầu của dự án cùng với các ràng buộc liên quan đến phần cứng
  • Thực hiện viết code lập trình các phần mềm ứng dụng (application) hay firmware, OS, driver,…
  • Tham gia quá trình kiểm tra sản phẩm, kiếm thử, đánh giá chất lượng hay debug lỗi phần mềm, sản phẩm cùng team phát triển

  Lập trình nhúng và kỹ năng cần có của một Embedded System

  Bộ câu hỏi phỏng vấn Embedded Developer chinh phục nhà tuyển dụng

Cơ hội việc làm của một Embedded Engineer

Với sự phát triển của nhiều ngành công nghiệp hiện tại, cùng làn sóng bùng nổ công nghệ số như IoT (Internet Of Things) thì ngành lập trình nhúng đang có rất nhiều cơ hội việc làm, nhu cầu tuyển dụng của các tổ chức, doanh nghiệp cũng ngày càng cao hơn cả trong nước lẫn nước ngoài. Thông thường khi lựa chọn ngành này để phát triển sự nghiệp, bạn có 2 hướng đi chính tương ứng với cơ hội việc làm mà các doanh nghiệp cần ở bạn:

  • Embedded Software: Làm việc của một lập trình viên phần mềm đúng nghĩa. Xây dựng, phát triển các ứng dụng, driver (trình điều khiển thiết bị), hệ điều hành, firmware (điều khiển thiết bị điện tử cấp thấp),… Bạn sẽ đọc yêu cầu, viết code, cùng thực hiện kiểm thử và viết tài liệu mô tả. Cơ hội việc làm ở hướng này là khá lớn với việc các doanh nghiệp Việt Nam hiện nay có nhiều dự án phát triển phần mềm viết cho các hệ thống nhúng từ yêu cầu của khách hàng cả trong và ngoài nước.
  • Embedded Hardware: Đây là công việc đòi hỏi bạn cần có khả năng làm việc với phần cứng, có các kỹ năng liên quan đến điện, điện tử, biết đọc bản vẽ, thiết kế mạch, thậm chí biết hàn mạch, gắn các linh kiện. Về nhu cầu việc làm thì sẽ ít hơn so với phần mềm nhúng và bạn còn sẽ cần cạnh tranh với các nhân sự khác có kiến thức nền về điện, điện tử. Tuy vậy thì nếu bạn thành thạo được về phần cứng thì khả năng bạn có thể tiến xa hơn trong công việc này.

Cơ hội việc làm của một Embedded Engineer

Tuyển dụng kỹ sư lập trình nhúng đãi ngộ hấp dẫn tại đây!

Mức lương cho vị trí Embedded Software Engineer

Mọi vị trí công việc đều đòi hỏi lập trình viên phải sở hữu nhiều kỹ năng về chuyên môn và tư duy để có thể đáp ứng được yêu cầu thay đổi và thường xuyên cập nhật trong thời đại tốc độ phát triển nhanh chóng hiện nay. Đối với vị trí lập trình viên/ kỹ sư phần mềm nhúng, so với mặt bằng chung trên thị trường lao động sẽ cao hơn so với nhiều vị trí khác và hiện nay vẫn còn rất nhiều vị trí tuyển dụng, các doanh nghiệp cần đến nhân sự trong mảng này.

Mức lương cho vị trí Embedded Software Engineer
Báo cáo thị trường IT Việt Nam 2023 – Vietnam Tech Talents Report (TopDev)

Cụ thể với sinh viên mới ra trường, nắm vững được kiến thức chuyên môn nhưng chưa có kinh nghiệm làm việc trong các dự án thực tế hay thường được gọi là fresher thì mức lương sẽ dao động từ 8-12 triệu đồng/ tháng. Với những kỹ sư/ lập trình viên có kinh nghiệm thì mức thu nhập cũng được tăng lên dần theo thời gian cùng với kiến thức và kinh nghiệm mà họ tích lũy được. Như số liệu trên bảng, với mức kinh nghiệm tầm 3 năm (có thể gọi là ở level Middle Dev) thì mức đãi ngộ mà một kỹ sư lập trình nhúng có thể nhận được là khoảng từ 25-30 triệu đồng/ tháng. Đây là mức lương cao hơn tương đối so với nhiều vị trí lập trình viên khác có cùng kinh nghiệm.

Và tất nhiên khi có được kinh nghiệm làm các dự án cùng với việc tự phát triển, nâng cao khả năng của bản thân; bạn có thể đảm nhận các vai trò khác quan trọng hơn ở tổ chức như Manager, Leader hay đơn thuần là một Senior Developer thì mức lương bạn có thể nhận lại sẽ không có một giới hạn nào, hoàn toàn phụ thuộc vào mức đóng góp của bạn cho tổ chức.

Tính lương chính xác với công cụ tính lương gross to net của TopDev

Cách tăng thu nhập cho kỹ sư phần mềm nhúng

Thực tế với một lập trình viên ở vị trí nào đi nữa thì để tăng thu nhập, nâng cao mức lương của mình, bạn luôn cần liên tục trang bị các kiến thức, kỹ năng mà công việc đòi hỏi; cùng với đó là một lộ trình sự nghiệp (career path) rõ ràng trong tương lai.

Về kỹ năng, bạn nên trang bị thêm:

  • Ngoại ngữ: tiếng Anh là điều cần thiết không chỉ trong việc đọc hiểu tài liệu mà còn sử dụng trong giao tiếp công việc hàng ngày
  • Xu hướng công nghệ: Thời đại công nghệ số hiện nay, có rất nhiều nền tảng mới ra đời mà bạn luôn phải cập nhật, học hỏi và áp dụng vào trực tiếp dự án của mình
  • Kỹ năng quản lý, làm việc nhóm: đây cũng là yếu tố cần thiết cho việc phát triển sự nghiệp của bạn, đừng xem thường nó nhé.

Về mặt kỹ thuật, công nghệ, các bạn có thể tham khảo Roadmap dưới đây dành cho một Embedded Software Engineer:

Embedded Software Engineer

Kết bài

Qua bài viết này hy vọng các bạn đã có thêm những thông tin hữu ích về ngành kỹ sư phần mềm nhúngmức lương đáng kỳ vọng của một Embedded Software Engineer. Có thể xem đây là ngành nghề với nhiều cơ hội phát triển trong tương lai, vì vậy đừng ngần ngại lựa chọn học và định hướng nghề nghiệp cho bạn. Hy vọng bài viết hữu ích dành cho bạn và hẹn gặp lại trong các bài viết tiếp theo của mình.

Tác giả: Phạm Minh Khoa

Xem thêm:

Tham khảo việc làm IT lương cao tại TopDev

Top 30+ câu hỏi cho nhà tuyển dụng IT khi phỏng vấn

Nghệ thuật đặt câu hỏi chinh phục nhà tuyển dụng IT

Đặt câu hỏi thông minh là một kỹ năng quan trọng trong buổi phỏng vấn IT. Nó thể hiện sự quan tâm, sự tò mò và khả năng tư duy phản biện của bạn. Đó cũng là cơ hội để bạn tìm hiểu thêm về công ty, vị trí ứng tuyển và cách bạn có thể phát triển trong đó. Vậy bạn đã biết đặt câu hỏi như thế nào để trở nên “đắt giá” hơn trong mắt nhà tuyển dụng chưa? TopDev sẽ tổng hợp các câu hỏi đó trong bài viết này!

Vì sao đặt câu hỏi cho nhà tuyển dụng lại quan trọng?

đặt câu hỏi cho nhà tuyển dụng

Việc đặt câu hỏi cho nhà tuyển dụng là một bước không thể bỏ qua trong quá trình phỏng vấn. Đây là cơ hội để bạn tìm hiểu rõ hơn về công việc mình sắp nhận cũng như thể hiện sự quan tâm của bạn cho nhà tuyển dụng thấy. Dưới đây là những lợi ích quan trọng của việc đặt câu hỏi cho nhà tuyển dụng IT:

  • Tìm hiểu về văn hóa và quy trình làm việc của công ty: Mặc dù thông tin về quy mô và sứ mệnh của công ty có thể tìm thấy trên internet, nhưng văn hóa và quy trình làm việc thực sự chỉ có thể hiểu rõ thông qua cuộc trò chuyện trực tiếp với những người đã từng làm việc tại công ty đó.
  • Thể hiện sự quan tâm và tư duy phân tích: Việc đặt những câu hỏi sâu sắc và hóc búa chứng tỏ rằng ứng viên đã nghiên cứu kỹ về môi trường làm việc mà họ đang tìm kiếm. Điều này cho thấy ứng viên đang tìm kiếm một môi trường phù hợp và không ngần ngại đầu tư thời gian vào quá trình tìm hiểu.
  • Thể hiện sự quan tâm đến công ty và vị trí công việc: Qua việc đặt câu hỏi, ứng viên có thể thể hiện sự quan tâm đến công ty và vị trí công việc, cũng như mong muốn tìm hiểu rõ hơn về chúng. Điều này cho thấy ứng viên là người chủ động và có mục tiêu trong việc xây dựng sự nghiệp.
  • Đánh giá tính phù hợp của công việc: Việc đặt câu hỏi cũng giúp ứng viên đánh giá xem công việc có phù hợp với mình không. Thông qua các câu trả lời của nhà tuyển dụng, ứng viên có thể đánh giá xem mình có đáp ứng được yêu cầu công việc không và liệu môi trường làm việc có phù hợp với mình không.

Những điểm cần lưu ý khi đặt câu hỏi cho nhà tuyển dụng IT

Những điểm cần lưu ý khi đặt câu hỏi cho nhà tuyển dụng IT

Khi đặt câu hỏi cho nhà tuyển dụng IT trong quá trình phỏng vấn, có một số điểm cần chú ý để đảm bảo câu hỏi của bạn mang lại thông tin cần thiết và thú vị:

  • Tập trung vào thông tin không thể tìm thấy trên internet: Hãy đặt câu hỏi về văn hóa tổ chức, quy trình làm việc, cơ hội phát triển nghề nghiệp và các yếu tố không thể dễ dàng tìm kiếm trên internet.
  • Tránh câu hỏi mà nhà tuyển dụng đã trả lời trong quá trình phỏng vấn: Trước khi đặt câu hỏi, hãy đảm bảo rằng nội dung của câu hỏi không trùng lặp với thông tin đã được nhà tuyển dụng cung cấp trước đó.
  • Tổ chức câu hỏi theo chủ đề: Sắp xếp câu hỏi của bạn theo từng chủ đề như văn hóa tổ chức, công việc, phát triển nghề nghiệp để dễ dàng theo dõi và chắc chắn không bỏ sót thông tin quan trọng.
  • Đặt câu hỏi mở để khuyến khích trao đổi: Hãy tránh đặt câu hỏi đơn giản chỉ yêu cầu “có/không” và thay vào đó, sử dụng câu hỏi mở để khuyến khích cuộc trao đổi sâu hơn và phát triển ý kiến.
  • Tôn trọng và chuyên nghiệp: Hãy đặt câu hỏi một cách lịch sự, chuyên nghiệp và tránh những câu hỏi quá cá nhân hoặc không liên quan đến công việc.

  5 bí quyết tìm việc IT cho đợt tuyển dụng đầu năm mới

  CV xin việc gồm những gì? Cách viết CV tạo sự khác biệt cho bạn

Tổng hợp các câu hỏi cho nhà tuyển dụng IT

Bạn có thể chia các câu hỏi thành 3 nhóm chính để dễ nhớ, các nhóm câu hỏi bao gồm: câu hỏi về vị trí công việc, câu hỏi về công ty, câu hỏi về tiền lương phúc lợi. Tùy vào từng trường hợp mà bạn lựa chọn câu hỏi nào cho phù hợp.

1. Các câu hỏi cho nhà tuyển dụng IT về vị trí công việc

Kỹ năng và kinh nghiệm nào là quan trọng nhất để thành công ở vị trí này?

Ứng viên nên hỏi câu này vì nó giúp họ hiểu rõ hơn về yêu cầu công việc và tập trung vào phát triển các kỹ năng quan trọng nhất để thành công. Đồng thời, câu hỏi này cũng giúp ứng viên xác định xem liệu họ phù hợp với vị trí và có đủ kỹ năng cần thiết hay không.

Quy trình làm việc cơ bản của vị trí này là như thế nào?

Câu hỏi này giúp ứng viên hiểu rõ về quy trình làm việc hàng ngày và những nhiệm vụ cụ thể mà họ sẽ phải thực hiện. Điều này giúp ứng viên đảm bảo rằng họ có thể thích nghi và làm việc hiệu quả trong môi trường làm việc mới.

Cơ hội thăng tiến của vị trí này như thế nào?

Cơ hội thăng tiến

Ứng viên nên hỏi câu này để hiểu rõ về cơ hội phát triển sự nghiệp trong công ty. Điều này giúp ứng viên có cái nhìn chi tiết về những bước tiến thị cụ thể mà họ có thể thực hiện để đạt được mục tiêu sự nghiệp của mình. Câu hỏi này cũng cho thấy ứng viên có sự quan tâm và động lực trong việc phát triển bản thân và gắn bó với công ty trong dài hạn.

Team mà tôi sẽ làm việc cùng sẽ như thế nào?

Câu hỏi này giúp ứng viên đảm bảo rằng họ có thể hòa nhập vào đội ngũ một cách dễ dàng và hiệu quả. Bên cạnh đó, hiểu về đội ngũ cũng giúp ứng viên đánh giá xem liệu họ sẽ có cơ hội học hỏi và phát triển từ các đồng nghiệp, cũng như khả năng làm việc hợp tác trong môi trường làm việc đó.

Một số câu hỏi quan trọng khác:

  • Mục tiêu chính của vị trí này là gì?
  • Có thể mô tả một ngày làm việc điển hình cho vị trí này?
  • Vị trí này có thường xuyên phải làm việc ngoài giờ không?
  • Có những công cụ hoặc phần mềm nào mà tôi cần sử dụng cho vị trí này?
  • Công ty mang lại những cơ hội gì để nhân viên học hỏi những điều mới?

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

2. Các câu hỏi cho nhà tuyển dụng IT về công ty

Công ty đang hướng đến mục tiêu gì trong 5 năm tới?

Ứng viên nên hỏi câu này để hiểu rõ về hướng phát triển và mục tiêu chiến lược của công ty trong tương lai. Điều này giúp ứng viên đánh giá được sự ổn định và tiềm năng phát triển của công ty, từ đó quyết định liệu họ có phù hợp với hướng đi và mục tiêu của công ty hay không.

Cơ cấu tổ chức của công ty như thế nào?

Việc hiểu cơ cấu tổ chức giúp ứng viên có cái nhìn tổng quan về cách mà công ty hoạt động và làm việc cùng nhau. Điều này có thể giúp ứng viên hiểu rõ về vai trò của mình trong tổ chức, cũng như khả năng tương tác và hợp tác với các bộ phận khác để đạt được mục tiêu công ty.

Điều gì khiến anh/chị cảm thấy tự hào nhất khi làm việc tại đây?

Ứng viên nên hỏi câu này để hiểu rõ về những điểm mạnh và giá trị của công ty từ góc nhìn của nhân viên. Câu hỏi này giúp ứng viên có cái nhìn sâu hơn về văn hóa tổ chức và cảm nhận về môi trường làm việc.

Một số câu hỏi quan trọng khác:

  • Công ty có những hoạt động nào để gắn kết các thành viên trong công ty?
  • Có thể chia sẻ thêm về những dự án trọng điểm của công ty trong năm nay?
  • Bạn có thể chia sẻ thêm về những điểm mạnh của công ty so với những công ty khác?

Các câu hỏi cho nhà tuyển dụng IT về tiền lương và phúc lợi

Chính sách tăng lương và thưởng cho nhân viên như thế nào?

Chính sách tăng lương

Câu hỏi này giúp ứng viên có cái nhìn tổng quan về cách thức công ty đánh giá và đề xuất việc tăng lương và thưởng, từ đó giúp ứng viên quyết định liệu công ty có cung cấp một môi trường công bằng và khuyến khích phát triển cá nhân hay không. Đồng thời, thông tin này cũng giúp ứng viên định hình kế hoạch sự nghiệp và tài chính của mình khi làm việc tại công ty.

Công ty có những chính sách phúc lợi nào?

Phúc lợi ở mỗi công ty sẽ khác nhau, câu hỏi này giúp ứng viên có cái nhìn tổng quan về các lợi ích và dịch vụ mà họ có thể nhận được khi làm việc tại công ty. Thông tin về các chính sách phúc lợi như bảo hiểm, hỗ trợ sức khỏe, chăm sóc sức khỏe tinh thần, nghỉ phép, và các chương trình phát triển cá nhân có thể giúp ứng viên đánh giá xem công ty có quan tâm và đầu tư vào nhân viên của mình không.

Một số câu hỏi quan trọng khác:

  • Có những yếu tố nào ảnh hưởng đến mức lương của vị trí này?
  • Có những tiêu chí nào để được thưởng?
  • Công ty có hỗ trợ chi phí cho nhân viên tham gia các khóa học hay hội thảo chuyên ngành?

4. Các câu hỏi liên quan khác

  • Anh/chị có thể cho em xin góp ý về CV xin việc của em không?
  • Điều gì trong CV của em khiến Anh/Chị cảm thấy thích nhất?
  • Bước tiếp theo trong quy trình phỏng vấn này là gì?
  • Bao lâu tôi sẽ nhận được kết quả phỏng vấn?
  • Nếu trúng tuyển, tôi có thể bắt đầu công việc vào thời gian nào?

Tóm lại

Trong một buổi phỏng vấn, việc ứng viên đặt câu hỏi cho nhà tuyển dụng không chỉ là cơ hội để bạn hiểu rõ hơn về vị trí công việc và công ty mà họ sẽ làm việc, mà còn là cơ hội để thể hiện sự quan tâm và mong muốn phát triển bản thân. Bằng cách đặt những câu hỏi thông minh và sâu sắc, ứng viên có thể thu thập thông tin quan trọng, đánh giá tính phù hợp của mình với vị trí, và xác định được cơ hội phát triển sự nghiệp trong công ty.

Tóm lại, bài viết này đã tổng hợp khá đầy đủ các câu hỏi cho nhà tuyển dụng IT giúp bạn tự tin và có sự chuẩn bị sẵn sàng trong buổi phỏng vấn. Hãy lưu ý chọn lọc những điều quan trọng nhất để hỏi, nắm bắt cơ hội để có được công việc mơ ước bạn nhé!

Xem thêm:

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

Tất tần tật về Collection trong Java

Tất tần tật về Collection trong Java

Collection là một phần cơ bản và quan trọng nhất trong bộ thư viện tiêu chuẩn của Java mà mọi anh em lập trình viên phải nắm vững. Nó cung cấp cho chúng ta hầu như tất cả những gì cần để làm việc với dữ liệu dạng tập hợp hay đồ thị và cho phép mở rộng để phù hợp với mục đích sử dụng. Để hiểu rõ hơn về cách mà Java phân cấp các kiểu dữ liệu tập hợp, bài viết hôm nay chúng ta cùng nhau tìm hiểu sâu hơn về khái niệm này nhé.

Collection là gì?

Collection là một interface có trong java.util package, nó được sử dụng để biểu diễn một nhóm các đối tượng riêng lẻ dưới dạng một đơn vị duy nhất (single unit). Collection cũng là một root interface trong collection framework mà Java cung cấp để làm việc với dữ liệu tập hợp.

Collection là gì?

Collection interface cũng chứa một số các methods quan trọng để thao tác với dữ liệu tập hợp như add, delete, clear, size hay contains. List, Queue, Set là những sub-interfaces chính của Collection.

Chúng ta cần phân biệt giữa CollectionCollections trong Java, đây là 2 khái niệm khác nhau. Collections là một lớp tiện ích (utility class) chứa các phương thức static dùng cho việc lưu trữ và thao tác với các tập dữ liệu như tìm kiếm, phân loại, chèn, xóa, … Cả Collection và Collections đều được cung cấp từ java.util package giúp chúng ta khởi tạo và thao tác với dữ liệu dạng tập hợp một cách hiệu quả nhất.

Ví dụ

  • Khởi tạo một ArrayList (1 lớp của Collection interface)
// Creating an object of List<String> 
      List<String> arrlist = new ArrayList<String>(); 
  • Thao tác thêm phần tử vào danh sách với phương thức có sẵn trong Collection là add
 // Adding elements to arrlist 
      arrlist.add("first"); 
      arrlist.add("second"); 
  • Sử dụng các phương thức tĩnh trong lớp Collections cung cấp để thao tác với danh sách
 //Adding all the specified elements to the specified collection 
      Collections.addAll(arrlist, "web", "site");

 //Sorting all the elements of the specified collection according to default sorting order 
      Collections.sort(arrlist); 

  Interface trong Java – Bạn đã hiểu đúng? Nếu chưa, mời đọc ngay

  Functional Interface là gì? Functional Interface API trong Java 8

Hệ thống phân cấp Collection Framework

Java Collection Framework là một bộ thư viện với rất nhiều class mạnh mẽ giúp bạn đơn giản hóa các thao tác khi làm việc với tập hợp và đồ thị. Nó xây dựng các interface định nghĩa các cách thao tác với tập hợp, các class cụ thể thực thi các interface và các giải thuật thông dụng thường xuyên được sử dụng với tập hợp. Thành phần trong framework bao gồm:

  • Interface: kiểu dữ liệu trừu tượng
  • Classes: các lớp triển khai interface, thể hiện các kiểu dữ liệu cụ thể
  • Algorithm: các thuật toán sử dụng trong các phương thức thao tác với dữ liệu

Hệ thống phân cấp của Collection Framework được phân chia ra làm 2 phần với interface Collection mình đã giới thiệu ở phần trên và interface Map chứa các loại dữ liệu dạng cặp key/ value.

Hệ thống phân cấp Collection Framework

Java thiết kế framework này với ưu điểm:

  • Giúp lưu trữ và quản lý các đối tượng dạng tập hợp hay đồ thị
  • Tối ưu hóa hiệu suất và tiết kiệm thời gian xây dựng source code
  • Tăng khả năng tái sử dụng source code

Tham khảo việc làm Java mới nhất trên TopDev

Các lớp trong Collection

Chúng ta sẽ cùng nhau đi sâu hơn vào các nhánh con triển khai Collection interface để hiệu được cách sử dụng của nó.

1. List – danh sách

List là một collection có thứ tự, có thể chứa các phần tử trùng lặp. Trong một list, chúng ta thường có quyền kiểm soát chính xác vị trí phần tử được chèn vào và có thể truy cập thông qua chỉ số. List interface trong Java chứa 3 class con triển khai gồm ArrayList, Linked List và Vector.

ArrayList

ArrayList là kiểu dữ liệu dạng mảng khá thân thuộc trong nhiều ngôn ngữ lập trình, nó sử dụng index để đánh chỉ số và truy cập đến từng phần tử một cách dễ dàng. Ngược lại thì LinkedList sẽ liên kết các phần tử với nhau thông qua địa chỉ bộ nhớ, giúp việc lưu trữ một danh sách mà không cần để tâm nhiều đến số lượng phần tử như ArrayList.

Tuy vậy thì đánh đổi ở đây là việc truy cập vào một phần tử trong LinkedList sẽ chậm hơn tương đối so với ArrayList. Với Vector thì nó khá giống với ArrayList nhưng được thiết kế để ở môi trường đa luồng, tại một thời điểm sẽ chỉ có một luồng được phép truy cập, thực thi thao tác trên danh sách đó.

2. Queue – hàng đợi

Queue là một collection được sử dụng để lưu trữ và quản lý các phần tử theo thứ tự FIFO (First in, Fist out), nghĩa là các phần tử mới sẽ được thêm vào cuối hàng đợi và phần tử cũ sẽ được xóa khỏi đầu hàng đợi. Java cũng cung cấp 1 interface kế thừa Queue là Deque (Double Ended Queue) với việc hỗ trợ sử dụng trong việc quản lý các phần tử bằng FIFO và LIFO (Last in, First out); điều này giúp tất cả các phần tử trong Deque có thể được chèn vào và lấy ra ở cả hai đầu.

Queue – hàng đợi

2 class triển khai Queue có sẵn trong Java là PriorityQueue – hàng đợi ưu tiên và ArrayDeque – sử dụng tương tự như cấu trúc dữ liệu Stack.

3. Set

Set là một collection lưu trữ các phần tử không trùng lặp và không có thứ tự cụ thể. Trường hợp khi thêm một phần tử đã tồn tại trong Set rồi thì sẽ không có tác động gì xảy ra đối với Set ban đầu.

Set cũng có 1 interface kế thừa là SortedSet với việc đảm bảo các phần tử trong tập hợp được sắp xếp có thứ tự. Những class triển khai interface Set bao gồm HashSet, LinkedHashSet và TreeSet. Trong đó TreeSet là một lớp thừa hưởng các đặc điểm từ interface SortedSet và ngoài ra nó sử dụng TreeMap (một lớp triển khai interface Map) để lưu trữ các phần tử.

Set

Kết bài

Collection đóng vai trò quan trọng trong Java, cung cấp một cách tổng quan nhất về cấu trúc dữ liệu dạng tập hợp cùng với các phương thức thao tác lên dữ liệu. Nắm vững được kiến thức về Collection sẽ giúp bạn sử dụng một cách linh hoạt và hiệu quả, tối ưu hiệu suất ứng dụng mà bạn viết. 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:

Đừng bỏ lỡ việc làm IT mọi cấp độ tại TopDev

Vì sao bạn nên tìm cho mình một Mentor trong sự nghiệp?

Vì sao bạn nên tìm cho mình một Mentor trong sự nghiệp?

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

10 năm đi làm ở nhiều công việc và công ty khác nhau, đa số các cơ hội tốt đều đến với mình do người khác giới thiệu. Những người xung quanh mình biết về khả năng viết lách và làm hướng nghiệp của mình nên đã giới thiệu mình đến các công việc liên quan.

Ví dụ 8 năm trước mình được giới thiệu làm quản lý truyền thông cho một dự án phim, nhờ đồng nghiệp cũ khi mình thực tập biết mình học ngành truyền thông. Một ví dụ khác 4 năm trước mình được giới thiệu vào làm ở một công ty bất động sản lớn nhất nhì cả nước, nhờ chị sếp trước đây học cùng mình trong một khoá học hướng nghiệp. Khi bạn tìm việc qua kênh giới thiệu, bạn sẽ bớt được rất nhiều vòng như CV, test, thậm chí cả phỏng vấn – cứ vậy mà vào làm ngay.

Mình từng tham gia hỗ trợ một chương trình tuyển dụng rất hay của hiệp hội kế kiểm ACCA mang tên ACCA Job Fast Track. Khi các bạn ứng viên học kế toán hoặc kiểm toán tham gia chương trình này, các bạn sẽ được miễn một số vòng test và hồ sơ khi nộp đơn và các công ty lớn bên kế kiểm, thậm chí là các công ty trong nhóm Big 4. Lý do là các công ty hợp tác tin rằng ứng viên đã học ACCA và được giới thiệu là một ứng viên tốt.

Những ví dụ trên mình chỉ muốn nói một điều rằng việc có mạng lưới quan hệ chuyên nghiệp là rất quan trọng. Dù bạn là người hướng nội hay hướng ngoại, nếu bạn đã xác định đi làm công sở, start-up hay khởi nghiệp thì đều cần có mạng lưới quan hệ chuyên nghiệp. Vậy cụ thể mạng lưới quan hệ chuyên nghiệp vì sao lại quan trọng (1)? Làm thế nào để mở rộng mạng lưới quan hệ (2), kể cả khi mình là người hướng nội? Khi đã có mạng lưới quan hệ rồi thì mình cần làm gì để “tận dụng” khai thác và duy trì mạng lưới này (3)? Chúng ta sẽ cùng trao đổi về 03 nội dung này bên dưới trong bài viết này nhé.

(1) Vì sao chúng ta cần có “người quen”?

Mình thấy thời bố mẹ các cụ rất năng đi lại quan hệ với những người khác. Một phần lý do là để “sau này cần nhờ đến”. Cái nhờ đến ở đây có thể bao gồm cả việc gửi gắm con cháu làm việc hoặc tìm việc hộ sau khi ra trường, “chạy chọt” để có chân làm việc ở công ty này kia.

Thế hệ trẻ hiện nay mình cổ suý một cách tiếp cận tích cực hơn. Vẫn nên có nhiều mối quan hệ, nhưng đó là những mối quan hệ chuyên nghiệp, cùng giúp nhau đôi bên có lợi chứ không phải chạy tiền để đạt được mục đích. Mình học hướng nghiệp và nhân sự có 2 mô hình như thế này:

cách một công ty tìm ứng viên

Hai ảnh trên mô tả về cách một công ty tìm ứng viên và một ví dụ cụ thể. Thông thường chúng ta chứ nghĩ rằng nếu công ty tìm ứng viên mới thì việc đầu tiên là đăng tuyển trên mạng. Thực tế với rất nhiều công ty lớn khi tìm ứng viên, việc đầu tiên là họ dùng đến mạng lưới ứng viên nội bộ hoặc thông qua nhân viên giới thiệu. Nếu bạn có cơ hội làm một công ty lớn, bạn sẽ thấy phòng nhân sự công ty đó có chính sách giới thiệu nhân viên mới được thưởng tiền. Nhân viên cấp càng cao thưởng càng nhiều tiền. Lý do là vì một người được giới thiệu có sự uy tín cao hơn, ngoài ra việc tìm ứng viên qua kênh này cũng giúp công ty tiết kiệm phần nào ngân sách tuyển dụng.

Từ mô hình trên chúng ta hiểu rằng, nếu chúng ta có nhiều mối quan hệ với những người đang làm công ty lớn và họ biết về khả năng làm việc và điểm mạnh của chúng ta, chúng ta có cơ hội được chính các anh chị ấy giới thiệu khi công ty các anh chị ấy đăng tin tuyển dụng.

công thức tuyển dụng

Ảnh trên là một “công thức” trong lý thuyết hướng nghiệp giúp bạn giải bài toán làm sao có việc làm tốt sau khi ra trường. Có ba yếu tố quan trọng bạn cần có: (1) năng lực làm việc là kĩ năng mềm và kiến thức học được (2) mạng lưới quan hệ bạn có và (3) thị trường lao động cần bạn. Thiếu đi bất kì một yếu tố nào trong ba yếu tố trên cũng làm giảm đi cơ hội cạnh tranh của bạn khi đi tìm việc.

  Cách thiết lập và duy trì mối quan hệ (networking) hiệu quả

  Cải thiện mối quan hệ giữa Lập trình viên VS Sếp: dễ hay khó? (Phần 1)

(2) Làm sao mở rộng mối quan hệ kể cả khi mình hướng nội

Phải làm rõ rằng tác giả bài viết này là một người hướng nội. Bản thân mình không quá quảng giao, không phải người nói nhiều và không thích tham gia các sự kiện nơi đông người. Tuy nhiên trong 10 năm đi làm mình vẫn xây dựng được nhiều mối quan hệ tốt có ảnh hưởng đến công việc của mình. Từ kinh nghiệm cá nhân và kinh nghiệm tư vấn hướng nghiệp cho nhiều bạn, dưới đây là một số cách để bạn mở rộng mối quan hệ dù bạn là người hướng nội.

1/ Giữ tương tác với bạn học cũ, đồng nghiệp cũ

Thay vì tìm cách đi kết bạn mới, một việc mình thấy dễ hơn là giữ quan hệ với những người cũ. Người cũ ở đây có thể là bạn học cùng lớp cũ, bạn bè làm trong CLB hoặc một dự án thời sinh viên, sếp và đồng nghiệp ở công ty cũ (nếu không có chửi lộn). Mình có thể giữ những mối quan hệ này bằng cách kết bạn Facebook, hoặc chuyên nghiệp hơn là LinkedIn để cập nhật tin tức và tương tác với mọi người.

Tham khảo thêm việc làm IT Network lương cao lên đến 3000 USD

2/ Tăng kết nối trên mạng xã hội LinkedIn

Tăng kết nối trên mạng xã hội LinkedIn

Nếu bạn chưa biết xài LinkedIn, bạn có thể đọc bài viết về LinkedIn của mình để hiểu hơn nền tảng này và có cho mình một profile. LinkedIn là một nền tảng mạng xã hội chuyên nghiệp để mình mở rộng mối quan hệ. Ngoài việc kết bạn với những người mình đã biết từ trước trên LinkedIn, mình có thể dùng tính năng Search để tìm những người bạn mới. Những người bạn mới mình khuyến khích các bạn kết bạn trên LinkedIn là:

  • Những người làm nhân sự tuyển dụng (nhóm này trên LinkeIn rất nhiều)
  • Những người đã hoặc đang làm việc tại công ty hoặc lĩnh vực bạn đang thích và quan tâm (xem trên title phần lịch sử làm việc của họ)
  • Những người học cùng trường với bạn (xem phần Education)

3/ Tìm kiếm Mentor thông qua các chương trình Mentorship

Hiện nay có một số chương trình mentorship miễn phí. Tại đó có các anh chị là người đã đi làm họ sẵn sàng dành thời gian để hướng dẫn lại các bạn trẻ còn ít kinh nghiệm. Thường những người đã chịu làm mentor thì tinh thần chia sẻ cao, rất sẵn lòng kết bạn và hỗ trợ người khác. Chúng ta nên tận dụng những mối quan hệ kiểu này.

Nếu là sinh viên, bạn lên Facebook gõ từ khoá “mentoring” và xem một số chương trình mentoring của các trường. Có ba trường mình thấy làm chương trình này hiệu quả là RMIT, UEH và BK.

Một số chương trình khác các bạn tìm theo từ khoá là SME Mentoring, Chevening Mentoring, Menteelogy, Mentori.

4/ Lấy liên hệ diễn giả thông qua các chương trình hội thảo

Là một người thường xuyên tham gia các chương trình ở các trường đại học dưới tư cách diễn giả, mình rất nhớ và vẫn giữ quan hệ lâu dài với những bạn thường xuyên phát biểu trong buổi đó hoặc về nhà kết bạn LinkedIn cùng với mình. Mình tin là nhiều anh chị diễn giả khác cũng như vậy.

Giống như nhóm mentor ở trên, một người đã chịu làm diễn giả các chương trình thì người đó cũng có tinh thần chia sẻ cao và không ngại việc kết nối với người khác. Vậy lần tới khi bạn tham gia một chương trình hội thảo, đừng ngại tìm/xin thông tin liên hệ của các diễn giả khách mời và những người bạn gặp trong buổi hôm đó, về nhà kết bạn mở rộng thêm mối quan hệ.

(3) Nên làm gì với các mối quan hệ của mình?

Duy trì liên hệ và tương tác thường xuyên. Chúng ta đang sống trong thời đại số nên việc duy trì tương tác này dễ hơn rất nhiều. Đơn giản chỉ cần thi thoảng vào trang cá nhân của người đó, tương tác với bài viết họ chia sẻ, hoặc nhắn một tin nhắn chúc mừng năm mới, sinh nhật.

Giúp được gì hãy giúp. Một mối quan hệ tốt là mối quan hệ hai chiều, hai bên cùng có lợi. Có thể profile của bạn không xịn bằng người đó, nhưng vẫn có những thứ mình có thể giúp người ta được. Ví dụ chia sẻ bài viết cho người đó, tìm ứng viên phù hợp giúp công ty các anh chị đó, làm survey khảo sát…

Nhờ các anh chị giới thiệu công việc. Khi bạn và mối quan hệ của bạn đã biết nhau ở một mức độ nhất định, bạn có thể nhờ các anh chị giới thiệu công việc cho bạn. Khi nhờ bạn nên biết rõ mình đang hướng đến công việc gì hoặc bạn có những kĩ năng nào giỏi, như vậy người ta mới biết mà giới thiệu bạn phù hợp. Đừng nói chung chung kiểu “anh chị thấy việc tốt nào giới thiệu em nhé”.

Nhờ các anh chị giới thiệu người khác. Tương tự như trên, bạn có thể nhờ các anh chị ấy giới thiệu với người quen của họ trong ngành. Ví dụ bạn đang quan tâm đến Truyền thông mà không biết ai trong ngành, bạn có thể nhắn sếp cũ xin giới thiệu một anh chị nào đó trong ngành truyền thông để bạn gặp gỡ thêm.

Nhờ các anh chị viết thư giới thiệu. Nếu người này là một người đã làm việc cùng và có ấn tượng tốt về bạn, hãy nhờ người ta viết cho bạn một đoạn giới thiệu trên LinkedIn hoặc một thư giới thiệu giúp bạn đi tìm việc.

Năm mới, chúc các bạn có nhiều các mối quan hệ mới.

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

Xem thêm:

Xem thêm Jobs IT for Developers hàng đầu tại TopDev

Phương thức List append() trong Python

Phương thức append trong Python

List là một trong những kiểu dữ liệu cơ bản trong Python lưu trữ các giá trị dưới dạng mảng (collection) có thứ tự, có thể thay đổi và cho phép chứa dữ liệu trùng lặp. Thao tác với List thông qua các phương thức thêm, sửa, xóa các phần tử trong đó là những kiến thức bắt buộc mọi lập trình viên Python đều nắm vững.

Mặc dù vậy, có nhiều anh em mới làm Python còn nhầm lẫn trong việc sử dụng một số hàm có chức năng tương đối giống nhau với List, vì vậy bài viết hôm nay chúng ta cùng nhau làm rõ về phương thức append trong Python và so sánh nó với một số hàm khác tương tự nhé.

Phương thức Append

Append là phương thức dùng để thêm một phần tử vào cuối một List trong Python. Phần tử được thêm vào có thể là một số, một List, một chuỗi hoặc một Tuple.

Phương thức append trong Python

Cú pháp hàm append trong Python:

list.append(obj)

trong đó obj là đối tượng được dùng để thêm vào cuối list

Ví dụ:

  • Thêm một ký tự/ số vào cuối List
mylist = ["A", "B", "C"]
mylist.append("D")
print(mylist)
#>> ["A", "B", "C", "D"]
  • Thêm một List vào cuối List
mylist = ["A", "B", "C"]
addlist = ["D", "E"]
mylist.append(addlist)
print(mylist)
#>> ['A', 'B', 'C', ['D', 'E']]
  • Thêm một Tuple vào cuối List
mylist = ["A", "B", "C"]
addtuple = (1, 2)
mylist.append(addtuple)
print(mylist)
#>> ['A', 'B', 'C', (1, 2)]

Ở các ví dụ trên chúng ta có thể thấy rằng khi thêm 1 phần tử vào cuối List thì chiều dài (length) của List luôn chỉ tăng lên 1 dù cho phần tử là một List hay Tuple. Nói cách khác, hàm append thêm cả đối tượng obj vào list chứ không phải thêm từng phần tử trong obj (trường hợp obj là List hay Tuple) vào list ban đầu.

Đây là điểm mấu chốt giúp bạn có thể phân biệt giữa append và các hàm khác cùng chức năng thêm phần tử vào List. Chúng ta cùng tìm hiểu thêm về 2 hàm khác cũng có chức năng tương tự append là insert và extend.

Phương thức append trong Python

  Tuple Python là gì? Tìm hiểu về tuple python

  Function trong Python là gì? Tạo Function trong Python

Phương thức Insert

Insert là phương thức chèn đối tượng obj vào trong list tại chỉ số index đầu vào.

Cú pháp

list.insert(index, obj)

trong đó index là chỉ mục nơi đối tượng obj được chèn, obj là đối tượng cần chèn vào list đã cho.

Ví dụ:

list1 = ['java', 'python', 'c++', 'php', 'sql']
list1.insert(3, 'android')
print ("List sau khi duoc chen them doi tuong 'android': ", list1)

#>> List sau khi duoc chen them doi tuong 'android':  ['java', 'python', 'c++', 'android', 'php', 'sql']

Insert được bổ sung tham số là vị trí cần chèn nên nó giúp hàm trở nên linh hoạt hơn so với append. Tuy nhiên về mặt hiệu năng (performance), append giúp code của bạn chạy nhanh hơn so với việc sử dụng insert với chỉ số truyền vào là 0 (sẽ thực hiện chèn vào cuối List).

Tuyển dụng Python mọi cấp độ tại đây!

Phương thức Extend

Extend là phương thức cũng được dùng để thêm các nội dung vào cuối một List.

Cú pháp:

list.extend(seq)

trong đó seq là danh sách các phần tử sẽ được cộng thêm vào cuối list.

Ví dụ:

list1 = ['java', 'python', 'c++']
list2 = ['c++', 'sql']
list1.extend(list2);
print ("List sau khi duoc mo rong them la : ", list1)

#>> List sau khi duoc mo rong them la :  ['java', 'python', 'c++', 'c++', 'sql']

Cùng có chức năng thêm nội dung vào cuối một List, tuy nhiên khác với append thì extend duyệt qua danh sách phần tử trong mảng cần thêm và nối thêm từng phần tử đó vào List. Điều này khiến kích thước của list ban đầu sẽ tăng lên đúng bằng kích thước của list nối thêm. Và thêm vào đó thì tham số seq trong hàm extend cũng sẽ chỉ nhận giá trị là một đối tượng có thể lặp lại như chuỗi, danh sách, dicts.

Để phân biệt rõ hơn giữa append và extend, ta có thể xem ví dụ dưới đây:

Phương thức append trong Python

Kết luận

Như vậy trong trường hợp muốn chèn thêm một phần tử vào danh sách List trong Python, chúng ta có thể sử dụng 1 trong 3 phương thức là append, insert hay extend. Hãy lưu ý một số điểm dưới đây để lựa chọn sử dụng một cách hợp lý:

  • Insert được sử dụng cùng chỉ số vị trí cần thêm, vì thế nó linh hoạt hơn. Trong khi đó append và extend sẽ chỉ cho phép chèn vào cuối của List
  • Xét về hiệu năng thì append và extend tốt hơn insert, vì vậy hãy lưu ý nếu bài toán làm việc với một danh sách dữ liệu lớn
  • Append có thể thêm một đối tượng bất kỳ loại nào vào danh sách, extend chỉ hoạt động trên các đối tượng có thể lặp và nối thêm lần lượt từng phần tử trong đó vào danh sách

Qua bài viết, hy vọng các bạn đã có thể nắm được rõ hơn cách hoạt động và sử dụng hàm append trong Python, điều này sẽ giúp bạn viết code một cách ngắn gọn và hiệu quả hơn rất nhiều trong dự án của mì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:

Hàng loạt việc làm IT lương cao trên TopDev đang chờ bạn, ứng tuyển ngay!

Intent trong Android: Vai trò và cách sử dụng

Intent trong Android: Vai trò và cách sử dụng

Khi các bạn cần phải kết nối các thành phần ứng dụng Android thì đều phải sử dụng Intent. Vậy Intent là gì? Vai trò và cách sử dụng như thế nào trong ứng dụng Android.

Bài viết này mình  hướng dẫn các bạn tìm hiểu bản chất cũng như cách sử dụng Intent trong android để có thể gửi dữ liệu giữa các thành phần (Activity, Service…)

Trước khi vào bài viết mình chợt nghĩ đến ví dụ: Con người làm bất kể việc gì đều có mục đích cả. Từ xem TV, mua sắm, lập trình ứng dụng… đều có một số mục đích đằng sau nó.

Android hoạt động theo cách tương tự. Trước khi một ứng dụng có thể thực hiện một hành động nào đó (Thuật ngữ gọi là action), nó cần phải biết trước mục đích của các hành động đó, để có thể thực hiện các action đó đúng cách.

Hóa ra, con người và Android cũng không khác biệt chút nào, đúng không ^_^
Sau bài viết này, chúng ta sẽ biết được:

  • Intent là gì và vai trò của Intent trong Android như thế nào?
  • Có bao nhiêu loại intent?
  • Sử dụng Intent để gửi dữ liệu giữa các Activity
  • Sử dụng Parcelable và Serializable để Intent có thể truyền được dữ liệu là các đối tượng (Object)

Chúng ta bắt đầu nhé!

#1. Intent là gì? Vai trò của Intent trong Android như thế nào?

Intent là một khái niệm khá trừu tượng về công việc, chức năng có thể được thực hiện bởi ứng dụng của bạn. Intent có thể được dùng để kết nối các thành phần trong ứng dụng Android. Trong quá trình kết nối, nó cũng có thể yêu cầu thành phần đó thực hiện một tác vụ được định trước. Các thành phần cơ bản của một Intent:

  • Actions: Là những thứ mà Intent cần thực thi, chẳng hạn như quay số điện thoại, mở URL hoặc chỉnh sửa dữ liệu. Một action đơn giản là một String mô tả cho tác vụ cần thực hiện. Ví dụ: ACTION_VIEW, ACTION_EDIT, ACTION_MAIN…
  • Data: Đây chính là dữ liệu để intent hoạt động. Nó được biểu diễn dưới dạng Uniform Resource Identifier(Uri) – một kiểu định danh cho một tài nguyên cụ thể. Kiểu của Data yêu cầu (nếu có) tùy thuộc vào action. Ví dụ: Bạn sẽ không muốn tạo một dial number Intent mà lại lấy số điện thoại từ một hình ảnh đúng không?

Khả năng kết hợp các action và data này cho phép Android biết chính xác intent đang yêu cầu gì và những đối tượng nào có thể thực hiện nó. Đơn giản như vậy!

Intents có thể được sử dụng để:

  • Mở một Activity mới và truyền dữ liệu cho Activity đó
  • Mở một Fragments / Giao tiếp giữa các Fragments.
  • Mở hoặc dừng một Service
  • Hoặc có thể gọi một Activity bằng Broadcast Receiver 

♥ Có thể bạn cần đến cách thêm Fragment vào Activity

#2. Phân loại Intent

Có hai loại Intents

Explicit Intent – Intent dạng tường minh

Intent tường mình tức là khi tạo một đối tượng Intent, chúng ta chỉ định rõ và truyền trực tiếp tên thành phần đích vào intent. Ví dụ: như đoạn code bên dưới, intent được chỉ định rõ OtherActivity sẽ là thành phần nhận và xử lý intent này.

  • val intent = Intent(this, OtherActivity::class.java)
  • startActivity(intent)

Intent trong Android

  Tìm hiểu cấu trúc dữ liệu ArrayMap trong Android

  Clean Code Android: Bạn đã thật sự hiểu đúng chưa?

Implicit Intent – Intent không tường minh

Thay vì trong intent  Android được chỉ định sẵn một Activity nào đó thực hiện, thì sẽ chỉ truyền vào action và gửi cho Android. Android sẽ dựa vào action đó mà lọc những thành phần nào đã đăng kí action đó gọi ra.

Vì vậy, Android có thể tự động kích hoạt thành phần từ cùng một ứng dụng hoặc một số ứng dụng khác để xử lý intent đó.

Ví dụ, chúng ta cần phải hiển thị một vị trí lên bản đồ. Thay vì chúng ta phải mã hóa và viết hẳn module bản đồ để hiển thị thì có thể gửi vị trí đó vào intent, rồi Android sẽ tự tìm xem có ứng dụng nào phù hợp ( như Google Map chẳng hạn) để hiển thị nó.

Implicit Intent

Thông thường, chúng ta dùng các intent tường minh để kích hoạt các thành phần trong ứng dụng, còn intent không tường minh để chạy các thành phần của ứng dụng bên thứ 3.

Đây là một đoạn code minh họa cho intent không tường minh( sử dụng ACTION_VIEWđể gọi ứng dụng nào có thể hiển thị được link)

class ImplicitIntentActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_implicit_intent)
    }

    fun showWebPage(view: View) {
        val intent = Intent(Intent.ACTION_VIEW,
                Uri.parse("http://www.ebookfrenzy.com"))

        startActivity(intent)
    }
}

Kết quả sẽ như bên dưới

Implicit Intent

Tìm việc làm Android lương cao trên TopDev!

#3. Intent Flags

Flags giống như các tùy chọn(option) cho intent trong android. Bạn có thể sử dụng các flags này để cấu hình intent, các flags này giúp Android “hành xử” với intent đúng ý đồ của lập trình viên.

Ví dụ: Mặc định khi sử dụng intent để gọi Activity thì activity đó sẽ được đưa vào stack. Và khi người dùng nhấn nút back trên điện thoại thì Android sẽ gọi các activity được lưu trong stack lên.

Để ngăn chặn điêu này, bạn có thể dùng flag:
FLAG_ACTIVITY_SINGLE_TOP. Nếu đặt flag này, thì intent sẽ không thể gọi activity nếu activity đó đang ở top của stack

intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP

Tương tự , sử dụng flag: FLAT_ACTIVITY_CLEAR_TOP sẽ xóa tất cả các activity khác trong stack và đặt activity đc gọi lên top của stack.

Có rất nhiều flag hữu ích cho ứng dụng, các bạn có thể tham khảo thêm ở đây.

#4. Truyền dữ liệu giữa các Activity bằng Intent

Để truyền dữ liệu sang cho activity mới chúng ta sử dụng các cặp key-value trong hàm putExtraputStringArrayListExtra.

putExtra chỉ truyền được dữ liệu kiểu cơ bản: Int, Float, Char, Double, Boolean, String

Truyền dữ liệu giữa các Activity bằng Intent

Ví dụ:

val intent = Intent(this, OtherActivity::class.java)
intent.putExtra("keyString", "Androidly String data")

Sau đó các giá trị trong Extras được đóng gói vào Bundle trước khi nó được gửi đi.

Truy xuất dữ liệu trong một Activity mới

val bundle: Bundle? = intent.extras
val string: String? = intent.getString("keyString")
val myArray: ArrayList<String>? = intent.getStringArrayList("myArray")

Intent, extras tương ứng với getIntent()getExtras() nếu viết bằng Java.

Chúng ta vừa dùng toán tử nullable Bundle? để phòng trường hợp bị  NullPointerExceptions khi không có dữ liệu.

Tương tự, khi lấy giá trị thông qua các Key, chúng ta dùng kiểu nullable  để phòng ngừa NPE có thể xảy ra khi key không chính xác

#5. Truyền dữ liệu là đối tượng bằng intent sử dụng Parcelable và Serializable Data

Như mình đã nói ở trên thì với các truyền dữ liệu thông thường qua hàm putExtra(), sẽ chỉ truyền được các loại dữ liệu cơ bản, không thể truyền được dữ liệu kiểu object.

Để khắc phục điều này, chúng ta implement interface Parcelable hoặc Serializable.

Điểm khác nhau giữ Parcelable và Serializable

  • Parcelable Interface là một phần của Android SDK. Còn Serializable là một interface tiêu chuẩn của Java.
  • Trong Parcelable bạn cần đặt tất cả dữ liệu mà bạn cần truyền vào đối tượng Parcel và override lại phương thức writeToParcel(). Trong serializable chỉ cần implement interface là đủ để truyền dữ liệu.
  • Parcelable được đánh giá là nhanh hơn Serializable.

Cách sử dụng Parcelable

Kotlin đưa ra một số annotations rất tiện để lưu chúng từ việc override phương thức writeToParcel() để đưa dữ liệu vào Parcelable. Thay vào đó, chúng ta có thể dùng annotations @Parcelize như bên dưới:

@Parcelize
data class Student(
        val name: String = "Anupam",
        val age: Int = 24
) : Parcelable
Chú ý: hiện tại trong build.gradle bạn phải thêm đoạn code sau để annotations @Parcelize có thể hoạt động
android {
    androidExtensions {
        experimental = true
    }
//..
....
}

Và bên Activity nhận, để lấy dữ liệu giống như cách thông thường:

val student = Student()
val intent = Intent(this, OtherActivity::class.java)
intent.putExtra("studentData", student)
startActivity(intent)

Cách sử dụng  Serializable

Cách làm sẽ tương tự như Parcelize nên mình không giải thích thêm nhé

data class Blog(val name: String = "Androidly", val year: Int = 2018) : Serializable

val blog = Blog("a", 1)
val intent = Intent(this, OtherActivity::class.java)
intent.putExtra("blogData", blog as Serializable)
startActivity(intent)

Các bạn có thể download project mình minh họa tại đây nhé

 Download Source Code

Như vậy mình đã chia sẻ những kiến thức rất căn bản để có thể hiểu bản chất Intent trong android cũng như cách sử dụng. Các bạn nên nhớ Intent là một phần rất quan trọng, vì vậy nếu chưa hiểu phần nào thì comment bên dưới để mình và mọi người hỗ trợ nhé. Phần sau, mình sẽ chia sẻ về cách xử lý sự kiện như: click, touch…vào các view trong Android.

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

Xem thêm:

Tìm việc làm IT mọi cấp độ tại TopDev

Nhảy việc sao cho khéo? Thời điểm thích hợp nhất để nhảy việc

Nhảy việc sao cho khéo? Thời điểm thích hợp nhất để nhảy việc

Nhảy việc là một điều tất yếu sẽ xảy ra trên hành trình sự nghiệp của bất kỳ ai. Trong thời buổi thị trường đầy biến động như hiện nay thì nhu cầu nhảy việc thường xuyên, nhất là ở giới trẻ ngày càng cao. Tuy nhiên, nếu nhảy việc “không khéo” rất dễ ảnh hưởng đến sự nghiệp sau này của bạn, do đó cần có sự cân nhắc và chuẩn bị kỹ lưỡng trước khi quyết định rời đi.

Hãy cùng TopDev tìm hiểu các cách nhảy việc sao cho khéo và thời điểm nào là hợp lý nhất để nhảy việc trong bài viết dưới đây!

Mặt Tốt – Xấu khi nhảy việc

Tùy vào trường hợp mà nhảy việc có thể giúp ích cho sự nghiệp của bạn hay làm bạn mất đi cơ hội hiện có. Dưới đây là một số lợi ích cũng như rủi ro bạn cần biết để cân nhắc thật kỹ trước khi quyết định nhảy việc.

Nhảy việc sao cho khéo

Lợi ích của nhảy việc

  • Cơ hội phát triển: Nhảy việc giúp bạn tiếp cận với nhiều công ty, lĩnh vực mới, mở rộng kiến thức và kỹ năng. Trải nghiệm nhiều môi trường làm việc khác nhau giúp bạn rèn luyện khả năng thích nghi và linh hoạt.
  • Mức lương cao hơn: Khi chuyển sang công ty mới, bạn có thể thương lượng mức lương cao hơn dựa trên kinh nghiệm và năng lực của bản thân. Cạnh tranh trong môi trường mới thúc đẩy bạn nỗ lực để phát triển và tăng thu nhập.
  • Cơ hội thăng tiến: Một số công ty đánh giá cao những nhân viên có kinh nghiệm làm việc ở nhiều môi trường khác nhau. Nhảy việc giúp bạn có nhiều cơ hội tiếp xúc với các vị trí cao hơn, mở ra con đường thăng tiến rộng mở.
  • Môi trường làm việc tốt hơn: Tìm kiếm môi trường phù hợp với bản thân, nơi bạn được thỏa mãn đam mê và phát huy tối đa năng lực. Tránh khỏi môi trường làm việc độc hại, ảnh hưởng tiêu cực đến tinh thần và hiệu quả công việc.

  Nhảy việc sau Tết: Tìm CƠ HỘI mới hay lại tiếp tục CƠ CỰC?

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

Rủi ro khi nhảy việc

  • Khó khăn trong việc hòa nhập: Cần thời gian để thích nghi với văn hóa công ty mới, đồng nghiệp mới và cách thức làm việc mới. Gặp khó khăn trong việc xây dựng mối quan hệ và tạo dựng uy tín tại công ty mới.
  • Rủi ro thất bại: Không phải lúc nào việc nhảy việc cũng thành công. Có thể bạn sẽ gặp khó khăn trong việc tìm kiếm công việc mới hoặc không hài lòng với công việc mới.
  • Gây ấn tượng không tốt: Nhảy việc quá thường xuyên có thể khiến nhà tuyển dụng nghi ngờ về tính ổn định và cam kết của bạn. Gây khó khăn trong việc xin việc sau này nếu bạn không có lý do chính đáng để giải thích cho việc nhảy việc liên tục.

Đâu là thời điểm thích hợp để nhảy việc?

Chọn một thời điểm nhảy việc thông minh không chỉ giúp bạn dễ dàng tìm được công việc mới mà còn không làm “mất lòng” đồng nghiệp và sếp. Tùy vào trường hợp của mỗi người mà bạn hãy cân nhắc thời gian nhảy việc hợp lý.

Thời điểm nhảy việc phù hợp

Thời điểm nhảy việc phù hợp

Thông thường, thị trường nhân lực sẽ trở nên khan hiếm vào đầu năm mới, đặc biệt là sau kỳ nghỉ Tết nguyên đán. Bạn có thể tận dùng thời điểm này để xin nghỉ việc, thị trường thiếu nhân lực nên việc tìm kiếm công việc mới cũng sẽ dễ dàng hơn. Hãy tránh nhảy việc khi thị trường lao động ẩm đạm, khó khăn trong việc tìm công việc mới.

Bạn không còn hài lòng với công việc hiện tại

Nếu bạn không hài lòng với công việc hiện tại, bạn có thể cân nhắc nhảy việc để tìm kiếm môi trường phù hợp hơn. Hãy đặt ra các câu hỏi cho bản thân mình như: Mình còn có thể học được gì ở công việc này? Mình có đang “dậm chân tại chỗ” khi công việc cứ lập đi lập lại? Công ty liệu còn có thể giúp mình phát triển những kỹ năng mình đang thiếu hay không? Nếu các câu trả lời đều không theo hướng tích cực thì đấy là lúc bạn nên nhảy việc.

Bạn đang có những kế hoạch, định hướng mới cho tương lai

Bạn đang có những kế hoạch, định hướng mới cho tương lai

Trải qua thời gian làm việc tại công ty, bạn nhận thấy mình đã có những định hướng, mục tiêu khác cho tương lai mà công việc hiện tại không đủ đáp ứng thì hãy cứ mạnh dạn nhảy việc. Tuy nhiên, bạn cũng có thể chia sẻ những mong muốn trong tương lai của mình cho cấp trên nghe, biết đâu họ hoàn toàn có thể tạo điều kiện cho bạn phát triển thì sao?

Khi có offer từ công ty khác tốt hơn

Nếu bạn đang bất mãn với công ty hiện tại, bất mãn về môi trường làm việc hoặc đồng nghiệp thì khi có offer phù hợp ngại gì không nhảy việc. Tuy nhiên, bạn cũng phải thận trọng đánh giá về các yếu tố như mức lương, phúc lợi, môi trường làm việc, cơ hội thăng tiến,… trước khi quyết định nhảy việc để không “mất cả chì lẫn chài”.

Tạo CV online miễn phí

Nhảy việc như thế nào cho KHÉO?

Nhảy việc một cách văn minh và tinh tế là điều không phải ai cũng biết. Việc nhảy việc khéo léo sẽ giúp bạn để lại ấn tượng tốt với công ty và đồng nghiệp cũ.

Thông báo với người quản lý

Lên kế hoạch cho cuộc trò chuyện với người quản lý của bạn về quyết định nghỉ việc và ý định rời đi. Thể hiện sự biết ơn với công ty và cơ hội đã được cung cấp, và giải thích lý do bạn muốn tiến xa hơn trong sự nghiệp. Hãy lựa lời khi nói về các lý do nghỉ việc chẳng hạn như “không cùng định hướng” hoặc bạn mong muốn được “trải nghiệm nhiều thứ mới mẻ hơn”.

Gửi email nghỉ việc và cảm ơn

Gửi email nghỉ việc và cảm ơn

Sau khi đã thông báo với quản lý của mình bước tiếp theo là gửi email thông báo nghỉ việc đến công ty. Nội dung email hãy ghi gõ thời gian bạn mong muốn nghỉ kèm theo lời cảm ơn đến công ty. Bạn cũng hãy thông báo đến đồng nghiệp, gửi lời cảm ơn và giữ liên lạc với họ nếu cần thiết.

Bàn giao công việc và chuyên nghiệp đến ngày cuối cùng

Đừng vì nghỉ việc mà xử lý công việc hời hợt, thiếu trách nhiệm. Bạn hãy bàn giao công việc một cách chi tiết nhất có thể để người vào sau có thể nắm bắt công việc một cách nhanh chóng.

Tóm lại

Trên đây là những chia sẻ cơ bản về cách nhảy việc chuyên nghiệp cũng như thời điểm phù hợp nhất để bạn nhảy việc. Mong rằng những chia sẻ trên sẽ giúp bạn đưa ra được quyết định tốt nhất cho sự nghiệp của mình. Đừng quên truy cập TopDev để cập nhật những thông tin mới nhất về việc làm IT để hỗ trợ quá trình nhảy việc được thuận lợi và nhanh chóng bạn nhé!

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

Top 5 kỹ năng quan trọng cần trang bị trong năm 2024

Top 5 kỹ năng quan trọng cần trang bị trong năm 2024

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

Năm 2023 là một năm được mọi người nhận định là nhiều khó khăn, có thể dễ dàng thấy ở các bài báo về làn sóng sa thải, cắt giảm chi tiêu dịp Tết. 2024 được dự báo là khó khăn có thể kéo dài. Tình hình kinh tế chung là thứ chúng ta không kiểm soát hoặc thay đổi được, nhưng sự phát triển của chính bản thân mỗi người chúng ta trong năm tới là thứ chúng ta có thể làm được. Dù năm tới kinh tế có thế nào thì mình tin rằng mỗi người vẫn có thể dành một phần thời gian để đầu tư cho bản thân, trang bị những kĩ năng mới để trở thành một người lao động tốt và giỏi hơn.

Từ kinh nghiệm làm công tác hướng nghiệp và nghiên cứu về chủ đề này trong nhiều năm qua, dưới đây là một số kĩ năng mình khuyến khích các bạn đọc nên dành thời gian phát triển trong năm tới.

1/ Hiểu biết và ứng dụng AI

Bạn có biết đến ChatGPT hoặc một phần mềm tương tự không? Nếu có thì tốt, nếu không thì bạn nên tìm hiểu dần.

Nếu đã biết đến ChatGPT rồi, bạn đã sử dụng ChatGPT nhiều chưa? Nếu chưa thì năm 2024 hãy bắt đầu học cách sử dụng nhiều hơn nữa.

Công nghệ AI đang len lỏi rất nhanh vào các phần mềm chúng ta sử dụng hằng ngày. Bây giờ mỗi lần viết email tiếng Anh, mình dùng ChatGPT. Cần lên ý tưởng bài blog mới, mình hỏi ChatGPT. Cần một ý tưởng hình ảnh thiết kế, mình dùng Canva AI. Họp Zoom xong mình không cần viết báo cáo vì đã có Zoom AI viết báo cáo hộ.

Việc bạn cần làm bây giờ là thử rà soát xem trong cuộc sống và công việc hàng ngày từ khi mở mắt ra đến khi đi ngủ, mình có đang ứng dụng công nghệ AI vào việc gì không? Nếu không, mình có thể thử ứng dụng làm gì không? Ví dụ, bạn có thể cho ChatGPT biết về thực trạng sức khỏe và mục tiêu sức khỏe, từ đó ChatGPT có thể lên cho bạn lịch tập và ăn uống (xem hình bên dưới).

Hiểu biết và ứng dụng AI

2/ Xây dựng nội dung trên mạng xã hội

Khi mà nhà nhà người người đang làm nội dung trên mạng xã hội thì mình nghĩ rằng bạn không nên ngồi không vì như vậy bạn đang bỏ qua rất nhiều cơ hội tốt có thể đến.

Khi nghe đến xây dựng nội dung trên mạng xã hội, bạn đừng vội và chỉ nghĩ đến việc trở thành người nổi tiếng hàng triệu người theo dõi và bị chửi mỗi ngày trên mạng. Nếu bạn không thích, bạn không cần trở thành một người như thế.

Những nội dung bạn chia sẻ có thể chỉ tiếp cận đến một nhóm vài người thực sự quan tâm. Mà nếu không ai quan tâm thì cũng không sao cả, cứ chia sẻ để tự mình đọc, vài năm sau mình đọc lại để thấy mình đã phát triển thế nào, tư duy của mình đã lớn hơn ra sao.

Học cách chia sẻ những gì mình biết cũng là một kĩ năng. Bạn có thể viết lách blog giống mình, hoặc thu Podcast (dùng ứng dụng Spotify Podcaster), hoặc làm video trên các kênh Tiktok – Youtube. Cách nào bạn cảm thấy thoải mái nhất thì làm, không cần phải bắt chước người khác.

Nội dung ban đầu mình làm có thể dở, nhưng từ từ câu từ mình sẽ gẫy gọn hơn, giọng nói Podcast sẽ hay hơn hoặc video sẽ thú vị hơn. Hãy cứ nhớ là mình chia sẻ cho mình xem trước, đừng quan tâm đến lượt like lượt view vội.

  Cách Viết Summary Trên LinkedIn Để Thu Hút Các Nhà Tuyển Dụng

  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/ Hiểu và quản trị cảm xúc, sẵn sàng thích nghi

Khi mọi thứ xung quanh từ tình hình kinh tế, chính trị đến con người thay đổi mỗi ngày, thứ chúng ta kiểm soát được là cảm xúc của chúng ta.

Thực ra dùng từ “kiểm soát cảm xúc” cũng không đúng đâu, vì nhiều khi cảm xúc đến bất chợt ngoài tầm kiểm soát của mình. Tuy nhiên mình có thể học cách hiểu về cảm xúc. Đầu tiên mình nhận diện được cảm xúc, biết khi nào mình đang vui-buồn-giận-hờn và nhiều loại cảm xúc được. Các cảm xúc đó được biểu hiện ra bên ngoài cơ thể và bên trong như thế nào. Khi hiểu được cảm xúc mình có thể suy nghĩ tiếp đến cách xử lý cảm xúc đó.

Để hiểu về cảm xúc bạn có thể cân nhắc tìm học một khóa học trực tuyến về Emotion Intelligence, hoặc một khóa học của một trung tâm đào tạo tâm lý hoặc đọc một số đầu sách như theo gợi ý bên dưới:

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

4/ Ngoại ngữ thứ hai, ngoại ngữ thứ ba

học ngoại ngữ

Nói về tầm quan trọng của Ngoại ngữ có lẽ hơi thừa vì chúng ta đã đọc quá nhiều bài viết về sự quan trọng này rồi.

Nếu tiếng Anh bạn chưa đạt khoảng IELTS 5.5 hãy cố gắng đạt con số này. Đây là mức ngoại ngữ cơ bản để bạn sử dụng khi đi làm việc. Cao hơn thì càng tốt.

Nếu đã biết tiếng Anh ở mức độ cơ bản, bạn có thể cân nhắc học thêm một ngôn ngữ mới dựa trên lĩnh vực bạn đang làm, hoặc đơn giản dựa trên sở thích. Ví dụ những bạn làm kinh doanh buôn bán có thể thích tiếng Trung, các bạn làm du lịch có thể học tiếng Nhật, Hàn, hoặc như mình học tiếng Tây Ban Nha đơn giản là vì mình thích.

5/ Xây dựng mối quan hệ mới dưới nhiều hình thức khác nhau

Mình là người hướng nội, mình hiểu cảm giác của nhiều bạn đọc khi nghe đến chữ xây dựng mối quan hệ là ngại. Ngại phải đi sự kiện, nói chuyện xã giao với nhiều người.

Tuy nhiên trừ khi bạn là chuyên gia cực đỉnh trong ngành, còn nếu muốn có nhiều cơ hội và thành công trong ngành thì cần có mạng lưới quan hệ. 9/10 công việc gần nhất của mình đến từ quan hệ và người giới thiệu.

Một số cách bạn vẫn có thể mở rộng mối quan hệ qua màn hình máy tính là:

  • Kết nối với mọi người trên LinkedIn
  • Tìm một chương trình mentor và tham gia
  • Tham gia các lớp học, hội thảo trực tuyến

Chúc các bạn có một năm 2024 rực rỡ.

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

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

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

Các thuật toán tìm ước chung lớn nhất trong Java

Các thuật toán tìm ước chung lớn nhất trong Java

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

Nằm trong series học thuật toán – cấu trúc dữ liệu và giải thuật, chúng ta cùng nhau tìm hiểu các phương pháp để tìm ước chung lớn nhất, code được minh họa bằng Java.

Trước hết, chúng ta cùng nhau tìm hiểu lý thuyết trước đã nhé.

Định nghĩa ước chung lớn nhất

Trước khi hiểu ước chung lớn nhất, bạn cần phải biết ước số là gì? Đơn giản lắm, ước số của một số nguyên a là số nguyên b khi và chỉ khi số a chia hết cho số b.

Ước chung lớn nhất (GCD – Greatest Common Divisor) của hai hay nhiều số nguyên là số lớn nhất trong tập hợp ước chung.

Ngược với ước chung lớn nhất là bội số chung nhỏ nhất. Mình sẽ dành riêng bài viết sau để hướng dẫn sử dụng thuật toán để tìm bội số chung nhỏ nhất. Các bạn đón đọc nhé.

Ứng dụng thực tế của ước chung lớn nhất (UCLN)

Với nhiều ứng dụng thực tế, ước chung lớn nhất không chỉ dùng trong lĩnh vực toán học, mà cả các lĩnh vực khác nữa, liên quan đến nhiều sự vật, hiện tượng trong đời sống.

Mình lấy ví dụ minh họa nhé:

Tôi chán làm dev, bỏ về quê chăn thỏ làm giàu. Đố bạn biết tôi đang nuôi bao nhiêu con thỏ? Dữ liệu cho bạn đây: Hàng này tôi luôn bỏ ra 6 cây súp lơ, 8 củ cà rốt làm thức ăn cho chúng. Mỗi con thỏ đều được thưởng thức cả súp lơ và cà rốt. Trong đó, số lượng súp lơ và cà rốt ăn được phải bằng nhau. Tất nhiên, không được bỏ thừa bất kỳ đồ ăn nào cả. Thế mới khó chứ.

Với bài toán thực tế này, bạn chỉ cần sử dụng UCLN là giải được (Gợi ý đáp án: 2 con thỏ).

  Giải thích thuật toán Dijkstra – Tìm đường đi ngắn nhất

  Thuật toán Brute Force và bài toán Trapping Rain Water

Các thuật toán tìm ước chung lớn nhất

Để minh họa cho thuật toán tìm UCLN, chúng ta sẽ sử dụng ngôn ngữ Java cho quen thuộc.

Dưới đây là một số thuật toán tìm UCLN.

#1 – Sử dụng thuật toán vét cạn

Trong các thuật toán, có lẽ thuật toán vét cạn là thuật toán “nông dân” nhất, thủ công nhất. Mọi người hay đùa nhau, thuật toán vét cạn là thuật toán cứ tay to là thắng, khỏi cần suy nghĩ gì cả, kiểu “cần cù bù siêng năng”.

Với bài toán này, giả sử tìm UCLN của hai số nguyên (a, b). chúng ta sẽ tiến hành lặp từ 1 tới số nhỏ hơn trong hai số (a,b) và kiểm tra xem các số nguyên (a, b) có chia hết cho chỉ số index không? Chỉ số lớn nhất mà (a,b) chia hết chính là UCLN.

Cài đặt thuật toán bằng Java.

public static int gcdByBruteForce(int a, int b) {
        int gcd = 1;
        for (int i = 1; i <= a && i <= b; i++) {
            if (a % i == 0 && b % i == 0) {
                gcd = i;
            }
        }
}

Độ phức tạp của thuật toán là: O(min(a, b))

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

#2 – Tìm UCLN sử dụng thuật toán Euclid

Tìm UCLN của hai số nguyên (X,Y), giả sử x > y. Để tìm UCLN, chúng ta tiến hành chia x cho y, được phần nguyên a và số dư b (b>= 0). Ta có sơ đồ cho thuật toán Euclid như sau:

Sơ đồ thuật toán Euclid
Sơ đồ thuật toán Euclid

Cài đặt giải thuật bằng Java theo cách đệ quy.

/*
 * Java method to find GCD of two number using Euclid's method
 * @return GDC of two numbers in Java
 */
private static int findGCD(int x, int y) {
    //base case
    if(y== 0){
        return x;
    }
    return findGCD(y, x%y);
}

Nếu bạn không thích đệ quy, có thể dùng vòng lặp while như sau:

// Code from https://vntalking.com
public static int findGCD(int x, int y) {
    int temp;
    while(y!= 0) {
        temp = x % y;
        x= y;
        y= temp;
    }
    return x;
}

Độ phức tạp thuật toán: O(Log min(x, y))

#3 – Thuật toán Stein (Binary GCD)

Cuối cùng, mình muốn giới thiệu thêm thuật toán stein hay còn gọi là thuật toán Binary GCD để tìm ước chung lớn nhất của hai số nguyên dương.

Thuật toán này sử dụng phép toán số học đơn giản như dịch số, so sánh và phép trừ.

Các bước của thuật toán:

  • gcd(0, 0) = 0, gcd(n1, 0) = n1, gcd(0, n2) = n2
  • Khi cả n1 và n2 đều là số nguyên chẵn thì gcd(n1, n2) = 2 * gcd(n1/2, n2/2) vì số chẵn luôn chia hết cho 2.
  • Nếu n1 là số nguyên chẵn, còn n2 là số lẻ thì gcd(n1, n2) = gcd(n1/2, n2)
  • Nếu cả n1 và n2 là số lẻ, và n1 >= n2 thì gcd(n1, n2) = gcd((n1-n2)/2, n2).

Sau đây là cài đặt thuật toán bằng Java.

public static int gcdBySteinsAlgorithm(int n1, int n2) {
        if (n1 == 0) {
            return n2;
        }

        if (n2 == 0) {
            return n1;
        }

        int n;
        for (n = 0; ((n1 | n2) & 1) == 0; n++) {
             n1 >>= 1;
             n2 >>= 1;
        }

        while ((n1 & 1) == 0) {
             n1 >>= 1;
        }

        do {
           while ((n2 & 1) == 0) {
               n2 >>= 1;
           }

           if (n1 > n2) {
               int temp = n1;
               n1 = n2;
               n2 = temp;
           }
           n2 = (n2 - n1);
        } while (n2 != 0);

        return n1 << n;
}

Độ phức tạp thuật toán: O((log2n1)2) hoặc O((log2n2)2) tùy vào n1> n2 hay ngược lại.

Lời kết

Trên đây, mình đã giới thiệu 3 thuật toán phổ biến nhất để tìm UCLN của hai số nguyên. Trong đó, mình có minh họa bằng Java, nếu bạn thích C++ thì để lại comment bên dưới để mình chuyển sang C++ nhé.

Những thuật toán trên cũng rất hay được sử dụng trong các bài toán tìm kiếm. Rất mong bài viết này hữu ích với bạn!

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

Xem thêm:

Tham khảo ngay việc làm IT mọi cấp độ trên TopDev!

Bí quyết xây dựng “networking” để tìm việc hiệu quả?

Bí quyết xây dựng

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

Trong một số bài viết trước đây trên blog về chiến lược tìm việc, mình đã chia sẻ rằng bên cạnh kiến thức và kĩ năng chuyên môn cũng như một bản CV tốt, một bạn đang đi tìm việc nên dành thời gian để mở rộng mạng lưới quan hệ (networking) của bản thân. Tìm việc qua mạng lưới quan hệ hiệu quả hơn nhiều lần và cho công việc tốt hơn rất nhiều so với việc nộp đơn.

Vấn đề là khi nghe lời khuyên rằng phải mở rộng mạng lưới quan hệ đi, nhiều bạn biết rằng việc này quan trọng nhưng NGẠI, đặc biệt là những bạn hướng nội (giống như mình). Ngại tiếp cận người lạ, ngại nhờ vả người khác cùng nhiều cái ngại khác mà mỗi người mỗi kiểu.

Mình cũng ngại xây dựng mạng lưới quan hệ, nhưng thực tế từ trải nghiệm của bản thân và quan sát từ mọi người xung quanh mình thấy rằng việc có mạng lưới quan hệ tốt rất quan trọng. Mình trải nghiệm hơn chục công việc khác nhau từ khi ra trường đến nay, hơn nửa trong số đó là được giới thiệu hoặc ai đó biết đến mình. Mình cũng hướng nội giống nhiều bạn, bảo mình đi tham gia một sự kiện rồi bắt chuyện với người lạ xem ra có vẻ quá sức. Vì vậy bài viết này mình chia sẻ lại một số tips nhanh để mở rộng mối quan hệ, giúp các bạn bớt ngại hơn trong việc xây dựng networking.

1/ Tiếp cận qua LinkedIn

Nếu bạn ngại gặp trực tiếp và là kiểu ‘anh hùng bàn phím’ giống mình, tự tin hơn qua tin nhắn thì có một cách đó là tiếp cận và mở rộng mạng lưới quan hệ qua mạng xã hội LinkedIn. Trước khi bắt đầu mở rộng mạng lưới quan hệ trên này, bạn phải có một profile đẹp và xịn trước đã. Cũng như đời thực thôi, trông profile bạn ngon nghẻ thì người khác cũng dễ dàng chấp nhận lời mời kết bạn của bạn hơn.

Sau khi bạn đã có cho mình một profile ổn áp trên LinkedIn rồi, bạn có thể bắt đầu tìm kiếm và kết nối với những người phù hợp. Một số chiến lược kết nối bạn có thể làm đấy là:

  • Tìm trên thanh tìm kiếm [tên vị trí] hoặc [tên lĩnh vực] mà bạn đang hướng tới. Ví dụ bạn đang muốn làm nhân sự, bạn tìm [human resource] để cho ra những người đang làm công việc đó có profile LinkedIn và kết nối.
LinkedIn
  • Một cách khác là bạn tìm [tên công ty] bạn đang quan tâm, sau đó ấn vào page công ty đó, vào phần People. Tại đây bạn có thể gõ [tên vị trí] để tìm ra những người làm ở vị trí đó trông công ty đó, hoặc gõ [tên trường bạn học] để tìm ra những cựu sinh viên trường mình đang làm ở công ty đó và kết nối. Ví dụ mình tìm những người học RMIT đang làm ở Unilever quốc tế thì ra 30 người
LinkedIn

  5 bí quyết tìm việc IT cho đợt tuyển dụng đầu năm mới

  Cách Viết Summary Trên LinkedIn Để Thu Hút Các Nhà Tuyển Dụng

2/ Tiếp cận qua Mentors

Nếu bạn muốn có cơ hội xây dựng mạng lưới quan hệ với những người kiểu CEO, Managers thì có một cách là tiếp cận qua các chương trình Mentor. Ở các chương trình Mentor, những người đăng ký làm mentor thường là những người khá thành công, họ muốn chia sẻ lại cộng đồng, vì vậy tiếp cận họ cũng dễ dàng hơn. Cách làm là bạn tìm một chương trình mentor, tìm cho mình 1-2 mentors phù hợp, kết nối và kết bạn với họ, sau đó có thể nhờ họ kết nối thêm với những người khác phù hợp trong mạng lưới của họ cho bạn. Như vậy sẽ giống kiểu ‘bán hàng đa cấp’, từ một mối quan hệ nhân lên nhiều mối quan hệ khác.

Một số chương trình mentor mà bạn có thể tham khảo là:

– RMIT Career Mentoring Asia – chỉ dành riêng sinh viên RMIT, mình đang là coordinator

– Menteelogy của Ybox – có rất nhiều mentor ở nhiều lĩnh vực

– SME Mentoring – phù hợp cho các bạn nào thích khởi nghiệp

– Mentori – cũng có kha khá mentors trên này

Tham khảo việc làm Java hấp dẫn trên TopDev!

3/ Tiếp cận lại những mối quan hệ cũ qua email / tin nhắn

Nếu bạn ngại chưa dám bắt đầu xây dựng mối quan hệ với người mới thì một cách là bạn tiếp cận lại những người cũ. Người cũ có thể là thầy cô, bạn bè, sếp, đồng nghiệp cũ – bất kì ai đang đi làm cũng có khả năng giới thiệu việc làm cho bạn.

Trước khi tiếp cận thì bạn nên chuẩn bị một bản CV tốtNgoài ra bạn cũng nên biết rõ mình đang muốn tìm kiếm công việc gì, ngành nghề gì, càng cụ thể rõ ràng bao nhiêu càng tốt bấy nhiêu.

Khi bạn đã có những thông tin cụ thể, bạn có thể nhắn tin hoặc email lại những contact cũ. Cứ thẳng thắn nói về việc bạn đang tìm việc với nhu cầu như thế, nếu họ có cơ hội, hoặc biết ai có cơ hội xin hãy giới thiệu cho bạn. Chắc chắn những người quý mến bạn sẽ chẳng cảm thấy phiền nếu nhận lời ‘nhờ vả’ như vậy đâu.

Trên đây là một số tips để tạo dựng mối quan hệ phục vụ cho mục đích tìm việc, hi vọng những chia sẻ của mình sẽ có ích cho các bạn.

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

Một số thứ để nhanh vượt qua giai đoạn Junior/Fresher

Một số thứ để nhanh vượt qua giai đoạn Junior/Fresher hơn

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

Tại sao nên đọc bài này?

  • Nếu bạn đang là Junior/Fresher, mới đi làm bla bla để mau chóng giỏi hơn.

Tôi đang ở đâu và tôi cần gì?

Đầu tiên khi đi làm bạn cần phải biết rõ là mình đang ở đâu và mình đang cần gì? VD như … “Em đã học xong HTML/CSS bây giờ em muốn học xong JS luôn”

Khi đi làm cũng vậy, mình nên biết bản thân mình đang ở đâu, bao gồm kiến thức, kĩ năng và thái độ khi làm việc, với những kiến thức và kĩ năng như vậy thì mình có thể làm được công việc gì. Đồng thời ở cột mốc như vậy mình sẽ muốn làm gì tiếp theo? Có thể là code tốt hơn, ít bug hơn, clean hơn… hay xa hơn xíu là muốn trở thành leader, senior, manager,…

Tại sao phải biết rõ hai thứ đó? Vì nó sẽ giúp bạn biết bạn bắt đầu với vạch xuất phát ở đâu và đích đến của bạn là gì, tránh tình trạng kiểu như:

  • Em làm hoài mà không được tăng lương
  • Em làm hoài mà thấy mình không giỏi lên được, bữa giờ chỉ làm đi làm lại một vài thứ
Junior/Fresher
Một câu chuyện hơi buồn mà mình tình cờ thấy được
BTW, mình thấy khá vui vì bạn nhận ra level không phụ thuộc vào số năm kinh nghiệm

Để nhanh hết Junior/Fresher hơn

Đầu tiên là bạn phải trau dồi đủ kiến thức và kĩ năng để nhanh vượt qua mốc này hơn rồi, cái này cũng sẽ có cách để cho các bạn đi nhanh hơn nhưng mình xin nói ở một bài khác nhé. Bài này mình sẽ tập trung vào một số soft skill, thái độ khi làm việc mà mình thấy có ích và giúp các bạn nhanh thoát khỏi Junior/Fresher hơn thôi
  Fresher là gì? Các kỹ năng và công việc của Fresher

Tập trung vào kết quả

Cái này là đi làm và bạn không thể có được 0.5đ cho sự cố gắng như làm đại một cái mở bài trong kì thì Văn. Mọi thứ bạn làm bây giờ liên hệ trực tiếp tới kết quả bạn làm ra, nó không quan tâm bạn phải tốn bao nhiêu đêm ngủ muộn để debug, không quan tâm tới việc bạn đang ốm vẫn phải oằn mình ra làm cho xong deadline, thứ duy nhất tồn tại là kết quả thôi.

Junior/Fresher

Do đó một mindset các bạn cần phải thay đổi là tập trung nhiều hơn vào kết quả mà mình làm ra như là:

  • Xem task mình làm có giúp ích được cho feature, goal của prj/product không? Suy nghĩ xem nó giúp ích cho user như thế nào
  • Nếu gặp khó khăn không thể giải quyết thì phải hỏi ngay người support vì kết quả công việc cần đúng tiến độ chứ không phải tự mò rồi trượt deadline
  • Tôi đóng góp gì được trong team? Có ảnh hưởng gì
  • v…v

Việc mình nói “tập trung” nghĩa là bạn hãy toàn tâm với kết quả của công việc đó, đừng vì cái tôi mà cố gắng cãi một anh chị senior vì một vấn đề gì đó, hãy hỏi tại sao nên làm như vậy và nó ảnh hưởng tới kết quả ra sao

Thường mình thấy các bạn mới (ngay cả mình hồi xưa) có trải nghiệm khá fun là dành cả 2-3 ngày làm một task gì đó, khoe với team xong rồi bị một anh senior vào feedback và đưa ra hướng giải quyết gọn gàng, đơn giản hơn, nhiều khi là không cần làm task đó nữa. Nhưng vì đã tốn khá nhiều thời gian cho nó nên cực kì tiếc khi nhận negative feedback như vậy hay là bị xóa đi những dòng code thân thương.

Hãy cố gắng tách bạch ra hai thứ khi làm việc: Quá trình và kết quả. Quá trình thì hãy toàn tâm cho nó, khi có kết quả thì hãy suy nghĩ lại xem mình có thể làm gì tốt hơn?

  Các cấp bậc: Fresher, Junior, Senior là gì?

  Học như thế nào là đủ để có thể đi thực tập/fresher anh/bạn/em ơi ?

Quy trình khi nhận việc

Don’t: Nhận task → Đọc sơ → Làm → Nhận feedback sai, hoặc code thiếu case, hoặc bug → Buồn → trầm cảm

✅ Do: Nhận task → Đọc kĩ càng → Suy nghĩ giải pháp → Clarify một số case có thể chưa được mô tả rõ ràng → Confirm giải pháp với một senior (trong case bạn thấy task này khá lớn và fuk tạp) → Code → Nhận feedback → Sửa → Release

Do các bạn đang là Junior/Fresher nên việc nhận feedback tệ là chuyện diễn ra khá là phổ biến (em làm cái này sai rồi, em làm cái này thiếu rồi, còn case này em handle chưa?,…) do đó việc mình suy nghĩ về task trước, confirm lại với PM và Senior sẽ giúp các bạn bớt nhận lại những feedback tiêu cực, đồng thời cũng giúp các bạn suy nghĩ kĩ càng về task cần làm hơn. Ngoài ra các anh chị đó còn giúp bạn phát hiện ra những chỗ còn thiếu, nhưng unseen issue nếu implement giải pháp đó.

Quy trình khi nhận việc

Thật ra cái process ở trên sẽ được apply mọi ở mọi level nhưng mình thấy các bạn Junior/fresher thì chưa biết tới hoặc chưa thấy nó hiệu quả. Thực tế khi đi làm bạn sẽ gặp phải những vấn đề khá chung chung và không có đáp số riêng như hồi còn đi học, do đó bạn sẽ phải là người làm rõ đề bài, đưa ra giải pháp, đáp số và do đó, quá trình làm rõ đề bài gần như là quá trình quan trọng nhất.

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

Làm bài tập về nhà

Khi bắt đầu làm một thứ gì đó là lần đầu, hoặc nó khá lớn hay quan trọng hay đảm bảo mình đã làm bài tập về nhà cho nó.

Ví dụ khi lần đầu được giao một công việc mới, hay tự search google xem công việc đó là như thế nào, đối với context trong công ty, dự án thì apply ra sao rồi đi confirm với một người hướng dẫn mình.

Làm bài tập về nhà
Đi làm không cấm bạn mang phao

Khi gặp một vấn đề gì nan giải, hay đảm bảo bạn dành đủ thời gian để tự tìm hiểu về vấn đề đó như thế nào, có các cách giải quyết gì, kết quả công việc đó ảnh hưởng tới ai

Bằng việc do homework, các bạn sẽ có cái nhìn toàn diện hơn về vấn đề mà mình cần giải quyết, và thường là kiểu gì bạn sẽ tìm ra được một vài đáp án nhưng bạn không biết đáp án nào phù hợp. Do đó bạn sẽ có thể biết được pros/cons của từng giải pháp và dựa vào kinh nghiệm của các anh chị đi trước để có một giải pháp ok nhất.

Hãy biến bản thân thành một version độc lập nhất có thể, vì sẽ tới lúc bạn chả thể hỏi ai cả và bạn là người duy nhất chịu trách nhiệm cho quyết định của bạn

Giao tiếp hiệu quả

Cái này thì mình cũng đã có một bài riêng cho nó rồi, và vì nó quan trọng nên mình nhắc lại trong đây.

Biết luật chơi

Hãy tập quan sát khi bạn bắt đầu tham gia vào một công ty, một team.

  • Hãy em coi anh leader thường làm gì? Vấn đề mà anh ấy quan tâm là gì?
  • Xem coi anh backend thường nhận task như thế nào? Clarify task làm sao
  • Coi xem bạn bên Design hay thường vẽ theo parttern gì?
  • Có ông nào đi làm thì gáy to nhưng lúc làm không ra gì?
  • v…v

Bằng việc tập quan sát mọi thứ, bạn biết được mối quan tâm, hay lọ ngại của từng phòng ban là gì, từ đó sau này sẽ giúp ích cho bạn hơn khi phải làm việc với những bên liên quan như vậy

Junior/Fresher

Bạn tham gia vào một team, một công ty nghĩa là bạn đang là một bánh răng chạy trong bộ máy đó, việc bạn biết các bánh răng khác hoạt động và lắp ghép như thế nào sẽ giúp bạn tự mài dũa bánh răng của bản thân cho phù hợp hơn với bộ máy đang vận hàng

Tổng kết

Junior/Fresher

Khó không? Khó! Cái gì cũng thiếu, cái gì cũng không biết, cái gì làm cũng bị chê nhưng cuộc sống là vậy. Hồi mình mới đi làm mình cũng bị vậy, cũng buồn, cũng chầm kẻm, nhưng kiểu gì thì cũng vượt qua thôi. Đó là lý do mình viết bài này để các bạn bớt khổ hơn xíu.

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

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

Xem thêm việc làm IT hàng đầu hot nhất trên TopDev

Đón Tết Giáp Thìn, Nhận quà Xịn Mịn

Nhân dịp Tết Giáp Thìn, TopDev mang đến chương trình ‘Đón Tết Giáp Thìn, Nhận Quà Xịn Mịn‘ với những phần quà hấp dẫn. Hãy cùng TopDev tận hưởng không khí rộn ràng của mùa Xuân, và nhận ngay những món quà đặc biệt để khởi đầu năm mới với nhiều niềm vui, thành công và sự nghiệp tấn tới.

Danh sách người dùng may mắn trúng giải:

Giải Phần quà Email
Tuần 1 Nhất 1
Nhất 2
May mắn 1
May mắn 2
May mắn 3
May mắn 4
May mắn 5
May mắn 6
May mắn 7
May mắn 8
May mắn 9
May mắn 10
01 cặp vé xem phim tại rạp CGV
01 cặp vé xem phim tại rạp CGV
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
– 21***67@student.hcmute.edu.vn
– ha***02@gmail.com
– tr***63@gmail.com
– da***on@gmail.com
– nt***01@gmail.com
– la***97@gmail.com
– vm***ov@gmail.com
– bu***70@gmail.com
– ng***01@gmail.com
– ca***99@gmail.com
– ng***ti@gmail.com
– 21***95@student.hcmute.edu.vn
Tuần 2 Nhất 1
Nhất 2
May mắn 1
May mắn 2
May mắn 3
May mắn 4
May mắn 5
May mắn 6
May mắn 7
May mắn 8
May mắn 9
May mắn 10
01 cặp vé xem phim tại rạp CGV
01 cặp vé xem phim tại rạp CGV
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
– cvvq610@gmail.com
– nthieu9208@gmail.com
– nguyenduy4994@gmail.com
– tranhoaitam.123@gmail.com
– phuongnamvu17@gmail.com
– tomnguyen023@gmail.com
– danhquocksoft@gmail.com
– hoanggia29101996@gmail.com
– thanh140402@gmail.com
– luongdong059@gmail.com
– 29.hoang.10@gmail.com
– hmaiknight@gmail.com
Tuần 3 Nhất 1
Nhất 2
May mắn 1
May mắn 2
May mắn 3
May mắn 4
May mắn 5
May mắn 6
May mắn 7
May mắn 8
May mắn 9
May mắn 10
01 cặp vé xem phim tại rạp CGV
01 cặp vé xem phim tại rạp CGV
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
01 voucher Starbucks
– trananhtien124@gmail.com
– anhbang3061992@gmail.com
– loc7102010@gmail.com
– nqkhanh0109@gmail.com
– camvanmimi09@gmail.com
– phongmhp@gmail.com
– thanhlong.here@gmail.com
– ngoisaobaccuc200@gmail.com
– vietdova219@gmail.com
– phanduylinh43@gmail.com
– quocanhvuong111@gmail.com
– quynhhoa3011lk@gmail.com
Tuần 4

Kỹ thuật phân trang với PHP và MySQL

Kỹ thuật phân trang với PHP và MySQL

Bài viết được sự cho phép của tác giả Mai Đông Giang

Áp dụng kỹ thuật phân trang là một phần quan trọng với bất kỳ ngôn ngữ lập trình web nào. Phân trang với PHP và Mysql có nhiều cách làm. Thế nhưng, với các bạn mới tiếp xúc thì chắc chắn đôi lúc gặp khó khăn về cách xử lý. Trong bài này mình sẽ hướng dẫn các bạn một cách đơn giản nhất của kỹ thuật phân trang trong php kết hợp với mysql.

Phân trang giúp giảm thời gian tải cho website, nâng cao hiệu suất. Từ đó, giúp website đạt thứ hạng cao hơn về tính thân thiện người dùng.

Trong bài này, mình sẽ thao tác với table `students` có 40 dòng dữ liệu. Mỗi trang ta sẽ lấy ra và hiển thị 10 dòng dữ liệu.

Để thực hiện phân trang trong PHP chúng ta cần xác định 2 giá trị quan trọng sau:

– Số lượng bản ghi bạn mong muốn hiển thị trên 1 trang là bao nhiêu ($limit). Bài này, mình sử dụng `$limit = 10`

– Chúng ta đang có tổng cộng bao nhiêu bản ghi trong bảng dữ liệu. Từ đó ta có thể tính toán xem bao nhiêu trang sẽ hiển thị.

  Cách sử dụng hàm isset trong PHP

  Lộ trình học MySQL từ A đến Z

Câu lệnh SQL để lấy ra tổng số bản ghi trong bảng như sau:

SELECT count(*) FROM `students`

Ta sẽ lấy ra được 40 dòng.

Tính số trang sẽ hiểu thị:

$total = 40;
$limit = 10;

$pages = ceil($total / $limit);

Ở đây, mình dùng hàm `ceil` để làm tròn lên. Vì có những trường hợp `40 < $total < 50` thì ta hiển thị là 5 page. Đúng không nào?

Ứng tuyển ngay các vị trí tuyển dụng MySQL mới nhất trên TopDev

Tiếp tục với câu SQL Query phân trang

SELECT * FROM `students` LIMIT $limit OFFSET $offset

Ở đây, ta thấy có 2 biến cần được truyền vào.

  1. Biến $limit : đây là giới hạn số bản ghi sẽ lấy ra trong câu lệnh sql. Nó đồng nghĩa với số lượng bản ghi mà ta muốn hiển thị trên 1 trang.
  1. Biến $offset : xác định vị trí lấy bản ghi bắt đầu từ vị trí nào trong bảng dữ liệu.

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

Ở đây, ta sẽ để ý có 1 quy luật nhỏ thế này để có thể tính toán.

– Nếu page đầu tiên, offset page này sẽ là 0 (chúng ta lấy dữ liệu từ vị trí đầu tiên trong bảng dữ liệu)

– Page 2, offset lần này sẽ bắt đầu từ vị trí thứ 10

– Page 3, offset lần này sẽ bắt đầu từ vị trí thứ 20

– Tương tự như vậy cho đến page cuối cùng.

Chúng ta có thể thấy:

$offset = ($page - 1) * $limit;

Thông thường, biến page sẽ được truyền lên qua url. Nên bạn có thể lấy thông qua việc sử dụng hàm `$_GET[‘page’]` của PHP để lấy.

Tóm lại

Mình đã giới thiệu kỹ thuật phân trang với PHP và Mysql cơ bản, đơn giản nhất. Mình không đi vào cách code cụ thể trong php như thế nào. Như vậy, sẽ làm các bạn lười suy nghĩ để code cho chức năng hoạt động.

Hi vọng sẽ giúp bạn hiểu hơn và tự code cho mình để nhớ lâu và quan trọng là bạn có thể tự code.

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

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

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