Home Blog Page 18

Cần cải thiện kỹ năng JavaScript nào để làm React?

Cần cải thiện kỹ năng JavaScript nào để làm React?

Bài viết được sự cho phép của tác giả Bùi Thị Huyền

Một trong những điều quan trọng nhất cần hiểu về React là về cơ bản nó là JavaScript. Điều này có nghĩa là bạn càng giỏi JavaScript thì bạn càng thành công với React.

Hãy chia nhỏ 7 khái niệm cơ bản mà bạn nên biết về JavaScript để thành thạo React.

Và khi tôi nói những khái niệm này là cần thiết, ý tôi là chúng được sử dụng trong mọi ứng dụng đơn lẻ mà một nhà phát triển React tạo ra, với rất ít hoặc không có ngoại lệ.

Học những khái niệm này là một trong những điều quý giá nhất mà bạn có thể làm để tăng tốc khả năng tạo dự án React và trở thành một nhà phát triển React lành nghề, vì vậy hãy bắt đầu.

1. Khai báo hàm và Arrow Functions

Cơ sở của bất kỳ ứng dụng React nào là thành phần. Trong React, các thành phần được định nghĩa bằng cả hàm và lớp JavaScript. Nhưng không giống như các hàm JavaScript, các thành phần React trả về các phần tử JSX được sử dụng để cấu trúc giao diện ứng dụng của chúng ta.

// JavaScript function: returns any valid JavaScript type
function javascriptFunction() {
  return "Hello world";
}

// React function component: returns JSX
function ReactComponent(props) {
  return <h1>{props.content}</h1>   
}

 

Lưu ý cách viết hoa khác nhau giữa tên của các hàm JavaScript và các thành phần của hàm React. Các hàm JavaScript được đặt tên bằng cách viết hoa lạc đà, trong khi các thành phần của hàm React được viết bằng cách viết hoa pascal (trong đó tất cả các từ đều được viết hoa).

Có hai cách khác nhau để viết một hàm trong JavaScript: cách truyền thống, sử dụng từ khóa hàm, được gọi là khai báo hàm và dưới dạng Arrow Function, đã được giới thiệu trong ES6.

Cả khai báo hàm và Arrow Function đều có thể được sử dụng để viết các thành phần hàm trong React.

Lợi ích chính của các Arrow Function là tính ngắn gọn của chúng. Chúng ta có thể sử dụng một số phím tắt để viết các hàm của chúng ta nhằm loại bỏ các bản viết sẵn không cần thiết, như vậy chúng ta thậm chí có thể viết tất cả trên một dòng.

// Function declaration syntax
function MyComponent(props) {
  return <div>{props.content}</div>;
}
 
// Arrow function syntax
const MyComponent = (props) => {
  return <div>{props.content}</div>;
}
 
// Arrow function syntax (shorthand)
const MyComponent = props => <div>{props.content}</div>;

/* 
In the last example we are using several shorthands that arrow functions allow:

1. No parentheses around a single parameter
2. Implicit return (as compared to using the "return" keyword)
3. No curly braces for function body
*/

 

Một lợi ích nhỏ của việc sử dụng khai báo hàm trên các Arrow Function là bạn không phải lo lắng về các vấn đề với việc nâng cấp.

Do hoạt động lưu trữ của JavaScript, bạn có thể sử dụng nhiều thành phần hàm được tạo bằng khai báo hàm trong một tệp duy nhất theo bất kỳ thứ tự nào bạn muốn.

Tuy nhiên, các thành phần hàm được tạo bằng các Arrow Function không thể được sắp xếp theo cách bạn muốn. Bởi vì các biến JavaScript được lưu trữ, các thành phần hàm mũi tên phải được khai báo trước khi chúng được sử dụng:

function App() {
  return (
    <>
      {/* Valid! FunctionDeclaration is hoisted */}
      <FunctionDeclaration />
      {/* Invalid! ArrowFunction is NOT hoisted. Therefore, it must be declared before it is used */}
      <ArrowFunction />
    </>
}
  
function FunctionDeclaration() {
  return <div>Hello React!</div>;   
}

function ArrowFunction() {
  return <div>Hello React, again!</div>;   
} 

 

Một sự khác biệt nhỏ khác trong việc sử dụng cú pháp khai báo hàm là bạn có thể xuất ngay một thành phần từ tệp bằng cách sử dụng export default hoặc export trước khi hàm được khai báo. Bạn chỉ có thể sử dụng từ khóa export trước các Arrow Function (xuất mặc định phải được đặt trên một dòng bên dưới thành phần).

// Function declaration syntax can be immediately exported with export default or export
export default function App() {
  return <div>Hello React</div>;   
}

// Arrow function syntax must use export only
export const App = () => {
  return <div>Hello React</div>;     
}

 

2. Template Literals

Với việc bổ sung ES6, chúng tôi đã được cung cấp một dạng chuỗi mới hơn được gọi là khuôn mẫu, bao gồm hai dấu tích phía sau ` thay vì dấu nháy đơn hoặc dấu ngoặc kép.

Thay vì phải sử dụng toán tử +, chúng ta có thể kết nối các chuỗi bằng cách đặt một biểu thức JavaScript (chẳng hạn như một biến) trong một cú pháp $ {} đặc biệt:

/* 
Concatenating strings prior to ES6.
Notice the awkward space after the word Hello?
*/
function sayHello(text) {
  return 'Hello ' + text + '!';
}

sayHello('React'); // Hello React!
 
/* 
Concatenating strings using template literals.
See how much more readable and predictable this code is?
*/
function sayHelloAgain(text) {
  return `Hello again, ${text}!`;
}

sayHelloAgain('React'); // Hello again, React!

 

Điều mạnh mẽ về các ký tự mẫu là khả năng sử dụng bất kỳ biểu thức JavaScript nào trong JavaScript (tức là bất kỳ thứ gì trong JavaScript phân giải thành một giá trị) trong cú pháp $ {}.

Chúng tôi thậm chí có thể bao gồm logic có điều kiện bằng cách sử dụng toán tử bậc ba, điều này hoàn hảo để thêm hoặc xóa có điều kiện một lớp hoặc quy tắc kiểu cho một phần tử JSX nhất định:

/* Go to react.new and paste this code in to see it work! */
import React from "react";

function App() {
  const [isRedColor, setRedColor] = React.useState(false);

  const toggleColor = () => setRedColor((prev) => !prev);

  return (
    <button
      onClick={toggleColor}
      style={{
        background: isRedColor ? "red" : "black",
        color: 'white'
      }}
    >
      Button is {isRedColor ? "red" : "not red"}
    </button>
  );
}

export default App;

 

Ví dụ: khi chúng tôi sử dụng các giá trị chuỗi có thể thay đổi trong các phần tử head hoặc body trong trang web của chúng tôi:

import React from 'react';
import Head from './Head';

function Layout(props) {
  // Shows site name (i.e. Reed Barger) at end of page title
  const title = `${props.title} | Reed Barger`;  
    
  return (
     <>
       <Head>
         <title>{title}</title>
       </Head>
       <main>
        {props.children}
       </main>
     </>
  );
}

 

3. Điều kiện: &&, ||, Ternary Operator

Xét rằng React chỉ là JavaScript, rất dễ dàng hiển thị (hoặc ẩn) các phần tử JSX có điều kiện bằng cách sử dụng các câu lệnh if đơn giản và đôi khi là câu lệnh switch.

import React from "react";

function App() {
  const isLoggedIn = true;

  if (isLoggedIn) {
    // Shows: Welcome back!
    return <div>Welcome back!</div>;
  }

  return <div>Who are you?</div>;
}

export default App;

 

Với sự trợ giúp của một số toán tử JavaScript thiết yếu, chúng tôi cắt giảm sự lặp lại và làm cho mã của chúng tôi ngắn gọn hơn.

Chúng ta có thể biến đổi câu lệnh if ở trên thành câu lệnh sau, sử dụng toán tử bậc ba. Toán tử bậc ba hoạt động giống hệt như câu lệnh if, nhưng ngắn hơn, nó là một biểu thức (không phải một câu lệnh) và có thể được chèn vào bên trong JSX:

import React from "react";

function App() {
  const isLoggedIn = true;

  // Shows: Welcome back!
  return isLoggedIn ? <div>Welcome back!</div> : <div>Who are you?</div>
}

export default App;

 

Các toán tử bậc ba cũng có thể được sử dụng bên trong dấu ngoặc nhọn (một lần nữa, vì nó là một biểu thức):

import React from "react";

function App() {
  const isLoggedIn = true;

  // Shows: Welcome back!
  return <div>{isLoggedIn ? "Welcome back!" : "Who are you?"</div>;
}

export default App;

 

Nếu giá trị đầu tiên (toán hạng) trong điều kiện là true, toán tử && sẽ hiển thị toán hạng thứ hai. Nếu không, nó trả về toán hạng đầu tiên. Và vì nó là giả (là một giá trị được JavaScript tự động chuyển thành boolean false) nên nó không được JSX hiển thị:

import React from "react";

function App() {
  const isLoggedIn = true;

  // If true: Welcome back!, if false: nothing
  return <div>{isLoggedIn && "Welcome back!"}</div>;
}

export default App;

 

Đối với logic này, chúng ta có thể sử dụng dấu || (hoặc) toán tử. Về cơ bản, nó hoạt động ngược lại với toán tử &&. Nếu toán hạng đầu tiên là true, toán hạng đầu tiên (falsy) được trả về. Nếu toán hạng đầu tiên sai, toán hạng thứ hai được trả về.

import React from "react";

function App() {
  const isLoggedIn = true;

  // If true: nothing, if false: Who are you?
  return <div>{isLoggedIn || "Who are you?"}</div>;
}

export default App;

 

  Quét mảng hiệu quả với hàm reduce trong Javascript

  Sử dụng map, filter và reduce trong Javascript như nào cho đúng?

4. 3 phương thức mảng: .map(), .filter(), .reduce()

Chèn các giá trị nguyên thủy vào các phần tử JSX rất dễ dàng – chỉ cần sử dụng dấu ngoặc nhọn.

Chúng ta có thể chèn bất kỳ biểu thức hợp lệ nào, bao gồm các biến chứa giá trị nguyên thủy (chuỗi, số, boolean, v.v.) cũng như các thuộc tính đối tượng chứa giá trị nguyên thủy.

import React from "react";

function App() {
  const name = "Reed";
  const bio = {
    age: 28,
    isEnglishSpeaker: true
  };

  return (
    <>
      <h1>{name}</h1>
      <h2>I am {bio.age} years old</h2>
      <p>Speaks English: {bio.isEnglishSpeaker}</p>
    </>
  );
}

export default App;

 

Điều gì sẽ xảy ra nếu chúng ta có một mảng và chúng ta muốn lặp lại mảng đó để hiển thị từng phần tử mảng trong một phần tử JSX riêng lẻ?

Đối với điều này, chúng ta có thể sử dụng phương thức .map (). Nó cho phép chúng ta chuyển đổi từng phần tử trong mảng của chúng ta theo cách chúng ta chỉ định với hàm bên trong. Lưu ý rằng nó đặc biệt ngắn gọn khi được sử dụng kết hợp với Arrow Function.

/* Note that this isn't exactly the same as the normal JavaScript .map() method, but is very similar. */
import React from "react";

function App() {
  const programmers = ["Reed", "John", "Jane"];

  return (
    <ul>
      {programmers.map(programmer => <li>{programmer}</li>)}
    </ul>
  );
}

export default App;

 

.map() giống như nhiều phương thức mảng, trả về một bản sao ngắn của mảng mà nó đã lặp lại. Điều này cho phép mảng đã trả về của nó được chuyển sang phương thức tiếp theo trong chuỗi.

.filter() như tên gọi của nó, cho phép chúng tôi lọc các phần tử nhất định ra khỏi mảng của chúng tôi. Ví dụ: nếu chúng tôi muốn xóa tất cả tên của các lập trình viên bắt đầu bằng “J”, chúng tôi có thể làm như vậy với .filter():

import React from "react";

function App() {
  const programmers = ["Reed", "John", "Jane"];

  return (
    <ul>
      {/* Returns 'Reed' */}
      {programmers
       .filter(programmer => !programmer.startsWith("J"))
       .map(programmer => <li>{programmer}</li>)}
    </ul>
  );
}

export default App;

 

Điều quan trọng là phải hiểu rằng cả .map() và .filter() chỉ là các biến thể khác nhau của phương thức mảng .reduce() phương thức này có khả năng chuyển đổi các giá trị mảng thành hầu như bất kỳ kiểu dữ liệu nào, ngay cả các giá trị không phải là mảng.

Đây là .reduce() thực hiện thao tác tương tự như phương thức .filter() của chúng tôi ở trên:

import React from "react";

function App() {
  const programmers = ["Reed", "John", "Jane"];

  return (
    <ul>
      {/* Returns 'Reed' */}
      {programmers
        .reduce((acc, programmer) => {
          if (!programmer.startsWith("J")) {
            return acc.concat(programmer);
          } else {
            return acc;
          }
        }, [])
        .map((programmer) => (
          <li>{programmer}</li>
        ))}
    </ul>
  );
}

export default App;

 

5. Thủ thuật đối tượng: Property Shorthand, cơ cấu hủy, toán tử Spread

Giống như mảng, các đối tượng là một cấu trúc dữ liệu mà bạn cần phải hiểu khi sử dụng React.

Đây là viết tắt thuộc tính đối tượng:

const name = "Reed";

const user = {
  // instead of name: name, we can use...
  name
};

console.log(user.name); // Reed

 

Cách tiêu chuẩn để truy cập thuộc tính từ một đối tượng là sử dụng ký hiệu dấu chấm. Tuy nhiên, một cách tiếp cận thậm chí còn thuận tiện hơn là cấu trúc đối tượng. Nó cho phép chúng tôi trích xuất các thuộc tính dưới dạng các biến riêng lẻ cùng tên từ một đối tượng nhất định.

Có vẻ như bạn đang viết ngược lại một đối tượng, đó là điều làm cho quá trình trở nên trực quan. Nó dễ sử dụng hơn nhiều so với việc phải sử dụng tên đối tượng nhiều lần để truy cập mỗi khi bạn muốn lấy một giá trị từ nó.

const user = {
  name: "Reed",
  age: 28,
  isEnglishSpeaker: true
};
 
// Dot property access
const name = user.name;
const age = user.age;
 
// Object destructuring
const { age, name, isEnglishSpeaker: knowsEnglish } = user;
// Use ':' to rename a value as you destructure it

console.log(knowsEnglish); // true

 

Bây giờ nếu bạn muốn tạo các đối tượng từ những đối tượng hiện có, bạn có thể liệt kê từng thuộc tính một, nhưng điều đó có thể lặp đi lặp lại.

Thay vì sao chép các thuộc tính theo cách thủ công, bạn có thể trải tất cả các thuộc tính của một đối tượng vào một đối tượng khác (khi bạn tạo nó) bằng cách sử dụng toán tử trải đối tượng:

const user = {
  name: "Reed",
  age: 28,
  isEnglishSpeaker: true
};

const firstUser = {
  name: user.name,
  age: user.age,
  isEnglishSpeaker: user.isEnglishSpeaker
};

// Copy all of user's properties into secondUser 
const secondUser = {
  ...user  
};

 

Điều tuyệt vời về đối tượng là bạn có thể rải bao nhiêu đối tượng thành một đối tượng mới tùy thích và bạn có thể sắp xếp chúng như thuộc tính. Nhưng lưu ý rằng các thuộc tính đến sau có cùng tên sẽ ghi đè các thuộc tính trước đó:

const user = {
  name: "Reed",
  age: 28
};

const moreUserInfo = {
  age: 70,
  country: "USA"
};

// Copy all of user's properties into secondUser 
const secondUser = {
  ...user,
  ...moreUserInfo,
   computer: "MacBook Pro"
};

console.log(secondUser);
// { name: "Reed", age: 70, country: "USA", computer: "Macbook Pro" }

 

Việc làm Javascript lương cao trên TopDev

6. Promises + Async/Await Syntax

Hầu như mọi ứng dụng React đều bao gồm mã không đồng bộ – mã mất một khoảng thời gian không xác định để được thực thi. Đặc biệt nếu bạn cần lấy hoặc thay đổi dữ liệu từ API bên ngoài bằng cách sử dụng các tính năng của trình duyệt như API tìm nạp hoặc axios thư viện bên thứ ba.

Promises được sử dụng để giải quyết mã không đồng bộ để làm cho nó phân giải như mã đồng bộ, bình thường mà chúng ta có thể đọc từ trên xuống dưới.

Promises truyền thống sử dụng lệnh gọi lại để giải quyết mã không đồng bộ của chúng tôi. Chúng tôi sử dụng lệnh gọi lại .then() để giải quyết các promises đã được giải quyết thành công, trong khi chúng tôi sử dụng lệnh gọi lại .catch() để giải quyết các lời hứa phản hồi có lỗi.

Đây là một ví dụ thực tế về việc sử dụng React để tìm nạp dữ liệu từ API GitHub của tôi bằng cách sử dụng API Tìm nạp để hiển thị hình ảnh hồ sơ của tôi. Dữ liệu được giải quyết bằng promises:

/* Go to react.new and paste this code in to see it work! */
import React from 'react';
 
const App = () => {
  const [avatar, setAvatar] = React.useState('');
 
  React.useEffect(() => {
    /* 
      The first .then() lets us get JSON data from the response.
      The second .then() gets the url to my avatar and puts it in state. 
    */
    fetch('https://api.github.com/users/reedbarger')
      .then(response => response.json())
      .then(data => setAvatar(data.avatar_url))
      .catch(error => console.error("Error fetching data: ", error);
  }, []);
 
  return (
    <img src={avatar} alt="Reed Barger" />
  );
};
 
export default App;

 

Thay vì luôn cần sử dụng các lệnh gọi lại để phân giải dữ liệu của chúng ta từ một lời hứa, chúng ta có thể sử dụng một cú pháp được làm sạch trông giống với mã đồng bộ, được gọi là cú pháp async / await.

Các từ khóa async và await chỉ được sử dụng với các hàm (các hàm JavaScript thông thường, không phải các thành phần hàm React).

Để sử dụng chúng, chúng ta cần đảm bảo rằng mã không đồng bộ của chúng ta nằm trong một hàm được bổ sung thêm từ khóa async. Giá trị của bất kỳ lời hứa nào sau đó có thể được giải quyết bằng cách đặt từ khóa await trước nó.

/* Go to react.new and paste this code in to see it work! */
import React from "react";

const App = () => {
  const [avatar, setAvatar] = React.useState("");

  React.useEffect(() => {
    /* 
	  Note that because the function passed to useEffect cannot be async, we must create a separate function for our promise to be resolved in (fetchAvatar)
    */
    async function fetchAvatar() {
      const response = await fetch("https://api.github.com/users/reedbarger");
      const data = await response.json();
      setAvatar(data.avatar_url);
    }

    fetchAvatar();
  }, []);

  return <img src={avatar} alt="Reed Barger" />;
};

export default App;

 

Chúng tôi vẫn sử dụng .catch() và khi chúng tôi gặp lỗi, chẳng hạn như khi chúng tôi nhận được phản hồi từ API của mình nằm trong phạm vi trạng thái 200 hoặc 300:

/* Go to react.new and paste this code in to see it work! */
import React from "react";

const App = () => {
  const [avatar, setAvatar] = React.useState("");

  React.useEffect(() => {
    async function fetchAvatar() {
      /* Using an invalid user to create a 404 (not found) error */
      const response = await fetch("https://api.github.com/users/reedbarge");
      if (!response.ok) {
        const message = `An error has occured: ${response.status}`;
        /* In development, you'll see this error message displayed on your screen */
        throw new Error(message);
      }
      const data = await response.json();

      setAvatar(data.avatar_url);
    }

    fetchAvatar();
  }, []);

  return <img src={avatar} alt="Reed Barger" />;
};

export default App;

 

7. ES Modules + Import / Export syntax

ES6 đã cho chúng tôi khả năng dễ dàng chia sẻ mã giữa các tệp JavaScript của riêng chúng tôi cũng như các thư viện của bên thứ ba bằng cách sử dụng ES modules.

Ngoài ra, khi chúng tôi tận dụng các công cụ như Webpack, chúng tôi có thể nhập các nội dung như hình ảnh và svgs, cũng như các tệp CSS và sử dụng chúng làm giá trị động trong mã của chúng tôi.

/* We're bringing into our file a library (React), a png image, and CSS styles */
import React from 'react';
import logo from '../img/site-logo.png';
import '../styles/app.css';
 
function App() {
  return (
    <div>
      Welcome!
      <img src={logo} alt="Site logo" />
    </div>
  );
}
 
export default App;

 

Ý tưởng đằng sau các ES modules là có thể chia mã JavaScript của chúng tôi thành các tệp khác nhau, để biến nó thành modules hoặc có thể tái sử dụng trên ứng dụng của chúng tôi.

Chúng tôi cũng có thể viết tất cả các lần exports vào cuối tệp thay vì bên cạnh mỗi biến hoặc hàm:

// constants.js
const name = "Reed";

const age = 28;

function getName() {
  return name;   
}

export { name, age };
export default getName;

// app.js
import getName, { name, age } from '../constants.js';

console.log(name, age, getName());

 

Bạn cũng có thể đặt bí danh hoặc đổi tên những gì bạn đang nhập bằng từ khóa as cho các mục nhập được đặt tên. Lợi ích của việc xuất mặc định là chúng có thể được đặt tên theo bất kỳ thứ gì bạn thích.

// constants.js
const name = "Reed";

const age = 28;

function getName() {
  return name;   
}

export { name, age };
export default getName;

// app.js
import getMyName, { name as myName, age as myAge } from '../constants.js';

console.log(myName, myAge, getMyName());

Nguồn: https://www.freecodecamp.org/news/javascript-skills-you-need-for-react-practical-examples/

Bài viết gốc được đăng tải tại viblo.asia/u/bui.thi.huyen

Xem thêm:

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

Test case là gì? Cách viết Test case hiệu quả

Test case là gì? Cách viết Test case hiệu quả

Test case là một tài liệu quan trọng trong kiểm thử phần mềm nói riêng và quá trình phát triển dự án phần mềm nói chung. Việc viết test case hiệu quả sẽ giúp tăng tính ổn định và độ tin cậy của phần mềm, quyết định trực tiếp đến sự thành công của dự án. Trong bài viết hôm nay, chúng ta cùng nhau tìm hiểu xem Test case là gìcách để viết được một test case hiệu quả nhé.

Test case là gì?

Test case – trường hợp kiểm thử là một tài liệu tập hợp các hành động được thực thi để kiểm tra, xác minh xem một chức năng của phần mềm có hoạt động chính xác với yêu cầu hay không. Một test case sẽ mô tả quá trình dữ liệu đầu vào (input), các hành động(action) hay sự kiện(event) thực hiện một cách tuần tự và kết quả mong đợi (expected result).

Test case là gì?

Mục đích và vai trò của test case trong kiểm thử phần mềm là đảm bảo rằng phần mềm hoạt động đúng như mong đợi, đáp ứng được cả yêu cầu về chức năng và phi chức năng. Một test case khi thực hiện kiểm thử có kết quả thất bại thì phần mềm/ chức năng đó được xác định là có lỗi (bugs) và cần phải được sửa lỗi trước khi đưa đến tay người dùng đầu cuối.

Thành phần của một Test case

Test case thông thường sẽ chứa các thành phần để mô tả chi tiết về cách thức kiểm thử một tính năng của phần mềm. Tùy theo công ty, tổ chức sẽ quy định template có thể khác nhau cho một test case; tuy nhiên vẫn sẽ cần đảm bảo những thành phần chính sau:

Thành phần của một Test case

1. ID test case

Giá trị duy nhất giúp xác định test case để phân biệt với các test case khác. Tùy quy định của dự án mà sẽ có cách quy ước chung đặt ID cho test case, thông thường có thể sử dụng ID dự án + ID module + số thứ tự test case.

2. Mô tả test case

Thể hiện ngắn gọn các thông tin liên quan, quan trọng nhất là mô tả mục đích của test case. Các thông tin mô tả sẽ giúp tester dễ dàng hình dung ra nội dung mà test case sẽ thực hiện.

3. Các bước của test case

Mô tả quy trình thực hiện test theo từng bước (step by step) với đầu vào (input) và đầu ra (output) của từng bước chi tiết. Đây là phần quan trọng nhất của một test case, cần có sự phân chia các bước rõ ràng và hợp lý, sẽ tốn thời gian nhất của một tester khi viết phần này.

4. Kết quả kỳ vọng

Kết quả mong muốn phần mềm, chức năng đó đạt được khi thực hiện các bước theo test case. Đây cũng chính là cơ sở để so sánh với kết quả thực tế, từ đó đưa ra kết quả kiểm thử của test case là Pass hay Fail.

5. Kết quả thực tế

Kết quả kiểm thử, chứa thông tin chi tiết về hiệu suất và độ chính xác của chương trình dưới điều kiện kiểm thử cụ thể. Kết quả thường được thể hiện cụ thể ở mỗi bước để giúp chúng ta dễ dàng so sánh giữa kết quả thực tế và kết quả kỳ vọng; để từ đó làm cơ sở cho các bước xác định và sửa lỗi nếu có sau này.

  Test plan là gì? 4 bước cần thiết để thực hiện test plan?

  Stress testing là gì? Phân biệt stress testing và load testing

Một số loại test case phổ biến

Tùy vào mục đích của việc kiểm thử cũng như theo giai đoạn của dự án mà sẽ có những loại test case tương ứng được sinh ra. 

Test case là gì?

Chúng ta có thể chia test case ra thành một số loại như sau:

  • Functionality Test cases: kiểm thử chức năng
  • User Interface Test cases: kiểm thử giao diện người dùng
  • Performance Test cases: kiểm thử hiệu suất
  • Integration Test cases: kiểm thử tích hợp
  • Usability Test cases: kiểm thử tính khả dụng
  • Database Test cases: kiểm thử cơ sở dữ liệu
  • Security Test cases: kiểm thử bảo mật
  • User Acceptance Test cases: kiểm thử chấp nhận người dùng

Cách để viết một test case hiệu quả

Để tạo ra được bộ test case hiệu quả, team kiểm thử của dự án cũng cần phải có bước lên kế hoạch và thiết kế test case một cách chi tiết, đầy đủ. Một bộ test case hiệu quả cần đảm bảo rằng tất cả các chức năng của phần mềm trong yêu cầu đều được kiểm tra với số lượng test case ít nhất có thể, tránh việc gây lãng phí thời gian kiểm thử.

Cách để viết một test case hiệu quả

Một số bước dưới đây sẽ giúp bạn lên kế hoạch, thiết kế và thực hiện viết test case một cách hiệu quả hơn:

  • Đặt ra mục tiêu và tiêu chuẩn cụ thể cho test case: dựa vào nhu cầu và mong muốn của khách hàng, tester xác định được mục đích của test case là đảm bảo việc phần mềm sẽ có khả năng đáp ứng được những yêu cầu trên một cách tốt nhất.
  • Đảm bảo hiệu suất kiểm thử: một test case đưa ra phải xác định được chức năng của module mà test case đó sẽ thực hiện kiểm thử; các thành phần trong module sẽ tương tác với nhau thế nào; từ đó xây dựng kịch bản phù hợp đảm bảo rằng các thành phần đã được kiểm tra qua.
  • Hãy lưu ý đến yêu cầu phi chức năng: các yêu cầu phi chức năng là điều thường dễ bị đội phát triển bỏ qua trong quá trình viết code. Vì vậy việc mô tả trong test case là điều cần thiết giúp phần mềm đáp ứng được nhu cầu của người dùng một cách chính xác.
  • Chuẩn bị điều kiện tiền đề: đây là yếu tố kiên quyết để những người thực hiện có thể kiểm thử đúng test case mà bạn mô tả, vì vậy hãy chuẩn bị và ghi rõ các bước cần thiết.
  • Đặt tên cho test case: Tên của test case cần nêu lên rõ mục tiêu của nó, đảm bảo dễ hiểu và phù hợp với mục đích.
  • Mô tả các bước kiểm thử: hãy đặt mình là người đọc và làm theo các bước trong mô tả, bạn cần ghi rõ các thông tin cần thiết để đảm bảo rằng mọi người (bao gồm cả tester, developer hay cả khách hàng) cũng đều dễ dàng làm theo.
  • Xác định rõ và đủ kết quả mong đợi: kết quả mong đợi cần thể hiện chi tiết theo từng bước. Kết quả cuối cùng cần có sự chính xác về số liệu nhất là với các kiểm thử liên quan đến hiệu năng hay có ràng buộc về dữ liệu.
  • Kiểm tra và sắp xếp lại test case: cuối cùng khi đã viết được một số lượng test case nhất định, hãy kiểm tra và sắp xếp lại chúng một cách hợp lý; đồng thời có những công cụ giúp theo dõi việc chỉnh sửa, cập nhật trong tương lai.

Kết bài

Hy vọng bài viết này giúp các bạn không chỉ là tester mà còn là những bạn tham gia trực tiếp vào team phát triển phần mềm, có thể nắm được test case là gì, các thành phần của test case cũng như cách để viết một test case hiệu quả. Điều này sẽ giúp đỡ chúng ta rất nhiều trong quá trình làm việc xây dựng và phát triển phần mềm, đáp ứng đúng và đủ yêu cầu từ khách hàng. 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:

Xem ngay tin đăng tuyển lập trình viên đãi ngộ tốt trên TopDev

Ngoài CV, có thể thêm cái gì để tăng cơ hội được gọi phỏng vấn?

tăng cơ hội được gọi phỏng vấn

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

Như các bạn đã biết (hoặc chưa biết), để ứng tuyển cho một công việc thì ta cần phải gửi CV/Resume và đôi khi kèm theo cả Cover Letter. Với những công việc không quá nhiều cạnh tranh, ở công ty be bé, thì một CV chuẩn cả nội dung lẫn hình thức sẽ có cơ hội được gọi đi phỏng vấn rất là cao. Tuy nhiên nếu bạn đang ứng tuyển cho các công ty lớn, kiểu các tập đoàn đa quốc gia, đại sứ quán, vị trí Manager, Executive các thứ thì có thể gửi mỗi CV không là chưa đủ. Ứng tuyển vào các vị trí đó có rất rất nhiều các bạn giỏi, vậy nên bên cạnh việc CV phải thật nổi bật, ta nên cố gắng có thêm một vài cách khác để gây ấn tượng. Dưới đây là một số cách mà mình đã tư vấn cho các bạn khách hàng của mình sử dụng để ứng tuyển thành công:

1) Có một portfolio cá nhân

Portfolio cá nhân là nơi tổng hợp lại chi tiết các sản phẩm ta đã làm, hình ảnh video dự án mà ta đã tổ chức. Vì CV chỉ gói gọn trong 1-2 trang giấy thôi nên đôi lúc không lột tả hết được sự hoành tráng của những thứ ta đã làm. Thế nên mới cần có portfolio đi kèm.

Portfolio hiện tại mình thấy đơn giản nhất có 2 cách, 1 là làm portfolio trên Powerpoint sau đó xuất ra file PDF và gửi cho nhà tuyển dụng. Phương án 2 là ta tạo một trang web cá nhân trên WordPress và cho link vào trong CV, như vậy nhà tuyển dụng khi ấn vào link sẽ biết thêm rất nhiều thông tin về ta.

Portfolio đặc biệt quan trọng nếu các bạn đang quan tâm đến lĩnh vực Marketing, portfolio có thể là tập hợp các bài viết đã viết hoặc đơn giản là giới thiệu về bản thân và có CV chẳng hạn. Ví dụ:

portfolio cá nhân

portfolio cá nhân

Các bạn có thể đọc thêm bài cách tạo website cá nhân ở đây để tự làm portfolio. Dễ lắm không khó đâu.

2) Giải quyết vấn đề cho công ty

Nếu bạn cảm thấy CV và Cover Letter của bản thân mình không nổi bật lắm và thật sự mong muốn được vào làm việc ở một tổ chức/ vị trí nào đó, mình khuyên bạn nên làm một tài liệu giải quyết vấn đề cho công ty. Tuỳ theo vị trí mà công ty đang tuyển là gì mà bạn có thể soạn ra một bản tài liệu các phương án giải quyết và công việc bạn có thể làm để giải quyết vấn đề đó.

Ví dụ cụ thể, có một hãng quần áo lớn trên thế giới chuẩn bị mở chi nhánh tại Việt Nam và đang cần tuyển vị trí Marketing. Cô bạn mình bên cạnh việc chuẩn bị CV và Cover Letter thật đẹp và thật hay, bạn ấy chuẩn bị thêm một bản phân tích thị trường thời trang tại Việt Nam hiện tại, điểm mạnh và điểm yếu của nhãn hàng đó khi vào Việt Nam, các đối thủ của họ và các cách để phát triển khi họ vào Việt Nam. Khỏi phải nói, khi nhà tuyển dụng đọc chắc chắn đã gọi cô bạn mình đi phỏng vấn liền.

portfolio cá nhân

tuyển dụng

Bây giờ lấy ví dụ đọc một bản tin tuyển dụng bên dưới nhé:

tin tuyển dụng

Đây là một vị trí thực tập nước ngoài. Nếu ta ở Việt Nam và cũng chỉ gửi CV, Cover Letter nhàng nhàng như các bạn khác, làm sao cạnh tranh nổi? Vậy bây giờ ta thử xem xem công việc ở đây là gì? Các bạn đọc qua có thể thấy ‘Web & app translation’, ‘Content Marketing’, ‘Customer satisfaction’, etc.

Vậy nếu ta thực sự đam mê công việc này và muốn gây ấn tượng với nhà tuyển dụng, ta sẽ lên ngay website, tải ngay app của họ về và thử translate ra tiếng Việt luôn. Ta cũng gửi cho họ một số nội dung content mà ta đề xuất nếu có thể được nhận cho vị trí này. Không xét đến việc ý kiến của chúng ta đã hay hay chưa, chỉ cần nhà tuyển dụng thấy bạn bỏ thời gian và công sức ra để hoàn thành việc này là họ đã yêu lắm lắm rồi.

  Chưa Có Kinh Nghiệm, Làm Thế Nào Để Cover Letter Ấn Tượng Hơn?

  Cách tạo một portfolio ấn tượng cho Product Manager

3) Viết bản kế hoạch 30 – 60 – 90 ngày

Ở một vài vị trí của các công ty lớn, đặc biệt là khi tuyển các vị trí Manager, nhà tuyển dụng thường bắt ứng viên phải viết một bản kế hoạch làm việc của họ trong 30 – 60 và 90 ngày đầu tiên của họ tại công việc đó nếu họ được nhận. Mục đích của bản kế hoạch này là để giúp nhà tuyển dụng đánh giá được bạn ở 3 thứ:

  1. Bạn có hiểu rõ công việc không?
  2. Bạn có thể hoàn thành tốt công việc này không?
  3. Bạn có phải là một người giỏi kế hoạch không?

Bản kế hoạch này rất hay, vậy tại sao chúng ta không áp dụng khi đi ứng tuyển nhỉ. Bên cạnh CV và Cover Letter, ta có thể làm thêm một bản kế hoạch 30-60-90 ngày nếu ta được nhận vào vị trí này để gửi cho nhà tuyển dụng, từ đó giúp nhà tuyển dụng thấy ta thực sự mong muốn được làm ở công việc này hơn. Thường một bản kế hoạch 30-60-90 ngày sẽ có các phần như thế này, mình copy lại nguyên bản tiếng Anh để các bạn tham khảo:

  • Introduction: An overview of what you would like to accomplish the first three months on the job.
  • 30-Day Plan/First 30 days on the job: During the first 30 days on the job, time is spent attending training, meeting team members, learning the organization’s systems and its products and services, reviewing procedures and client accounts.
  • 60-Day Plan/First 60 days on the job : Studying best practices in the industry, setting goals for the next 30 days, meeting with supervisor to gather feedback, building relationships with your colleagues, identifying potential mentors, reviewing the efficiency of company processes and procedures, visiting other department, and continuing to attend training.
  • 90-Day Plan/First 90 days on the job: Obtaining feedback on new processes and procedures, implementing new strategies and procedures, and addressing the three strategic initiatives.

Để có được một bản kế hoạch tốt, bạn cần phải nghiên cứu rất nhiều. Nên nếu đã làm thì hãy làm cho kĩ, đừng làm cho có nhé.

4) Đến thẳng công ty để nộp

Cách này hên xui và tuỳ thuộc vào sở thích của mỗi công ty nhé.

Có một khách hàng của mình gặp vấn đề là gửi hồ sơ online mãi mà không có bên nào nhận. Bất đắc dĩ mình mới bày cách là bạn ấy hãy in hồ sơ ra thật đẹp, sau đó mang thẳng đến công ty, nộp cho lễ tân hoặc phòng HR của công ty đó. Liều ăn nhiều. May sao khi bạn đến nộp thì vị trí đó chưa tuyển được người, HR cũng đang rảnh rỗi, thấy bất ngờ khi có một ứng viên đến nộp trực tiếp nên gọi vào phỏng vấn luôn. Một tuần sau thì bạn được vào làm.

Trên đây là một số cách mình khuyến khích các bạn có thể thử áp dụng nếu trong trường hợp CV và Cover Letter gửi đi mãi mà chưa hiệu quả. Tìm việc là một quá trình dài, đôi khi còn phụ thuộc cả vào may mắn nữa. Vậy nên nếu bạn đã đầu tư rất kĩ cho hồ sơ mà không nhận được phản hồi, cũng đừng nản, cứ tiếp tục cố gắng nhé. Người tốt sẽ nhận được điều tốt thôi.

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

Gợi ý 5 cách giúp bạn có cảm hứng hơn khi làm việc

Gợi ý 5 cách giúp bạn có cảm hứng hơn khi làm việc

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

Nếu ở thời điểm này chưa đổi hoặc chưa tìm được công việc mới tốt hơn, dưới đây là gợi ý 5 điều bạn có thể áp dụng vào công việc hiện tại để xem có cảm thấy vui vẻ và hạnh phúc hơn không.

1/ Tìm cơ hội chia sẻ lại kiến thức mình biết cho người khác

Nếu bạn đã đi làm trên 1 năm, mình tin bạn hoàn toàn có thể chia sẻ lại kiến thức công việc bạn đã và đang làm cho người khác. Người đó có thể là một em học sinh cấp ba, một em sinh viên hoặc một người đang muốn chuyển ngành nhưng còn thiếu thông tin. Có những việc mỗi ngày bạn làm hoàn toàn thấy bình thường nhưng với người khác là cả một chân trời kiến thức mới.

Ví dụ, một chị make-up artist chia sẻ với mình rằng công việc hàng ngày của chị trang điểm cho người nổi tiếng là rất bình thường với chị, không có gì đặc biệt, nhưng với những người mới vào nghề make-up hoặc đang tìm hiểu về nghề thì rất muốn nghe chị chia sẻ về những điều đó.

Khi bạn chia sẻ kiến thức của mình cho người khác, tự nhiên bạn sẽ cảm thấy vui hơn. Cảm giác y chang lúc bạn đi từ thiện vậy đó.

Bạn có thể chia sẻ bằng cách (1) viết bài chia sẻ trên mạng xã hội (cứ viết thôi, đừng lo đếm like hay có ai comment), (2) làm mentor cho ai đó hoặc (3) tham gia làm diễn giả, người chia sẻ cho một chương trình, sự kiện hay đơn giản là một số Podcast của ai đó.

2/ Viết lại quy trình những công việc mình đang làm

Một trong những lý do khiến một người có thể chán một công việc đó là cảm giác lặp đi lặp lại mỗi ngày đến chán ngắt. Vì mình đã quá quen với công việc đó nên cảm giác làm mà chẳng cần suy nghĩ. Tuy nhiên, với những người mới bắt đầu công việc đó thì lại không như vậy. Hãy nhớ lại thời điểm bạn mới bắt đầu công việc bạn đang làm, bạn đã bỡ ngỡ, phải tự mày mò kiến thức tự bơi như thế nào.

Bây giờ, hãy giúp người đi sau và giúp công ty một việc – viết lại quy trình công việc bạn đang làm ra giấy theo từng bước chi tiết nhất có thể. Ví dụ bạn đang làm công việc chăm sóc khách hàng trên điện thoại, quy trình hàng ngày của bạn là (1) tìm kiếm khách hàng trên những trang web nào -> (2) nhập liệu những thông tin gì vào đâu -> (3) gọi điện khách hàng thì nói gì, nếu khách hàng phản hồi lại thì trả lời thế nào -> (4) theo dõi khách hàng bao nhiêu ngày một lần, qua kênh nào…

Công việc nào cũng có thể ghi lại quy trình. Hãy tưởng tượng nếu bạn đang chỉ cho một người mới toanh làm công việc bạn đang làm, bạn sẽ viết ra từng bước như thế nào. Việc này là cách để mình tổng hợp, hệ thống hoá lại công việc mình đang làm, tìm xem có điểm nào cải thiện tốt hơn không, và cũng giúp ích cho công ty (thành thật mình thấy các công ty nhỏ rất thiếu quy trình, cần những thứ như thế này).

3/ Tìm cơ hội học tập ở chỗ làm hiện tại

Thêm một lý do nữa mình thường nghe được khi làm tư vấn hướng nghiệp cho những bạn đang chán việc đó là cảm giác “không học hỏi được gì mới” hay là “không có cơ hội học tập” trong công việc bạn đang làm. Điều này có thể đúng một phần, nếu đặc thù công việc của bạn quá dễ hoặc sếp của bạn là một người giỏi làm nhưng không giỏi hướng dẫn và truyền đạt cho nhân viên cấp dưới. Hãy thử suy nghĩ về những cách học mới dưới đây:

  • Nếu công ty có các trang thư viện, tủ sách, kênh tài nguyện – có tài liệu nào trong đó bạn có thể download về nghiền ngẫm, ngâm cứu mà khó kiếm ở ngoài hay không?
  • Công ty có ai khác giỏi ở bộ phận khác hoặc đang làm ở vị trí khác mà bạn đang quan tâm hứng thú để xin vài buổi cafe hỏi đáp về ngành đó hay không? Ví dụ bạn đang làm Sales mà quan tâm đến nhân sự, có ai trong phòng nhân sự có thể trò chuyện hay không?
  • Kĩ năng quản lý là một kĩ năng rất cần ở nhiều công việc, trong công ty hiện tại có ai bạn thấy giỏi kĩ năng quản lý để xin học hỏi từ họ hay không?
  • Bạn đã thử xin công ty hỗ trợ tiền để học các khoá học trực tiếp và trực tuyến liên quan đến lĩnh vực bạn làm hãy chưa? Nhiều công ty có thể chưa nghĩ đến việc này, nhưng nếu có thể giúp nhân viên của mình tiến bộ lên và bạn có cam kết đóng góp nhiều hơn nữa cho công ty, rất có thể bạn sẽ tiên phong cho quyền lợi này ở công ty bạn.

  Việc làm remote là gì? Top việc làm remote HOT nhất hiện nay

  Feedback là gì? Tầm quan trọng của feedback công việc và cuộc sống

4/ Khám phá tính cách của bản thân và tính cách của người khác

Một lý do khác khiến cho một người cảm thấy không hạnh phúc với công việc hiện tại là xung đột trong cách làm việc với đồng nghiệp, hoặc không hợp tính sếp. Một trong những lý do dẫn đến việc này là từ tính cách và giá trị sống khác nhau. Ví dụ dân Marketing thích mọi thứ nhanh lẹ để “bắt trend”, trong khi người làm kế toán cần cẩn thận, tỉ mỉ, có thời gian. Thế là choảng nhau.

Một trong những điều bạn có thể làm và mình thấy việc này có thể tạo sự gắn kết hơn với mọi người trong công ty đó là học về một công cụ khám phá bản thân. Thông thường mình sẽ hướng các bạn tìm hiểu công cụ Mật mã Holland, tuy nhiên bạn hoàn toàn có thể tìm hiểu một công cụ khác như Thần số học, Sinh trắc vân tay, MBTI, DISC hoặc …xem bói.

Cái gì cũng được, cốt lõi là bạn dùng công cụ đó để hiểu hơn về tính cách của bản thân mình, và hiểu hơn về tính cách của người khác. Khi bạn thấy được sự khác nhau giữa mình và người khác, bạn sẽ thông cảm hơn, ít tranh cãi hơn. Nếu bạn có khả năng truyền đạt tốt, bạn tìm hiểu xong mang đến công ty truyền đạt lại cho mọi người để tất cả mọi người hiểu nhau hơn, từ đó hạnh phúc hơn.

5/ Can đảm ngắt điện thoại, cho bản thân nghỉ ngơi ở một số thời điểm

Mình hiểu rằng mỗi công việc có tính chất khác nhau, có những công việc đòi hỏi bạn phải trực điện thoại mọi lúc mọi nơi, ví dụ như bán hàng chẳng hạn. Tuy nhiên chính vì việc chúng ta 24/7 hiện diện cho công việc cũng là một lý do khiến bạn cảm thấy burn-out, stress, mệt mỏi và không muốn tiếp tục công việc hiện tại.

Bạn không cần work-life balance kiểu 8 tiếng ở công ty và về nhà ngắt điện thoại, việc đó không khả thi với nhiều ngành nghề. Tuy nhiên mỗi ngày hãy tối thiểu có được 30 phút ngắt điện thoại không nhận các cuộc gọi, tin nhắn, hoặc mỗi tuần có được 1-2 tiếng cho việc này. Nếu bạn sợ bỏ lỡ thông tin từ ai đó, hãy đặt điện thoại ở chế độ tự động trả lời tin nhắn trong thời gian này, sau đó bạn sẽ liên hệ lại sau. Mình cho rằng 30 phút, 1-2 tiếng không gọi được bạn cũng không thực sự làm ai quá lo lắng hoặc khiến bạn ảnh hưởng quá lớn đến công việc – nếu bạn đã có thông tin rõ ràng cho mọi người rằng khung giờ đó bạn sẽ off.

Không cần nghỉ ngơi nhiều, nếu bạn thuộc loại “sạc pin nhanh”. Nhưng nếu không nghỉ ngơi thì chắc chắn sẽ chết. Phải sống, mới làm và cống hiến được.

Nếu tất cả những điều trên bạn đã làm và thử và vẫn không cảm thấy vui vẻ hơn trong công việc, đây là lúc bạn có thể suy nghĩ đến việc tìm kiếm một cơ hội mới. Hãy tìm đến một người tư vấn hướng nghiệp để giúp bạn tuốt tát lại hồ sơ, tìm hiểu về thị trường lao động và sẵn sàng tìm kiếm công việc mới phù hợp hơn cho bản thâ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 Việc làm Developer hấp dẫn trên TopDev

Clean Architecture – Điều đơn giản với ý tưởng củ hành

Clean Architecture

Bài viết được sự cho phép bởi tác giả Vũ Thành Nam

Trong bài viết sự tiến hóa của kiến trúc phần mềm mình có đề cập đến loại kiến trúc này, bạn đọc có thể tìm đọc lại link ở cuối bài viết. Bài viết này mình sẽ đi sâu hơn một chút nhưng vẫn không phải dùng những thuật ngữ đao to búa lớn để diễn tả kiến trúc này, mà mình thông qua những ví dụ đơn giản nhất để bạn đọc có thể hiểu được một cách dễ dàng.

Bắt đầu nhé!

Bạn bắt đầu hình dung, một ứng dụng hay một website thường sẽ có 3 lớp thành phần chính đó là tầng giao diện, tầng xử lý nghiệp vụ business và tầng  cơ sở dữ liệu. Ba lớp ngày sẽ đi từ ngoài vào trong, thứ mà đập vào mắt bạn như bài viết này cũng không ngoại lệ, để có thể hiển thị được cho bạn đọc (client hay frontend) thì nó cần được xử lý bên phía trong hay còn được gọi với cái tên mĩ miều là backend, thế rồi chúng được lưu ở đâu đó như khi bạn lưu video hay ho trong ổ cứng của bạn. Bạn có thể bắt gặp ở đâu đó một mô hình thể hiện 3 tầng này chính là MVC (Model – View – Controller) hay MVP (Model – View – Presenter) hay MVVM (Model – View – ViewModel). Dù là mô hình nào thì nó cũng đều phân chia nhiệm vụ đảm nhận cho 3 tầng thành phần bên trên.

Nhưng có một vài lý do mà sự phát triển của mô hình 3 lớp này dần dần chuyển hóa thành mô hình cao cấp hơn. Trong bài viết kiến trúc phần mềm là để thay đổi, mình có đề cập một số nhu cầu tiến hóa của phần mềm và với kiến trúc mới này cũng không ngoại lệ.

Đầu tiên là Không phụ thuộc vào nền tảng (Independent of Frameworks). Bạn nghĩ sao khi bạn lưu một bộ phim hay trên ổ đĩa máy tính này nhưng bạn lại muốn xem chúng ở một máy tính khác, hoặc là bạn copy ra usb như ngày xưa chúng ta thường làm hoặc là bạn đưa chúng lên trên mây như hiện tại. Dù cách nào đi chăng nữa thì vấn đề bạn hướng tới là sự linh hoạt mà không phụ thuộc vào thiết bị cũng như cơ sở hạ tầng. Bạn dùng công nghệ nào, ngôn ngữ nào cho một trong 3 lớp thành phần điều này không còn quan trọng nữa.

Thứ 2 là kiểm thử dễ dàng (Testable). Phần mềm được phát triển thì phải được kiểm tra xem có lỗi hay không trước khi phát hành và việc chia tách từng lớp rõ ràng khiến việc kiểm thử dễ dàng hơn. Video trong usb của bạn không xem được, hoặc là do usb của bạn hỏng, hoặc là do máy tính bạn hỏng, hoặc là do màn hình bạn hỏng, dù cái gì hỏng đi chăng nữa thì bạn cũng dễ dàng kiểm tra các thành phần còn lại khi bạn mang qua liên kết với máy tính khác để kiểm tra một cách dễ dàng, khoanh vùng lỗi phát sinh cũng dễ dàng hơn.

Thứ 3 là không phụ thuộc vào giao diện (Independent of UI), thật may mắn khi từ khi máy tính ra đời, chúng ta không phải tiếp xúc ngay với những thế hệ đầu tiên màn hình đen xì và những dòng lệnh khô khan, thay vào đó là những màn hình windows với những click chuột, rồi dần dần nó không chỉ nằm chết tại máy của bạn nó có thể sử dụng ở bất cứ đâu thông qua giao diện web, hay giao diện mobile. Việc chia lớp thành phần View tách biệt với các thành phần còn lại giúp chúng ta có những trải nghiệm người dùng tốt hơn và dễ dàng thích ứng với mọi điều kiện thiết bị.

Thứ 4 đó là không phụ thuộc vào cơ sở dữ liệu (Independent of Database). Có thể bạn đã biết thì chúng ta có rất nhiều loại cơ sở dữ liệu được lưu trữ, cũng như nhiều loại ổ cứng hay usb hay đám mây cũng có nhiều loại như google cloud, icloud, onedrive… Vậy làm sao để ứng dụng của bạn không phụ thuộc vào chúng, mà chỉ cần tích hợp là chúng có thể chạy mượt mà. Việc tách lớp cơ sở dữ liệu riêng biệt giúp bạn làm được việc này.

Cuối cùng là không phụ thuộc vào bất kỳ bên thứ ba nào (Indenpendent of any External Agency). Bạn có nghĩ một trang thương mại điện tử có bao nhiêu hình thức thanh toán, có thể là vn-pay, có thể là momo, có thể là visa card. Dù là hình thức thanh toán nào cũng sẽ trở nên dễ dàng và có thể thay thế khi bạn làm việc trao đổi mọi thứ thông qua API (Application Programming Interface), một giao thức kết nối với các thư viện và ứng dụng khác.

Quay trở lại với kiến trúc Clean Architecture (mình xin phép không dịch vì không biết dịch sao nữa :D) mình chỉ lấy ví dụ nó như một củ hành có nhiều lớp, với các lớp đảm nhận nhiệm vụ với những tính chất được mô tả bên trên.

Clean Architecture

Bạn có thể thấy với kiến trúc này là những vòng tròn đồng tâm thể hiện các lớp thành phần như một củ hành vậy. Vậy từng lớp của củ hành như thế nào thì chúng ta cùng đi tìm hiểu tiếp nào!

Với kiến trúc Clean Architecture thì 3 lớp thành phần chính vẫn được giữ nguyên nhưng chỉ tổ chức lại thể hiện từ lõi hành ra bên ngoài vỏ bao gồm: Entity (Lớp lõi làm việc với cơ sở dữ liệu), Usecase (Lớp xử lý nghiệp vụ kết nối trao đổi dữ liệu với lớp lõi và tương tác với lớp ngoài), Interface (Lớp vỏ liên kết và kết nối với thế giới bên ngoài sau khi xử lý nghiệp vụ và có được dữ liệu sau khi xử lý), Driver (Lớp thể hiện hay lưu trữ dữ liệu)

Rồi chúng ta hãy cùng đi bóc hành từng lớp từ ngoài vào trong nhé!

Clean Architecture

Frameworks and Drivers layer

Thứ mà đập thẳng vào mắt người dùng cũng như lớp mà tiếp xúc, trao đổi với các ứng dụng khác hay trao đổi với các cơ sở dự liệu chính là đây.  Vỏ hành chính là lớp giúp chúng ta tiếp xúc với mọi thứ, có thể nó là một yêu cầu từ người dùng (request) của một trang web nào đó, có thể là một public api giúp tích hợp với một bên thứ ba hoặc hệ thống bên ngoài, có thể là một thiết bị di động như Android Apps hay Iphone Apps, có thể là một công cụ phân tích đọc dữ liệu database nào đó.

Interface Adapters layer

Đúng như tên gọi đây chính là lớp chuyển đổi dữ liệu, khi nhận được một tín hiệu nào đó từ lớp vỏ bên ngoài, lớp này có nhiệm vụ chuyển đổi những yêu cầu đó vào lớp xử lý bên trong. Hãy tưởng tượng nó như một ổ cắm đa năng vậy, nó nhận đầu vào, phân loại chúng và gửi đi những đúng nơi, đúng chỗ, đúng người xử lý, sự điều phối này giúp hệ thống có thể dễ dàng tích hợp với nhiều nơi hơn mà lớp vỏ hỗ trợ.

Nếu như lớp vỏ bên ngoài có rất nhiều nền tảng như desktop app, web app, mobile app, hệ thống bên thứ 3… thì sau khi qua lớp này, nó sẽ được quy chuẩn về một đầu vào duy nhất để hệ thống của bạn có thể xử lý chúng dễ dàng hơn. Đầu vào lúc này có thể là GraphQL, Restful, Soap, Scheduled Jobs, GUI, Odata… (kỹ thuật đặc thù một chút nhưng bạn có thể hiểu đơn giản nó là các giao thức truyền nhận dữ liệu khác nhau) chúng sẽ được xử lý thành một luồng dữ liệu mà lớp lõi bên trong có thể hiểu và xử lý được.

  Giới thiệu về JAMstack – kiến trúc phát triển web hiện đại

  #2 Lập trình Golang ăn xổi: Clean architecture

Use Case layer hay Application Logic layer

Sau khi đã được chuẩn hóa đầu vào và phân loại các vùng xử lý dữ liệu rồi thì vào đến lớp cận lõi này các nghiệp vụ đặc thù sẽ được xử lý tại đây, có thể nó là nghiệp vụ ngân hàng, có thể nó là nghiệp vụ thương mại điện tử, hay chỉ đơn giản là đếm số lượt upvote cho bài viết này. Việc xử lý nghiệp vụ ở lớp này khiến bạn dễ dàng phân loại xử lý nghiệp vụ của bạn hơn mà không phụ thuộc vào bất kỳ những yếu tố nào bên ngoài cũng như những lỗi không mong muốn từ cơ sở dữ liệu thô. Việc kiểm thử các chức năng nghiệp vụ tại lớp này cũng được dễ dàng hơn, tổ chức modular hay microservices cũng được phân chia dựa theo nghiệp vụ của lớp này.

Entities layer

Cuối cùng chính là lớp lõi domain entity, với lớp này chỉ đơn thuần là ảnh xạ (mapping) dữ liệu hay đơn giản là nhằm mục đích chứa dữ liệu thô, không phụ thuộc vào bất cứ thư viện, nền tảng, kỹ thuật, hay nghiệp vụ nào. Thô là thô, nó đảm bảo dữ liệu nguyên bản nhất để lớp cận lõi phía trên có thể có dữ liệu xử lý nghiệp vụ một cách chính xác. Đối với các công trình xanh dựng thì lớp này chính là các nguyên vật liệu xây dựng chưa qua bất kỳ công đoạn xử lý nào của một công trình như gạch đá, xi măng, sắt thép… Nó chỉ duy nhất thể hiện được là những dữ liệu nào liên quan đến nhau, phân nhóm dữ liệu, mối quan hệ cha con cũng như kiểu dữ liệu của chúng mà thôi.

Nếu bạn là người trong ngành và có căn bản một chút thì hình dưới đây sẽ giúp bạn nhận diện được những công nghệ nằm trong từng lớp nhé. Ở bài viết này mình sẽ không giải thích từng công nghệ trong hình này mà muốn mô tả một cách tổng quan hết về kiến trúc Clean Architecture.

Clean Architecture

Vậy ưu điểm nhiều thế thì kiến trúc này có nhược điểm gì không?

Tất nhiên là có nhé!

Đầu tiên là nó phức tạp, chính vì sự trừu tượng hóa quá nhiều, muốn mọi thứ không phụ thuộc vào nhau mà nó không tuân theo bất cứ quy tắc nào. Chính điều này khiến các lập trình viên khó nắm bắt và đi theo một tiêu chuẩn có sẵn như những kiến trúc cổ điển.

Tiếp nữa là không có sự định hướng cụ thể, mọi thứ đều là gián tiếp. Do muốn đa dạng hóa các lớp thành phần kiến chúng làm việc với nhau một cách gián tiếp và nếu chúng ta không kiểm tra chặn chẽ đầu vào và đầu ra của từng lớp thành phần vô tình khiến chúng trở thành lỗ hổng lớn.

Cuối cùng là nặng nề, thái hành quá nhiều lớp sẽ dễ khiến chúng ta cay mắt, khi một ứng dụng nhỏ không có nhu cầu mở rộng mà tuân theo kiến trúc này sẽ khiến chúng ta thêm vất vả nhiều hơn vì phải xây dựng rất nhiều lớp thành phần mới có thể tạo nên một tính năng đơn giản. Câu hỏi đặt ra trong trường hợp này là có thật sự cần thiết không.

Trên đây là bài viết về kiến trúc Clean Architecture với những ví dụ giúp bạn có thể nắm được một cách tổng quan nhất về kiến trúc này. Để hiểu hơn về tác giả của kiến trúc cũng như những kiến trúc nhỏ bên trong để hình thành nên kiến trúc này như hiện tại bạn có thể đọc thêm tại đây.

Còn đây là demo cho mô hình này của mình nhé! Hi vong có thể giúp bạn tham khảo một phần nào đó.

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

Xem thêm:

Cập nhật IT jobs Developer lương cao mới nhất TopDev

Manager là gì? Những kỹ năng cần có để trở thành Manager

Manager là gì

Manager là một chức vụ vô cùng quan trọng trong bất kỳ tổ chức nào. Họ giữ vai trò then chốt trong việc đảm bảo hoạt động suôn sẻ và hiệu quả của doanh nghiệp. Nhưng Manager là gì và vai trò của họ trong công ty ra sao? Hãy cùng TopDev tìm hiểu trong bài viết dưới đây.

Manager là gì?

Manager, hay quản lý, là người đứng đầu và điều hành một nhóm, một bộ phận hoặc một tổ chức. Với vai trò quản lý, họ có trách nhiệm lãnh đạo, quản lý các hoạt động hàng ngày và đưa ra các chiến lược quan trọng để đạt được mục tiêu của tổ chức.

  IT Manager Là Gì? Những Điều Bạn Cần Biết Về IT Manager

Manager là gì?

Vai trò của Manager trong công ty

Manager đóng vai trò quan trọng trong việc cân bằng các nguồn lực để phân công công việc một cách hợp lý và đạt hiệu quả cao nhất. Họ là người lên kế hoạch, phân công nhiệm vụ, đưa ra quyết định và giải quyết các vấn đề phát sinh.

Ngoài ra, Manager cũng đảm nhiệm vai trò lãnh đạo, truyền cảm hứng và định hướng cho nhân viên. Họ giúp tạo ra một môi trường làm việc chuyên nghiệp, thúc đẩy sự phát triển và hoàn thành mục tiêu của công ty.

Tham khảo tuyển dụng IT Manager

Manager là gì?

Công việc của Manager là gì?

Công việc của Manager bao gồm nhiều khía cạnh và nhiệm vụ quan trọng. Dưới đây là một số công việc phổ biến mà Manager thường thực hiện:

  • Xây dựng, quản lý và phân công nhóm để hoàn thành các dự án

Một trong những nhiệm vụ quan trọng nhất của một Manager là xây dựng và quản lý một nhóm làm việc hiệu quả. Họ phải sắp xếp và phân công công việc cho từng thành viên trong nhóm, đồng thời đảm bảo rằng mỗi người có đủ tài nguyên và hỗ trợ để hoàn thành nhiệm vụ của mình. Manager cũng phải có khả năng tạo ra một môi trường làm việc hòa đồng, khuyến khích sự hợp tác và đồng lòng giữa các thành viên trong nhóm.

  • Phân công công việc cho nhân viên một cách hợp lý 

Một Manager giỏi phải có khả năng phân tích năng lực và kỹ năng của từng nhân viên trong nhóm và từ đó tiến hành phân công công việc phù hợp cho từng cá nhân. Bằng sự hiểu biết về sở thích, khả năng và kinh nghiệm của mỗi thành viên, Manager có thể tận dụng tối đa tiềm năng của từng thành viên để hoàn thành các mục tiêu của doanh nghiệp.

  • Theo dõi tiến độ và đánh giá kết quả công việc 

Theo dõi tiến độ công việc của nhóm và đảm bảo rằng các mục tiêu và thời hạn được đáp ứng cũng là một trách nhiệm quan trọng của một Manager. Họ cần có khả năng đánh giá và đưa ra phản hồi xây dựng để cải thiện hiệu suất làm việc. Qua việc theo dõi và đánh giá, Manager có thể xác định các vấn đề và áp dụng biện pháp để giải quyết sự cố và đảm bảo chất lượng công việc.

  • Đưa ra các quyết định quan trọng và giải quyết vấn đề phát sinh

Manager thường phải đối mặt với các tình huống phức tạp và phải ra các quyết định quan trọng. Họ phải có kỹ năng phân tích các thông tin đầu vào, đánh giá tình hình để từ đó đưa ra quyết định quan trọng một cách nhanh chóng và chính xác. Ngoài ra, Manager còn phải giải quyết các vấn đề phát sinh trong quá trình làm việc và tìm ra các giải pháp hợp lý để vượt qua những thách thức.

  • Quản lý nguồn lực hiệu quả để đạt mục tiêu đề ra

Một Manager có trách nhiệm phải quản lý các tài nguyên của tổ chức một cách hiệu quả, bao gồm nguồn lực nhân lực, tài chính, vật chất và thời gian. Họ cần phải lập kế hoạch, phân bổ và sử dụng các nguồn lực này một cách thông minh để đảm bảo đạt được mục tiêu và tiết kiệm chi phí.

  Product Manager là gì? Chân dung của một Product Manager

Những kỹ năng cần có của một Manager

Ngoài các kiến thức chuyên môn và kinh nghiệm, để trở thành một Manager bạn cần có những kỹ năng cụ thể dưới đây:

  • Kỹ năng giao tiếp 

Manager cần có khả năng giao tiếp một cách hiệu quả với đồng nghiệp, nhân viên và các bộ phận liên quan khác. Việc truyền đạt thông tin một cách rõ ràng, tổ chức hợp lý và thể hiện ý kiến một cách mạch lạc rất quan trọng nhằm đảm bảo sự hiểu biết và sự đồng thuận trong tổ chức.

  • Kỹ năng lãnh đạo và quản lý 

Đây là những yếu tố quan trọng để Manager có thể đạt được mục tiêu và tạo động lực cho nhóm làm việc. Manager cần có khả năng lãnh đạo, định hướng và truyền cảm hứng để đạt được sự cam kết từ nhân viên. Quản lý hiệu quả là khả năng tổ chức, phân công và giám sát công việc của nhóm.

  • Kỹ năng giải quyết vấn đề và ra quyết định 

Một Manager cần có khả năng phân tích vấn đề, tìm kiếm thông tin, đánh giá các tùy chọn và đưa ra quyết định thông minh và đúng đắn. Manager cũng cần có khả năng giải quyết các vấn đề phát sinh trong quá trình làm việc và áp dụng các biện pháp hiệu quả để vượt qua những thách thức.

  • Kỹ năng quản lý thời gian 

Một yếu tố quan trọng để Manager có thể đảm bảo sự hiệu quả và hiệu suất trong công việc là kỹ năng quản lý thời gian. Họ cần biết ưu tiên công việc, phân chia thời gian một cách hợp lý cũng như biết cách sử dụng hiệu quả các công cụ và phương pháp quản lý thời gian để hoàn thành các mục tiêu đề ra.

  • Khả năng lập kế hoạch chiến lược 

Đây là một yếu tố quan trọng để Manager có thể định hướng và phát triển tổ chức. Một Manager cần phải có khả năng nhìn xa và xác định mục tiêu dài hạn, phân tích môi trường kinh doanh và đưa ra các kế hoạch chiến lược để đạt được mục tiêu đó. Việc lập kế hoạch chiến lược bao gồm việc xác định các bước cụ thể, phân bổ tài nguyên và thiết lập các chỉ số để đo lường tiến độ và thành công.

  • Tinh thần trách nhiệm cao 

Với tinh thần trách nhiệm cao, điều này đảm bảo rằng Manager sẽ đứng ra đảm nhận trách nhiệm của mình một cách đúng đắn và chịu trách nhiệm với những quyết định và hành động của mình.

  Product Manager được sinh ra để làm gì?

Manager là gì?

Các câu hỏi thường gặp về Manager

Câu 1. Sự khác nhau giữa Leader và Manager là gì?

Leader là người đứng đầu một nhóm, chịu trách nhiệm hướng dẫn và theo dõi tiến độ làm việc của các thành viên trong team và đảm bảo các thành viên có thể phát huy hết khả năng và hoàn thành tốt các nhiệm vụ được giao. Trong khi đó, Manager là người phân chia và giao công việc phù hợp cho cấp dưới, bao gồm cả Leader. Họ còn là người sẽ duy trì và vận hành các nguồn tài nguyên của công ty để đảm bảo kế hoạch đã được diễn ra một cách thuận lợi.
Câu 2. Mức lương của Manager là bao nhiêu?
Mức lương của Manager phụ thuộc vào quy mô công ty, ngành nghề và trình độ, kinh nghiệm. Tại Việt Nam, mức lương trung bình của Manager vào khoảng 20 – 35 triệu/năm. Ngoài mức lương cơ bản, các Manager thường có thêm các khoản thưởng, phụ cấp và phúc lợi khác từ công ty tùy theo hiệu quả công việc.

Câu 3. Làm thế nào để trở thành một Manager giỏi?
Bạn cần không ngừng học hỏi, nâng cao kỹ năng chuyên môn cũng như kỹ năng mềm. Quan trọng là luôn lắng nghe nhân viên, ghi nhận phản hồi và có tinh thần trách nhiệm cao.

Kết luận

Trở thành một Manager không chỉ đơn giản là đứng đầu và quản lý, mà còn đòi hỏi những kỹ năng lãnh đạo, quản lý nhân sự và giao tiếp tốt. Manager giữ một vị trí quan trọng trong việc xây dựng một môi trường làm việc tích cực và đạt được mục tiêu của tổ chức. Hy vọng rằng bài viết của TopDev đã cung cấp cho bạn được một cái nhìn tổng quan về công việc Manager. Hãy tiếp tục theo dõi Blog TopDev để cập nhật thêm nhiều kiến thức hữu ích về lập trình và các tips tuyển dụng hiệu quả.

Xem thêm các tin tuyển dụng IT mới nhất trên TopDev

HƯỚNG DẪN CHUẨN HÓA VÀ TẠO CV TRÊN TOPDEV

Hướng dẫn tạo CV trên TopDev

Tạo CV online dành cho lập trình viên là một trong những tính năng được phát triển bởi TopDev. Công cụ giúp developer có thể tạo CV đúng chuẩn ATS, dễ dàng quản lý và ứng tuyển các công việc nhanh chóng.

I. GIỚI THIỆU CÔNG CỤ CHUẨN HÓA VÀ TẠO CV TRÊN TOPDEV

Công cụ chuẩn hóa và tạo CV IT là một trong những công cụ hữu ích không thể bỏ qua cho các lập trình viên trên TopDev. Công cụ giúp các developer dễ dàng tạo CV chuẩn dành riêng cho mình, đồng thời có thể ứng tuyển một cách nhanh chóng, hiệu quả cho những vị trí tuyển dụng IT phù hợp. 

 

Hướng dẫn tạo CV trên TopDev

Công cụ tạo CV online dành cho IT trên TopDev được thiết kế theo chuẩn ATS, giúp người dùng tạo CV nhanh chóng, đúng chuẩn và nâng cao sự chuyên nghiệp trong mắt nhà tuyển dụng. Với công cụ này, bạn chỉ cần nhập các trường thông tin cần thiết, hệ thống sẽ tự động nhận diện và tạo cho bạn một CV ấn tượng.

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

Cụ thể hơn, hệ thống chọn lọc các thông tin tiêu chuẩn và cấu trúc thống nhất giúp nhà tuyển dụng dễ dàng đánh giá kinh nghiệm và tech stack của bạn. Các mẫu CV IT được chọn lọc kỹ càng dựa trên hơn 1.000 mẫu CV Developer nổi bật trên thế giới, ứng tuyển thành công các vị trí tại các tập đoàn công nghệ lớn Microsoft, Google, Amazon,…Chưa dừng lại ở đấy, việc tạo CV online giúp lập trình viên có thể đồng bộ quản lý CV của bạn trên tất cả các thiết bị, ứng tuyển dễ dàng mọi nơi chỉ với một click.

Tạo CV online ngay trên TopDev

II. HƯỚNG DẪN TẠO CV ONLINE TRÊN TOPDEV

Để tạo và quản lý CV trên TopDev, bạn chỉ cần thực hiện một số thao tác đơn giản, dưới đây là hướng dẫn chi tiết dành cho bạn.

Hướng dẫn tạo CV trên TopDev

1. Tạo CV

Để tạo CV trên TopDev, bạn chỉ cần thực hiện những thao tác rất đơn giản với 3 bước chính:

Bước 1: Tạo mới và điền thông tin theo mẫu

Truy cập vào công cụ tạo CV IT và thực hiện theo các bước: 

– Tạo tài khoản hoặc đăng nhập với Google hoặc Github 

– Đặt tên CV và chọn ngôn ngữ (Nếu đã nhập thông tin trước đó, bạn có thể chọn sử dụng thông tin có sẵn hoặc làm mới)

– Điền đầy đủ các trường thông tin cơ bản và thông tin khác (nếu có)

– Bật “Đang tìm việc” để tăng cơ hội tìm được việc làm phù hợp

Bước 2: Chọn mẫu CV developer ưng ý

– Chọn Xem trước và chọn mẫu ưng ý

– Chọn Lưu CV

– Xem lại CV tại “TopDev CV của tôi

Bước 3: Tìm việc làm IT và ứng tuyển trực tiếp trên TopDev

Ở bước này, bạn có thể click vào chuông để xem thêm “Việc làm phù hợp nhất dành cho bạn” và ứng tuyển hoặc tìm việc làm IT phù hợp trên TopDev.

2. Quản lý CV

Tại mục “TopDev CV của tôi”, bạn có thể điều chỉnh thông tin trên CV của mình theo nhu cầu hoặc tải CV đã được tạo về máy.

Bên cạnh đó, mục “Quản lý CV” sẽ giúp bạn kiểm tra các CV đã được tạo, bạn có thể xem, điều chỉnh, tải về hoặc xóa nhanh chóng trên TopDev. 

III. HƯỚNG DẪN CHUẨN HÓA CV TRÊN TOPDEV

Bên cạnh tính năng tạo CV online, bạn có thể chuẩn hóa CV theo chuẩn ATS trên TopDev. Theo đó, bạn chỉ cần tải mẫu CV sẵn có lên công cụ, hệ thống sẽ phát hiện và sắp xếp thông tin theo các trường thích hợp, cụ thể: 

  • Bước 1:Tải file CV của bạn lên và đợi CV được xử lý
  • Bước 2: Cập nhật thông tin mới nhất của bạn vào hồ sơ
  • Bước 3: Bắt đầu tìm việc và ứng tuyển với CV vừa được chuẩn hóa trên TopDev

Chuẩn hóa CV IT ngay trên TopDev

Hướng dẫn tạo CV trên TopDev

IV. KẾT LUẬN

Với công cụ chuẩn hóa và tạo CV online dành cho các lập trình viên trên TopDev, bạn có thể dễ dàng tạo ra những mẫu CV đúng chuẩn ATS và ứng tuyển vào các vị trí việc làm phù hợp. Bên cạnh đó, thông tin được đồng bộ trên nhiều ứng dụng giúp developer có thể ứng tuyển nhanh chóng ở bất cứ đâu, tăng sức cạnh tranh và cơ hội làm việc tại các công ty hàng đầu. 

Tìm việc làm IT nhanh chóng trên TopDev

RxJava – Thời đại lập trình Reactive programming ứng dụng Android đã tới

RxJava – Thời đại lập trình Reactive programming ứng dụng Android đã tới

Trước mình làm dự án Javascript và Nodejs, mình phải làm việc rất nhiều với tư duy hướng sự kiện. Lúc đó mình cứ nghĩ rằng có lẽ kiểu lập trình hướng sự kiện này chỉ thích hợp trên web app, hay cụ thể là Javascript mà thôi.

Với các ứng dụng Android, chúng ta đã quá quen thuộc với cách viết code tuần tự, hay còn gọi là lập trình đồng bộ. Giờ đây, với tư duy lập trình hướng sự kiện hay bất đồng bộ đó đã lan sang cả các dự án xây dựng ứng dụng Android.

Không biết do mình cổ hủ, lạc hậu hay giờ người ta mới phổ biến thư viện này. Thư viện đó chính là RxJava, một thư viện để hỗ trợ việc viết ứng dụng Android theo kiểu hướng sự kiện.

Nếu bạn đang có ý định tìm hiểu hoặc đã tìm hiểu trước đó rồi. Nhưng vẫn còn mơ hồ về RxJava thì bài viết này dành riêng cho bạn. Mình sẽ giải thích theo cách đơn giản nhất có thể để các bạn có thể hiểu rõ RxJava.

RxJava là gì?

RxJava là một thư viện dùng để viết các ứng dụng Java theo triết lý hướng sự kiện hay bất đồng bộ. Hay nói cách khác RxJava sẽ giúp cho bạn viết mã Java giống như Javascript. Về cơ bản là nó sẽ follow theo Observer Pattern.

RxJava là gì?

Code của bạn sẽ chia là 2 phần: một bên là tạo các sự kiện như click vào một button, tạo một request REST API… Phần còn lại sẽ lắng nghe và phản hồi một cách bất đồng bộ với sự kiện cụ thể đó (cập nhật View, xử lý kết quả trả về.v.v…)

RxJava có phiên bản đặc biệt cho Android gọi là RxAndroid. Về cơ bản triết lý là giống nhau, chỉ khác RxAndroid có mở rộng và hỗ trợ thêm các API của Android mà thôi.

Để các bạn dễ hiểu hơn, mình sẽ quay lại lịch sử viết mã nguồn ứng dụng Android.

Cách tiếp cận trước khi có RxJava

Nếu bạn đang làm việc trong các dự án Android thì hẳn không còn xa lạ gì tới AsyncTask. Nhiệm vụ của nó là thực hiện các tác vụ nặng dưới background, sau khi hoàn thành thì cập nhập lên UI Thread.

Nhưng ở đây có một số vấn đề:

  • Nếu cần xử lý đa luồng, quản lý nhiều AsyncTask thì thật là cơn ác mộng.
  • Không có cơ chế xử lý lỗi.
  • Dễ bị memory Leak nếu bạn tạo inner class và truyền Context không đúng cách.

Và còn nhiều vấn đề tiềm tàng khác nữa, bạn có thể đọc bài viết này: Đừng dùng AsyncTask cho tác vụ Network

Giờ đây, bạn có thể nghĩ tới RxJava, nó sẽ giải quyết các vấn đề trên cho bạn.

Dưới đây là một cách sử dụng RxJava cho một tác vụ chạy dưới background:

Observable{
        //The work you need to do
}
//thread you need the work to perform on
.subscribeOn(Schedulers.io)
//thread you need to handle the result on
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(Observer{
       //handle the result here
})

Nhìn thật là gọn gàng và sạch đẹp phải không?

Cách tiếp cận trước khi có RxJava

Như mình đã nói ở trên, RxJava tuân theo triết lý hướng sự kiện, nên tất nhiên là có thiết kế mã nguồn theo pattern là Observer Pattern.

Để hiểu bản chất RxJava, bạn cần hiểu về Observer Pattern.

Chúng ta sẽ đào sâu hơn một chút về các API của RxJava nhé.

  Android Jetpack là gì? Tại sao nên dùng Android Jetpack?

  Tìm hiểu về lớp HashMap trong Java: Các hoạt động và cách dùng

RxJava Basic: Observable, Observer

RxJava gồm hai component chính là: Observable và Observer. Và để liên kết hai component này thì có một số công cụ như: Schedulers, Operators và Subscription.

RxJava Basic: Observable, Observer

Observable

Là phần sẽ tạo ra các sự kiện. Bạn sẽ lắng nghe các sự kiện này để có hành động thích hợp. Giờ đây sẽ không còn khái niệm đợi chờ một tác vụ thực hiện xong rồi lần lượt tới các tác vụ khác.

Observer

Là những đoạn code sẽ lắng nghe Observable. Nó nhận dữ liệu từ Observable phát ra. Bạn sẽ cần phải override lại những methods để Observer làm việc.

Ví dụ các methods phổ biến:

  • onSubscribe(): Method được gọi khi một Observer đăng ký lắng nghe một Observable.
  • onNext(): Method này được gọi khi Observable bắt đầu bắn dữ liệu.
  • onError(): Nếu có bất kỳ lỗi lầm gì thì hàm onError() sẽ được gọi tên.
  • onComplete(): Được gọi khi một Observable hoàn thành tất cả các tác vụ.

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

Thực hành sử dụng RxJava trong Android.

Lý thuyết thì cũng đơn giản như vậy thôi, giờ mình sẽ cùng nhau thực hành ứng dụng RxJava vào dự án Android.

Đầu tiên, bạn cần thêm dependencies trong build.gradle

implementation "io.reactivex.rxjava2:rxjava:2.1.6"
implementation "io.reactivex.rxjava2:rxandroid:2.0.1"

Version 2.1.6 là version mới nhất tại thời điểm mình viết bài.

Dưới đây là ví dụ về in một danh sách và cập nhật vào một Adapter của một RecyclerView.

ArrayList animals = new ArrayList();
animals.add("Tiger");
animals.add("Lion");
animals.add("Elephant");Observable.just(animals)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribeWith(new Observer<ArrayList>() {
            @Override
            public void onSubscribe(Disposable d) {

            }@Override

            public void onNext(ArrayList arrayList) {
                 //handling the result
                 adapter.updateList(animals);
                 adapter.notifyDataSetChanged();
            }@Override
            public void onError(Throwable e) {
                 //error handling made simple
            }@Override
            public void onComplete() {
                 //cleaning up tasks
            }
        });

Qua đoạn code trên, bạn có thể thấy cách RxJava làm tốt hơn so với AsyncTask rất nhiều.

  • Viết code ngắn gọn hơn.
  • Không cần đến Context, điều mà chúng ta luôn muốn loại bỏ để code dễ unit hơn.
  • Có hẳn phương thức để xử lý lỗi (onError)

Tổng kết

Mình hi vọng qua bài viết, bạn sẽ biết thêm một công cụ cực kỳ hữu ích, giúp bạn phát triển ứng dụng Android tốt hơn.

Sau này khi bạn đọc nhiều về các mô hình như MVVM, MVP thì RxJava gần như là thư viện được đóng đinh để hỗ trợ bạn triển khai mô hình hiệu quả.

Cảm nhận của bạn về RxJava như thế nào? Để lại bình luận bên dưới nhé.

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

Việc làm remote là gì? Top việc làm remote HOT nhất hiện nay

Việc làm remote

Đại dịch Covid-19 đã tạo ra một bước ngoặt lớn trong cách thức làm việc trên toàn cầu. Hình thức việc làm remote đã trở nên phổ biến hơn bao giờ hết, được nhiều doanh nghiệp và người lao động nhắc đến như một giải pháp linh hoạt và tiện lợi. Mô hình này mang lại những lợi ích đáng kể như giảm chi phí văn phòng, tăng năng suất làm việc và cân bằng tốt hơn giữa công việc với cuộc sống cá nhân.

Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về khái niệm “việc làm remote là gì” và khám phá top những việc làm remote hot nhất hiện nay. Bằng cách hiểu rõ về hình thức làm việc này, bạn có thể đánh giá xem liệu mô hình làm việc từ xa có phù hợp với nhu cầu và mục tiêu nghề nghiệp của bạn hay không.

Làm remote là gì?

Làm remote là gì?

Việc làm remote, hay còn gọi là làm việc từ xa, là hình thức làm việc mà nhân viên không cần phải có mặt tại văn phòng hay cơ sở làm việc truyền thống. Thay vào đó, họ có thể thực hiện công việc từ bất kỳ nơi đâu, miễn là có kết nối internet và các công cụ số hỗ trợ làm việc từ xa.

Trong mô hình việc làm remote, nhân viên sử dụng các công nghệ như email, ứng dụng nhắn tin, phần mềm quản lý dự án, hội nghị trực tuyến,… để tương tác với đồng nghiệp, quản lý và khách hàng. Họ có thể làm việc từ nhà, quán cà phê, không gian làm việc chung hoặc bất cứ nơi nào khác.

Theo một khảo sát của Upwork năm 2022, 25% lực lượng lao động tại Mỹ sẽ làm việc từ xa trong vòng 5 năm tới. Con số này đã tăng gấp 3 lần so với trước đại dịch COVID-19. Tại Anh, theo số liệu từ Văn phòng Thống kê Quốc gia, tỷ lệ lao động làm việc từ nhà đã tăng từ 5% trước đại dịch lên mức cao nhất là 37% vào tháng 1/2022.

Những số liệu này cho thấy việc làm remote đang ngày càng trở nên phổ biến hơn trên toàn cầu, đặc biệt là sau đại dịch COVID-19 khi nhiều doanh nghiệp và nhân viên nhận ra lợi ích của mô hình làm việc linh hoạt này.

Ưu, nhược điểm khi làm việc remote là gì?

Làm việc từ xa có nhiều ưu và nhược điểm, dưới đây là một số điểm mạnh và yếu của mô hình làm việc remote:

1. Ưu điểm

  • Linh hoạt về không gian và thời gian làm việc, giúp người lao động dễ dàng cân bằng công việc với đời sống cá nhân, dành nhiều thời gian hơn cho gia đình và sở thích.
  • Tiết kiệm đáng kể các chi phí đi lại, ăn trưa và trang phục cho người lao động. Doanh nghiệp cũng giảm chi phí thuê văn phòng, trang thiết bị và các khoản phụ cấp.
  • Năng suất làm việc được cải thiện nhờ môi trường yên tĩnh, tập trung hơn tại nhà, tránh các yếu tố xao nhãng ở văn phòng.
  • Thị trường lao động được mở rộng, cho phép doanh nghiệp tiếp cận nguồn nhân lực chất lượng cao và đa dạng hơn trên toàn cầu.
  • Giảm thiểu lượng khí thải carbon từ giao thông vận tải, thân thiện với môi trường.

2. Nhược điểm

  • Khó khăn trong giao tiếp, phối hợp giữa các thành viên nhóm do thiếu tương tác trực tiếp, dễ dẫn đến hiểu lầm.
  • Môi trường làm việc tại gia đình có thể gây ra sự xao nhãng, khó tập trung cho công việc.
  • Nhân viên dễ cảm thấy cô đơn, thiếu sự kết nối với đồng nghiệp.
  • Yêu cầu về hạ tầng công nghệ như máy tính, kết nối internet ổn định và phần mềm hỗ trợ.
  • Doanh nghiệp khó quản lý, giám sát nhân viên làm việc từ xa hiệu quả.

  Vừa đi vừa code – Freelance, Remote, Hybrid hay Office Working?

  Kí sự Freelancer ở Upwork

Sự khác nhau giữa Freelancer và Job Remote là gì?

Sự khác nhau giữa Freelancer và Job Remote

Làm remote và làm freelancer đều là các hình thức làm việc không cần phải đến văn phòng trực tiếp và thường được thực hiện từ xa. Tuy nhiên, có một số điểm khác biệt quan trọng giữa chúng:

1. Mối quan hệ làm việc

  • Remote: Bạn là nhân viên toàn thời gian hoặc bán thời gian của một công ty và làm việc theo chỉ đạo của công ty đó, mặc dù có thể làm việc từ xa.
  • Freelancer: Bạn là người tự làm chủ và nhận các dự án hoặc công việc từ nhiều khách hàng khác nhau.

2. Bảo hiểm và phúc lợi

  • Remote: Bạn thường được hưởng các quyền lợi như bảo hiểm y tế, nghỉ phép, lương hưu,… từ công ty.
  • Freelancer: Bạn phải tự chịu trách nhiệm về các khoản bảo hiểm và phúc lợi của mình.

3. Quản lý thời gian

  • Remote: Bạn làm việc theo lịch trình và deadline do công ty đưa ra.
  • Freelancer: Bạn tự quyết định lịch trình và thời gian làm việc của mình.

4. Thu nhập và tính ổn định

  • Remote: Thu nhập thường ổn định hơn với mức lương cố định hoặc theo dự án.
  • Freelancer: Thu nhập không ổn định, phụ thuộc vào khả năng tìm kiếm và hoàn thành dự án.

Cả remote jobs và freelancer đều có ưu và nhược điểm riêng, phụ thuộc vào sự ưu tiên và phong cách làm việc của mỗi người.

TOP những việc làm remote được ưu chuộng nhất hiện nay

Các việc làm remote ngày nay rất đa dạng và phong phú, nhưng có một số lĩnh vực và vị trí được đặc biệt ưu chuộng. Dưới đây là một số trong số những việc làm remote phổ biến trên thị trường:

Lập trình viên

Lập trình viên là một trong những ngành nghề có nhu cầu làm remote cao nhất. Với kỹ năng lập trình tốt, bạn có thể dễ dàng tìm được việc làm remote cho các công ty trong nước và quốc tế. Nhờ sự phát triển của công nghệ và các công cụ quản lý dự án, chia sẻ mã nguồn trực tuyến, nhiều công ty công nghệ lớn như Google, Microsoft, Amazon đã cho phép nhân viên lập trình của mình làm việc từ xa một cách linh hoạt.

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

Sáng tạo nội dung (Content Creator)

Viết bài, biên tập nội dung, sáng tạo nội dung là những công việc mà bạn chỉ cần một chiếc máy tính và kết nối internet để thực hiện. Nhiều trang web tin tức, blog, tạp chí điện tử đã thuê nhân viên làm việc remote để tạo ra nội dung chất lượng. Điều này giúp họ tiếp cận nguồn nhân lực rộng lớn và tiết kiệm chi phí văn phòng.

Thiết kế đồ họa/Thiết kế website

Thiết kế đồ họa/Thiết kế website

Với sự phát triển của các công cụ thiết kế đồ họa và web trực tuyến, các designer có thể dễ dàng làm việc từ xa. Họ có thể nhận yêu cầu thiết kế từ khách hàng, hoàn thành sản phẩm và gửi qua email hoặc đăng tải trực tuyến. Nhiều công ty thiết kế, quảng cáo đã áp dụng mô hình làm việc remote để tiếp cận những nhà thiết kế tài năng trên toàn cầu.

Dịch vụ khách hàng/Hỗ trợ kỹ thuật

Để giảm chi phí và tăng hiệu quả hoạt động, nhiều công ty đã outsource dịch vụ khách hàng và hỗ trợ kỹ thuật cho nhân viên làm việc từ xa. Nhân viên hỗ trợ khách hàng có thể trả lời cuộc gọi, email hoặc trò chuyện trực tuyến từ bất cứ đâu trên thế giới, miễn là có kết nối internet ổn định.

Kế toán/tài chính

Với sự phát triển của phần mềm kế toán và tài chính trực tuyến, nhiều nhân viên kế toán và tài chính có thể làm việc từ xa. Họ có thể nhận tài liệu từ khách hàng qua email, xử lý dữ liệu và gửi kết quả lại cho khách hàng mà không cần phải đến văn phòng.

Quản lý dự án

Nhờ sự hỗ trợ của các công cụ quản lý dự án trực tuyến như Trello, Asana, Basecamp, nhiều quản lý dự án đã có thể làm việc từ xa và giám sát tiến độ dự án một cách hiệu quả. Họ có thể tổ chức các cuộc họp trực tuyến, phân công công việc và theo dõi tiến độ thực hiện từ bất cứ đâu.

Các câu hỏi thường gặp

1. Remote là nghề gì?

“Remote” không phải là một nghề mà là một cách thức làm việc. Nó chỉ cách làm việc từ xa, không phải tại văn phòng hay cơ sở của công ty.

Khi nói đến “Remote jobs” hoặc “Remote work”, điều đó có nghĩa là bạn có thể làm nhiều loại nghề nghiệp khác nhau nhưng với mô hình làm việc từ xa, thường là tại nhà hoặc bất kỳ nơi đâu có kết nối internet mà không cần phải đến văn phòng công ty.

2. Làm thế nào để tìm kiếm việc làm remote?

Bạn có thể tìm việc làm remote thông qua các trang web việc làm, tham gia nhóm trên mạng xã hội dành cho những người tìm việc làm remote. Thêm nữa, bạn có thể xây dựng thương hiệu cá nhân trên mạng xã hội giúp bạn dễ dàng thu hút sự chú ý của các nhà tuyển dụng và tăng cơ hội nhận được việc làm remote.

3. Làm thế nào để quản lý việc làm remote hiệu quả?

quản lý việc làm remote

Tạo ra một lịch làm việc hàng ngày hoặc hàng tuần để giúp bạn tổ chức công việc và thời gian hiệu quả. Sử dụng các công cụ quản lý thời gian như Google Calendar hoặc các ứng dụng quản lý công việc như Trello để theo dõi công việc và deadline.

4. Làm việc remote có ảnh hưởng gì đến cơ hội thăng tiến nghề nghiệp?

Điều này phụ thuộc vào chính sách của công ty. Một số lo ngại việc làm remote có thể hạn chế cơ hội thăng tiến do thiếu các tương tác trực tiếp. Tuy nhiên nhiều công ty cũng có chính sách thăng tiến cho nhân viên remote.

5. Dấu hiệu lừa đảo khi tìm việc remote là gì?

Khi tìm kiếm việc làm remote, cần đề phòng những dấu hiệu lừa đảo sau đây:

  • Yêu cầu đóng phí đảm bảo việc làm
  • Mô tả công việc mơ hồ hoặc phúc lợi tốt bất thường
  • Nhận việc qua trung gian
  • Yêu cầu cung cấp thông tin cá nhân nhạy cảm
  • Không có thông tin cụ thể về công ty hoặc liên hệ

Tóm lại

Bài viết này chúng ta đã tìm hiểu làm remote là gì cũng như top các việc làm remote phổ biến nhất trên thị trường hiện nay. Mô hình làm việc remote mang đến nhiều lợi ích đáng kể và cũng đặt ra nhiều thách thức cho cả người lao động và doanh nghiệp. Vì vậy, cả người lao động và doanh nghiệp cần có những điều chỉnh phù hợp để đảm bảo hiệu quả làm việc và sự phát triển bền vững trong môi trường làm việc mới.

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

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

Graphic Designer là gì? Những điều cần biết về Graphic Designer

Graphic designer là gì?

Trong thời đại 4.0 ngày nay, vai trò của người thiết kế đồ họa (Graphic Designer) ngày càng trở nên quan trọng và được đánh giá cao. Vậy, bạn có biết Graphic Designer là gì và công việc của họ là như thế nào không? Trong bài viết này, hãy cùng TopDev khám phá nhiều khía cạnh về Graphic Designer, từ công việc hàng ngày, kỹ năng cần có, cơ hội nghề nghiệp và các câu hỏi thường gặp xoay quanh công việc này.

Graphic Designer là gì? 

Graphic designer là người chuyên thiết kế và tạo ra các sản phẩm có liên quan đến hình ảnh, đồ họa và thiết kế mỹ thuật. Họ sử dụng sự sáng tạo và kỹ năng kỹ thuật để tạo ra các sản phẩm như bảng quảng cáo, hình ảnh, logo, bìa sách và nhiều sản phẩm khác.

Graphic designer là gì?

Công việc của Graphic Designer là gì?

Thông thường trên các JD (mô tả công việc) khi tuyển dụng, các công việc của một Graphic Designer bao gồm:

  • Lên ý tưởng và thiết kế các ấn phẩm truyền thông:

Bằng sự sáng tạo và kỹ năng thiết kế, những Graphic Designer đảm nhận việc tạo ra các thiết kế sáng tạo và hấp dẫn như banner, cover, infographics và các ấn phẩm khác để phục vụ cho hoạt động quảng cáo, nội dung trên website và mạng xã hội. Tất cả nhằm mục tiêu tạo ra các sản phẩm thị giác thu hút khách hàng.

  • Phối hợp với content writer:

Graphic Designer làm việc chặt chẽ với Content Writer để đảm bảo rằng thiết kế phù hợp với nội dung của blog, email marketing và các trang mạng xã hội của công ty. Họ cùng nhau tạo ra các sản phẩm thiết kế phù hợp và tương thích với thông điệp, mục tiêu của nội dung.

  • Thiết kế video giới thiệu sản phẩm và video hướng dẫn:

Ngoài việc thiết kế, chỉnh sửa các hình ảnh, Graphic Designer cũng tham gia vào quá trình thiết kế video giới thiệu hoặc video hướng dẫn sử dụng sản phẩm. Họ sử dụng kỹ năng thiết kế đồ họa và công cụ phần mềm để tạo ra các video chất lượng cao, giúp giới thiệu và hướng dẫn khách hàng về sản phẩm và dịch vụ của công ty.

  • Thiết kế các ấn phẩm truyền thông nội bộ:

Graphic designer có trách nhiệm thiết kế các ấn phẩm truyền thông nội bộ như tờ rơi, poster, slide thuyết trình, và các tài liệu nội bộ khác. Công việc này đảm bảo rằng thông điệp và hình ảnh của công ty được truyền tải một cách chuyên nghiệp và thú vị trong các hoạt động nội bộ.

  • Đảm bảo tuân thủ các nguyên tắc thiết kế và chỉnh sửa:

Để đảm bảo rằng các thiết kế tuân thủ các nguyên tắc thiết kế như sử dụng màu sắc, văn bản, hình ảnh và định dạng một cách hợp lý, Graphic Designer cũng phải thực hiện các chỉnh sửa cần thiết để đảm bảo rằng thiết kế phù hợp với yêu cầu và mục tiêu của dự án.

  Làm sao để chuyển đổi từ Graphic Design sang UX Design? (phần 1)
  Làm sao để chuyển đổi từ Graphic Design sang UX Design? (phần 2)

Graphic designer là gì?

Kỹ năng cần có ở một Graphic Designer

Graphic Designer đóng một vai trò thiết yếu trong việc xây dựng những hình ảnh chuyên nghiệp, thu hút của sản phẩm hay dịch vụ trong mắt khách hàng. Vậy, để trở thành một Graphic Designer, bạn cần có:

  • Kỹ năng chuyên môn

Về khả năng chuyên môn, để trở thành một Graphic Designer, bạn cần trang bị cho bản thân những kiến thức dưới đây:

  • Sự thành thạo về công cụ và phần mềm thiết kế: 

Graphic Designer cần có kiến thức sâu về các công cụ và phần mềm thiết kế đồ họa như Adobe Photoshop, Illustrator, InDesign và các ứng dụng khác. Sự thành thạo về các công cụ này giúp họ tạo ra các thiết kế chuyên nghiệp và đáp ứng được yêu cầu của dự án.

  • Kiến thức về thiết kế và nguyên tắc hình ảnh: 

Hiểu về các nguyên tắc cơ bản của thiết kế như sử dụng màu sắc, hình ảnh, văn bản và cách bố trí một cách hợp lý để tạo ra các thiết kế hấp dẫn và hiệu quả là một kỹ năng cần thiết của một Graphic Designer 

  • Sự sáng tạo và khả năng tư duy thiết kế: 

Ngoài ra, họ cần có khả năng tư duy sáng tạo để tạo ra các ý tưởng và thiết kế mới mẻ, khả năng nhìn nhận các yêu cầu và thông điệp của dự án để tạo ra các giải pháp thiết kế độc đáo và phù hợp.

  • Kỹ năng xử lý hình ảnh và đồ họa: 

Graphic Designer cần có khả năng chỉnh sửa và xử lý hình ảnh, biết cách tạo ra các hiệu ứng đồ họa và áp dụng các kỹ thuật tạo hình để cải thiện chất lượng và truyền tải thông điệp của thiết kế.

  • Hiểu biết về xu hướng thiết kế và truyền thông: 

Graphic Designer cần cập nhật với các xu hướng mới nhất trong lĩnh vực thiết kế và truyền thông. Họ nên có kiến thức về phong cách thiết kế hiện đại, sự phát triển của công nghệ và sự thay đổi trong ngành để áp dụng những xu hướng này vào công việc của mình.

Graphic designer là gì?

  • Kỹ năng mềm

Ngoài những kỹ năng về chuyên môn vô cùng quan trọng được liệt kê ở trên, là một Graphic Designer không thể thiếu những những kỹ năng mềm, bao gồm:

  • Sự sáng tạo và linh hoạt: 

Graphic Designer cần có sự sáng tạo và khả năng thích ứng để tạo ra các giải pháp thiết kế độc đáo và đáp ứng được yêu cầu của khách hàng. Họ cũng cần linh hoạt để làm việc trong các dự án khác nhau và đáp ứng được các yêu cầu thay đổi.

  • Kỹ năng giao tiếp: 

Khả năng giao tiếp tốt giúp Graphic Designer hiểu rõ yêu cầu và ý kiến của khách hàng và trình bày, giải thích ý tưởng thiết kế của mình một cách rõ ràng và hiệu quả.

  • Khả năng làm việc nhóm: 

Vì phải thường làm việc trong môi trường nhóm và cần có khả năng làm việc cộng tác và tương tác tốt với các thành viên khác trong nhóm, do đó, một Graphic Designer cần biết lắng nghe ý kiến của người khác, chia sẻ ý tưởng và hợp tác để đạt được kết quả tốt nhất cho dự án.

  • Khả năng quản lý thời gian và  chịu áp lực công việc: 

Graphic Designer thường phải làm việc theo deadline và đối mặt với áp lực công việc. Họ cần có khả năng quản lý thời gian hiệu quả, ưu tiên công việc và hoàn thành dự án đúng hạn.

  9 công cụ siêu tiện lợi cho cả Developer và Designer

Cơ hội nghề nghiệp của Graphic Designer

Ngành Graphic Design đang trở thành một lĩnh vực phát triển mạnh mẽ với nhu cầu ngày càng tăng về thiết kế đẹp mắt và chuyên nghiệp. Dưới đây là một số cơ hội nghề nghiệp mà Graphic Designer có thể khám phá:

  • Làm việc trong các agency quảng cáo và công ty thiết kế: 

Graphic Designer có thể làm việc trong các agency quảng cáo, công ty thiết kế và công ty truyền thông để phát triển các chiến dịch quảng cáo và các dự án sáng tạo khác.

  • Làm việc freelance (tự do): 

Graphic Designer có thể lựa chọn làm việc tự do và nhận các dự án từ khách hàng cá nhân hoặc doanh nghiệp.

  • Làm việc trong ngành công nghiệp truyền thông và truyền thông kỹ thuật số:

Graphic Designer có thể làm việc trong các công ty truyền thông, xuất bản, công ty phần mềm và công ty truyền thông kỹ thuật số để tạo ra các nội dung trực quan và thiết kế đồ họa cho các sản phẩm truyền thông.

Tham khảo việc làm Designer lương cao

Graphic designer là gì?

Các câu hỏi thường gặp về Graphic Designer là gì?

Câu 1. Lương của Graphic Designer là bao nhiêu?

Mức lương của Graphic Designer phụ thuộc vào kinh nghiệm, vị trí công việc và quy mô công ty. Tại Việt Nam, mức lương khởi điểm vào khoảng 8-10 triệu đồng cho nhân viên mới ra trường, trong khi Graphic Designer giàu kinh nghiệm có thể nhận mức lương 20-30 triệu đồng/tháng.

Câu 2. Làm Graphic Designer có cần bằng đại học không?

Để trở thành một Graphic Designer, không bắt buộc phải có bằng cấp đại học nhưng đó có thể là một lợi thế trong việc tìm kiếm việc làm và nâng cao khả năng cạnh tranh của bạn trong tương lai. Tuy nhiên, quan trọng hơn là khả năng và kỹ năng thực tế của bạn trong lĩnh vực thiết kế. Việc xây dựng một portfolio ấn tượng và có những dự án thực tế để chứng minh khả năng của bạn thường quan trọng hơn so với việc có bằng cấp đại học.

Câu 3. Graphic Designer có thể làm việc từ xa (remote) không?

Câu trả lời là có, do tính chất công việc, Graphic Designer có thể hoàn toàn làm việc từ xa (remote) và freelance. Họ chỉ cần một máy tính kết nối internet, các phần mềm đồ họa và kỹ năng giao tiếp, quản lý công việc tốt. Nhiều Graphic Designer chuyên nghiệp đã chọn con đường freelance để linh hoạt giờ giấc và chọn lọc các dự án phù hợp.

  Top câu hỏi phỏng vấn Graphic Designer chinh phục nhà tuyển dụng

Kết luận

Graphic Designer đóng vai trò quan trọng trong việc tạo ra các sản phẩm đồ họa và thiết kế sáng tạo. Họ cần có sự sáng tạo, kỹ năng kỹ thuật và hiểu biết về thiết kế để thực hiện công việc một cách chuyên nghiệp. Với sự phát triển của ngành thiết kế đồ họa, Graphic Designer có nhiều cơ hội nghề nghiệp hấp dẫn trong các lĩnh vực truyền thông, truyền thông kỹ thuật số và thiết kế giao diện người dùng. Hy vọng rằng bài viết của TopDev đã cung cấp cho bạn được một cái nhìn tổng quan về nghề Graphic Designer. Đừng quên tiếp tục theo dõi Blog TopDev để cập nhật thêm nhiều kiến thức về lập trình và các tips tuyển dụng hữu ích.

Xem thêm các tin tuyển dụng IT mới nhất trên TopDev

Bàn về “peer-pressure” khi lướt LinkedIn và TikTok

Bàn về

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

LinkedIn là mạng xã hội chuyên nghiệp cho những người đi làm, Tiktok là nền tảng giải trí video ngắn, lý thuyết là như thế. Thực tế với nhiều người bạn xung quanh mình, LinkedIn hay Tiktok là những nền tảng góp phần tạo nên ‘peer-pressure’, hay sự so sánh với người khác khiến cho bản thân cảm thấy tự ti. Trên LinkedIn bạn toàn thấy những bạn trẻ giỏi giang làm giám đốc, quản lý, profile công việc hoành tráng. Trên Tiktok bạn thấy những cá nhân còn giỏi giang hơn, trẻ tuổi tài cao, làm tự do, nhiều tiền, ăn ngon, du lịch khắp mọi nơi. Không cảm thấy áp lực hay tự ti khi nhìn thấy những hình ảnh trên mới lạ.

Nếu bạn đang thuộc nhóm đối tượng trên, mình chia sẻ dưới đây một vài ‘bí kíp’ bản thân đã trang bị để phần nào xử lý vấn đề áp lực đồng đẳng và tâm lý tự ti này.

1/ Bạn và người khác có hoàn cảnh khác nhau, định nghĩa thành công khác nhau, những sự may mắn khác nhau

Không có 2 người nào giống nhau hoàn toàn về ngoại hình, gia đình, tính cách, hoàn cảnh sống và các mối quan hệ. Tất cả những điều này lại có ảnh hưởng rất lớn đến kết quả công việc của một người. Chính vì vậy khi có sự so sánh bản thân mình với người khác, bạn hãy tự đặt những câu hỏi dưới đây để có cái nhìn sâu và rộng hơn trong việc so sánh:

  • Bạn có xuất phát điểm giống người ta hay không? Hoàn cảnh gia đình bạn, những mối quan hệ xung quanh bạn có giống người ta hay không?
  • Mục tiêu trong công việc / cuộc sống của bạn có giống người ta hay không? Người ta có thể đang thành công về tiền bạc, địa vị – liệu đó có phải là những thứ bạn đang theo đuổi hay không?

Lấy một ví dụ về việc làm KOL trên mạng xã hội hiện nay. Có rất nhiều người đang làm KOLs, chia sẻ về những khía cạnh khác nhau trong cuộc sống, nhưng chỉ một số ít trong đó trở nên nổi tiếng. Bên cạnh việc họ có năng lực thực sự, bạn phải thừa nhận rằng họ có may mắn gặp thời, có chống lưng (ý nói gia đình tài chính tốt), có ekip hùng hậu để hỗ trợ. Bạn có những điều đó hay không?

2/ Bạn có chấp nhận đánh đổi không?

Trừ một số trường hợp đặc biệt, mình không nghĩ rằng ông trời cho ai tất cả mọi thứ. Xung quanh mình có đa dạng kiểu người với những kiểu nghề nghiệp khác nhau. Những người làm công tác xã hội giúp ích cho người cho đời, công việc ý nghĩa, đúng đam mê, sở thích thì gặp khó khăn trong tài chính, tiền bạc không quá dư dả, không có cơ hội được ăn ngon, chơi xa, không thể lo được cho gia đình hay người thân những cơ hội xịn nhất. Những người làm trong giới nghệ thuật trông lúc nào cũng bóng bẩy, hào nhoáng, đẹp đẽ nhưng tối về là những nỗi cô đơn, là bạn với chất kích thích. Những giám đốc, quản lý làm việc quần quật ngày đêm đem về những căn bệnh xương khớp, dạ dày và nhiều tiền thuốc cho bệnh viên.

Mình nói như trên không phải vơ đũa cả nắm rằng tất cả những người trong lĩnh vực đó đều như vậy. Có những người làm công tác xã hội vẫn giàu, những người làm nghệ thuật vẫn sống healthy, hay nhiều người làm quản lý vẫn có sức khoẻ rất tốt. Điều mình muốn nói ở đây là, để đạt được sự thành công vượt trội ở một lĩnh vực nào đó, bạn phải chấp nhận đánh đổi một hoặc một số phần tập trung trong cuộc sống. Bạn không thể nào vừa mong muốn đóng góp cho công ty, làm OT mà vẫn có nhiều thời gian cho bạn bè, con cái, người thân. Không thể nào vừa muốn có nhiều thời gian nghỉ ngơi, chăm sóc sức khoẻ mà vẫn dành nhiều thời gian cho công việc. Khi bạn chọn tập trung điều gì, bạn phải hi sinh đi một số điều còn lại.

Nếu bạn đang cảm thấy peer-pressure với một ai đó, thử tìm hiểu hoặc đặt mình vào vị trí của họ xem, để đạt được những thành công như họ đang có, họ đã đánh đổi những điều gì? Là bạn, bạn có chấp nhận đánh đổi những điều đó hay không.

  20 mẹo xây dựng thương hiệu cá nhân hiệu quả trên LinkedIn (Phần 1)

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

3/ Xem thông tin Tiktok và LinkedIn một cách có chọn lọc

Các nền tảng mạng xã hội đều rất thông minh, chúng biết gợi ý những nội dung mà chúng ta dành thời gian xem nhiều. Ví dụ bạn dành thời gian xem nhiều video của một người A thành công nào đó trên mạng, bạn sẽ nhận được thêm nhiều video của những người B, C, D tương tự như vậy. Điều này vô tình làm cho chúng ta ngày càng áp lực hơn khi nhìn thấy quá nhiều tấm gương thành công như thế.

Mình cũng giống các bạn, không phải là mình không có áp lực. Mình làm công việc giáo dục. Khi mình lướt Tiktok và LinkedIn mình thấy những người làm nghề giống mình được giải thưởng này kia, làm chương trình này nọ, gặp gỡ đối tác to nhỏ – mình cũng cảm thấy áp lực và tự ti vì sao mình không được những điều đó. Việc áp lực là không thể tránh, đặc biệt với những người nhạy cảm. Điều mình và các bạn có thể làm được là điều chỉnh lại những nội dung mà chúng ta thường xuyên xem trên các trang mạng.

Thử lướt một lượt danh sách những người bạn đang theo dõi trên Tiktok và LinkedIn, xem nội dung của ai đang làm bạn cảm thấy áp lực, hãy huỷ theo dõi. Đừng nghĩ rằng bản thân mình xấu tính khi huỷ theo dõi một ai. Có thể người đó rất giỏi và được nhiều người ngưỡng mộ, nhưng cách chia sẻ của họ không hợp style với bạn thì việc bạn huỷ theo dõi là hoàn toàn bình thường.

Hãy hạn chế thời gian lướt newfeed trong vô thức. Tức là khi bạn mở Tiktok hoặc LinkedIn ra, bạn có chủ đích vào kênh nào thì tìm kênh đó và vào xem nội dung. Đừng lướt newfeed cho vui nữa. Mỗi ngày bạn có thể tự quy định cho bản thân 5-10 phút, 2-3 lần mỗi ngày vào khung giờ nào đó cho việc lướt newfeed, hết thời gian đó thì thôi. Làm được việc này là bạn sẽ hạn chế được việc tiếp cận với nhiều nội dung làm bạn áp lực hơn.

4/ Tập biết ơn và đóng góp cho xã hội

Có 2 việc bạn có thể làm để bản thân cảm thấy ít áp lực hơn là tập thói quen biết ơn những gì đang có và đóng góp cho xã hội theo cách của bạn. Khi bạn làm được hai điều này, thời gian bạn dành cho việc so sánh và tự ti sẽ giảm đi.

Mỗi buổi sáng, buổi trưa hoặc buổi tối, hãy mở phần mềm Note trên điện thoại hoặc một cuốn sổ trước mặt, viết ra 03 điều mà bạn thấy biết ơn cuộc sống hiện tại. Ví dụ, ngay lúc này đây mình biết ơn vì (1) có những công việc nhỏ kiếm được khoản tiền nhỏ đủ trả tiền ở chung cư tốt (2) vẫn được ăn ngon 3 bữa mỗi ngày (3) có một sức khoẻ tốt và trí tuệ minh mẫn để viết ra những điều này. Còn bạn, bạn biết ơn điều gì?

Hãy dành thêm thời gian ngoài giờ làm việc để đóng góp cho xã hội và cộng đồng. Bạn có thể trực tiếp tham gia các bếp ăn tình thương, đi phát quà cho người nghèo hoặc những việc tương tự. Làm để thấy cuộc sống bạn vẫn còn may mắn hơn người khác nhiều lắm, có gì mà phải tự ti. Nếu bạn có khả năng chia sẻ và truyền đạt kiến thức tốt, hãy đăng ký trở thành mentor cho các em sinh viên hoặc chia sẻ những gì bạn biết đến các em học sinh – sinh viên. Trở thành người dẫn lối, chia sẻ là sẽ thấy cuộc sống của bản thân có ích, từ đó bớt dần sự tự ti.

Cảm ơn các bạn đã đọc. Chúc các bạn một ngày nhiều niềm vui.

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

Tại sao thiết kế phần mềm càng đa dụng lại càng phức tạp?

Tại sao thiết kế phần mềm càng đa dụng lại càng phức tạp?

Bài viết được sự cho phép bởi tác giả Vũ Thành Nam

Có lẽ đây là một chủ đề nói đơn giản cũng không hẳn mà nói phức tạp cũng không hẳn, đi sâu hơn vào lĩnh vực này mình cảm thấy mình thật nhỏ bé, vì vậy có thể bài viết này sai sót ở đâu đó do mình còn ít kinh nghiệm mong các bạn có thể bổ sung góp ý thêm nhé!

Đầu tiên thì bạn thường đặt câu hỏi tại sao lại phải làm phức tạp hóa vấn đề lên trong khi một phần mềm chỉ cần đáp ứng đúng và đủ nhu cầu hiện tại của mình.

Nếu như bạn đã đọc qua về quá trình phát triển của các kiến trúc phần mềm thì bạn sẽ nhận thấy chúng ta thiết kế không phải nhằm mục đích đáp ứng mỗi nhu cầu hiện tại, mà nó còn để giải quyết những vấn đề phát triển trong tương lai.

Dưới đây là một số lý do mà các kiến trúc sư phần mềm đã phải đau đầu cho những thiết kế đáp ứng tương lai:

Code maintainance

Mình thường so sánh việc kiến trúc phần mềm với kiến trúc xây dựng, nó có khá là nhiều điểm tương đồng. Hãy thử tưởng tượng bạn muốn thiết kế và xây dựng một ngôi nhà nhưng bạn không chắc chắn cái bạn muốn, cái duy nhất bạn có chỉ là ý tưởng nhưng không thể nào thiết kế một cách tùy ý được. Vậy bạn cần ngay lúc này là bản thiết kế vậy là bạn tìm đến một kiến trúc sư.

Ngôi nhà của bạn, bạn nghĩ nên có 2 phòng ngủ, ah không có thể là 40 phòng ngủ. Vậy làm thế nào để kiến trúc sư hay chính bạn có thể lên kế hoạch một cách chắc chắn đây, khi này kiến trúc sư đành phải đâu đầu suy nghĩ làm sao có thể thêm hoặc bớt số phòng ngủ sao cho dễ dàng nhất. Bản vẽ ban đầu sẽ thể hiện được cái bạn muốn, từ đó nó cũng đánh giá được chi phí xây dựng, nhưng mà khi có sự thay đổi trong cái bạn muốn ban đầu, bản vẽ này vẫn phải đáp ứng được nhu cầu thay đổi một cách ít nhất có thể, chi phí chỉnh sửa cũng phải ít nhất mà vẫn đáp ứng được yêu cầu mới. Đó chính là sự đau đầu của một kiến trúc sư mà không phải ai cũng làm được.

thiết kế phần mềm

Trong kiến trúc phần mềm cũng vậy, nhiều kiến trúc sư phần mềm có nhiều năm kinh nghiệm thường hiểu được vấn đề này, khi này họ sẽ tạo ra những thành phần (phần tử) theo hướng trừu tượng hóa nhằm dễ dàng thay đổi, dễ dàng tích hợp, dễ dàng nâng cấp hay thay đổi vị trí. Một điều đáng lưu tâm nữa đó là thiết kế làm sao để những người xây dựng hay những người vận hành, bảo trì và phát triển sau này có thể hiểu được, điều này đồng nghĩa với việc có một chuẩn chung và có một quy định chung cho chuyên ngành.

Vậy nên nói không ngoa chứ lập trình viên chẳng khác nào một thợ xây, nó thiết kế và thi công theo bản vẽ và khi đạt tới số năm kinh nghiệm rồi thì họ có thể lên chức thành kiến trúc sư nếu muốn

Code Reusability

Cách tốt nhất để tăng chất lượng code lên đó chính là code ít đi, “Không code, không bug”. Điều này thật vô lý nhưng mà nó lại vô cùng thuyết phục, bạn có thể code 1 tính năng và đã được kiểm thử, việc bạn sử dụng lại đoạn code của tính năng đó sẽ giúp bạn tiết kiệm được thời gian viết mới cũng như thời gian kiểm thử lại. Vậy nên giải pháp kiến trúc làm sao để có thể tái sử dụng tối đa hết mức có thể sẽ được ưa chuộng và là một trong những mục tiêu vô cùng quan trọng. Dựa vào ý tưởng tái sử dụng này mà những thư viện (libraries), nền tảng (frameworks), mẫu chung (templates), hay công cụ sinh mã code (code generators) ra đời cũng là vì vậy.

Cùng hình dung bạn có những mảnh lego nhỏ nhỏ xinh xinh, bạn có thể dùng nó để xây tàu, xây nhà, xây cầu mà cũng chỉ là những mảnh lego đó. Đó chính là tính đa dụng mà người thiết kế cần lưu tâm khi thiết kế những thành phần trong phần mềm của mình theo hướng lego. Có thể tái sử dụng để xây dựng bất cứ thứ gì và ở bất cứ đâu.

thiết kế phần mềm

Vậy làm sao để thiết kế tính đa dụng dễ dàng tái sử dụng được như vậy, lại một lần nữa đau đầu rồi.

  Chia sẻ kinh nghiệm viết code Front-end hiệu quả và bảo mật

  Các nguyên lý trong thiết kế phần mềm

Features, features and features

Tính năng, tính năng và tính năng, điều mà được ưu tiên hàng đầu cho bất cứ sản phẩm phần mềm nào. Nếu bạn là một nhà quản lý bạn thường đứng giữa sự lựa chọn những quyết định mang tính thử thách, một phần mềm đáp ứng đủ tốt cho chức năng đồng thời dễ dàng mở rộng, vận hành, bảo trì và phát triển. Tất nhiên là muốn chọn cả hai rồi, vậy chi phí thiết kế kiến trúc không cho phép và chỉ được chọn một thì sao. Chắc chắn lúc này là anh ấy sẽ phải chọn đáp ứng đủ tính năng là ưu tiên hàng đầu. Nhiều khi vẫn biết là kiến trúc đó chưa tốt nhưng về mặt thời gian và chi phí không đủ thì đành phải nợ lại (Technical Debt).

Nợ thì phải trả, điều đó luôn đúng rồi, nhưng việc ưu tiên tính năng là hoàn toàn chính xác vì khách hàng trả tiền cho bạn là để xây dựng tính năng mà. Việc bạn phải làm lúc này là thông báo cho khách hàng và đưa là những options những giải pháp khác nhau cho khách hàng lựa chọn. Ví dụ để đảm bảo tính năng thì bạn có thể xây dựng theo hướng cấu hình (configuration) để đảm bảo thêm tính dễ dàng thay đổi, xây dựng tách nhỏ module để có thể đẽ dàng tái sử dụng. Có lẽ ưu tiên tính năng nhưng bạn vẫn nên nghĩ mở rộng hơn và tối ưu nhất có thể tại thời điểm đó để sao có thể nợ ít nhất. Bạn hiểu ý mình chứ?

thiết kế phần mềm

Bạn thấy đó, kiến trúc đâu phải dễ dàng gì, mà một khi bản vẽ của bạn sai thì một khi đã thi công rồi nó sẽ tốn rất nhiều chi phí về sau, trách nhiệm thiết kế lúc này rất nặng.

Bạn nghĩ sao về mảng này trong chuyên ngành phát triển công nghệ phần mềm? Góp ý thêm cho mình nhé!

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

Xem thêm:

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

Feedback là gì? Tầm quan trọng của feedback công việc và cuộc sống

feedback la gi

Bạn đã bao giờ nghe về thuật ngữ “feedback” trong đời sống hàng ngày hay tại nơi bạn làm việc chưa? Feedback đóng góp vai trò quan trọng trong quá trình nhận ra những khuyết điểm và cải thiện bản thân. Vậy, feedback là gì? Tại sao nó lại quan trọng? Trong bài viết này, cùng TopDev tìm ra câu trả lời cho những vấn đề này.

Feedback là gì?

Feedback là quá trình cung cấp thông tin, đánh giá hoặc ý kiến về hành vi, hiệu suất hoặc kết quả của một người, nhằm giúp người đó tự cải thiện. Nó có thể được cung cấp từ nhiều nguồn khác nhau, bao gồm đồng nghiệp, cấp trên, người thân, bạn bè hoặc người hướng dẫn. Feedback có thể là tích cực hoặc tiêu cực, nhưng mục đích chính là giúp người nhận nắm bắt thông tin và phát triển.

feedback là gì

Tầm quan trọng của feedback trong công việc và cuộc sống

Đón nhận những feedback từ mọi người xung quanh, đặc biệt là những feedback mang tính xây dựng và đóng góp sẽ mang lại rất nhiều lợi ích cho bạn. Cụ thể:

Nhận ra điểm mạnh và điểm yếu

Feedback cho phép bạn nhìn nhận bản thân một cách khách quan hơn. Bằng cách nghe ý kiến ​​từ người khác, bạn có thể nhận ra những điểm mạnh mà bạn có thể chưa nhận ra hoặc khám phá những khía cạnh cần cải thiện. Điều này giúp bạn có một cái nhìn tổng thể về bản thân và đồng thời tạo cơ hội để phát triển và hoàn thiện hơn.

Khuyến khích sự phát triển và học hỏi

Lắng nghe phản hồi từ những người xung quanh giúp bạn có thêm cơ hội học hỏi và phát triển. Khi chấp nhận feedback một cách tích cực và đề cao việc cải thiện bản thân, bạn có thể mở rộng kiến thức, kỹ năng và nhận thức về mình. Ngoài ra, feedback cũng giúp bạn nhận biết những sai lầm của bản thân và học hỏi từ lỗi lầm, từ đó bạn có thể ngày càng trở nên thành thạo hơn trong công việc và thành công cuộc sống.

Tạo ra và xây dựng những mối quan hệ chất lượng hơn

Feedback là một công cụ quan trọng trong việc xây dựng mối quan hệ tốt hơn với người khác. Bằng cách cung cấp feedback một cách xây dựng và chân thành, bạn có thể khuyến khích người khác phát triển và cải thiện. Đồng thời, khi nhận feedback, bạn nên thể hiện sự tôn trọng và sẵn lòng lắng nghe. Điều này tạo ra một môi trường giao tiếp tự do và mang tính đóng góp, giúp mọi người tiến xa hơn trong công việc và mối quan hệ cá nhân.

Tham khảo việc làm IT helpdesk lương cao

feedback là gì

  Vì sao feedback rất quan trọng?

Cách đưa và nhận feedback hiệu quả

Feedback là một cách hiệu quả để phát triển và cải thiện bản thân, nhưng để đạt được hiệu quả cao, cách đưa và nhận feedback cần được thực hiện một cách đúng đắn. Để quá trình đưa và nhận feedback hiệu quả, phản hồi cần phải:

  • Cụ thể và rõ ràng

Khi đưa feedback, hãy tập trung vào việc cung cấp thông tin cụ thể và rõ ràng về hành động, hiệu suất hoặc kết quả cụ thể. Tránh những phê phán mơ hồ hay tổng quát, thay vào đó hãy nêu rõ lý do và ví dụ cụ thể mà bạn muốn góp ý.

  • Nhanh chóng và kịp thời

Feedback nên được đưa ra kịp thời, ngay sau khi sự kiện xảy ra. Điều này giúp người nhận feedback nhớ rõ hành vi hoặc tình huống mà feedback đang ám chỉ. Đồng thời, người đưa feedback cũng nên đảm bảo rằng thời điểm đưa feedback là thích hợp và không gây phiền hà cho người nhận.

  • Xây dựng và tích cực

Một yếu tố quan trọng của feedback hiệu quả là tính tích cực và xây dựng. Thay vì tập trung vào những điểm yếu và lỗi lầm, hãy tìm cách nhấn mạnh vào điểm mạnh của người nhận feedback và các lĩnh vực mà họ có thể cải thiện. Góp ý xây dựng và đề xuất cách để người nhận phát triển và thành công hơn.

  • Lắng nghe và tôn trọng

Người nhận feedback cần lắng nghe một cách chân thành và tôn trọng ý kiến của người đưa feedback. Hãy giữ tinh thần thoải mái, tư duy mở để tiếp thu thông tin và không phản ứng thái quá. Nếu có sự không đồng ý, hãy thể hiện một cách tôn trọng và trao đổi ý kiến một cách xây dựng.

  Kỹ năng trình bày vấn đề

feedback là gì

Các câu hỏi thường gặp về feedback là gì?

Câu 1. Feedback tích cực và tiêu cực có ý nghĩa gì?

Feedback tích cực và tiêu cực đều có ý nghĩa quan trọng trong quá trình phát triển cá nhân và cải thiện. Trong khi, feedback tích cực là những đánh giá, nhận xét hoặc gợi ý mà người khác đưa ra để khen ngợi, nhấn mạnh điểm mạnh và động viên. Ngược lại, feedback tiêu cực là những đánh giá, nhận xét hoặc gợi ý đưa ra để chỉ ra điểm yếu, lỗi lầm hoặc khuyết điểm trong hành vi, hiệu suất hoặc kết quả.

Câu 2. Làm thế nào để xử lý feedback tiêu cực?

Hãy lắng nghe một cách chân thành và giữ một thái độ luôn sẵn sàng học hỏi trước những feedback tiêu cực. Hãy nhìn vào feedback như một cơ hội để phát triển và cải thiện bản thân

Câu 3. Làm thế nào để yêu cầu feedback từ người khác?

Hãy đặt ra mục đích của bạn trong việc nhận feedback và trình bày rõ ràng về lĩnh vực mà bạn muốn cải thiện hoặc nhận được đánh giá. Sau đó, hãy lắng nghe chân thành và tôn trọng ý kiến của mọi người xung quanh và cảm ơn vì sự chia sẻ ý kiến họ.

Kết luận

Feedback đóng vai trò quan trọng trong cả công việc và cuộc sống. Nó giúp chúng ta nhận biết điểm mạnh, điểm yếu và tạo cơ hội để phát triển. Bằng cách đưa và nhận feedback một cách hiệu quả, chúng ta có thể xây dựng mối quan hệ tốt hơn và phát triển bản thân. Hãy coi feedback là một công cụ hữu ích để trở thành phiên bản tốt hơn của chính mình. Hy vọng rằng bài viết của TopDev đã cung cấp cho bạn được nhiều kiến thức hữu ích về feedback. Đừng quên tiếp tục theo dõi Blog TopDev để cập nhật thêm nhiều kiến thức về lập trình và các tips tuyển dụng hữu ích.

Xem thêm các tin tuyển dụng IT mới nhất trên TopDev

4 câu hỏi hay gặp trong một buổi phỏng vấn và cách trả lời

4 câu hỏi hay gặp trong một buổi phỏng vấn và cách trả lời

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

Không phải cứ nói năng liến thoắng thì bạn sẽ thể hiện tốt trong buổi phỏng vấn. Để có một buổi phỏng vấn thành công, cái ta cần thể hiện cho nhà tuyển dụng thấy đấy là 1) kinh nghiệm có phù hợp không, 2) ta có năng lực gì hay ho không và 3) tính cách có phù hợp công ty không?. Tuy nhiên, trước khi tìm hiểu cách trả lời từng câu hỏi như thế nào, các bạn nên học cách tìm hiểu xem trong từng câu hỏi đó – nhà tuyển dụng muốn biết điều gì từ chúng ta. 

Ví dụ những câu hỏi nghe rất bình thường như ‘tell me about yourself‘, ‘sở thích của em là gì‘, nếu không biết cách trả lời khéo léo sẽ dễ làm cho buổi phỏng vấn thành ra dở hơi – vì đó là những câu đầu tiên chúng ta sẽ gặp mà. Ấn tượng đầu mà kém thì cả buổi sẽ khó mà suôn sẻ được.

Trong bài viết này mình sẽ ‘dịch’ 4 câu hỏi mà chúng ta thường gặp nhất trong một buổi phỏng vấn, và mong muốn của nhà tuyển dụng khi nghe câu trả lời của các bạn nhé.

Câu 1: Tell Me About Yourself

Tell Me About Yourself

Cái nhà tuyển dụng muốn biết: Tại sao bạn lại hợp với vị trí này.

Nhà tuyển dụng đã có sẵn CV và Cover Letter của bạn rồi, vậy nên việc giới thiệu lại những thông tin cá nhân hay kinh nghiệm làm việc một lượt thực sự là không cần thiết. Nhà tuyển dụng cũng không quan tâm lắm đến việc bạn đẻ ra ở đâu, học Ngoại thương hay Kinh tế quốc dân đâu. Cái nhà tuyển dụng quan tâm là làm sao trong khoảng 1 đến 1.5 phút – bạn đưa ra được thông tin gì mà làm cho nhà tuyển dụng thấy bạn hoàn toàn phù hợp với công ty mà bạn đang ứng tuyển.

Nếu các bạn gặp một câu giới thiệu bản thân như này, có hai cách giải quyết như sau:

  1. Áp dụng phương pháp Hiện tại – Quá khứ – Tương lai trong bài viết này để giới thiệu bản thân.
  2. Nghĩ về 2-3 thành tích trong công việc bạn đạt được và bắt đầu việc giới thiệu bản thân với những thành tích đó. Và nhớ chọn những thành tích có liên quan đến công việc bạn đang ứng tuyển mọt chút nhé.

Câu 2: Bạn biết gì về công ty chúng tôi?

Cái nhà tuyển dụng muốn biết: Giữa bạn và nhà tuyển dụng có gì hợp hay liên quan đến nhau

Bạn nào cũng có thể dễ dàng vào Website công ty và tìm được các thông tin về Vision, Mission hay nơi thành lập các thứ các thứ hết. Vậy nên nếu bạn ngồi liệt kê một đống thông tin về công ty mà không nói gì về bản thân mình, bạn sẽ bị đánh giá rất kém ở câu này.

Vậy nên khi trả lời câu hỏi này, bạn đưa ra thông tin nào cũng được (nên tìm hiểu về công ty trước khi đi phỏng vấn), nhưng sau đó phải giải thích vì sao bạn thích thông tin đó hay thông tin đó có liên quan gì đến mục tiêu của đời bạn, hay giá trị sống của bạn chẳng hạn.

Nói chung là để trả lời câu hỏi này, bạn nên bắt đầu bằng việc đưa ra 1-2 thông tin về công ty mà bạn đã tìm hiểu, sau đó giải thích vì sao bạn lại chọn 1-2 thông tin đó, 1-2 thông tin đó có liên quan như thế nào đến bạn bằng cách đưa ra một vài ví dụ để cho nhà tuyển dụng hiểu rõ hơn.

  Top 30+ câu hỏi phỏng vấn mà 90% lập trình viên thường gặp 2024

  Những câu hỏi phỏng vấn lập trình viên hay gặp nhất

Câu 3: Where do you see yourself in five years?

Where do you see yourself in five years?

Cái nhà tuyển dụng muốn biết: Bạn có nghiêm túc với công việc này không

Để tuyển được một bạn nhân viên mới cho công ty, các nhà tuyển dụng cũng phải đầu tư rất nhiều công sức (và cả tiền) vào công tác tuyển dụng nữa. Vậy nên nhà tuyển dụng sẽ muốn biết rõ xem định hướng của bạn có thể làm việc lâu dài cùng công ty không, hay là làm vài ba bữa lại chán nhảy sang chỗ khác.

Vậy để trả lời câu hỏi này, ta cần nói gì? Nếu vị trí bạn đang phỏng vấn đúng phù hợp với định hướng nghề nghiệp của bạn, hãy chia sẻ lộ trình cụ thể trong 1 năm, 2 năm, 3 năm vào. Ví dụ nếu bạn đang phỏng vấn cho vị trí Marketing ở một công ty và mục tiêu của bạn là làm quản lý Marketing trong tương lai, bạn có thể nói mục tiêu như thế và chia sẻ về việc bạn đang làm gì lâu nay để theo đuổi con đường marketing.

Nếu mục tiêu nghề nghiệp của bạn chưa liên quan lắm đến công việc bạn nộp, hoặc bạn chưa biết rõ mục tiêu của mình là gì, hãy kể về quá trình bạn đã phấn đấu phát triển trong thời gian gần đây, và công việc sắp tới có thể giúp gì được cho bạn trong việc ra những quyết định ở tương lai.

Khám phá bộ câu hỏi phỏng vấn ngành IT

Câu 4: Do you have any questions?

Cái nhà tuyển dụng muốn biết: Nãy giờ bạn có nghe người ta nói không.

Đi phỏng vấn là một cuộc trò chuyện hai chiều, vậy nên bạn cũng nhớ chuẩn bị các câu hỏi để hỏi nhà tuyển dụng nhé.

Không có câu hỏi nào là đúng hay sai khi hỏi nhà tuyển dụng cả, quan trọng là trước khi đi phỏng vấn bạn chuẩn bị trước 4-5 câu hỏi phòng thân, trong quá trình ngồi phỏng vấn nếu thấy có thông tin nào không hiểu hay muốn biết thêm thì đừng ngại ngần, cứ thế mà hỏi thêm.

Trên đây là một số hướng dẫn nhanh của mình, chúc các bạn phỏng vấn thành công.

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

Xem thêm:

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

Caching là gì? Tổng quan về caching của một ứng dụng

Caching là gì

Bài viết được sự cho phép bởi tác giả Vũ Thành Nam

Khi phát triển một ứng dụng, nhiều khi cần tối ưu hiệu suất của ứng dụng đó, anh em thường nghĩ đến caching đầu tiên.

Đây sẽ là phần mở đầu cho loạt bài viết về caching. Hi vọng có thể giúp cho anh em có thể hiểu được phần nào về kỹ thuật này trong thực tế nói chung và trong ứng dụng phần mềm nói riêng.

caching là gì?

Vậy caching là gì?

Caching hay còn gọi là bộ nhớ đệm là một kỹ thuật tăng độ truy xuất dữ liệu và giảm tải cho hệ thống. Cache là nơi lưu tập hợp các dữ liệu, thường có tính chất nhất thời, cho phép sử dụng lại dữ liệu đã lấy hoặc tính toán trước đó, nên sẽ giúp tăng tốc cho việc truy xuất dữ liệu ở những lần sau.

Đó là khái niệm cơ bản, tuy nhiên đối với từng tầng của một ứng dụng thì nó sẽ có những khái niệm và nguyên tắc hoạt động khác nhau. Và mình sẽ đi dần trong loạt bài viết này.

caching là gì?

Đối với một ứng dụng web sẽ chia thành 5 tầng có thể cache được dữ liệu bao gồm:

Client Site Caching

Đây là loại bộ nhớ đệm mà hầu hết người dùng Internet đã quá đỗi quen thuộc. Loại cache này được lưu trữ trên client. Vì nó thường là một phần của các trình duyệt nên nó còn được gọi là Web Browser Caching. Lần đầu tiên trình duyệt tải một trang web, trình duyệt sẽ lưu trữ các tài nguyên của trang và lần tiếp theo khi truy cập cùng một trang, trình duyệt có thể tìm trong bộ nhớ cache các tài nguyên đã được lưu trong bộ nhớ cache trước đó và truy xuất chúng từ máy của người dùng. Cách này thường nhanh hơn so với tải chúng từ mạng.

Content Distribution Network (CDN) Caching, Internet Caching, Cloud Caching

CDN có thể được xem như một hệ thống các cổng giữa người dùng và máy chủ gốc, lưu trữ các tài nguyên của nó. Khi người dùng yêu cầu một tài nguyên, máy chủ proxy sẽ chặn request và kiểm tra xem có bản sao tồn tại hay không. Nếu có, tài nguyên ngay lập tức được chuyển đến người dùng; nếu không, yêu cầu được chuyển tiếp đến máy chủ gốc.

Các máy chủ proxy này được đặt ở một số lượng lớn các địa điểm trên toàn thế giới và các request của người dùng được route đến địa điểm gần nhất. Do đó, chúng thường ở gần với người dùng cuối hơn so với máy chủ gốc, điều này có nghĩa là giảm độ trễ mạng. Thêm vào đó, nó cũng làm giảm số lượng yêu cầu được gửi đến các máy chủ gốc.

Web Content Caching

Nói một cách đơn giản, web cache lưu trữ dữ liệu trong server để tái sử dụng trong tương lai. Ví dụ mình có template gửi mail, khi mỗi lần send email mình đều phải load template trước khi gửi, khi này mình sẽ cache content mail này lại để việc load template được nhanh hơn.

Application Server Caching, In-memory Caching, Distributed Caching

Đây là một cơ chế nhằm mục đích lưu trữ tài nguyên phía máy chủ để tái sử dụng. Cụ thể, cách tiếp cận này rất hữu ích khi hệ thống cần sử dụng nội dung được tạo động, cần thời gian để tạo. Ngược lại, nó không hữu ích trong trường hợp nội dung tĩnh. Bộ nhớ đệm của máy chủ web tránh cho máy chủ bị quá tải, giảm bớt công việc phải thực hiện và cải thiện tốc độ server trang.

Database Caching

Mỗi cơ sở dữ liệu thường đi kèm với tính năng cache ở một mức độ nào đó. Cụ thể, internal cache thường được sử dụng để tránh truy vấn cơ sở dữ liệu quá mức. Bằng cách lưu vào bộ nhớ đệm kết quả của các truy vấn cuối cùng được thực thi, cơ sở dữ liệu có thể cung cấp dữ liệu đã lưu trước đó ngay lập tức. Bằng cách này, trong khoảng thời gian mà dữ liệu được lưu trong bộ nhớ cache mong muốn vẫn còn valid, cơ sở dữ liệu có thể tránh thực thi các truy vấn.

Đó là 5 tầng cache của một ứng dụng, tuy nhiên trong thực tế thì có rất nhiều những bên thứ 3 hỗ trợ vấn đề caching này như CND cache và Database cache đều có những dịch vụ hỗ trợ như Azure hay AWS đều đã support.

Vấn đề phía phát triển phần mềm có lẽ chỉ chú ý tầng Client site và tầng Application mà thôi.

  Hiểu cơ chế layer caching khi build docker image để viết Dockerfile tốt hơn

  So sánh AWS, Google Cloud và Azure năm 2024

 Vậy ưu điểm của caching là gì?

– Nâng cao performance: Ưu điểm đầu tiên có lẽ là giúp cải thiện hiệu suất và tốc độ tải dữ liệu cho ứng dụng.

– Giảm connection và truy vấn cho cơ sở dữ liệu: Có những dữ liệu tĩnh rất ít thay đổi trong cơ sở dữ liệu dường như chỉ được load một lần. Vậy nên nếu giữ lại ở đâu đó, có thể là browser hay trên tầng application thì sẽ không cần phải mở kết nối và truy vấn dữ liệu này một cách thường xuyên.

– Cải thiện khi thời gian xử lý tăng đột biến: Nhiều trường hợp ứng dụng của bạn sẽ gặp trình trạng nhiều nhiều người dùng cùng một thời điểm (CCUs tăng cao) có thể dữ liệu sử dụng của mỗi người truy cập sẽ giống nhau, khi này không nhất thiết phải truy cập nhiều lần lấy dữ liệu mới mà sẽ trỏ tới cache để lấy dữ liệu của người đó. Thường khi xử lý những thành quả của đội performance test sẽ hay được chú ý.

– Giảm tải cho backend: Nhiều khi có những issue liên quan đến bottleneck, bị tắc nghẽn request từ frontend gọi xuống. Khi này backend có thể sử dụng kỹ thuật caching để giảm tải sự tắc nghẽn này cho hệ thống xử lý backend.

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

Còn nhược điểm thì sao?

– Vấn đề về tính thống nhất dữ liệu: Vì bất cứ khi nào dữ liệu được lưu vào bộ nhớ cache, một bản sao của nó sẽ được tạo, nên bây giờ sẽ có hai phiên bản của cùng một dữ liệu. Điều này có nghĩa là chúng có thể trở nên bất đồng bộ. Nói một cách ngắn gọn, đây là vấn đề về tính thống nhất. Đây là vấn đề quan trọng và phức tạp nhất liên quan đến bộ nhớ đệm. Không có một giải pháp cụ thể nào vượt trội hơn hẳn và cách tiếp cận tốt nhất phụ thuộc vào các yêu cầu của hệ thống.

– Lựa chọn dữ liệu được lưu vào cache: Đầu tiên, nếu chúng ta đánh giá dữ liệu thay đổi thường xuyên, chúng ta không nên lưu nó vào bộ nhớ cache quá lâu. Nếu không, dữ liệu cung cấp cho người dùng có thể sẽ không chính xác. Mặt khác, điều này cũng phụ thuộc vào đánh giá của về việc dữ liệu bao lâu thì là quá cũ. Thứ hai, bộ nhớ cache phải luôn sẵn sàng để lưu trữ dữ liệu thường xuyên được yêu cầu mất nhiều thời gian để được tạo hoặc truy xuất. Thứ ba, khi dữ liệu lớn lưu vào bộ nhớ đệm, bộ nhớ cache có thể bị lấp đầy rất nhanh, hoặc tệ hơn là hết sạch luôn.

– Xử lý dữ liệu cache bị mất: Các lần cache đều có giới hạn về thời gian. Dữ liệu caching đều có thời gian sống riêng của nó vậy nên bạn phải tính toán trước những trường hợp khi không lấy được dữ liệu từ cache thì phải làm sao. Trên thực tế, cache bị mất sẽ gây ra các độ trễ đáng lẽ không phát sinh trong hệ thống không sử dụng cache vì đơn giản là bạn đang tìm đồ trong nhiều túi khác nhau. Bạn phải tìm lần lượt từng túi mới tìm được thứ bạn muốn thay vì để chỉ đồ trong một cái túi.

Vậy là có ưu và nhược điểm rồi, việc lựa chọn caching ở những tầng nào và sử dụng trong trường hợp nào thì có lẽ sẽ tùy từng vào bài toán của dự án mà thôi.

Bài viết sau mình sẽ đi sâu hơn về từng loại caching để xử lý cho từng bài toán với code mẫu cụ thể hơn!Cám ơn các bạn đã theo dõi!

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

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

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

Nộp CV bao lâu thì được gọi phỏng vấn? Bí quyết tăng cơ hội được phỏng vấn

Nộp CV bao lâu thì được gọi phỏng vấn

Bạn đang có nhu cầu tìm kiếm công việc mới và đã gửi đi hàng loạt CV nhưng chưa nhận được bất kỳ phản hồi hay cuộc gọi phỏng vấn nào? Điều này có thể khiến bạn cảm thấy hoài nghi về năng lực của bản thân và mệt mỏi. Tuy nhiên trên thực tế, thời gian của quá trình nộp CV và chờ đợi được phỏng vấn thường khó xác định do quy trình này phụ thuộc vào nhiều yếu tố khác nhau. Trong bài viết này, hãy cùng TopDev tìm kiếm trả lời cho câu hỏi nộp CV bao lâu thì được gọi phỏng vấn.

Nộp CV bao lâu thì được gọi phỏng vấn?

Thật ra, không có câu trả lời rõ ràng cho câu hỏi này. Quá trình tuyển dụng ở các công ty rất khác nhau. Trong khi một số công ty tiến hành lọc CV và liên hệ phỏng vấn với các ứng viên trong khoảng thời gian ngắn, một số công ty khác lại có quá trình xử lý chậm hơn và điều này phụ thuộc vào nhiều nguyên nhân khác nhau như quy mô, cơ cấu tuyển dụng phức tạp hơn, do tính ưu tiên của công việc hay số lượng CV gửi về.

Ví dụ, các tập đoàn đa quốc gia hay các công ty lớn thường có xu hướng mất nhiều thời gian cho quy trình tuyển dụng và ứng viên phải chờ đợi lâu hơn. Ngược lại các công ty với quy mô nhỏ hơn thì có  thể có thời gian quay vòng nhanh hơn để xem xét CV và lên lịch phỏng vấn cho những ứng viên phù hợp.

  5 mẹo và mẫu CV IT để gây ấn tượng với nhà tuyển dụng!

Nộp CV bao lâu thì được gọi phỏng vấn?

Bí quyết tăng cơ hội được gọi phỏng vấn

Phỏng vấn là một giai đoạn quan trọng để có cơ hội gây ấn tượng với nhà tuyển dụng bằng cách trình bày năng lực, kỹ năng chuyên môn,… của bạn và cũng như được đến gần hơn với công việc mà bạn đang mong muốn. Để tăng cơ hội được tham gia phỏng vấn, bạn có thể áp dụng những cách dưới đây.

Tối ưu hóa CV của bạn

Một chiếc CV chỉn chu và chuyên nghiệp giúp bạn dễ dàng vượt qua vòng xét duyệt CV hơn. Trước tiên, hãy đảm bảo CV của bạn đã được chỉnh sửa cẩn thận và không bị các lỗi về hình thức bằng cách sử dụng các tiêu đề rõ ràng, gạch đầu dòng và ngôn từ dễ hiểu, ngắn gọn để giúp nhà tuyển dụng thấy được sự chuyên nghiệp của bạn. Về nội dung, bạn nên cố gắng làm nổi bật năng lực của bản thân thông qua các kỹ năng, kinh nghiệm hay thành tích có liên quan đến công việc mà bạn đang ứng tuyển.

Tham khảo: Tạo CV online và chuẩn hoá CV tại TopDev

Nghiên cứu thông tin về công ty và vị trí ứng tuyển 

Hãy dành thời gian để nghiên cứu về công ty và mô tả công việc của vị trí mà bạn đang ứng tuyển. Bạn có thể tìm thông tin cần thiết từ các trang mạng xã hội, website của công ty hay từ người quen trong ngành từ đó, cố gắng tự làm quen với các giá trị, văn hóa, sản phẩm hoặc dịch vụ của công ty và các dự án hay sự phát triển gần đây của họ. Những kiến thức này sẽ rất có ích trong buổi phỏng vấn, giúp bạn thể hiện được sự quan tâm và gây ấn tượng tốt với nhà tuyển dụng.

Kết nối và tương tác với công ty trên các trang mạng xã hội

Ứng viên nên dành thời gian để theo dõi các tài khoản mạng xã hội của công ty và tương tác với bài đăng bằng cách like, share hoặc comment một cách chu đáo. Với cách này, bạn có thể thể hiện được sự quan tâm đối với công ty và tạo ấn tượng của bạn trong mắt nhà tuyển dụng. Đồng thời, điều này còn giúp bạn có cơ hội tìm hiểu thêm về công ty và luôn cập nhật cơ hội làm việc mới.

Nộp CV bao lâu thì được gọi phỏng vấn?

Cách xử lý khi không được gọi phỏng vấn

Thất vọng là một cảm xúc không thể tránh khỏi khi sự nỗ lực của của bản thân không được đền đáp. Tuy nhiên, thay vì suy nghĩ tiêu cực, bạn hãy dành thời gian này để suy ngẫm về quá trình ứng tuyển của bạn và xác định điểm cần cải thiện. Dưới đây là một số cách bạn có thể áp dụng để giúp quá trình ứng tuyển của bạn hiệu quả hơn trong tương lai.

Đầu tư vào phát triển bản thân

Bạn có thể dành thời gian để đầu tư vào việc phát triển các kỹ năng và kiến thức hơn nữa bằng cách đăng ký các khóa học bổ sung, lấy chứng chỉ hoặc tham gia các hoạt động tình nguyện để CV của bạn nổi bật hơn nữa trong mắt nhà tuyển dụng.

Mở rộng thêm cơ hội tìm kiếm việc làm

Mở rộng cơ hội làm việc bằng cách tìm kiếm thêm nhiều cơ hội mới phù hợp với kỹ năng và sở trường của bạn. Việc gửi CV vào những công ty hay vị trí tuyển dụng khác có thể giúp bạn tăng cơ hội tìm được công việc mà bạn mong muốn.

Yêu cầu phản hồi về đơn đăng ký của bạn

Bạn có thể liên hệ với các nhà tuyển dụng và yêu cầu họ gửi phản hồi về hồ sơ đăng ký của bạn một cách lịch sự. Những phê bình mang tính chất xây dựng luôn là những thông tin vô giá giúp bạn có thể cải thiện những điểm yếu của bản thân. Hãy sử dụng những phản hồi này như một cơ hội học tập và ứng dụng trong hành trình ứng tuyển trong tương lai. 

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

Nộp CV bao lâu thì được gọi phỏng vấn?

Các câu hỏi thường gặp về thời gian được gọi phỏng vấn sau khi nộp CV

Câu 1. Có nên gửi nhiều CV cho cùng một công ty?

Bạn không nên gửi nhiều CV cho cùng một vị trí công việc trong một khoảng thời gian ngắn. Thay vào đó, bạn nên kiên nhẫn chờ đợi phản hồi từ phía công ty tuyển dụng. Nếu sau một thời gian đủ dài mà bạn vẫn không nhận được phản hồi, bạn có thể xem xét gửi lại CV hoặc liên hệ với nhà tuyển dụng để hỏi thêm thông tin về tiến trình tuyển dụng. 

Câu 2. Nên làm gì khi đã gửi CV đến nhiều công ty, nhưng không nhận được cuộc gọi phỏng vấn?

Nếu không được nhận cuộc gọi phỏng vấn, bạn nên dành thời gian để xem xét lại CV và hãy đảm bảo rằng nó phản ánh đúng năng lực và kinh nghiệm của bản thân. Nếu có thể hãy nhờ đến sự hỗ trợ từ người thân, bạn bè hoặc chuyên gia tuyển dụng để cải thiện CV.

Câu 3. Thời gian chờ đợi trung bình để nhận được cuộc gọi phỏng vấn là bao lâu?

Thời gian trung bình nhận được phản hồi từ các công ty với quy mô khác nhau thì rất khác nhau. Cụ thể, các công ty lớn thông báo kết quả từ ​​2 đến 4 tuần, các công ty cỡ trung bình từ ​​1 đến 3 tuần và các công ty với quy mô nhỏ phản hồi từ 1 đến 2 tuần.

Kết luận

Quá trình chờ đợi được xét duyệt vòng CV và tham gia phỏng vấn có thể thay đổi và phụ thuộc vào nhiều yếu tố khác nhau. Do đó, bạn nên cố gắng duy trì trạng thái lạc quan, kiên nhẫn và cũng như không bỏ cuộc quá sớm. Đồng thời, thay vì suy nghĩ tiêu cực về bản thân, bạn nên dành khoảng thời gian này để cải thiện CV và tập trung phát triển những kỹ năng chuyên môn cần thiết. 

Hy vọng rằng bài viết của TopDev đã cung cấp cho bạn được nhiều kiến thức hữu ích về mục người tham chiếu trong CV. Đừng quên tiếp tục theo dõi Blog TopDev để cập nhật thêm nhiều kiến thức về lập trình và các tips tuyển dụng hữu ích.

Xem thêm các tin tuyển dụng IT mới nhất trên TopDev

Bí quyết nâng cao cơ hội phỏng vấn tại Microsoft Việt Nam

phỏng vấn tại Microsoft Việt Nam

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

***Disclamer: Những chia sẻ của mình đơn thuần từ quan sát và kinh nghiệm sau khi screen 1000+ CVs, làm việc cùng Hiring Manager và được chị HR Manager Microsoft chia sẻ => Không phản ánh được practice Microsoft trên toàn cầu.


Một sự thật là, có rất nhiều CVs tiềm năng nhưng lại không được Hiring Manager (HM) chọn phỏng vấn/ không được ưu tiên dẫn đến việc dù ứng tuyển sớm nhưng được phỏng vấn sau và không kịp có offer.

Tất nhiên, là Recruiter, bản thân mình sẽ không ngại 1 cuộc điện thoại để có thể làm rõ thêm CV và hỗ trợ cung cấp thêm insight cho HM, tuy nhiên, thường thì những CV chỉn chu và đủ thông tin ngay từ đầu sẽ giúp quá trình này nhanh và đến tay HM sớm hơn.

Sau nhiều pha cứu cánh CV và hỗ trợ ứng viên đến được offer, mình cũng muốn chia sẻ một số điểm chính giúp tăng tỉ lệ được chọn. Bài viết này có thể giúp bạn trả lời những câu hỏi sau:


1. Chọn mẫu CV nào?

2. Nội dung CV cần có những gì?

3. Chi tiết các mục?


1. Nên chọn mẫu CV nào

Mẫu CV 1 cột (thay vì 2 cột) được ưa chuộng nhất vì dễ scan, nội dung dàn trải nên khi nhìn sẽ cảm giác thư thái hơn, ATS (applicant tracking system) cũng sẽ dễ lấy thông tin hơn.

So sánh mẫu 1 cột & 2 cột
So sánh mẫu 1 cột & 2 cột

TẢI MẪU CV MIỄN PHÍ (mẫu này mình thấy ưng mắt nhất)

2. Nội dung CV cần có những gì?

  • Contact
  • Working Experience
  • Education
  • Additional Info (Awards/ Skills/etc)
  • Projects

Thứ tự các mục thường sẽ là:

Contact > WE > Education > Awards/ Additional Info > Projects

Đối với các bạn còn đi học/ vừa tốt nghiệp, nên để Education đầu tiên.

3. Chi tiết các mục

a. Education

Tên trường, chuyên ngành – niên khóa

Nếu GPA trên 3.5 có thể thêm vào để tạo điểm nhấn/ có học bổng cũng là điểm cộng Ngoài ra, hãy cố gắng đặt GPA trong 1 hệ quy chiếu hoặc chuẩn nào đó. Thay vì chỉ liệt kê là 4.6, hãy viết là 4.6/5.0 (Xuất sắc hoặc Summa Cum Laude). Hoặc đơn giản có thể là Top 1/ 5/ 10 khoa/ trường.

Nếu có các bằng cấp liên quan thì cũng có thể liệt kê ở phần này, cả về tech và các chứng chỉ tiếng anh nếu có.

b. Working experience

Tên công ty có thể thêm 1 vài dòng mô tả sản phẩm, phục vụ người dùng như thế nào, cho thị trường nào.

Hãy sắp xếp kinh nghiệm làm việc theo thứ tự gần đây nhất đến xa hơn, có thể note thêm khoảng thời gian làm cho mỗi vị trí.

Phần mô tả vị trí:

  • Mỗi vị trí có thể liệt kê 3 – 5 đầu mục
  • Mẫu câu: Động từ + mô tả đầu việc + số liệu + impact mang lại

Đoạn ví dụ thì mình xin trích lại 1 blog siêu hay của anh Trung Võ (Linkedin anh)

  • [Achieving, Past Tense Verb] + [What] + [Number] + [How] / [What makes achievement special]

– Built a course searching website (hiểu vấn đề trong công việc mà bạn cần / muốn giải quyết) serving 2000+ users and solved the decade-long problem at the Claremont Colleges. (vấn đề bạn đã giải quyết là 1 vấn đề nghe có vẻ khó)

– [Optimized] (Achieving, Past Tense Verb) [the search engine’s response time] (What) from [25 to 0.8 seconds, a 97% decrease] (Number) (bạn đã giải quyết nó một cách mĩ mãn), by [facilitating non-clustered database indexing with self-designed tree data structures and 98% accurate course-equivalent matching algorithms] (How) (ứng dụng những kiến thức trong trường)

– [Designed] (Achieving, Past Tense Verb) [a scraping algorithm] [returning 4000+ unique courses with full-depth prerequisite trees] (What) [in 1 hour] (What makes achievement special).

Nếu CV có các khoảng gap trên 6 tháng/ chuyển công ty trong khoảng thời gian ngắn có thể chú thích ngắn gọn lý do (không bắt buộc).

  Nên gửi CV định dạng nào mới chuẩn: Word Doc hay PDF?

  5 lỗi trong CV hầu như ai cũng đã từng mắc phải

c. Additional Info

Phần này thì tùy vào thế mạnh bạn có thể thêm vào, thường thấy nhất là thêm Awards/ Skills liên quan đến vị trí ứng tuyển

– Awards: các thể loại giải thưởng lập trình/ nghiên cứu khoa học, có thể thêm 1 vài dòng giới thiệu về giải thưởng được tổ chức bởi ai, quy mô như thế nào.

– Skills: Programming Languages liệt kê ngôn ngữ bạn tự tin vì sẽ được hỏi thêm trong buổi phỏng vấn Frameworks/ Tools/ etc liệt kê ra hết và có liên quan đến JD càng tốt

d. Projects

Có 1 format CV mình thấy cũng khá phổ biến, thường thấy ở mô hình Outsourcing đó là liệt kê chi tiết từng dự án nhỏ với khoảng thời gian khá ngắn (dưới 1 năm ) và trải dài 2-3 trang => Như vậy sẽ khó để screen & hình dung được tổng thể số năm kinh nghiệm, công ty đã làm. Ngoài ra, đối với kinh nghiệm làm các dự án nhỏ thường sẽ không được ưu tiên tại Microsoft vì bài toán của Microsoft quy mô lớn và phức tạp hơn nhiều. Nhưng mình cũng hiểu Outsourcing cũng có rất nhiều product khủng, mang lại lợi nhuận chính cho cả công ty (như nab trước đây). Đối với những bạn core member của những dự án như vậy có thể nhấn mạnh quy mô, tầm ảnh hưởng và tính lâu dài của dự án.

Trang đầu tiên chỉ nên điểm qua ngắn gọn về Projects, đối với trang 2 có thể mô tả chi tiết nếu bạn thật sự muốn để vào CV.

Thật ra, ngoài yếu tố chưa phù hợp thì còn rất nhiều lý do khiến bạn không qua được vòng CV như:

– Job ID đó đã có offer => các CV dù chưa được proceed sẽ được gửi thư Thank you để đóng Job ID.

– Hồ sơ dù rất tiềm năng nhưng CV thông tin chung chung, đại trà và chưa nêu bật được kinh nghiệm => không qua được vòng Hiring Manager (HM), đặc biệt đối với HM nước ngoài chưa có insight về các công ty ở Việt Nam.

Với cả hai lý do trên, mình rất khuyến khích mọi người có thể trau chuốt lại CV và thử ứng tuyển lại. Hy vọng sắp tới sẽ hỗ trợ proceed thêm thật nhiều anh tài nước nhà về với Microsoft.

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

Xem thêm:

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

AWS là gì? Mọi thứ bạn cần biết về AWS trong 5 phút

AWS là gì?

AWS là gì? Tại sao AWS lại được nhiều doanh nghiệp quan tâm đến vậy? AWS là nền tảng điện toán đám mây hàng đầu hiện nay, cung cấp một hệ sinh thái đầy đủ các dịch vụ điện toán, lưu trữ, cơ sở dữ liệu, phân tích dữ liệu và trí tuệ nhân tạo (AI). Được xây dựng để giải quyết nhu cầu tính toán, lưu trữ dữ liệu an toàn và tin cậy của doanh nghiệp,

Trong bài viết này, hãy cùng TopDev đi sâu tìm hiểu về AWS, cũng như những ưu điểm và dịch vụ đa dạng mà nền tảng này đang cung cấp!

AWS là gì?

AWS là gì?

AWS (Amazon Web Services) là nền tảng điện toán đám mây hàng đầu hiện nay, do gã khổng lồ thương mại điện tử Amazon phát triển và vận hành. Nổi lên từ những ngày đầu tiên, AWS nhanh chóng chiếm lĩnh vị trí dẫn đầu với thị phần lớn nhất trong lĩnh vực này. Sở hữu một hệ sinh thái đa dạng với hơn 175 dịch vụ, AWS cung cấp cho doanh nghiệp các giải pháp toàn diện về lưu trữ, tính toán, cơ sở dữ liệu, công cụ dành cho nhà phát triển và nhiều tính năng khác.

Điểm đặc biệt của AWS chính là khả năng mở rộng quy mô toàn cầu. Với AWS, doanh nghiệp có thể truy cập và sử dụng các trung tâm dữ liệu tiên tiến nhất tại bất kỳ vị trí nào trên thế giới thông qua nền tảng điện toán đám mây. Điều này giúp doanh nghiệp vượt qua các rào cản về địa lý và có thể triển khai ứng dụng, dịch vụ tới khách hàng trên toàn cầu một cách linh hoạt và nhanh chóng.

Những điểm mạnh của AWS (Amazon Web Services)

AWS (Amazon Web Services) sở hữu nhiều ưu điểm nổi bật, giúp nó trở thành lựa chọn hàng đầu cho các doanh nghiệp và tổ chức trong việc triển khai và quản lý ứng dụng, dịch vụ trên nền tảng điện toán đám mây. Một số ưu điểm chính của AWS bao gồm:

Những điểm mạnh của AWS (Amazon Web Services)

  1. Khả năng mở rộng linh hoạt: AWS cung cấp khả năng mở rộng tài nguyên tính toán, lưu trữ một cách linh hoạt theo nhu cầu thực tế của doanh nghiệp, giúp tối ưu hóa chi phí và tránh lãng phí.
  2. Hệ sinh thái dịch vụ đa dạng: Với hơn 175 dịch vụ đám mây, AWS cung cấp một hệ sinh thái đầy đủ các giải pháp cho tính toán, lưu trữ, cơ sở dữ liệu, phân tích dữ liệu, trí tuệ nhân tạo, IoT và nhiều lĩnh vực khác.
  3. Năng lực toàn cầu: AWS có mạng lưới trung tâm dữ liệu rộng khắp tại nhiều khu vực trên thế giới, giúp doanh nghiệp triển khai ứng dụng và dịch vụ trên quy mô toàn cầu.
  4. Bảo mật và đáng tin cậy: AWS đáp ứng các tiêu chuẩn bảo mật và tuân thủ nghiêm ngặt, đồng thời đạt mức độ khả dụng và đáng tin cậy cao.
  5. Dịch vụ tận tâm: AWS cung cấp đội ngũ hỗ trợ và các dịch vụ chuyên nghiệp chất lượng cao để hỗ trợ khách hàng triển khai và quản lý công nghệ đám mây.
  6. Chi phí hiệu quả: Mô hình trả phí theo mức sử dụng của AWS giúp doanh nghiệp tiết kiệm đáng kể chi phí so với việc đầu tư vào hạ tầng công nghệ riêng.
  7. Tự động hóa và đổi mới liên tục: AWS tập trung vào việc đầu tư và phát triển các công nghệ mới, đồng thời đơn giản hóa quy trình tự động hóa cho người dùng.

Những ưu điểm này giải thích lý do tại sao AWS được coi là nền tảng điện toán đám mây dẫn đầu và được nhiều doanh nghiệp trên toàn thế giới lựa chọn.

  AWS Lambda là gì? Cách hoạt động và ứng dụng của Lambda

  So sánh AWS, Google Cloud và Azure năm 2024

Những dịch vụ chính của AWS

AWS cung cấp một hệ sinh thái phong phú với hàng trăm dịch vụ điện toán đám mây khác nhau. Dưới đây là một số dịch vụ chính của AWS:

1. Dịch vụ điện toán (Compute)

Dịch vụ điện toán (Compute)

– Amazon EC2 (Elastic Compute Cloud): Dịch vụ máy ảo ảo hóa để khởi tạo và quản lý máy chủ ảo.

– AWS Lambda: Nền tảng vận hành mã serverless.

– Amazon ECS (Elastic Container Service): Dịch vụ quản lý container Docker.

2. Dịch vụ lưu trữ (Storage)

– Amazon S3 (Simple Storage Service): Lưu trữ dữ liệu dạng đối tượng với khả năng mở rộng cao và chi phí thấp.

– Amazon EBS (Elastic Block Store): Cung cấp lưu trữ khối hiệu suất cao cho các máy ảo EC2.

– Amazon EFS (Elastic File System): Cung cấp hệ thống tập tin chia sẻ cho các máy ảo EC2.

3. Cơ sở dữ liệu (Database)

– Amazon RDS (Relational Database Service): Cung cấp dịch vụ cơ sở dữ liệu quan hệ với nhiều lựa chọn engine như MySQL, PostgreSQL, Oracle, v.v.

– Amazon DynamoDB: Cơ sở dữ liệu NoSQL key-value có khả năng mở rộng cao.

– Amazon Redshift: Giải pháp kho dữ liệu cho phân tích dữ liệu.

4. Mạng lưới và phân phối nội dung (Networking & Content Delivery)

– Amazon VPC (Virtual Private Cloud): Mạng riêng ảo để khởi tạo tài nguyên AWS.

– Amazon Route 53: Dịch vụ hệ thống tên miền.

– Amazon CloudFront: Mạng lưới phân phối nội dung toàn cầu giúp tăng tốc độ tải trang web và ứng dụng.

5. Trí tuệ nhân tạo và Máy học (AI & ML)

Trí tuệ nhân tạo và Máy học (AI & ML)

– Amazon SageMaker: Nền tảng dịch vụ máy học và AI.

– Amazon Rekognition: Nhận dạng đối tượng, hoạt động, nội dung, text trong hình ảnh và video.

– Amazon Lex: Dịch vụ xây dựng chatbot tương tác bằng giọng nói.

6. Phát triển & DevOps

– AWS CodeCommit: Dịch vụ quản lý mã nguồn Git.

– AWS CodeBuild: Dịch vụ tích hợp liên tục xây dựng và kiểm thử mã.

– AWS CodeDeploy: Tự động hóa quá trình triển khai mã lên EC2.

7. Dịch vụ khác: IoT, Game Tech, AR/VR, Blockchain, Media Services, Mobile,…

Với danh mục dịch vụ đa dạng, linh hoạt và mở rộng không ngừng, AWS cung cấp giải pháp đám mây toàn diện giúp doanh nghiệp đáp ứng mọi nhu cầu đổi mới ứng dụng và chuyển đổi kỹ thuật số.

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

Các câu hỏi thường gặp về AWS

AWS có hỗ trợ tiếng Việt không?

AWS chưa hỗ trợ đầy đủ tiếng Việt. Giao diện quản trị và hầu hết tài liệu kỹ thuật vẫn chỉ bằng tiếng Anh. Tuy nhiên, AWS đang dần mở rộng hỗ trợ cho ngôn ngữ địa phương, trong đó có tiếng Việt.

Có thể học AWS ở đâu?

Có nhiều cách để học AWS, bao gồm:

  • Tham gia các khóa học trực tuyến của AWS: https://aws.amazon.com/training/
  • Đọc sách và tài liệu hướng dẫn của AWS
  • Tham gia các hội thảo trực tuyến và hội thảo do AWS tổ chức
  • Tham gia cộng đồng AWS và học hỏi từ những người dùng khác

AWS có phù hợp với doanh nghiệp nhỏ không?

AWS phù hợp với doanh nghiệp nhỏ nhờ: Chi phí theo nhu cầu, hiệu quả, khả năng mở rộng linh hoạt, đa dạng dịch vụ phù hợp, và hỗ trợ gói miễn phí AWS Free Tier.

Tóm lại

Trong bài viết này, chúng ta đã khám phá và hiểu rõ hơn về Amazon Web Services (AWS). Với sự linh hoạt, độ tin cậy cao, tiết kiệm chi phí và sự đa dạng của các dịch vụ, AWS đang là lựa chọn hàng đầu cho các tổ chức và doanh nghiệp trên toàn thế giới. AWS đóng vai trò quan trọng trong việc hỗ trợ các doanh nghiệp thúc đẩy quá trình chuyển đổi số và nâng cao năng lực cạnh tranh trên thị trường toàn cầu.

Sự thành công của AWS cũng một lần nữa khẳng định xu hướng điện toán đám mây là tương lai của công nghệ. Các giải pháp đám mây sẽ ngày càng chiếm lĩnh và định hình lại cách thế giới tận dụng sức mạnh từ dữ liệu và công nghệ số. Chính vì vậy, việc nắm bắt và tận dụng công nghệ đám mây nói chung và AWS nói riêng sẽ giúp các doanh nghiệp giành lợi thế cạnh tranh quan trọng trên con đường đổi mới và tăng trưởng.

Xem thêm:

Người tham chiếu là gì? Nên chọn ai là người tham chiếu trong CV?

người tham chiếu là gì

Trong CV xin việc làm, ngoài các thông tin về trình độ học vấn, kinh nghiệm làm việc hay kỹ năng chuyên môn thì mục người tham chiếu (references) cũng là một phần rất quan trọng. Trong bài viết này, cùng TopDev khám phá người tham chiếu là gì trong quy trình tuyển dụng.

Người tham chiếu là gì? 

Người tham chiếu là những cá nhân được thêm vào CV để xác nhận kỹ năng, kinh nghiệm và năng lực của ứng viên. Họ đóng một vai trò vô cùng quan trọng vì lời giới thiệu của họ có thể ảnh hưởng đến quyết định của nhà tuyển dụng. Người tham chiếu có thể là đồng nghiệp cũ hoặc cấp trên tại công ty cũ bao gồm: trường phòng, trưởng bộ phận, phó giám đốc hay giám đốc,…

Mục người tham chiếu (references) thường được đặt ở phần cuối của CV sau khi bạn đã trình bày tất cả thông tin chi tiết về năng lực của bản thân để nhà tuyển dụng xem xét.

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

nguoi tham chieu la gi

Vai trò của người tham chiếu là gì?

Mục references đang dần trở thành một phần không thể thiếu của những CV chuyên nghiệp, cùng tìm hiểu vì sao phần thông tin người tham chiếu trong CV của bạn lại “quyền lực” đến vậy.

  • Xác thực thông tin

Người tham chiếu có vai trò xác nhận thông tin mà ứng viên cung cấp trong CV và buổi phỏng vấn. Điều này giúp đảm bảo tính chính xác của các thông tin được cung cấp như quá trình làm việc, trách nhiệm công việc hay thành tích của ứng viên.

  • Đánh giá năng lực

Bằng việc chia sẻ về khả năng làm việc, thái độ và kỹ năng chuyên môn của ứng viên, người tham chiếu có thể phần nào cung cấp cho nhà tuyển dụng về năng lực và phẩm chất cá nhân của người ứng viên.

  • Xác minh đáng tin cậy

Người tham chiếu có thể chia sẻ về độ tin cậy, trung thực và tinh thần trách nhiệm của ứng viên trong suốt quá trình làm việc trước đây, Điều này giúp nhà tuyển dụng xác định được người họ đang tuyển là một ứng viên đáng tin cậy và có thể đáp ứng được yêu cầu của công việc, của công ty.

  • Xây dựng mạng lưới chuyên nghiệp

Việc có một người tham chiếu tốt không chỉ mang lại lợi ích trong quá trình tuyển dụng hiện tại, mà họ còn giúp ứng viên xây dựng được một mạng lưới chuyên nghiệp trong tương lai. Họ có thể trở thành nguồn giới thiệu ứng viên cho những cơ hội tiếp theo hoặc cho những tổ chức khác trong cộng đồng chuyên ngành

  • Xây dựng sự tin tưởng

Người tham chiếu tốt có thể giúp xây dựng sự tin tưởng giữa nhà tuyển dụng và ứng viên bằng việc xác nhận các thông tin được ứng viên cung cấp là chính xác. Từ đó, bên tuyển dụng sẽ cảm thấy tự tin hơn trong quyết định của mình.

Xem thêm việc làm Developers lương cao

nguoi tham chieu la gi

Nên chọn ai là người tham chiếu trong CV?

Trước tiên, bạn nên chọn những người tham chiếu có thể xác nhận những kỹ năng và kinh nghiệm liên quan đến công việc mà bạn đang nêu trong CV và cụ thể, đó có thể là:

  • Cấp trên

Đây là một sự lựa chọn phổ biến cho mục người tham chiếu, họ có thể đưa ra những nhận xét khách quan về năng lực của ứng viên.

  • Đồng nghiệp

Người cùng làm việc và phối hợp có thể là một người tham chiếu tốt vì họ có thể chia sẻ về cách bạn làm việc nhóm và những đóng góp của bạn vào công việc

  • Giáo viên hoặc người hướng dẫn

Nếu bạn là sinh viên, thêm giáo viên hay người hướng dẫn vào mục người tham chiếu có thể là một quyết định đúng đắn. Họ sẽ cung cấp cho nhà tuyển dụng các thông tin về năng lực học thuật và khả năng nghiên cứu, tự học của bạn.

  • Khách hàng, đối tác cũ

Nếu có một mối quan hệ tốt với các đối tác hay khách hàng cũ, họ có thế chứng minh về mối quan hệ tương tác và khả năng làm việc của bạn.

  • Người quen trong lĩnh vực

Những người quen trong ngành có thể chia sẻ thông tin về mạng lưới quan hệ, sự đáng tin cậy và khả năng làm việc của bạn.

  Top 5 website giúp thiết kế CV chuẩn format, đủ nội dung

Những điều cần tránh khi đưa người tham chiếu vào CV

Một chiếc CV chỉn chu cần được đầu tư về cả nội dung và hình thức, vì vậy hãy cùng TopDev tìm hiểu những lỗi cần tránh khi viết mục người tham chiếu.

  • Đừng đưa vào những người không phù hợp

Hãy chọn cho CV của mình những người tham chiếu có thể cung cấp những thông tin tích cực và chính xác về bạn. Cần tránh thêm vào những người tham chiếu không liên quan đến công việc mà bạn đang ứng tuyển hoặc không có kiến thức về năng lực của bạn.

  • Đừng đưa vào khi không có sự cho phép của họ

Phải đảm bảo rằng có sự đồng ý của người tham chiếu trước khi liệt kê thông tin của họ vào CV của bạn. Sự tùy tiện thêm họ vào có thể gây ra một số bất tiện và gây xung đột giữa hai bên.

  • Đừng cung cấp những thông tin sai lệch về người tham chiếu

Trước khi đưa thông tin vào, hãy đảm bảo rằng thông tin này là chính xác và còn hiệu lực. Nếu nhà tuyển dụng không liên lạc với người tham chiếu của bạn, điều này có thể gây mất cơ hội và tạo ấn tượng không tốt về bạn.

Tham khảo: công cụ tạo CV online của TopDev

nguoi tham chieu la gi

Các câu hỏi thường gặp về người tham chiếu là gì?

Câu 1. Nên có bao nhiêu người tham chiếu?

Thông thường, hai đến ba người tham chiếu là đủ. Tuy nhiên, nếu là sinh viên mới tốt nghiệp hay người đang chuyển đổi nghề nghiệp, bạn có thể đưa vào nhiều người tham chiếu hơn.

Câu 2. Có thể sử dụng người thân hoặc bạn bè làm người tham chiếu không?

Mặc dù bạn có thể sử dụng người thân hay bạn bè làm người tham chiếu, nhưng tốt nhất là bạn nên thêm những người có thể xác nhận cụ thể các kỹ năng, kinh nghiệm nghề nghiệp của bạn vào mục người tham chiếu trong CV của bạn.

Câu 3. Nên liên hệ với người tham chiếu của mình trước khi nộp đơn xin việc không?

Có, bạn nên trao đổi với người tham chiếu của mình trước khi nộp đơn xin việc. Điều này giúp đảm bảo họ có sự chuẩn bị và sẵn sàng cung cấp lời giới thiệu khi cần thiết.

Câu 4. Những thông tin cần đưa vào CV về người tham chiếu là gì?

Với mỗi người tham chiếu, bạn nên đưa vào các thông tin sau: họ và tên, chức danh, công ty và thông tin liên lạc của họ. Ngoài ra, bạn cũng có thể thêm vào một câu mô tả ngắn về mối quan hệ của bản và người đó.

Kết luận

Người tham chiếu đóng một vai trò quan trọng trong quá trình tuyển dụng vì họ cung cấp những thông tin xác thực về các ứng viên cho nhà tuyển dụng. Việc có một người tham chiếu tốt mang lại nhiều lợi ích cho cả hai bên. Vì vậy, trong quá trình tìm kiếm việc làm, hãy đặt sự chú trọng vào việc xây dựng và duy trì mối quan hệ với những người tham chiếu uy tín. Hy vọng rằng bài viết của TopDev đã cung cấp cho bạn được nhiều kiến thức hữu ích về mục người tham chiếu trong CV. Đừng quên tiếp tục theo dõi Blog TopDev để cập nhật thêm nhiều kiến thức về lập trình và các tips tuyển dụng hữu ích.

Xem thêm các tin tuyển dụng IT mới nhất trên TopDev

Nên gửi CV định dạng nào mới chuẩn: Word Doc hay PDF?

gửi cv định dạng Word Doc hay PDF

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

Sau khi đọc kĩ tin tuyển dụng, bạn đã dành ra cả ngày (hoặc vài chục ngày) để hí hoáy sửa CV, thêm số liệu vào phần kinh nghiệm cũng như xem lại một lượt để chắc chắn mình không dính phải lỗi vớ vẩn nào. Vấn đề cuối cùng bây giờ là gửi CV đi, nên gửi file PDF hay để định dạng Word?

Dưới đây là một vài kinh nghiệm cá nhân của mình đúc kết được từ hơn 2 năm vừa rồi tư vấn và hướng dẫn CV từ các em sinh viên cho đến các anh chị Manager.

Khi nào thì gửi file .Doc?

Khi CV được trình bày ở dạng đơn giản nhất có thể, tức là chỉ có trắng và đen, chỉ có chữ viết, các gạch đầu dòng, không có bất kỳ hình ảnh hay biểu độ hay hình khối gì hết, khi đó ta có thể gửi file .doc.

Một số nhà tuyển dụng thích đọc file .doc vì người ta có thể dễ dàng copy được một số thông tin của ứng viên trong đó.

Hoặc nếu nhà tuyển ghi rõ trong tin tuyển dụng là gửi file .doc, hãy làm theo lời người ta.

Ví dụ nếu CV của bạn trông giống giống các mẫu dưới đây thì gửi file .Doc.

cv file doc

Tạo CV Online chất lượng tại TopDev

Còn khi nào thì gửi file PDF?

Với đa số các trường hợp, mình cực kỳ khuyến khích các bạn lưu thành file PDF và gửi cho nhà tuyển dụng để tránh tình trạng bị lỗi định dạng file lúc mở ra.

Mình đã từng thấy rất nhiều CV trình bày rất đẹp, nhưng lại không định dạng PDF nên khi mở ra trên email nó sẽ bị mất các thông tin quan trọng hoặc thông tin bị lệch lung tung – vô tình khiến cho chúng ta bị loại. Ví dụ như thế này nè:

cv file doc

Một lưu ý nhỏ cho các bạn khi gửi file PDF đó là nén file nhẹ nhẹ thôi nhé. Một file CV tốt nên có khoảng từ 1MB trở xuống thôi, đừng gửi cho nhà tuyển dụng một cái file tận 15-20MB, gặp hôm đứt cáp quang thì bạn sẽ bị loại ngay lập tức, phí lắm.

  5 lỗi trong CV hầu như ai cũng đã từng mắc phải

  Cách giới thiệu bản thân trong CV hiệu quả và ấn tượng nhất

Các định dạng khác thì sao:

  1. Có rất nhiều bạn khi trình bày CV rất đẹp thì lại lưu thành file ảnh như Jpeg hoặc Png – đảm bảo với các bạn đây là con đường nhanh nhất để khiến hồ sơ của chúng ta bị loại đó.
  2. Một số bạn gửi CV bằng file Powerpoint hoặc Excel. Cái này mình không đánh giá là sai – nhưng cơ hội khá là 50/50. Nếu nội dung hay và nhà tuyển dụng thích sáng tạo, biết đâu bạn có cơ hội. Còn với đa số nhà tuyển dụng khác, mình nghĩ nguy cơ bị loại sẽ rất là cao.
  3. Nếu nhà tuyển dụng không yêu cầu, các bạn đừng gửi file nén như .zip hoặc .rar – rất mất công cho nhà tuyển dụng phải download về rồi giải nén các kiểu – nhiều người thấy phiền quá sẽ loại luôn vì tốn thời gian.

Trên đây là một số lưu ý nhỏ. Chúc các bạn gửi CV nộp đâu trúng đó.

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

Xem thêm:

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