Home Blog Page 164

3 Xu hướng tuyển dụng đáp ứng thời đại kỹ thuật số

Như chúng ta nhận thấy, công nghệ đang đóng một vai trò lớn trong việc thay đổi thế giới. Và hòa trong xu thế chung của sự phát triển mạnh mẽ về kỹ thuật số, các doanh nghiệp ngày càng có nhiều sự lựa chọn hơn trong hình thức tuyển dụng. Họ thừa nhận sự tiến bộ này đồng thời cũng là những thách thức và khó khăn hơn trong quá trình thu hút nhân tài trong lĩnh vực nhân sự.

Cùng TopDev Blog khám phá 3 xu hướng tuyển dụng thời đại mới và cách làm thế nào để áp dụng chúng một cách thông minh nhất.

  20 thuật ngữ chuyên sâu trong Quản lý Nhân sự nội bộ
  Phân tích con người - Chiến lược quan trọng trong ngành Nhân sự năm 2023

Quảng cáo để nhắm đến mục tiêu tuyển dụng

Quảng cáo được xem là phương thức hiệu quả đối với quá trình tuyển dụng nhân sự. Bạn đã bao giờ tìm kiếm thông tin tuyển dụng về vị trí hoặc ngành nghề mình quan tâm trên thiết bị của mình, sau đó là lại tình cờ thấy thông tin bạn vừa xem được trên một thiết mình khác hay chưa? Nếu có, tức là bạn đang dần hiểu được thế nào là sử dụng quảng cáo để nhắm đến mục tiêu tuyển dụng nhân sự.

xu hướng tuyển dụng

Cơ chế hoạt động của cách thức này chính là sự kết nối về mặt kỹ thuật số và sự tương tác của người tiếp nhận tin tuyển dụng thông qua lượng số truy cập. Để có thể gia tăng khả năng tiếp cận được nhiều ứng tiềm năng, nhà tuyển dụng cần phối hợp với nhiều bộ phận nhằm thiết lập một tổ hợp gồm các từ khóa, mô tả công việc và chi tiết quảng cáo. 

Nhờ tuyển dụng quảng cáo, những người tìm kiếm việc làm của một ngành nghề cụ thể sẽ dễ dàng tiếp cận với các cơ hội nghề nghiệp phù hợp với họ hơn. Không những thế, với sự phát triển của công nghệ kỹ thuật số, nhiều ứng dụng và dịch vụ phần mềm tuyển dụng quảng cáo đã ra đời hỗ trợ các nhà quản lý khoanh vùng các ứng viên hội đủ các tố chất cũng như kinh nghiệm, kỹ năng. 

 Trí tuệ nhân tạo (AI)

Các tổ chức/doanh nghiệp hiện nay có xu hướng đầu tư vào công nghệ, cụ thể là việc vận dụng AI để đơn giản hóa quá trình tuyển dụng. AI giúp giảm thiểu quá trình sàng lọc hồ sơ, thông báo tuyển dụng, phân loại, quản lý và theo dõi các ứng viên các ứng viên.

xu hướng tuyển dụng

Đặc biệt, trong những năm gần đây, các tập đoàn đa quốc gia và thậm chí các chủ sở hữu doanh nghiệp xã hội lớn đang từng bước tiếp cận và ứng dụng AI để hợp thức hóa quy trình tuyển dụng nhân sự tại tổ chức của mình. Quá trình tuyển dụng trong bối cảnh xã hội thời hiện đại đã thông minh hơn, thích ứng kịp thời, phù hợp nhờ AI. Với sức mạnh của trí thông minh nhân tạo, AI gần như đáp ứng được toàn bộ nhu cầu của một công cụ hỗ trợ tuyển dụng tuyệt vời. Hàng ngàn ứng viên với vô số đơn ứng tuyển gần như được AI đánh giá và chọn lọc ngay lập tức.

Tuy nhiên, AI cũng có những hạn chế hay nói cách khác là thất bại. AI dùng sao cũng chỉ là sản phẩm được sáng tạo từ trí khôn của con người. 

AI có thể tự động hóa và cho ra những kết quả với độ chính xác rất cao. Tuy nhiên, cái nó thiếu chính là cảm xúc. Vì vậy, việc sử dụng AI để tuyển dụng đôi khi dẫn đến sai lệch, điều này ngăn cản sự đa dạng trong quy trình tuyển dụng nhân sự.”

Chia sẻ của  Keith Johnstone,  Trưởng phòng tiếp thị và phát triển kỹ thuật số tại Peak Sales Recruiting.

Tối ưu hóa công cụ tìm kiếm (SEO)

Nguồn dữ liệu thông tin trên Internet là vô tận. Tuy nhiên, dưới áp lực của sự phát triển mạnh mẽ từ công nghệ và nhiều khía cạnh khác, nguồn thông tin ấy dần trở nên hỗn tạp và thiếu tin cậy. Vì thế, để công tác tuyển dụng được truyền tải tốt thông qua những bài đăng, nhà tuyển dụng nhân sự cần có những giải pháp tối ưu hóa công cụ tìm kiếm, hay thuật ngữ chuyên môn gọi là SEO – Search Engine Optimization. 

Việc cải thiện SEO làm tăng khả năng hiển thị của thông tin quảng cáo tuyển dụng. Có nhiều cách đơn giản để làm điều này, nhưng một trong những cách phổ biến nhất là đảm bảo trang web của công ty bạn được tối ưu hóa bằng thiết bị di động.

Minh chứng cho thấy, theo Indeed, số lượng ứng viên tìm việc làm trên thiết bị di động chiếm 78% (trang Millennials) và 73% (trang Gen Xers). Trong trường hợp, nếu quy trình tuyển dụng của bạn không được tối ưu hóa cho các ứng dụng di động, bạn sẽ bỏ lỡ rất nhiều ứng cử viên chất lượng.

Nói một cách khác để đạt hiệu quả SEO một cách tốt hơn, bạn nên kết hợp với việc sử dụng các phương tiện truyền thông xã hội, đây không chỉ là nơi kết nối với bạn bè mà còn hỗ trợ công tác triển khai SEO chất lượng. 

Chẳng hạn, hãy tận dụng các công cụ mạng xã hội với những nền tảng khác nhau như Facebook for Business và LinkedIn Recruiter. HR có thể chỉ cần tập trung vào việc phát triển lượng thông tin tuyển dụng và chính sự thúc đẩy của kỹ thuật số, các phương tiện truyền thông sẽ giúp tạo ra sự tương tác với các ứng viên. Việc tập trung vào phát triển thông tin tuyển dụng sẽ thúc đẩy quảng cáo tuyển dụng phát triển; về lâu dài, sẽ tạo ra sự khuyến khích các ứng viên phù hợp lựa chọn công việc.

Thời đại kỹ thuật số là một thời đại phát triển và thế giới Nhân sự đã có những sự thay đổi nhất định. Việc nắm bắt những xu hướng tuyển dụng nhằm đáp ứng nhu cầu chung của thời đại có ý nghĩa lớn trong việc tìm ra những nhân tài phù hợp, hội tụ đủ các năng lực để có thể tồn tại và phát triển trong bối cảnh cạnh tranh của thị trường chung.

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

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

 

Giải thích React Component Lifecycle

Reacr component lifecycle là gì
Tìm hiểu vòng đời của một Component React (React Componenent), khi nào và sử dụng ra sao.

Để thực sự trở thành một master React, việc hiểu lifecycle của component là bắt buộc.

Các phương thức của lifecycle là một dạng hook (giống như khái niệm hook trong wordpress)

Có thể group các phương thức lifecycle ra 3 nhóm, ứng với 4 giai đoạn của component: MountingUpdatingUnmountingError Handling

Mounting

Nó sẽ theo thứ tự sau

  1. constructor()
  2. static getDerivedStateFromProps()
  3. render()
  4. componentDidMount()

Updating

Các phương thức này sẽ được gọi khi có sự thay đổi của state hoặc props

  1. static getDerivedStateFromProps()
  2. shouldComponentUpdate()
  3. render()
  4. getSnapshotBeforeUpdate()
  5. componentDidUpdate()

Unmounting

Phương thức được gọi trước khi remove component khỏi DOM

  1. componentWillUnmount()

Error Handling

Bất kể lỗi ở đâu trong component, nó sẽ gọi đến phương thức này

  1. componentDidCatch()

render()

Đây là phương thức bắt buộc duy nhất khi tạo ra một component, bắt buộc trả về một trong những giá trị

  • React element
  • Arrays and fragments
  • Portals
  • String and numbers
  • Booleans or null

Hàm này sẽ không được gọi nếu shouldComponentUpdate() return false

constructor(props)

Phương thức khởi tạo một component, nếu không khởi tạo state, bind các phương thức, thì ko cần khai báo phương thức này.

class Clicker extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
    this.state = {
       clicks: 0
    };
  }
  handleClick() {
    this.setState({ 
      clicks: this.state.clicks + 1
    });
  }
  //...
}

Đừng chuyển props sang state! Xử lý logic sẽ hết sức rắc rối về sau

Đừng làm thế này nhé

constructor(props) {
 super(props);
 // DON'T DO THIS
 this.state = { color: props.color };
}

componentDidMount()

Component đã hiện hình, là lúc mà ta gọi AJAX

componentDidMount() {
  fetch('https://gitconnected.com')
    .then((res) => {
      this.setState({
        user: res.user
      });
    });
}

Có thể gọi setState() ở dòng đầu tiên của phương thức componentDidMount(), hàm render() sẽ được gọi lại một lần nữa, nhưng nó chỉ xảy ra trước khi trình duyệt update DOM, render chắc chắn sẽ gọi 2 lần, user có thể không nhận ra sự thay đổi này, tuy nhiên đây là nguyên nhân cho vấn đề với performance. Nhưng cần thiết trong trường hợp như modal hay tooltip chúng ta cần tính toán vị trí của DOM trước khi render

componentDidUpdate(prevProps, prevState, snapshot)

Ngay sau khi component được cập nhập, hook này sẽ được gọi. Không gọi trong lần render đầu. Đây cũng có thể là nơi để tạo một network request khi chúng ta so sánh prop hiện tại với prop ở thời điểm trước đó

componentDidUpdate(prevProps, prevState, snapshot) {
  // Trường hợp thường dùng (đừng quên kiểm tra so sánh props):
  if (this.props.userID !== prevProps.userID) {
    this.fetchData(this.props.userID);
  }
}

Nếu muốn gọi setState ở đây, phải đưa nó trong câu điều kiện, nếu không sẽ bị lặp vô tận

Nếu có implement phương thức getSnapshotBeforeUpdate(), giá trị return của getSnapshotBeforeUpdate() sẽ được đưa vào snapshot, nếu không thì là undefined

Hàm này cũng không được gọi nếu shouldComponentUpdate() return false

componentWillUnmount

Có thể sử dụng để remove các listener, các hàm setInterval, cancel network request

componentWillUnmount() {
  window.removeEventListener('resize', this.resizeEventHandler);
}

shouldComponentUpdate(nextProps, nextState)

Có phương thức này để cải thiện performance của React, vì đôi lúc thay đổi state hoặc props ta không muốn cập nhập lại UI, chỉ cần cho hàm này return false (mặc định là return true), khi return false thì rendercomponentDidUpdate sẽ không được gọi.

shouldComponentUpdate(nextProps, nextState) {
   return this.props.clicks !== nextProps.clicks;
}

static getDerivedStateFromProps(props, state)

Được gọi trước khi xuống render, có thể return một object để update state, hoặc null

Rất hiếm khi sử dụng, chỉ khi giá trị của state phụ thuộc vào prop

Nên hạn chế sử dụng hàm này, vì làm logic hiển thị của component rất ư khó hiểu, hãy nghĩ đến những cách implement đơn giản hơn bằng những lifecycle khác.

getSnapshotBeforeUpdate(prevProps, prevState)

Gọi ngay trước khi render xuống DOM, cho phép lấy một số thông tin của DOM (ví dụ vị trí thanh scroll), các giá trị return từ hàm này sẽ đưa cho componentDidUpdate()

componentDidCatch(error, info)

Nếu một component nào đó bị lỗi nó sẽ không chết nguyên cái app nữa mà sẽ quăn lỗi ở đây, sử dụng để hiển thị lỗi lên UI

class ErrorBoundary extends React.Component {
  constructor(props) {
    super(props);
    this.state = { hasError: false };
  }

  componentDidCatch(error, info) {
    // Display fallback UI
    this.setState({ hasError: true });
    // You can also log the error to an error reporting service
    logErrorToMyService(error, info);
  }

  render() {
    if (this.state.hasError) {
      // You can render any custom fallback UI
      return <h1>Something went wrong.</h1>;
    }
    return this.props.children;
  }
}

<ErrorBoundary>
  <MyWidget />
</ErrorBoundary>

Tham khảo vị trí các công việc React tại đây

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

Gặp gỡ Charles Lee – Founder tại CoderSchool

Charles Lee

Tốt nghiệp tại đại học Berkeley với tấm bằng Computer Science và trải qua nhiều năm kinh nghiệm làm việc với vị trí Software Developer tại Silicon Valley, Charles Lee đã mang tất cả những kiến thức tích lũy được trong quá trình làm việc vào trong sứ mệnh mới của mình: công việc giảng dạy tại CoderSchool.

Với “Chuyên gia nói” kỳ này, hãy cùng tìm hiểu thị trường IT Việt Nam tiềm năng qua phần chia sẻ của cựu kỹ sư Silicon Valley – anh Charles Lee nhé.

  6 điều tôi vỡ lẻ khi tự học code (P1)

Về khách mời Charles Lee:

Mình là Charles Lee, tên tiếng Việt là Sang, hiện mình là CEO của CoderSchool. Mình là một người gốc Hàn và lớn lên ở Hoa Kỳ. Mình học về Computer Science và có kinh nghiệm làm việc, ở vị trí Software Developer tại Silicon Valley. Hiện tại mình đã sống tại Việt Nam được gần 5 năm, mình thì có sở thích là chơi bóng rổ, chạy bộ, và mình có một chú chó poodle nhỏ tên là Chuồn Chuồn.

Anh đã từng làm Software Developer, tại sao anh lại ngưng sự nghiệp kỹ sư và bắt đầu với việc giảng dạy?

Mình cho rằng, bạn thực sự sẽ không bao giờ ngừng việc trở thành một kỹ sư lập trình. Việc trở thành một kỹ sư giống như một cách sống, giống như nói: bạn sẽ không ngưng việc mình là một nhà thám hiểm hay một người thích phiêu lưu. Tuy nhiên, thực sự mình cũng ít lập trình hơn khi trước, và câu trả lời thực sự là bởi vì mình cảm thấy bản thân có mối liên kết với công việc giảng dạy. Ở vị trí Engineer, mình cảm thấy vui với việc đối mặt với những vấn đề, mình thích xây dựng mọi thứ, mình thích giải quyết những vấn đề. Nhưng khi mình bắt đầu công việc giảng dạy, giải quyết các vấn đề nhưng làm thế nào để hướng dẫn người khác giải quyết chúng một cách hiệu quả.

Charles Lee 01

Kể cả khi mình nhận thấy đó là vấn đề đó thực sự quan trọng thì cũng phải xét xem liệu công việc đó có thực sự liên kết với bản thân mình không. Vì thế, cái cảm giác mà bạn có, khi lần đầu giảng dạy một nội dung gì cho ai thật sự rất tuyệt vời.

Trước khi thành lập CoderSchool anh đã làm việc cho nhiều công ty lớn và các startup như Palm.Inc, Volkswagen Electronics, Research Lab, Luvocracy. Vậy theo anh, đâu là sự khác biệt nào khi làm việc ở một công ty lớn so với một startup?

Đây là câu hỏi rất hay. Sẽ có những điểm thuận lợi và khó khăn ở cả những công ty lớn và nhỏ. Đa số thời gian mình làm ở những môi trường startup (khoảng 10 năm). Mình thật sự rất thích làm việc ở những công ty lớn bởi vì ở đây, bạn sẽ dễ dàng tạo ra những ảnh hưởng to lớn. Mình còn nhớ, lần đầu là ở Palm (vào thời gian đó thì đây là một trong những công ty dẫn đầu về sản xuất smartphone, chỉ sau iPhone), cảm giác rất tuyệt khi nhận ra rằng những đoạn code đang viết sẽ được “chuyển” cho hàng triệu chiếc điện thoại trên khắp thế giới. Bạn có thể đến các cửa hàng để mua những sản phẩm mà chính mình đã làm. Mình cảm thấy rất thú vị và làm việc ở một công ty lớn cho phép bạn thực hiện những điều ấy. Tuy nhiên, mình thích làm việc ở các startup hơn, nơi mà mình tin sẽ có những tác động một cách nhanh hơn. Ở Volkswagen mình làm về Prototype Feature cho một hệ thống định vị. Với một hệ thống định vị dựa trên nền tảng AI năm 2008, nó đã được “tạm duyệt” và đoạn code của mình sẽ được “chuyển” đi vào năm 2018, đó là tận 10 năm cho đến khi thấy một thứ mà mình đã viết được trở thành một sản phẩm thực sự. Lúc đó mình vẫn còn rất trẻ, 10 năm cứ như là mãi mãi ấy. Vì thế không có chuyện ngồi đợi ngần ấy thời gian và đó là lý do tại sao mình đã bước chân vào thế giới startup, nơi mà bạn có thể xây dựng một thứ, và ngày hôm sau mọi người có thể nhìn thấy được nó.

Với công việc chính của anh hiện tại – CoderSchool. CoderSchool là gì và vì sao anh thành lập nó? Và tại sao anh chọn Việt Nam?

CoderSchool là một trường dạy về code tuyệt nhất tại Việt Nam- đó chính là mục tiêu tập thể hướng đến. Công việc của CoderSchool là hướng dẫn mọi người cách bắt đầu một sự nghiệp trong lĩnh vực IT, chúng tôi có những khóa học Fulltime và Parttime cho chương trình 3 tháng hoặc 6 tháng chuyên về Web Development và Machine Learning. Vì thế, những ai muốn học về IT hay trở thành một lập trình viên để tham gia vào một lĩnh vực có nhu cầu tuyển dụng cao như thế này thì có thể tham gia vào các lớp của CoderSchool và học chúng một cách hiệu quả nhất. Về câu hỏi tại sao lại là Việt Nam, mình cho rằng câu trả lời sẽ có hơi cá nhân một chút bởi mình đang ở đây. Khi lần đầu mình đến Việt Nam, 5 năm trước mình không hề dự định nào, thậm chí mình còn không nghiên cứu các trường dạy code khác. Nhưng lúc này mọi người cảm thấy hứng thú với những trải nghiệm của mình – một kỹ sư phần mềm tại Silicon Valley và đồng thời họ cũng hứng thú với việc học những thứ mới. Với những thắc mắc của họ, mình nhanh chóng nhận ra rằng, tại đây chưa có những khóa học bài bản nào về IT cả, vào thời điểm ấy có rất ít nơi để học lập trình (programming). Vì thế, vào 5 năm trước, mình đã bắt đầu một lớp về iOS (hay nói cách khác là một khóa học lập trình cho iPhone) và mình muốn thử xem, liệu có ai hứng thú với nó và đã có rất nhiều người đăng ký. Điều này khiến mình cảm thấy rất hào hứng. Nó khiến mình cố gắng để thực hiện một lớp học tốt thực sự: như việc giảng một cách chậm hơn để người nghe theo kịp. Và cứ thế sau này,  những lớp học khác ra đời. 

Charles Lee 03

CoderSchool đã nhận được một khoản đầu tư, anh có thể chia sẻ cảm nghĩ của mình về việc này chứ? 

Đó quỹ đầu tư mang tên Trive Venture ở Singapore vào năm 2018. Rất tuyệt khi nhận được vốn từ đúng nhà đầu tư. Mình thật sự may mắn. Anh ấy bảo rằng: “tìm đúng nhà đầu tư có thể giúp doanh nghiệp bạn phát triển là một điều thực sự rất tuyệt vời”. Mình đã thực sự may mắn vì đã hợp nhau để có thể giúp CoderSchool phát triển. Họ đã tạo điều kiện rất ấn tượng, sau đó doanh nghiệp mình đã phát triển rất nhanh. Tất cả kế hoạch, dự định tưởng chừng sẽ mất rất nhiều thời gian để thực hiện, đã được thúc đẩy xúc tiến bởi thương vụ đầu tư này.

CoderSchool và những điều đặc biệt

Thế thì tại sao những nhà đầu tư này lại chọn CoderSchool?

 Mình không chắc nữa, có thể có rất nhiều lý do để họ chọn CoderSchool nhưng đó chỉ là một phần nhỏ. Mình nghĩ Việt Nam là “một bức tranh lớn” với họ, có thể các nhà đầu tư nhận thấy tiềm năng của Việt Nam là một thị trường rất sôi động để đầu tư vào, và sẽ có rất nhiều sự tăng trưởng trong thập kỷ tới. Mình cho rằng họ đặt cược vào thị trường Việt Nam và họ đến với CoderSchool sau khi đã tìm hiểu về thị trường Việt Nam và đó là một phần lớn của lý do, và mình cũng đoán rằng đôi lúc chúng ta cũng có cảm giác những nhà đầu tư này quyết định dựa trên giá trị họ đầu tư vào các doanh nghiệp quan tâm đến những vấn đề mà họ đang muốn giải quyết. Đó cũng chính là những vấn đề CoderSchool hướng đến hoặc đang thực hiện và đó cũng là một điểm cộng với họ. 

Khá chắc khán giả sẽ thắc mắc, liệu rằng mô hình kinh doanh của CoderSchool là một tổ chức phi lợi nhuận?

Đây không phải là một tổ chức phi lợi nhuận. Mình cảm thấy rất vui vì đôi lúc mọi người hay hỏi mình câu đấy. Có vẻ như là những việc CoderSchool đang làm đang tạo một hình ảnh tốt và có ảnh hưởng tích cực đến xã hội. Nhưng không, chúng tôi thực sự có một Mô hình kinh doanh. CoderSchool tạo giá trị cho mọi người bằng cách dạy mọi người kỹ năng mới, từ đó họ có thể có một mức lương cao từ một công việc tốt. Còn về các công ty thì có được những phần mềm tuyệt vời, giải quyết được rất nhiều vấn đề và đồng thời  CoderSchool cũng phải mang lại lợi nhuận cho mình.

Khi truy cập website của CoderSchool sẽ thấy cụm từ ISA “Income Share Agreement” anh có thể giải thích thêm chi tiết không?

ISA là một mô hình thanh toán học phí mới. Với ISA, thay vì trả trước học phí bạn có thể cam kết trả một phần lương sau khi có được một công việc. Đây là một cách để có thể tham gia học. Ưu điểm nổi trội của ISA là nếu bạn có được một công việc tốt thì bạn sẽ trả nhiều hơn một chút nhưng nếu bạn có một công việc không phù hợp hay không có việc bạn sẽ phải trả ít hơn, thậm chí là không cần chi trả. Điều này khiến cho cả nhà trường và học viên có cùng một mục tiêu. Nếu nhà trường không dạy bạn những gì thực sự hữu ích bạn sẽ không cần trả tiền, và mình nghĩ điều đó rất công bằng.

Em không biết là liệu mô hình này của CoderSchool (ISA) có phải là một mô hình phổ biến trên thế giới hay chưa?

Mình không thể nhận việc sáng tạo ra mô hình ISA này là của mình. Đây thực sự đã là một mô hình phổ biến trên thế giới đó là một mô hình ở những giáo dục bậc cao tại Mỹ. Tại một số trường đại học cũng có mô hình này và thậm chí tại những chương trình giảng dạy về code (bootcamp) thì còn phổ biến hơn nữa có rất nhiều trường ở Mỹ và Châu Âu hoạt động dựa trên nguyên tắc này. 

Anh có thể chia sẻ quan điểm về sự phát triển của giáo dục và khi giáo dục phát triển như thế thì bên nào sẽ được hưởng lợi, đặc biệt là trong lĩnh vực IT?

Mình nghĩ điều giúp giáo dục phát triển chính là việc mọi người cảm thấy hứng thú với nó. Mình nghĩ Việt Nam là một nơi rất tiềm năng, và một trong những điều tuyệt vời nhất chính là văn hóa giảng dạy và học tập  tại Việt Nam rất vững vàng. Mọi người thường dạy nhau về đạo lý “tôn sư trọng đạo” vì vậy mình nghĩ vấn đề là ở chỗ hãy tìm những người có kinh nghiệm trong từng lĩnh vực, và cả kinh nghiệm sống. Hãy kêu gọi những chuyên gia trong ngành chia sẻ kiến thức. Mình cho rằng với sự phát triển của ngành IT thì mọi người sẽ cùng hưởng lợi. Nhìn chung thì sẽ xuất hiện các đối thủ cạnh tranh, những trường dạy coding khác sẽ xuất hiện. Điều đó cũng tốt, về toàn cảnh thị trường sẽ có khoảng 20 trường dạy coding ở Việt Nam và vẫn sẽ không đủ bởi vì nhu cầu thực sự quá cao, tiềm năng rất lớn sẽ có những trường rất tốt. Hy vọng CoderSchool sẽ là một “nhân vật chính” trong số đấy.

Dường như các học viên của CoderSchool đến từ nhiều nơi trên khắp thế giới. Làm thế nào anh có thể điều chỉnh một nền tảng phù hợp cho tất cả mọi người tại các quốc gia khác nhau?

Mình sẽ trả lời câu hỏi bằng cách chia sẻ điều mình thích nhất về Computer. Lý do chính mà mình thích ở Computer chính là không có sự khác biệt nhiều tại các quốc gia. Khi nói về Computer, mọi nơi đều như nhau, ngôn ngữ lập trình đều mới mẻ với mọi người. Nó không phải như kiểu ở một quốc gia này thì có thể dễ học hơn ở một quốc gia khác. Có thể nói nó đều rất phức tạp với mọi người, mỗi người điều phải cố gắng để học lập trình. Về việc chúng tôi có phải thay đổi gì cho phù hợp thật sự không nhiều. Ở khóa đầu tiên mình cũng áp dụng tương tự những lớp mà mình đã giảng dạy tại Silicon Valley. Quan trọng là cuối cùng mình phải truyền cảm hứng cho học viên, phải cho họ những sản phẩm thú vị để thực hành, phải hướng dẫn thật rõ ràng mình phải cười rất nhiều khi giảng dạy.

Những chia sẻ về ngành lập trình

Câu hỏi này hơi cá nhân một chút. Ngôn ngữ lập trình yêu thích nhất của anh là gì?

Có một ngôn ngữ rất hay mà hiện tại mình đang học, một ngôn ngữ cũ, gọi là OCaml. Về ngôn ngữ OCaml nó như kiểu một phương ngữ (dialect) gọi là Reason có rất nhiều niềm vui trong việc Dev với REACT. REACT là một framework rất phổ biến và thường được viết trong JavaScript nhưng bạn cũng có thể chạy nó bằng ngôn ngữ khác dựa trên OCaml. Mình cho rằng ngôn ngữ này rất hay ho bởi vì một trong số những lý do mà mình trở thành giảng viên là vì thích học những thứ mới. Việc trở thành giảng viên là một sự biện hộ cho việc đi thử tùm lum những thứ “dị hợm” và mình thích nó và mình nói như thế cũng bởi nó khiến mình cảm thấy bản thân thật “nguy hiểm” *joking* nhưng cuối cùng thứ mà mình cảm thấy thoải mái nhất vẫn là JavaScript. Đó chính là thứ mà mình thực sự dạy nhưng sau rất nhiều khóa học, mình đã học rất nhiều mình đã làm việc với JavaScript, Ruby, C… rất nhiều thứ tương tự. 

Nếu giả sử là một người mới trong việc học lập trình, coding vậy thì em nên bắt đầu với ngôn ngữ nào trước tiên?

Ở khía cạnh học thuật, mọi người thường bảo nhau rằng Python là một ngôn ngữ đáng để học. Mình cũng cho là như vậy, bởi vì như kiểu nó thích hợp và chỉ cần một cách để làm rất nhiều thứ. Vì thế, là một ngôn ngữ, nó có vẻ có một chút thiếu linh hoạt với một số người nhưng nếu bạn là một người mới, muốn làm cái này một chút, thử cái kia một chút và dễ học một chút thì Python thường được khuyến khích. Mình cũng được biết tại Stanford hay Berkeley, ngôn ngữ đầu tiên được học thường sẽ là Python. Tuy nhiên sẽ không có đáp án đúng sai trong câu hỏi này bạn có thể học bất cứ thứ gì miễn là bạn đang học thì mọi thứ đều rất đáng, theo ý kiến cá nhân mình. 

CoderSchool đang giảng dạy về một số lĩnh vực đặc biệt về Web Development và Machine Learning thế thì tại sao anh lại chọn Machine Learning và Web Development mà không phải những thứ khác? 

Bởi đó là 2 khóa học phổ biến nhất theo nhu cầu thị trường và nhu cầu người học. Đầu tiên về Web Development. Theo mình thấy, đa số những công việc ngoài kia thường là về Web Development, có thể nói gần một nửa công việc ngoài kia là liên quan đến Web Development theo nhiều cách khác nhau. Còn về Machine Learning, dường như nó chính là tương lai của công nghệ. Khá là rõ ràng, ngành này đang phát triển mạnh Data, Machine Learning,… những thứ này tất cả sẽ là một cuộc cách mạng 4.0 mà mọi người thường hay nhắc đến. CoderSchool cũng thường hay chạy rất nhiều buổi WorkShop, Tech Talks và những sự kiện miễn phí và Machine Learning luôn rất được quan tâm. Mình không biết là vì sao đặc biệt là ở Việt Nam mọi người thích Data Science, Machine Learning, AI những thứ như vậy học viên thích được học về chúng. Vì thế mà mình đã chọn chúng và cũng bởi vì chúng có nhu cầu cao.

Theo anh điểm mạnh và điểm yếu của Developer Việt Nam mà anh biết liệu có một sự khác biệt nào giữa Developer Việt Nam và những Developer khác trên thế giới?

Mình nghĩ cũng có khác biệt. Mình luôn nhận được câu hỏi này và cũng không muốn trả lời lắm vì như kiểu bị ép phải kết luận một nhóm người trong một đoạn văn ngắn vậy. Tuy nhiên nhìn chung, mình nghĩ đây là nơi khá tuyệt khi có rất nhiều người quan tâm và yêu thích công nghệ. Nơi mà lập trình trông thật ngầu, có cả những kênh như TopDev TV có khán giả đón xem và quan tâm. Vì vậy mình nghĩ điều quan trọng ở đây: bạn có môi trường “màu mỡ”, giàu dinh dưỡng để phát triển. Môi trường này cũng rộng lớn và phát triển rất nhanh trong 5 năm vừa qua. Mình nghĩ, 10 năm trước, IT chưa chắc là nghề cool ngầu, nhưng hiện tại xung quanh IT là những người giỏi nhất, những con người khởi nghiệp, văn hóa khởi nghiệp và văn hóa công nghệ.

Về những khác biệt, mình nghĩ tổng quan thì mình phải nhìn nhận nghiêm túc hơn chút, vì tổng thể hệ sinh thái còn khá trẻ. Những ông lớn công nghệ như Google, Oracle hay bất cứ công ty nào ở Silicon Valley từ những thập niên 80. Mọi người nghĩ các công ty đều phát triển “chỉ sau một đêm” nhưng phải mất hàng thập kỷ cho sự xuất hiện của Google hay Facebook. Việt Nam cũng tương tự một chút, và vẫn cần rất nhiều kinh nghiệm vì một khi Việt Nam xây dựng các công ty toàn cầu, sẽ cần nhiều kỹ sư dày dặn kinh nghiệm, xây dựng hệ thống khổng lồ.

Một số trung tâm mở ra cho học sinh cấp một, cấp hai để bắt kịp những công nghệ tiên tiến sớm nhất có thể Vậy theo quan điểm của anh ảnh hưởng tích cực và tiêu cực lên những học sinh này là gì?

Mình không biết điều này có ý nghĩa tiêu cực không. Trau dồi kiến thức công nghệ ở độ tuổi nào cũng rất tốt. Hiểu biết công nghệ sẽ không bao giờ làm bạn thất vọng cả. Cũng giống như học cách đọc hay học chơi nhạc cụ, đây vẫn sẽ là những kỹ nắng sống hữu ích ngay cả khi bạn không trở thành nghệ sĩ hay nhà văn chuyên nghiệp.

Charles Lee 02

Chúng tôi giảng dạy code ở mọi lứa tuổi. Nhưng đây lại là vấn đề khác, giống như đi hỏi giảng viên đại học rằng “Thầy có muốn dạy cấp hai không?”. Họ có thể dạy, nhưng nên để mọi người làm đúng chuyên môn của mình và hướng tới đúng đối tượng.

Anh nghĩ như thế nào về việc On job training như kiểu các doanh nghiệp có nhân viên giảng tại những buổi workshop ngắn hạn?

Mình nghĩ điều đó rất tuyệt. Nếu càng có nhiều người, giáo dục nó giống như công việc cộng đồng, không phải như chỉ có một người thì học, người kia thì dạy. Mọi người đều có thứ gì đó để chia sẻ. Theo mình điều khá cản trở ở một tổ chức là mọi người quá bận rộn. Như là có ngày, ông sếp đề nghị “Em tổ chức một buổi workshop đi”, mà bạn thì kiểu “Em còn rất nhiều việc phải hoàn thành nữa” nên người ta thường không có đủ thời gian để phát triển, nâng cao kinh nghiệm làm việc, và đó là những gì chúng ta đang gặp phải.

Chúng ta luôn nghĩ đến làm thế nào để giáo dục về công nghệ, bồi đắp chỗ này chỗ kia một chút. Tất cả một chút đó có thể tạo nên sự khác biệt. Đó là lý do vì sao các công ty nên tham gia, và mình nghĩ các công ty sẽ khó có thể tập trung để tổ chức workshop thường xuyên.

Trong khoảng thời gian ở Việt Nam, anh có cảm thấy sự thay đổi nào về mặt tích cực lẫn tiêu cực của những học viên và ứng viên trong thời gian qua?

Mình nghĩ người trẻ chính là tương lai đấy. Khi tới Việt Nam thì mình cảm thấy hơi già chút vì đột nhiên mình luôn lớn tuổi hơn tất cả mọi người. Ở Mỹ mình không cảm nhận được điều này như ở đây đâu. Có lẽ ở đây luôn có xu hướng mới hoặc là mọi người đều can đảm hơn. Người trẻ thì không hề sợ thất bại, họ không lo lắng khi phải nhìn lại quá trình hay đưa ra câu trả lời sai. Điều này thì sẽ dễ dàng giảng dạy và tiếp cận nhiều người hơn. Không chỉ người trẻ, mà những người lớn tuổi cũng có tinh thần giống vậy, chỉ là gần đây mình tiếp xúc người trẻ tuổi nhiều hơn.

Lời khuyên từ chuyên gia

Vì một số lý do những junior và các ứng viên khác lựa chọn chuyên môn dựa theo xu hướng của ngành như kiểu việc càng khó thì càng được “ngon”. Quan điểm của anh thế nào?

Theo mình thì điều đó không thực sự quan trọng, rất nhiều người không theo đuổi công việc được đào tạo như chuyên ngành đại học. Chuyên ngành là một chuyện, bạn luôn luôn có thể học thêm cái khác. Thực ra tại CoderSchool, hầu hết học viên không có bằng cấp về Khoa học Máy tính, mà những chuyên ngành rất khác như Kinh doanh, Nghệ thuật, Pha chế, Nghệ sĩ xăm hình,… chúng tôi có học viên với những background khác nhau và trở thành những lập trình viên xuất sắc. Khi phải chọn chuyên ngành đại học, đó là chuyện quan trọng. Khi còn học ĐH, mình đã từng rất hoảng vì nó. Sau cùng thì mình vẫn gắn bó với chuyên ngành đã chọn nhưng hầu hết thì không. Nó giống như chọn thứ gì để học tập chăm chỉ để tận hưởng khi nhận điểm tốt, đó là điều quan trọng nhất.

Vậy có khó khăn gì không để biết được điểm mạnh của sinh viên để có thể lựa chọn khóa học phù hợp? Anh có lời khuyên nào cho họ không?

Đó là công việc của các trường, còn bạn nên thử sức nhiều nhất có thể. Đối với các sinh viên Đại học, mình có một lời khuyên: Một khi đã ra trường, sẽ rất khó để học cái mới. Hãy tưởng tượng khi bạn đã trưởng thành và muốn học về thiên văn, sinh học, kinh tế, điều đó khó hơn rất nhiều so với hồi đại học. Vậy nên hãy thử nhiều và đa dạng nhất có thể. Vì như vậy, bạn sẽ nhận ra mình không giỏi cái gì, hay không thích gì, kể cả thế thì bạn vẫn học hỏi thêm kinh nghiệm. Ví dụ như bạn nhận ra mình không thích Hóa học – chẳng sao cả, dành thời gian cho cái khác thôi.

Theo anh, mất bao lâu để một học viên chưa biết gì về lập trình trở thành một front-end developer hoặc một mobile developer? Họ phải làm những gì để đạt được mục tiêu đó? 

Quỹ thời gian như nhau không tương đồng với mỗi người. 3 tháng cho người này có thể bằng 3 năm cho người khác. Đó là câu chuyện bạn tập trung thế nào, làm việc thế nào và sử dụng thời gian như thế nào. Những khóa học của chúng tôi diễn ra trong 3 tháng, đó là khoảng thời gian tối thiểu cần thiết. Nếu bạn thật sự chăm chỉ trong 3 tháng, bạn có thể trở thành lập trình viên. Một số người khác có thể cần nhiều thời gian hơn nếu như chưa tập trung cao độ hay có ít kinh nghiệm hơn, nhưng trên cơ bản là khoảng 3 tháng.

Xin cảm ơn sự góp mặt của anh Charles Lee và những chia sẻ thú vị về tiềm năng của IT tại Việt Nam. Qua bài viết này, TopDev hy vọng bạn đọc tìm được nguồn cảm hứng và vững tin với quyết định theo đuổi ngành IT. Hy vọng CoderSchool sẽ phát triển và là nguồn cung ứng nhân lực chất lượng cho các doanh nghiệp.

Tái tuyển dụng IT hiệu quả? Thách thức và cơ hội cho các công ty hậu Covid-19

tuyển dụng it sau covid

Cuộc bùng nổ do sự lan nhanh của dịch Covid – 19 cách đây gần 3 tháng đã tạo ra những ảnh hưởng đến vấn đề nhân sự các công ty. Hiện tại, dịch bệnh đã hầu như được kiểm soát tại Việt Nam và các công ty đã có thể khởi động lại các dự án của mình. Tuy nhiên, một trong những hệ lụy lớn và cũng được xem là vấn đề nan giải đối các công ty chính là sự thiếu hụt về nguồn nhân lực một cách trầm trọng. Vậy làm cách nào để các tổ chức/ doanh nghiệp có thể tái hoạt động tuyển dụng IT sau Covid? Cùng TopDev phân tích sâu hơn về vấn đề này thông qua bài viết sau đây.

Vấn đề: Thách thức và áp lực cạnh tranh trong thị trường tuyển dụng sau dịch bệnh

Công việc tuyển dụng hậu Covid-19 đang là mối quan tâm lớn đối với hầu hết tất cả các nhà quản lý nhân sự. Sau dịch bệnh, các công ty đã thực hiện nhiều biện pháp nhằm giảm thiểu thiệt hại trong giai đoạn cách ly toàn xã hội.

Tuy nhiên, một trong những khó khăn lớn chính là việc thích nghi với làn sóng “nhảy việc” mới đang thực tế diễn ra sau mùa dịch, làm thế nào để các công ty có chính sách tuyển dụng phù hợp, giúp họ thật sự nổi bật để các ứng viên tiềm năng có thể tìm đến và nhận lấy cơ hội trong bối cảnh có quá nhiều công ty cùng phát sinh nhu cầu tuyển dụng nguồn lực lao động cùng một lúc. 

Về phía ứng viên, hậu quả từ bệnh dịch cũng để lại trong họ 2 nỗi lo lớn – nỗi lo mất việc cũng như nỗi lo mất thu nhập. Người đi làm nhìn chung luôn tỉnh táo thận trọng khi nhảy việc, và trong hình hình diễn biến như hiện tại, xu hướng này sẽ còn tăng cao. Tùy thuộc vào tình hình hình dịch bệnh và tác động của nó đối với các doanh nghiệp trong dài hạn, một khi nhà tuyển dụng phản ứng và tối ưu hóa lực lượng lao động của họ theo nhu cầu mới và điều kiện thị trường, họ có thể kỳ vọng rằng số lượng ứng tuyển sẽ tăng.

Hàng trăm nghìn công ty với các loại hình tổ chức, quy mô lớn nhỏ khác nhau đều đang nỗ lực để thay đổi, tìm kiếm những cách thức tiếp cận mới hơn với ứng viên của mình. Biết đâu, đây cũng là cơ hội để các nhà quản lý nhân sự nhìn nhận và tự kiểm chứng lại năng lực tuyển dụng của tổ chức mình.

Giải pháp: Thời điểm vàng để “lấy lòng” ứng viên bằng chiến đánh bóng thương hiệu tuyển dụng (Employer branding)

Trong thời điểm hiện tại, Employer Branding đóng một vai trò chủ lực trong việc quyết định sự lựa chọn của các ứng viên giữa hàng ngàn cơ hội đang có mặt trong biển việc làm. Sau thời điểm khó khăn, đây là “thời điểm vàng” để thu hút các nhân tài mà trước đây không dễ gì có thể chiêu mộ họ. Employer Branding sẽ giúp họ dễ quyết định hơn khi có thông tin về nhà tuyển dụng một cách trực quan nhất. Vì vậy những phương thức hỗ trợ tuyển dụng của TopDev luôn hướng đến việc áp dụng giải pháp tuyển dụng hiệu quả nhất và tối ưu chi phí nhất cho khách hàng

TopDev đã hỗ trợ hàng trăm doanh nghiệp tại thời điểm này, giúp các doanh nghiệp thu hút và tiếp cận nhiều ứng viên bằng các chiến lược branding mạnh trên các phương tiện truyền thông, target đúng đối tượng, đúng người, đúng việc, tạo ra một “Cửa sổ tuyển dụng” trực quan, là nơi thể hiện hình ảnh chính thức và tổng quan nhất của doanh nghiệp thông qua các kênh online, đồng thời nó giúp tạo cầu nối khai thác và tìm kiếm các cơ hội việc làm qua Internet cho các ứng viên. 

“Thương hiệu nhà tuyển dụng (Employer Branding) là một lời hứa.”

Điều cần lưu ý của việc làm thương hiệu chính là làm truyền thông không bao giờ bị giới hạn bởi một kênh nào, phải luôn kết hợp nhuần nhuyễn giữa online và offline, vì xu hướng người dùng luôn chọn nhiều hơn 1 phương cách để nhận và chia sẻ thông tin.

Có thể các lập trình viên sẽ biết đến chúng ta qua một bài Facebook post, sau đó sẽ gặp chúng ta tại buổi Career talk hoặc workshop sharing, hoặc họ nghe một video bài nói chia sẻ của một Manager / Senior Developer của công ty bạn trên các kênh sharing và công nghệ (TopDev blog, Tech talk..) và sau đó tìm kiếm thông tin về chúng ta qua chính website tuyển dụng của công ty hoặc các trang đăng tin tuyển dụng IT nói chung. TopDev hiện sở hữu và liên kết với hơn 80% các kênh ngách dành cho lập trình viên, giúp các nhà tuyển dụng có thể phủ truyền thông một cách hiệu quả nhất. 

Một thực tế cho thấy, bản thân các anh chị HR sẽ không đủ sức để làm Employer Branding hiệu quả, vì nó đòi hỏi sự phối hợp “rất sớm và rất sâu” của nhiều nguồn lực khác nhau. Đặc biệt là trong ngành tuyển dụng IT, các anh chị sẽ khó có thể bắt kịp các xu hướng công nghệ, khó biết được các bạn lập trình viên đang theo dõi ai. Theo các báo cáo gần đây của TopDev chỉ ra rằng, một trong những phương thức giúp “đánh bóng” hình ảnh công ty chính là tận dụng chính nguồn lực của công ty đó để làm truyền thông cộng đồng. Thực tế cho thấy, các lập trình viên có thiên hướng sẽ muốn đầu quân cho các “thần tượng” trong ngành mà họ đang theo dõi. Đó cũng chính là những content (nội dung) sẽ khiến cho các lập trình viên khó có thể bỏ qua nội dung tuyển dụng của công ty bạn. 

“Họ chính là những đại sứ trong phương thức Employer Branding giúp tăng tỷ lệ ứng tuyển lên gấp 2 lần!”

Gợi ý một số nhà tuyển dụng nổi bật cho Dev ứng tuyển:

Đối với phương thức tiếp cận tuyển dụng nêu trên, các Tech Leads cao cấp trong công ty sẽ đóng vai trò như một người từng trải – đang trực tiếp thực hiện các công việc và sản phẩm đang tìm kiếm ứng viên mới, chắc chắn sẽ mang mức độ “tin tưởng” cũng như xác thực cao cho giới lập trình viên đang tìm việc và nắm cơ hội cùng làm việc với những người đi trước đam mê và có ảnh hưởng trong cộng đồng. 

Ở thời điểm hiện nay, có hơn 450 công ty đã cùng TopDev thực hiện Employer branding theo cách thức nêu trên, các Tech leads sẽ tham gia vào các sự kiện cộng đồng do TopDev tổ chức, hay xuất hiện trên những bài viết chuyên sâu được TopDev đăng tải trên các kênh ngách của ngành lập trình. Từ đó, các nội dung, hình ảnh, video này sẽ giúp các công ty lập trình viên hiểu hơn về các công nghệ, và tăng tỷ lệ apply một cách đáng kể. 

Các chương trình của TopDev đã và đang làm sẽ giúp cho đội ngũ nhân sự hoạch định chiến lược quảng bá và xây dựng hình ảnh một cách chuyên nghiệp và đúng angle mà chỉ có những người trong ngành mới hiểu, từ đó giúp công ty quảng bá văn hoá Employer Branding của mình một cách dễ hiểu và trực quan nhất đến với các bạn lập trình viên. Với nhiều khách hàng lớn TopDev từng làm việc như FE Credit, VNG, KMS, v.v… tỷ lệ chuyển đổi và apply của họ tăng mạnh thậm chỉ là 200% nếu làm đúng cách và đúng thời điểm, giúp các anh chị HR hoàn thành sớm KPI tuyển dụng của năm.

Theo khảo sát Mercer về giới nhân sự tại mùa dịch, phần lớn các công ty đã phải thay đổi cách thức tuyển dụng của họ giữa lúc bùng phát COVID-19.

Lời kết

Tình hình chung của các công ty hiện tại vẫn gặp nhiều khó khăn sau dịch. Vì thế, chúng ta phải biết tận dụng những thời điểm vàng để đẩy mạnh những phương thức tuyển dụng hiệu quả. Đây cũng là thời điểm vàng để các nhà tuyển dụng cùng chạy đua quảng bá hình ảnh của mình đến các ứng viên tiềm năng. Hình ảnh, thông tin và content về công ty càng trực quan thì cơ hội tuyển dụng sẽ càng cao. Và quan trọng hơn nữa, chúng ta phải biết các tiếp cận đúng kênh, đúng người đúng việc để tối ưu các chiến dịch tuyển dụng của mình. Vì vậy, nền tảng tuyển dụng IT All-in-One của TopDev sẽ giúp các nhà tuyển dụng nhẹ gánh và sớm hoàn thành chỉ tiêu tuyển dụng của mình trong thời điểm khó khăn này. Ưu đãi đặc biệt tháng 5 kết hợp Employer Branding từ TopDev .

Làm animate siêu đơn giản với hook khi react component mount và unmount

Animate đơn giản với react component mount và unmount

Có rất nhiều lúc chúng ta muốn thêm/xóa một element trên trình duyệt, nó rất chi là trực quan dễ dàng với jQuery, tuy nhiên vì không còn đụng chạm trực tiếp vào DOM, việc đơn giản đó lại hơi kỳ công

// những ngày xa xưa ấy còn đâu
$("#my-element").fadeIn("slow");

Tại sao lại khó khăn ấy nhỉ? Hãy mường tượng nó qua một ví dụ

/* styles.css */

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
// index.js

const App = ({ show = true }) => (
  show 
  ? <div style={{ animation: `fadeIn 1s` }}>HELLO</div> 
  : null
)

Đó là tất cả những gì chúng ta cần làm để animate lúc component đang mount với fadeIn, tuy nhiên lại không có cách nào để animate unmount, vì chúng ta đã xóa cái DOM ngay khi show chuyển thành false. Element đã ra đi ngay lập tức.

Tuyển dụng lập trình viên React

Vậy chúng ta cần làm gì

  1. show thay đổi, báo react khoan hãy unmount, delay nó lại một chút
  2. Chạy animate
  3. Animate vừa chạy xong, unmount

Đây là cách làm đơn giản nhất chỉ bằng CSS và hook, tất nhiên nếu đụng tới những tính huống phức tạp hơn, khuyến khích bạn sử dụng react-spring

// index.js

import React, { useState } from "react";
import ReactDOM from "react-dom";

import "./styles.css";
import Fade from "./Fade";

const App = () => {
  const [show, setShow] = useState(false);

  return (
    <div>
      <button onClick={() => setShow(show => !show)}>
        {show ? "hide" : "show"}
      </button>
      <Fade show={show}>
        <div> HELLO </div>
      </Fade>
    </div>
  );
};

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
// Fade.js

import React, { useEffect, useState } from "react";

const Fade = ({ show, children }) => {
  const [shouldRender, setRender] = useState(show);

  useEffect(() => {
    if (show) setRender(true);
  }, [show]);

  const onAnimationEnd = () => {
    if (!show) setRender(false);
  };

  return (
    shouldRender && (
      <div
        style={{ animation: `${show ? "fadeIn" : "fadeOut"} 1s` }}
        onAnimationEnd={onAnimationEnd}
      >
        {children}
      </div>
    )
  );
};

export default Fade;
/* styles.css */

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

Xem demo tại đây

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

Xem thêm các việc làm về React trên TopDev

TopDev via Vuilaptrinh

“Khi công nghệ không chỉ dành cho nam giới” – Lea Trúc, Founder của Women Meet Tech

Lea Trúc

Là diễn giả nổi tiếng trong các sự kiện, hội thảo của TEDx, Google, Facebook, ít ai biết chị Lea Trúc từng xuất thân với chuyên ngành quản lý thiết kế và từng là giảng viên tại một trường đại học danh tiếng ở Boston, Mỹ.

Bước chân vào lĩnh vực công nghệ từ con số 0, Lea Trúc đã tự tìm hiểu về lập trình – công nghệ, không phải với mong muốn trở thành một thợ code giỏi mà để có thể thay đổi suy nghĩ của cộng đồng về bình đẳng giới, nhất là trong lĩnh vực IT. Với chuyên mục “Chuyên gia nói”, hãy cùng TopDev tìm hiểu với mục tiêu đưa Việt Nam lên bản đồ Women Techmakers thế giới, chị Lea Trúc đã và đang thực hiện điều đó như thế nào?

Về khách mời Lea Trúc:

Thật ra mình không tự nhận bản thân là developer mà giống như một người ủng hộ công nghệ và xây dựng cộng đồng hơn. Mình hiện đang là đại sứ của Google Women Techmaker tại Việt Nam, và cũng là founder của chương trình Women Meet Tech.

Đây là chương trình đào tạo S.T.E.M toàn diện và đa dạng đầu tiên được công nhận và tài trợ bởi Lãnh sự quán Hoa Kỳ, và được ủng hộ bởi Google Women Techmakers.

Từ đầu xuất phát điểm của chị không phải trở thành lập trình viên. Vậy đâu là động lực và cơ duyên của chị khi theo đuổi lĩnh vực này?

Có thể nói computer science từng là một bí ẩn đối với mình, và trong quá khứ, một trong những điều mình sợ nhất là những thứ về công nghệ vì mình không hiểu đó là gì cả. Làm việc thông qua ngôn ngữ lập trình giống như một thế giới khác đối với mình, và đôi khi mình bối rối vì không hiểu nguyên nhân của vấn đề đã diễn ra và ảnh hưởng đến cuộc sống của mình.

Bắt đầu từ khi mình còn ở Boston và làm giảng viên Marketing, mình có nhiều cơ hội tham dự các hội thảo và hội nghị về công nghệ tại Boston. Trường MIT và Harvard đã rất tích cực trong việc tổ chức các sự kiện này. Và khi đến những sự kiện này, mình nhận ra rằng đây chính là cơ hội rộng mở dành cho tất cả mọi người chứ không phải chỉ dành riêng cho những ai thực sự học về computer science; bao gồm cả researcher, marketer hay cả những người mới muốn sử dụng những kỹ năng công nghệ để mở rộng sự nghiệp.

Vì vậy mình nhận ra đây chính là lúc mình phải tạo ra sự thay đổi ngay lập tức. Sau đó mình sắp xếp trở về Việt Nam và nhận ra được rằng Việt Nam thực sự là một nơi vô cùng phù hợp bởi bối cảnh công nghệ nơi đây đang thực sự phát triển rất nhanh. Và mình cũng tìm thấy cơ hội để học hỏi và phát triển bản thân. Mình nghĩ là mình đã có quyết định đúng đắn khi quay về và đó cũng là lý do mình có thể làm được nhiều việc tại đây không chỉ để phát triển bản thân mà còn đóng góp vào cộng đồng và tạo ra ảnh hưởng lớn, đặc biệt đối với women tech.

Khi mình mới về Việt Nam và tham gia các hội nghị công nghệ tầm cỡ, mình khá là bất ngờ khi hầu như mình là người phụ nữ duy nhất (hoặc 1 trong 2) trong một team và mình nghĩ mình cần phải làm gì đó. Bắt đầu từ lúc này mình mới nghĩ là có nhiều chương trình cho phụ nữ trên toàn thế giới: women in tech, chương trình đào tạo S.T.E.M cho nữ giới,… và mình chưa thấy chúng phổ biến tại Việt Nam vào năm 2018, vì vậy mình đã khởi xướng và bắt đầu những buổi hội thảo chuyên đề đầu tiên về lập trình web cơ bản cho phụ nữ và mọi thứ bắt đầu từ đó.

Giữa “theo đuổi đam mê” và “chọn vội một ngành để thử” thì chị có bao giờ nghĩ mình sẽ rơi vào trường hợp thứ hai chưa? 

Thật lòng mà nói, mình nghĩ “theo đuổi đam mê” khá là cường điệu. Mình nghĩ nó giống như khám phá những cơ hội khác nhau bất kể bạn đang ở đâu và điều này giống mình hơn khi có những cơ hội tìm ra hướng đi riêng và tiến nhanh hơn trong sự nghiệp của mình. Mình nghĩ có một lúc nào đó lập trình sẽ là một kỹ năng ngoại ngữ hoặc điều gì đó tương tự trong tương lai. Dù cho bạn ở đâu, background của bạn như thế nào, bạn là marketer hay làm về tài chính hay bất cứ lĩnh vực nào trong cuộc sống. Mình nghĩ việc hiểu công nghệ cốt lõi khá là quan trọng vì nó ảnh hưởng đến cuộc sống hàng ngày của chúng ta nhiều đến mức nào. Vậy nên ít nhất bạn phải hiểu nó và hiểu tại sao đó là cách bạn lập kế hoạch và hơn hết là lập kế hoạch sự nghiệp. Về kỹ năng coding hay lập trình, bạn phải hiểu logic chính là cốt lõi của chúng. Mình nghĩ đây là nền tảng dù cho bạn đang theo đuổi con đường nào đi chăng nữa.

Định kiến về giới tính và con đường đến với Women Meet Tech

Chị nhận thấy rào cản của phụ nữ để thử sức với ngành công nghệ – lập trình là gì? Theo chị, tại sao mọi người lại nghĩ lập trình là lĩnh vực của nam giới?

Mình thấy có khá nhiều nhận định về giới tính, về việc nếu bạn là nam, bạn phù hợp với công việc logic hơn, còn nếu bạn là nữ, bạn phù hợp với những nghề mang tính nghệ thuật hay các ngành nghề chăm sóc như điều dưỡng, y tá. Mình không tin vào những điều này, ngay cả khi có nhiều nghiên cứu khoa học khác nhau và các báo cáo đưa ra kết quả khác nhau. Nhưng mình tin là mọi người đều có khả năng và những khả năng này không phụ thuộc vào giới tính của họ. Vậy nên các chàng trai có thể làm tốt công việc điều dưỡng và các cô gái cũng có thể trở thành data scientist hay computer scientist tuyệt vời và vân vân. Về rào cản thì mình nghĩ phần lớn là do suy nghĩ của bạn và nhận thức về văn hóa, đặc biệt đối với các nước Châu Á thì có nhiều kỳ vọng đối với vai trò giới tính hơn. Phụ nữ bị áp đặt phải ở nhà làm việc nhà, chăm sóc gia đình và không được làm những gì trái với mong muốn của cha mẹ hay những thế hệ đi trước. Ví dụ như có rất nhiều cha mẹ Châu Á mà mình biết, thậm chí cả cha mẹ của mình, họ muốn mình theo đuổi những ngành nghề như là marketing hay quản trị kinh doanh, bác sỹ hay luật sư,… Nhưng không ai nói là “Hey! Bạn nên trở thành nghệ sỹ” hay “Bạn có thể làm nghề gì đó mang tính sáng tạo hơn” hay “Nếu bạn là nữ, tôi nghĩ bạn phù hợp để làm computer science”. Đây là một trong những văn hóa ưu tiên của gia đình trong việc dẫn dắt con cái của họ theo đuổi sự nghiệp. Quan trọng nhất là nhận thức và suy nghĩ của bạn. Để thay đổi những điều này, bạn cần phải bắt đầu tại nhiều vị trí cùng lúc.

Lea Trúc - 01

Văn hóa bao hàm cả những quan niệm gia đình, quan niệm xã hội cũng như quan niệm cá nhân về con người bạn và thế giới xung quanh bạn. Có lúc bạn nghĩ bạn không thể làm thứ này vì đó là việc của con trai, trong suy nghĩ của bạn đã có định kiến về giới tính. Vậy nên việc đầu tiên bạn cần làm là thoát khỏi cái suy nghĩ đó. Bạn cần biết là nếu bạn không thử, bạn sẽ không biết được khả năng của bạn; nếu bạn không thử học kỹ năng mới, bạn sẽ không biết bạn có làm được hay không. Vậy nên bạn cần phải đem những thứ đó ra khỏi tâm trí và bắt đầu học một cái gì đó và thực hiện nó

Khi đi những bước đầu tiên đến hiện tại, có người Mentor nào mà chị thấy cảm kích và tạo động cho chị không?

Dù mình không (có mentor) như những bạn khác, nhưng may thay trên con đường này, mình đã gặp những con người tuyệt vời giúp đỡ mình trong suốt hành trình.

Đó không nhất thiết phải là sự giúp đỡ về mặt kỹ thuật mà đôi khi chỉ là một câu nói: “Ê Lea, mình biết cậu làm được mà, hãy cứ thử đi. Và cậu nên biết rằng cậu chính là một trong những người đầu tiên thực hiện điều này nên hãy cứ thử thôi”. Chính những lời động viên tích cực ấy đã thúc đẩy mình vượt ra khỏi giới hạn. Không phải chỉ có một người đặc biệt nào mà đó là tất cả những con người mà mình đã gặp trong suốt quá trình.

Một số người đến từ cộng đồng những người truyền cảm hứng giống như mình – những tiền bối, người đã làm rất nhiều việc ấn tượng trước đấy. Đôi khi là những người quen, những người mà mình đã gặp trong những buổi hội thảo hay workshop; hay đôi khi là học được chỉ từ những bài hướng dẫn trên mạng và rất nhiều thứ khác.

Chính vì vậy, mình nghĩ mentor của mình có thể là bất cứ ai. Thậm chí đó là đồng nghiệp của bạn. Không phải là chỉ duy nhất một người nào đó mà bạn có thể gọi là mentor.

Vâng, và đó là cả những người tham gia và ủng hộ chương trình của bọn mình. Mỗi khi họ đến bên và hỏi mình những câu như: “Làm sao để họ có thể đi theo con đường sự nghiệp này sau khi tham gia sự kiện của mình?” Mình cảm thấy điều này như một phần thưởng với mình. Bởi cảm giác giống như chương trình của bọn mình đã thực sự gia tăng niềm tin và tạo động lực cho họ. Và đồng thời, họ đang tạo động lực ngược lại cho bọn mình để có thể tiếp tục cống hiến cho cộng đồng vậy.

Women Meet Tech là gì? Những hoạt động hiện tại của Women Meet Tech & cộng đồng.

Khi mới bắt đầu xây dựng chương trình này thì mình đã thấy được trước đó, có rất nhiều tổ chức và cộng đồng Women in Tech hoạt động ở Việt Nam, tuy nhiên chưa có cái nào thực sự là về mặt kỹ thuật vào thời điểm ấy. Vì thế mình muốn nói rằng đây chính là một cộng đồng Women in Tech – một cộng đồng mới, và mình muốn nó được đón nhận như một chương trình mà bạn có thể thực hành và học được những kiến thức về mặt kỹ thuật ngay sau khi tham dự những buổi workshop.

Và mình mong rằng trong tương lai, sẽ có những bạn nữ technical trainers bởi hiện nay rất hiếm khi có một team mà phụ nữ chiếm thế thượng phong. Như hiện tại, team mình đang có một front-end developer, back-end developer – bọn mình có những lập trình viên rất giỏi, và cũng có cả một UX/UI developer và mình với vai trò điều hành chương trình. Mình cho rằng điều này sẽ tạo ra những hình mẫu cho chị em phụ nữ và cả những bạn nam, để họ thấy rằng cùng nhau, chúng ta có thể tạo ra sự khác biệt, thứ mà Việt Nam chưa từng có trước đây. Đó là với hình mẫu những người phụ nữ như thế, chúng tôi có thể làm được. Đó là việc phụ nữ Việt có thể code, có thể nói về những vấn đề kỹ thuật, có thể đại diện cho một Việt Nam hoàn toàn khác, để không chỉ khi nhìn vào thì chỉ thấy về nhan sắc bề ngoài hay chỉ thấy những kỳ vọng phong kiến của xã hội về người phụ nữ Việt.

Quá trình kêu gọi và thuyết phục tài trợ cho các chương trình của chị có khăn gì không? Bằng cách nào chị đã thành công trong việc thuyết phục các nhà tài trợ?

Dĩ nhiên cái gì mới thì sẽ có những thử thách nhất định. Nó cũng làm mình mất một khoảng thời gian để có được khoảng tài trợ đầu tiên từ bên counselor và những cộng đồng khác tham gia vào. Miễn là bạn có thể thể hiện được rằng bạn đang làm những việc thực sự ý nghĩa và mang lại những tác động và có thể giúp đỡ những người khác thay đổi cuộc đời, sự nghiệp của họ thì sẽ ngày càng nhiều người sẽ tham gia cùng bạn và giúp bạn tiến lên.

Ở giai đoạn đầu thì mọi thứ sẽ hơi khó khăn, tuy nhiên hiện tại, mọi thứ đang diễn ra rất tốt, mọi người bắt đầu biết nhiều hơn về cộng đồng này. Mọi người ngày càng tích cực tham gia, mình cho rằng nó ngày càng lớn dần và đôi khi mình cảm thấy đôi chút choáng ngợp với tốc độ này.

Mình cho rằng đó là một dấu hiện tốt và mình cần biết được team mình phải lớn dần, vì thế cần thêm nhiều người tham gia, giúp đỡ.

Đối với một tổ chức phi lợi nhuận sẽ rất khó để quản lý các thành viên, đặc biệt ở những quy mô chương trình lớn. Không biết quy mô team của chị như thế nào, có những ai đồng hành cùng chị không?

Hiện tại trong team mình đang có 6 người: 4 người là trainer chính về kỹ thuật và 2 người là điều phối viên. Tuy nhiên mình cố tình giữ đội hình gọn như vậy. Bởi như thế thì bọn mình có thể tự do trong việc lựa chọn làm những việc mà bọn mình cảm thấy là cần thay vì vận hành một team lớn với hệ thống cấp bậc, với mỗi team nhỏ độc lập nhau.

Đồng thời, vì phải chi tiêu ngân sách một cách khéo léo nên mình cho rằng chỉ nên bắt đầu với team nhỏ. Tuy nhiên, hiện tại bọn mình vẫn đang rất ổn với team 6 người cùng với những tình nguyện viên và những người hỗ trợ.

Mình còn nhớ lần cuối đó khi bọn mình thực hiện cuộc thi Original Pitching Contest for Diversity & Inclusion, bọn mình đã có thể kiểm soát được những việc dường như bất khả thi, đó là việc tổ chức những cuộc thi này trong 2 tháng. Tuy nhiên bọn mình tự hào rằng vào thời điểm ấy, bọn mình đã có được những con người đến từ các tổ chức khác nhau, lãnh sự quán, tổ chức Women Empower và tất cả mọi người đã đến và giúp đỡ bọn mình có thể vượt qua khó khăn ấy. Lúc đó bọn mình, bao gồm cả những tình nguyện viên, tất cả là gần 30 người. Và có một số là đến từ Thái Lan, từ Myanmar, Malaysia và các nước Đông Nam Á khác và thậm chí là những đồng nghiệp của họ nữa. Vì vậy mình cảm thấy rất biết ơn về việc đã có thể kết nối nỗ lực của mọi người với nhau để cùng nhau xây dựng thứ mà tưởng chừng như không thể. Điều ấy khiến mình cảm thấy rất hạnh phúc và tự hào về những gì mà mình đang làm hiện tại.

Chị đã và đang “giữ lửa” cho chương trình Women Meet Tech bằng cách nào? Chị không ngại chia sẻ điều gì khiến chị tự hào nhất khi nhắc đến Women Meet Tech cho đến hiện tại?

Mình cho rằng đó chính là những con người vui vẻ. Họ cho mình những đánh giá tốt khi mà mình không yêu cầu họ làm như thế. Hay việc họ tham gia vào cộng đồng của bọn mình mà không cần mình phải quảng cáo hay chi tiền cho quảng cáo. Mình muốn được nhìn thấy được rằng mọi người thực sự quan tâm về chương trình mà bọn mình đang thực hiện; những con số thực sự cho thấy về việc mọi người quyết định theo đuổi sự nghiệp này – con đường công nghệ – sau khi tham gia những buổi workshop của bọn mình; bao nhiêu người thực sự có được những technical skill sau mỗi buổi hội thảo mà bọn mình tổ chức.

Và khi mà mọi người đến với bọn mình, bọn mình bắt đầu nhận ra rằng bọn mình thực sự đang tạo động lực để thúc đẩy, để khiến mọi người biết về cộng đồng. Nó cứ lan tỏa dần và ngày càng nhiều người tham gia cùng; ngày càng nhiều người biết về chương trình và tham gia vào, và đồng thời, họ vừa nhận được lợi ích, vừa có thể giúp đỡ người khác cùng một lúc.

Có thể nó bắt đầu một cách chậm rãi tuy nhiên nó đang thực sự diễn ra, có thể là trong 2 hay 3 năm tới, sẽ rất đáng để mong đợi.

Lời khuyên đúc kết từ kinh nghiệm bản thân

Chị có lời khuyên gì với các bạn nữ đang muốn theo đuổi sự nghiệp lập trình nhưng chưa dám bắt đầu?

Trước tiên đừng ngại “xắn tay áo”, cứ chọn việc nào đó mà bạn hứng thú và bắt đầu học hỏi. Bởi vì nếu cứ lo lắng, suy nghĩ và không hành động thì sẽ không có gì xảy ra cả. Vì vậy nếu muốn tạo ra sự thay đổi trong công việc hay học kỹ năng mới, hãy xắn tay lên và chọn thứ gì để học đi.

Từ kinh nghiệm bản thân, theo chị thì mất bao lâu để một người chưa có kiến thức về lập trình có thể làm ra 1 sản phẩm?

Thật ra thì nó phụ thuộc vào cách định nghĩa cái product ấy, như là website thế nào, game kiểu nào. Mình thì mình chỉ mất vài tuần để dựng game cơ bản và vài tháng cho một website hoạt động được. Tuy nhiên thì trong các buổi workshop mình sẽ đơn giản hóa nhất có thể để người tham dự có thể xây dựng framework cơ bản chỉ 1 hay 2 buổi workshop. Cho nên làm HTML, CSS là một chút của JavaScript nên chuyện này tùy vào định nghĩa của bạn, nhưng mình tin khi bạn đã xắn tay áo lên và bắt đầu lập trình, bạn sẽ thấy kết quả đến trong vòng vài ngày hay vài tuần, như website cơ bản hoặc một vài demo đơn giản, nên nó phụ thuộc vào bạn cả. Mình muốn nhắc thêm về một điểm cộng về câu chuyện công nghệ, khi mà công nghệ thay đổi rất nhanh cho nên những gì bạn đang học cũng giống như các software engineers khác, và tụi mình cũng làm việc ngành này khá lâu rồi, cho nên vấn đề là bạn học nhanh và có ý chí như thế nào khi học công nghệ mới, vì cơ bản thì mỗi người đều giống nhau chuyện học, họ cũng tự mày mò, tìm hiểu và update về framework mới cùng tốc độ với sự thay đổi của công nghệ, và với newbie thì bạn cần phải tận dụng sự biến đổi của công nghệ và những chuyện khác như là học thêm framework mới, kỹ thuật mới, tìm hiểu những gì đang được update hàng ngày. Điều quan trọng là bạn tiếp cận nhanh và quyết tâm muốn học những thứ mới. Đó sẽ là cách mà phái đẹp bước chân vào ngành công nghệ.

Lea Trúc - 02

Nếu được, đâu là ba lời khuyên chị muốn dành cho các bạn trái ngành và đang muốn tự học lập trình?

Về lời khuyên thì thực ra đã có rất nhiều. Có rất nhiều tutorial, khóa học online và các bootcamp trực tiếp, chỉ một điều là, hãy bắt đầu đi, hãy thực sự làm và bạn sẽ thấy kết quả và có thể trong quá trình ấy, có thể ngành này không phù hợp với bạn, và bạn có thể bắt đầu khám phá những lựa chọn khác nhưng đừng sớm nản lòng khi chỉ mới bắt đầu vài tháng, dành thời gian nhiều hơn để hiểu thật sâu, tầm 6 tháng đến một năm, đối với công nghệ bạn sẽ biết thêm vài thứ.. Khi mình bắt đầu tìm hiểu React Native, có rất nhiều thứ mình chẳng hiểu nhưng mình vẫn phải làm thôi và sau đó mình nhận ra “À giờ thì mình hiểu tại sao lại như vậy rồi”, cho nên bạn không phải ép mình hiểu mọi thứ cùng lúc, chuyện đó sẽ không xảy ra đâu, ngay cả với các dev có kinh nghiệm, bạn chỉ phải thực sự làm và sau đó đến một lúc nào đó bạn sẽ hiểu tại sao nó lại như vậy. Nhưng điều quan trọng là bạn phải tạo ra nó để hiểu nhưng nếu chỉ nói về nó suốt ngày, như là xem tutorial hay tham dự tech seminar và không thực sự tự làm, bạn sẽ không thể học thêm gì hết, chỉ cần xắn tay áo lên và học thôi.

Chị có lời nhắn nhủ gì với các bạn nam lập trình viên có đồng nghiệp là nữ không?

Lea Trúc - 02

Mình nghĩ sự hỗ trợ data, giao hảo từ những giới tính khác nhau rất quan trọng trong việc tạo khoảng cách giới tính nhỏ hơn và đặc biệt ở đây với bối cảnh tại Việt Nam, nơi có rất ít phụ nữ tham gia hành trình này. Mình mong rằng công việc và môi trường dành cho phụ nữ, đặc biệt từ skyteam. Nếu có 1 hay 2 người phụ nữ trong team, hãy đối xử với họ như bạn bè, như bạn đối xử với bản thân hay với đồng nghiệp nam, chứ đừng như là phụ nữ, hãy đối xử với họ như là đồng nghiệp, và vậy đó, đừng rập khuôn bởi vì họ là phụ nữ, họ sẽ kém kỹ thuật hơn hay là họ có những vấn đề khác phải lo lắng nên họ sẽ làm việc kém hiệu quả hay làm việc ít hơn, điều đó chẳng đúng đâu, vì vậy hãy đối xử công bằng và có thể bạn có nhiều skill set kỹ thuật, và Anita Bebe ghé công ty bạn, thì hãy để họ trao đổi kiến thức, như những người đồng nghiệp bình thường, đừng để giới tính chen vào.

Tôi đối xử với cô ấy khác biệt bởi vì cô ấy là phụ nữ, đây là điều quan trọng trong quá trình giáo dục hay nuôi dạy một đứa trẻ, hãy cho chúng thấy rằng không hề có sự phân biệt đối xử với con trai hay con gái để học hỏi mà hãy để chúng học những gì chúng muốn, như là con trai có thể chơi với búp bê hay con gái có thể chơi Lego và code, và từ đó bắt đầu từ gia đình. Mình có vài đồng nghiệp nữ rất may mắn có sự hậu thuẫn từ bạn đời bởi vì đặc biệt ở Việt Nam, khi vợ bạn làm trong môi trường toàn là nam, đương nhiên sẽ có chống đối nên mình sẽ yêu cầu sự thông cảm qua quan điểm của người chồng rằng nên hiểu rằng vợ mình đi làm, để theo đuổi sự nghiệp một cách chuyên nghiệp và để chậm rãi thay đổi vấn đề khoảng cách giới tính và nếu bạn ủng hộ bạn đời của mình và bạn ủng hộ cảm xúc của cô ấy để giúp cô ấy thăng tiến trong công việc, thay vì kéo cô ấy xuống và bảo “này em không thể đi làm bởi vì ở đó có rất nhiều nam và em không nên làm ở đó” cho nên một lần nữa, có rất nhiều bước phải làm để thay đổi Women in Tech, và chúng bắt đầu từ xã hội, từ gia đình và từ bản thân. Mình còn có thể chia sẻ nhiều hơn nhưng đây là những thứ cơ bản nhất.

Xin được cảm ơn phần chia sẻ từ chị Lea Trúc. Chắc chắn rằng những câu chuyện và hoạt động của chị và Women Meet Tech đã dần thay đổi định kiến xã hội về nữ giới, đặc biệt trong công việc lập trình, công nghệ – ngành nghề mà nam giới chiếm đa số. Chị cũng quan niệm, việc thành công trong ngành công nghệ và giúp những bạn nữ khác thành công cũng có thể chứng minh cho thế giới thấy, phụ nữ Việt Nam không chỉ giỏi về cầm kỳ thi hoạ mà trong cuộc sống hiện đại, họ cũng đa tài không thua kém bất kỳ ai ở bất kỳ nơi đâu.

 

Kambria cam kết hỗ trợ cộng đồng lập trình viên AI

lập trình viên

Nhờ sự hỗ trợ từ các cộng đồng, chính phủ và các doanh nghiệp lớn, Kambria cam kết hỗ trợ cho các lập trình viên Trí tuệ nhân tạo. Với việc coi cộng đồng là trọng tâm của Kambria, chúng tôi đang ngày càng nỗ lực hơn nữa trong việc thúc đẩy phát triển hệ sinh thái công nghệ ở Việt Nam và toàn cầu.

Kambria là nhà tổ chức chính của các sự kiện lớn về công nghệ AI ở Việt Nam như Vietnam AI Grand Challenge, VietAI Summit năm 2018 và 2019. Tại các sự kiện này, Kambria đã hỗ trợ cho các bạn lập trình viên cơ hội nâng cao kiến thức, kết nối và xây dựng đội nhóm.

Cùng tìm hiểu thêm về các sự kiện này và cuộc thi Kambria Code Challenge sắp tới để tham gia thúc đẩy sự phát triển của AI và Robotics nhé.

Vietnam AI Grand Challenge

Năm ngoái, Kambria đã tổ chức chuỗi sự kiện Hackathon mang tên Vietnam AI Grand Challenge (VAGC). Sự kiện được tổ chức trong khuôn khổ Ngày hội Trí Tuệ Nhân Tạo quốc gia (AI4VN) do Bộ Khoa học & Công nghệ tổ chức, Bộ Kế hoạch & Đầu tư, Đại học Khoa học & Công nghệ Hà Nội và báo điện tử VnExpress tổ chức.

lập trình viên

Được tổ chức ở 3 thành phố lớn tại Việt Nam là Thành phố Hồ Chí Minh, Đà Nẵng và Hà Nội, VAGC đã thu hút 90 đội dự thi tham gia thi đấu trong 40 giờ của Hackathon để phát triển ứng dụng trợ lý ảo AI trong các lĩnh vực bán lẻ, giáo dục, chăm sóc y tế. Các giải pháp được áp dụng bao gồm trợ lý ảo chatbot tự động, tư vấn sản phẩm cho khách hàng thông qua nhận diện khuôn mặt, trợ lý ảo giúp học Tiếng Anh qua tin tức mỗi ngày.

12 đội tranh tài trong vòng chung kết đại diện cho các đội xuất sắc nhất đã trình bày các dự án AI nổi bật qua đó cho thấy được tài năng của các lập trình viên trẻ Việt Nam trong lĩnh vực công nghệ mới.

Đề chuẩn bị cho vòng chung kết Grand Finale, 12 đội thắng cuộc đại diện cho các khu vực đã tham gia vào chương trình Vườn ươm Kambria – Kambria AI Incubation Program. Các đội nhận được sự tư vấn trực tiếp của hơn 20 chuyên gia về công nghệ AI, các CEO doanh nghiệp lớn và các đơn vị nghiên cứu về AI lớn trên thế giới. Tổng kết cuộc thi VAGC, Kambria đã trao tổng giải thưởng trị giá đến 40,000 đô la. Dưới đây là video tổng kết lại sự kiện, mời các bạn xem:

lập trình viên

Link clip: https://youtu.be/DyhW_2lq8xU

VietAI Summit 2019

Vào tháng 11/2019, sau tiếng vang của VAGC, Kambria đã hợp tác với VietAI để tổ chức thành công sự kiện VietAI Summit 2019 với chủ đề: “AI for the Future” (Công nghệ Trí Tuệ Nhân Tạo cho tương lai). Hội nghị đã thu hút hơn 500 khách mời tham dự đồng thời có sự góp mặt của nhiều chuyên gia công nghệ, các nhà nghiên cứu về AI trên thế giới, và các lãnh đạo doanh nghiệp trong lĩnh vực AI trong và ngoài nước.

lập trình viên

Các diễn giả trong sự kiện VietAI Summit 2019 đến từ nhiều công ty lớn như Google Brain, Toyota Research Institute, Kambria, NVIDIA, VinAI Research, Vinbrain, Deakin University, and Đại học Quốc gia tp. Hồ Chí Minh. Người tham dự đã tìm hiểu về nghiên cứu và ứng dụng AI ở Việt Nam và toàn thế giới.

lập trình viên

Các diễn giả tại sự kiện từ trái sang phải: Tiến sĩ Vũ Duy Thức (CEO & Co-founder của VietAI & Kambria), Tiến sĩ James J. Kuffner (CEO của Toyota Research Institute – Advanced Development), Tiến sĩ Lương Minh Thắng (Senior Research Scientist, Google Brain), Tiến sĩ Truyền Trần (Associate Professor at Deakin University), Mr. Hung Truong (CEO of VinBrain), and Dr. Hien Pham (Head of Biomedical Photonics Lab of VNU)

Chuỗi sự kiện Kambria Code Challenge – Quiz 03

Trong năm nay, Kambria sẽ tiếp tục phát triển cộng đồng lập trình viên thông qua cuộc thi Kambria Code Challenge. Đây là chuỗi các Quiz được tổ chức online, tại đó các coder có cơ hội kiểm tra kiến thức về AI của họ, nâng cao kỹ năng lập trình, nhận thưởng và kết nối với các đối tác công nghệ lớn của Kambria cho cơ hội nghề nghiệp sau này.

Bạn hãy tham gia ngay bây giờ bằng cách đăng ký & dự thi Quiz 03 của chúng tôi. Chủ đề của Quiz 03 lần này sẽ là Recurrent Neural Networks. Hãy tìm hiểu kỹ về chủ đề này bằng cách sử dụng các tài nguyên có sẵn do Kambria cung cấp ngay trên website.

Bạn cũng có thể luyện giải đề thi của Quiz 01 và Quiz 02 để chuẩn bị tốt trước khi dự thi Quiz 03.

Link Practice Quiz 01: http://bit.ly/KambriaQuiz01

Link Practice Quiz 02: http://bit.ly/KambriaQuiz02 

lập trình viên

Đăng ký tham gia Quiz 03 ngay hôm nay:

⏰Thời gian: thứ bảy, ngày 02/05/2020, 14h00 – 14h45  (giờ Việt Nam)

Đăng ký ngay tại: http://bit.ly/KambriaQuiz03

Tìm việc IT lương cao, đãi ngộ tốt trên TopDev ngay!

Sử dụng aria trên site eCommerce, vấn đề accessibility cần quan tâm

aria trên site ecommerce
Accessible là một thuật ngữ ít bạn làm web quan tâm, không có nghĩa là nó không tồn tại, cùng tham khảo những aria nào cần bổ sung cho trang ecommerce

aria là gì

ARIA (Accessible Rich Internet Applications) là một attribute trên thẻ HTML, chúng ta gắn thẻ nào cũng được, nội dung này thông tin và tác dụng của thẻ element đó. Với user bình thường thì nó sẽ không có ý nghĩa mấy, nhưng với người sử dụng web thông qua một thiết bị đọc màn hình (cho những người khiếm khuyết) thì nó vô cùng quan trọng.

<div aria-label="button click me">Click Me</div>

Một vài aria phổ biến

aria-label và aria-labelledby

Chức năng tương tự như attribute alt của thẻ <img/>, nhưng có thể gắn cho bất kỳ element nào.

<button
    aria-label="menu"
    class="hamburger"
>
</button>

Thay vì thêm aria-label trực tiếp, aria-labelledby trỏ đến id một element khác để làm label

aria-label

<span id="rg-label">
    Drink options
</span>
<div role="radiogroup"
    aria-labelledby="rg-label"
>
    ...
</div>

aria-labeledby

role

Không bắt đầu bằng aria, dùng để khai báo công dụng của từng element

  • search
  • banner
  • presentation
  • toolbar
  • status
  • menuitem
  • log
  • dialog
  • link
<div src="questionmark.png" role="tooltip" />

aria-live

Thông báo đến user ngay khi nội dung bên trong element gắn thuộc tính này có thay đổi.

Có 2 giá trị có thể thêm cho thuộc tính aria-livepoliteassertive

  • polite: user không cần tương tác gì, nội dụng tự động cập nhập bởi server, ví dụ như bài viết mới được push lên
  • assertive: user thực hiện một tương tác làm thay đổi giá trị nào đó, ví dụ như tăng số lượng sản phẩm muốn mua

aria-owns

Nó cung cấp thông tin “tui là ba của đứa bé”. Trường hợp nào chúng ta cần dùng? Ví dụ cái submenu, vì lý do nào đó không đặt nó trong cấu trúc lồng ghép được, phải tách riêng ra, ta khai báo để screen reader biết được ai là ba đứa bé

<div role="menu">
    <div role="menuitem"
        aria-haspopup="true"
    >
        New
    </div>
    <div aria-owns="submenu"></div>
    ...
</div>

<div role="menu" id="submenu">
    <div role="menuitem"></div>
</div>

aria-owns

aria-activedescendant

Thuộc tính này dùng trong cái dropdown, khi cái dropdown được focus, chứa giá trị thằng nào đang được chọn

aria-activedescendant

aria-pressed

Thông tin về trạng thái “bị nhấn” của một element

<div class="button" role="button" aria-pressed="true">Save</div>

Để định dạng cho theo từng giá trị của aria, lấy ví như cái pressed này, chúng ta dùng css selector

.button[aria-pressed="true"] { ... }

aria-hidden

Nếu chúng ta muốn bỏ qua những element khỏi “ánh mắt dòm ngó” của screen reader, dùng aria-hidden, ngoài ra nếu các element này được định dạng là visibility: hiddendisplay: none hay hidden thì nó cũng sẽ bị bỏ qua

<div hidden>Ko thấy đâu</div>
<div aria-hidden="true">Vấn thấy, nhưng screen reader ko đọc</div>

Còn có nhưng element không được hiển thị cho user thấy, những vẫn được dòm ngó bởi screen reader, kỹ thuật css sẽ làm điều đó

.sr-only {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

Thêm aria cần thiết cho trang ecommerce

Mockup ví dụ

Sử dụng Aria trên site eCommerce, vấn đề accessibility cần quan tâm

Bổ sung cho cái mockup này với các attribute cần thiết

<div role='main'> 
    <div>
        <img
            ...
            aria-labelledby='product-title'
        />
    </div>
 
    <div>
        <h1 id='product-title'>A Nice Bag</h1>
         
        <select
            ...
            aria-label='Color Selection Drop Down'
        >
            <option
                ...
                role='option'
                aria-selected='false'
            >
                Brown
            </option>
        </select>
     
        <input
            ...
            role="checkbox"
            aria-checked="false"
            aria-label='Glossy Bag?'
        >
        <fieldset>
            <legend>Adjust Quantity</legend>
            <div>
            <label for="qty-element">Current Quantity</label>
            <input
                ...
                role="alert"
                aria-live="assertive"
                id="qty-element" 
            />
            <button
                ...
                aria-label='Add to Quantity'
                aria-controls="qty-element"
            >
                +
            </button>
            <button
                ...
                aria-label='Subtract from Quantity'
                aria-controls="qty-element"
            >
                -
            </button>
            </div>
        </fieldset>
        <button aria-label="Add to Cart">Add to Cart</button>
    </div>
     
</div>

Nếu trang sản phẩm có các tab thông tin

<div id="tabs" role='comlementary' aria-label="Expanded Content Area">
    <ul role="tablist">
        <li role="presentation">
            <a
                href="#more-info"
                id="tab-more-info"
                role="tab"
                aria-selected="true"
                tabindex="0"
            >
            Product Info
            </a>
        </li>
    </ul>
    <div
        id="more-info"
        role="tabpanel"
        aria-hidden="false"
        aria-labelledby="tab-more-info"
    >
        More product info...
    </div>
</div>

Sử dụng Aria trên site eCommerce, vấn đề accessibility cần quan tâm

Menu phân trang

<div role='navigation' aria-label='Pagination Links'>
    1
    <a href="#" aria-controls='product-listings'>2</a>
    <a href="#" aria-controls='product-listings'>3</a>
    ...
    <a href="#" aria-controls='product-listings'>Last</a> 
</div>

Danh sách sản phẩm

<div role='main' aria-live='polite'> 
    <div>
        <h2 id='product-title'>A Nice Bag</h2> 
        <img src="bag.jpg" alt="A paper bag" /> 
        <button aria-labelledby='product-title'>Add to cart</button>
    </div>     
    ... 
</div>

Để test accessibility của trang thì có thể dùng extention này của chrome

TopDev via Vuilaptrinh

Xem thêm các vị trí tuyển dụng it online tại Topdev

Điều gì nói một trang web có UX tốt trên mobile

web ux tốt trên mobile

Sau kết quả nghiên cứu hơn 199 giờ, lấy ý kiến trên một lượng lớn user ở Mỹ, mời họ về công ty của Google, gửi feedback rồi nhận tiền, Google đã tổng hợp một danh sách các điều mà user cho là site này ngon

UX tốt trên mobile nói một cách quạch tẹc ra là trải nghiệm của người sử dụng trang web, đánh giá là site chúng ta ngon, dễ đớp như ăn bánh.

Download toàn bộ kết quá đánh giá

Call-to-action: đặt ngay giữa, trên cùng

Điều gì nói một trang web có UX tốt trên mobile

✅ Những call-to-action (user vào đây để làm cái gì là chính, tương tác hay sử dụng nhất) nằm ngay giữa, vừa vào thấy luôn. Các thao tác kém quan trọng hơn có thể đưa vào menu hoặc cuộn xuống để xem

Điều gì nói một trang web có UX tốt trên mobile

🤬 Phung phí phần hiển thị đập vào mặt user đầu tiên bằng cái hình vớ vẩn, nút “Learn more” chả mấy tác dụng

Giữ menu ít mà chất

Điều gì nói một trang web có UX tốt trên mobile

✅ Bọn user xài mobile rất lười cuộn lên cuộn xuống để tìm cái menu nào đó

Lúc nào cũng chừa đường về nhà

Điều gì nói một trang web có UX tốt trên mobile

✅ Nếu bạn không cho click vào cái logo để quay về trang chủ, bạn không phải người ở hành tinh chúng tôi

Quảng cáo dạng popup đừng cướp hết sàn diễn

Điều gì nói một trang web có UX tốt trên mobile

✅ Quảng cáo thì cũng vừa vừa chứ đừng cướp hết cả nội dung trang web

Điều gì nói một trang web có UX tốt trên mobile

🤬 Một trong những tính năng yêu thích của bọn marketing làm đau lòng user, popup, popup, popup

Tìm kiếm

Điều gì nói một trang web có UX tốt trên mobile

✅ Ô search lồ lộ ngoài mặt tiền

Điều gì nói một trang web có UX tốt trên mobile

🤬 Ô search ẩn sâu trong menu collapse

User không rảnh đi vòng vòng để kiểm tra kết quả tìm kiếm có đúng không. Tự đồng điền câu tìm kiếm, sửa lỗi chính tả, gợi ý những tìm kiếm tương tự. Không cần phát minh lại cái bánh xe mới, dùng Google custom search

Điều gì nói một trang web có UX tốt trên mobile

✅ Trả kết quả là các sản phẩm liên quan tới trẻ em

Điều gì nói một trang web có UX tốt trên mobile

🤬 Có chữ “kid” là trả về hết

Bộ lọc tìm kiếm

User rất cần bộ lọc để giới hạn lại kết quả cần tìm, filter đặt dưới ngay ô search và có bao nhiêu kết quả ứng với filter đó

Điều gì nói một trang web có UX tốt trên mobile

✅ Luôn hiện filter

Điều gì nói một trang web có UX tốt trên mobile

🤬 Ẩn luôn filter

Cho user xài trước khi ép user đăng ký

User rất khó chịu khi bị buộc phải đăng ký để sử dụng mà chưa hề biết bên trong site là cái gì, yêu cầu cung cấp các thông tin cá nhân quá sớm, khi trang bạn chưa nổi tiếng như Facebook, thì chả ai đăng ký đâu

Điều gì nói một trang web có UX tốt trên mobile

✅ Cho user lượn lờ website rồi mới gợi ý đăng ký

Điều gì nói một trang web có UX tốt trên mobile

🤬 Ép user đăng ký mới cho đọc

Mua hàng như khách nặc danh

Điều gì nói một trang web có UX tốt trên mobile

✅ Ngoài đời có ai bắt bạn cung cấp email mới cho mua hàng?

User khoái nhanh nhất, tiện nhất, bớt đòi hỏi nhất khi họ muốn mua hàng, cung cấp email cá nhân mà không rõ ràng họ được lợi lộc gì từ đó, họ ko sẵn sàng đăng ký mua hàng

Sử dụng calendar cho thông tin ngày tháng

Điều gì nói một trang web có UX tốt trên mobile

✅ Nếu cần user cung cấp thông tin ngày tháng, cho user chọn từ lịch, đừng tách ra thành 3 text input ngày-tháng-năm

Hạn chế lỗi, bắt validation ngay khi nhập

Điều gì nói một trang web có UX tốt trên mobile

✅ label rõ ràng để user biết cần nhập thông tin gì, nếu được bắt validation ngay khi user nhập xong

Có thể phóng to để xem chi tiết ảnh sản phẩm

Điều gì nói một trang web có UX tốt trên mobile

✅ Zoom vào để soi chi tiết sản phẩm luôn là điều khách hàng cần

Báo user biết xem ở chế độ nào là tốt nhất

Điều gì nói một trang web có UX tốt trên mobile

✅ Nếu thiết kế hiển thị đẹp nhất khi lật ngang, tại sao không báo user để họ biết nên xem điện thoại ở chế độ nằm ngang

Đừng mở nhiều tab

Điều gì nói một trang web có UX tốt trên mobile

✅ Nếu là internal link, tại sao lại mở tab mới trên trình duyệt?

Nói rõ tại sao bạn cần lấy thông tin vị trí của user

User được quyền biết tại sao chúng ta muốn lấy thông tin vị trí hiện tại của user, lên đặt phòng khách sạn cho một chuyến nghỉ mát ở Campuchia, mà bắt user cho phép lấy thông tin vị trí hiện tại làm gì? Với những dịch vụ như tìm quán ăn gần vị trí user, cứ mặc định bỏ trống vị trí hiện tại, cho phép user chọn “Find near me”

Điều gì nói một trang web có UX tốt trên mobile

✅ Yêu cầu lấy thông tin vị trí khi cần thiết

TopDev via Vuilaptrinh

Xem thêm: Tuyển dụng ux ui lương cao hấp dẫn, việc làm it chất

                                  Việc làm mobile trong tháng mới nhất

9 VSCode extension hay ho

9-vscode-extension-hay-ho
Bài viết được sự cho phép của tác giả Lưu Bình An
Tổng hợp những VScode sẽ giúp anh em lập trình chúng ta làm việc hiệu quả hơn

Settings Sync

https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync

Bạn quá mệt mỏi việc mỗi lần cài lại máy mới, hay cài lại toàn bộ extension trên công ty, máy ở nhà, cài ngay Settings Sync, nó sẽ sync toàn bộ những extension chúng ta hay xài lên Gist (phải cho nó access vào Github account)

Live Server

https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer

Một trong những extension siêu ngon cho anh em frontend, tạo server local với live reload

Bracket Pair Colorizer

https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer

Mặc dù VSCode đã có tính năng collapse cho từng khối code, nhưng tô màu rõ ràng cho dễ nhìn cũng vui

Auto Rename Tag

https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag

Cái này sẽ tự động điền đổi tên tag cho khớp với tag đóng/mở

Đôi khi viết React, Vue cũng hơi chút phiền phức, nhưng cũng đáng để thử

CSS Peek

https://marketplace.visualstudio.com/items?itemName=pranaygp.vscode-css-peek

Xem ngay phần code css đã viết cho class/id. Ngoài ra cũng nhảy được ngay tới phần khai báo đó trong file css/scss/less

Code Spell Checker

https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker

Với anh em không dùng tiếng anh như tiếng mẹ đẻ chúng ta, một cái tool tự động báo khi có từ sai chính ta là vô cùng cần thiết.

Debugger for Chrome

https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome

Được phát triển bởi Microsoft, cho phép chúng ta debug JS ngay trong VSCode, so với mấy IDE khác, thì thằng này chạy khá mượt mà

vscode-icons

https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons

Dành cho mấy đứa thích màu mè như mình, đổi icon nhìn cho phấn chấn tinh thần dễ làm việc

Git History

https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory

Nếu đang làm việc với Git (không biết còn dev nào thời này ko dùng Git không), xem history và kiểm tra những chỗ nào đã bị đổi trên VSCode luôn.

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

Tham khảo việc làm Git lương cao trên TopDev

Sếp nhớ trả lương em gấp 10 nha (phần 5) – làm việc sâu

tăng lương 10 lần

Focus and deep work là gì và phương pháp rèn luyện kỹ năng

Như đã hứa ở phần 1, phần 5 này mình sẽ dành để chia sẻ sâu hơn về kỹ năng kinh khủng nhất của một kỹ sư CNTT, đó là focus như tia laser và output như mùa lũ về.

Bạn có thể xem lại các phần trước tại đây:

Sếp nhớ trả lương em gấp 10 nha (phần 1)

Sếp nhớ trả lương em gấp 10 nha (phần 2)

Sếp nhớ trả lương em gấp 10 nha (phần 3)

Sếp nhớ trả lương em gấp 10 nha (phần 4)

Cảm hứng để mình viết và talk về chủ đề này là khi may mắn được đọc cuốn sách Deep Work của Cal Newport, mặc dù khái niệm và tầm quan trọng của sự tập trung mình đã có cơ duyên tiếp cận từ trước đó nhiều năm, khi mình có duyên được làm việc chung với một anh bạn khác. Anh bạn này thú vị ở chỗ, anh ta đã tự xây dựng được một skill kinh khủng, có thể master được một vấn đề phức tạp và hoàn toàn hóc búa chỉ trong một thời gian ngắn tính bằng vài ngày hoặc vài tuần tùy theo vấn đề. Master vấn đề ở một cấp độ mà nhiều người mất đến cả vài năm vẫn không thể đạt được tới trình độ đó. Vì sao lại như vậy? Mình tóm lại một số cách ứng phó với vấn đề của anh bạn ấy.

1. Đeo bám vấn đề, gian nan không hề nản

Điều này theo mình nhận xét là không dễ chút nào, vì đứng trước khó khăn nếu bạn thực sự “gian nan không hề nản”, thì hiện tại chắc bạn đã khá là thành công rồi. Đây là một tính cách rất rõ thể hiện ở những người thành công. Các tỉ phú tỉ đô trên thế giới không ít lần thất bại trắng tay, và lại đi lên từ đó, Jack Ma hay Elon Musk đều là những minh chứng sống cho sự đi lên từ gian khó.

Khi nhìn vào cách người bạn của mình đối diện với vấn đề, mình thấy một sự tò mò, một khao khát vượt lên thách thức rất mạnh mẽ từ bên trong, thỉnh thoảng cả sự hiếu thắng và mong muốn chứng tỏ bản thân của mình. Tất cả những điều đó khiến người bạn ấy xoay vần với vấn đề sáng đến tối, ngày này qua ngày khác mà không thấy chán nản hay muốn từ bỏ.

Còn bạn thì sao? Nếu bạn chưa xây dựng được tính cách này, dưới đây là một số bí kíp dành cho bạn

  • Sống chung với vấn đề thay vì cảm thấy khó chịu với vấn đề

Bạn có thể thử hình dung ra nhiều góc nhìn, coi vấn đề là con mồi và bạn là thợ săn, hay coi vấn đề là thử thách và bạn là người đi vượt thử thách, hoặc coi vấn đề là bạn bè và sống chan hòa với nó. Thay đổi tư tưởng như vậy, bạn sẽ thấy nhẹ nhàng hơn và duy trì thái độ tích cực khi đối diện với vấn đề hơn. Xét cho cùng, cuộc sống không phải đáng sống hơn vì những thử thách bất ngờ hay sao?

  • Biết tận dụng cảm giác khó chịu và tức giận khi đối diện với vấn đề

Không ít bạn có cảm giác khó chịu và tức giận khi đối diện với vấn đề, với những trường hợp này, hãy chủ động dùng cảm giác đó để đối diện với vấn đề mạnh mẽ hơn. Sự tức giận cũng có những năng lượng tích cực rất tốt, nó mang năng lượng của hành động. Hãy dùng năng lượng hành động để giải quyết vấn đề. Tuy nhiên, luôn tỉnh táo để không bị các cảm giác đó lấn át bạn, nếu không bạn sẽ rơi vào tình trạng quá tải, và cảm giác nóng vội giải quyết vấn đề sẽ khiến bạn dễ nản đấy.

  • Biết lựa chọn thử thách cho mình

Thử thách thì luôn nhiều, và bạn luôn có quyền lựa chọn, trường hợp này bạn có thể lựa chọn độ khó của thử thách. Lần cuối bạn chơi game là lúc nào, bạn có nhớ các trò chơi được thiết kế như thế nào không?

xep gach

Bạn còn nhớ trò chơi xếp gạch huyền thoại chứ? Lúc bạn bắt đầu trò chơi, độ khó bạn phải đối diện là thế nào? Có phải đi từ cấp độ rất dễ, bạn vượt qua nó, bạn thấy hứng thú, rồi độ khó tăng dần, bạn vượt qua nó, lại thấy hứng thú hơn không? Có bao giờ bạn gặp một vài trường hợp quá khó và bạn đã dừng chơi chưa?

Những người thiết kế trò chơi đã làm rất tốt trong việc tăng dần độ khó của trò chơi, khiến người chơi bị kích thích với những cảm giác vượt qua thử thách đó. Mỗi cấp độ về sau đều luôn khó hơn một chút cấp độ trước, nhưng không được quá khó, vì quá khó sẽ gây nản và sẽ không còn ai chơi nữa.

Vậy, áp dụng nguyên lý trò chơi vào, bạn cần hiểu rõ năng lực của bạn hiện tại có đủ để giải quyết vấn đề chưa, nếu chưa, hãy chủ động hạ độ khó xuống một cấp độ, hoặc hạ nữa, tới khi bạn thấy đủ tự tin.

Cũng trong nguyên lý trò chơi, nếu bạn là một người chơi hardcore ở level 10, ai đó cho bạn chơi ở level 1 bạn sẽ thấy thế nào? Lại nản tiếp, vì quá dễ và không xứng tầm với level hiện tại của bạn. Nên luôn lưu ý điểm này, quá khó hay quá dễ đều tạo nên vấn đề bạn nhé.

Bạn nào quan tâm sâu hơn về góc độ này, có thể tìm hiểu thêm các bài viết nói về flow, và đây cũng là một chủ đề rất thú vị xứng đáng được đào sâu trong một bài viết khác.

  • Quan sát và lựa chọn phản ứng

Công cụ này mới là công cụ đáng gờm nhất. Thay vì coi bạn là cảm xúc chán nản, khi khó quá mình thấy chán và mình bỏ luôn. Hãy hít một hơi thật sâu, quan sát diễn biến của từng bộ phận trong cơ thể, quan sát cơ thể đang chán thế nào, nặng nề ở đâu, hãy thở ra và để cho sự chán nản đi theo hơi thở đó một cách tự nhiên không gượng ép.

Hãy nhớ, bạn có thể ở trong nhà, nhưng bạn không phải là ngôi nhà. Tương tự như vậy, cơ thể cũng là nhà của bạn, nhưng bạn không phải là cơ thể. Bất cứ lúc nào bạn đều có thể dừng lại, hít thở, và quan sát. Tập quan sát một thời gian, bạn sẽ nhận ra mình có quyền lựa chọn phản ứng trước những nghịch cảnh. Đây chính là điểm chuyển hóa của bạn, là nền tảng để rất nhiều thành công sẽ kéo theo về sau. Một người có trí thông minh cảm xúc cao sẽ sử dụng kỹ thuật này rất nhuần nhuyễn, họ luôn làm chủ cảm xúc của mình và điều khiển nó để phục vụ cho mục đích của họ.

Chuyên sâu hơn của phần này, có rất nhiều bằng chứng khoa học, các phong trào của các công ty lớn như Google đã vận động, và khuyến khích các nhân viên tập thiền. Vì thiền sẽ giúp bạn rất nhiều trong việc quan sát và lựa chọn phản ứng này. Hẹn các bạn trong một bài viết khác mình sẽ phân tích sâu hơn nhé.

2. Debug, debug và debug

Anh bạn mình đang nói đến, có một thói quen khi đọc code của người khác rất thú vị, đó là debug. Chạy qua từng câu lệnh, coi từng giá trị của từng biến, chạy đi chạy lại với nhiều input khác nhau để từ đó phân tích và hiểu sâu đoạn code đang đọc. Từ đó, anh bạn ấy có thể tự tin chỉnh sửa, nâng cấp lại đoạn code của người khác viết lên chất lượng cao hơn một cách hoàn toàn tự tin.

Đã bao lần bạn đọc một đoạn code người khác viết, dài ngoằng và thấy nản không muốn đọc? Bằng cách chạy qua từng bước trong quá trình debug, bạn đã chia nhỏ vấn đề, và chọn đối diện vấn đề ở cấp độ thử thách thấp hơn. Từ đó, bạn vượt qua những cấp độ thử thách nhỏ đó, và dần tiến tới thử thách toàn cục của vấn đề, bạn cũng sẽ vượt qua nó.

Đối với lập trình viên mà nói, kỹỹ năng debug là kỹ năng tối quan trọng, ngay cả khi đọc code hay viết code của chính mình. Và debug ở đây có rất nhiều cấp độ và kỹ thuật nhé các bạn:

  • Debug ở level code ứng dụng
  • Debug ở level database
  • Debug ở level network
  • Debug ở môi trường giả lập, môi trường highload, … vì phần mềm có thể sẽ chạy khác ở các môi trường khác nhau
  • Debug bằng console log
  • Debug bằng cách sử dụng breakpoints …

Gốc của mình là dân lập trình firmware, hay cả FPGA, nên kỹ thuật debug là tối quan trọng. Và mình sẽ hẹn một bài viết chuyên sâu hơn để chia sẻ thêm về các kỹ thuật debug khi lập trình.

3. Focus, focus và focus

focus light◎ Thấu kính hội tụ đốt cháy giấy

Các bạn còn nhớ thí nghiệm hồi học phổ thông chứ? Cùng là ánh sáng ấy, nhưng qua thấu kính hội tụ đã có một năng lượng rất lớn, có thể đốt cháy cả tờ giấy. Hoặc như tia laser, có phải có thể dùng để cắt những vật cứng nhất như kim cương hay không? Mật độ tập trung của photon là rất cao và cường độ được khuyếch đại nhiều lần trong 1 tia rất nhỏ có thể mang đến sức mạnh phi thường.

Trong một nghiên cứu của các nhà khoa học, mỗi ngày, trung bình bộ não con người sản sinh ra tầm 70.000 ý nghĩ, tương đương với cứ mỗi 1.25 giây sẽ có một suy nghĩ được tạo ra. Vậy tính ra nếu mọi suy nghĩ đều là quý giá, chắc hẳn hầu như mọi người đều sẽ rất thành công và viên mãn. Sự thật thì lại khác hẳn, phần lớn trong những suy nghĩ ấy chỉ là rác, không mang lại lợi ích gì, và nếu không điều khiển được phần tâm trí này, những lúc bạn cần tập trung để suy nghĩ cũng sẽ rất khó, dẫn đến rất nhiều suy nghĩ nhưng không nghĩ được gì.

Một số người có được sự tập trung này từ bản năng, hoặc do lối sống sinh hoạt từ nhỏ vô tình đi theo lộ trình rèn luyện sự tập trung của tâm trí rất tốt. Nhưng rất nhiều người thì hoàn toàn ngược lại. Bạn có thể thấy thanh thiếu niên đến tuổi dậy thì thường dễ bị xao nhãng nhất, do có nhiều mối quan tâm và tò mò mới, thu hút hơn những mối quan tâm khác mà đáng lẽ các em nên dành một sự tập trung đáng kể cho nó như học tập, phát triển bản thân, phát triển mối quan hệ gia đình và bạn bè, tìm hiểu về bản thân và định hướng bản thân.

Nếu như bạn là một trong số đó, tin vui là chúng ta có thể đảo ngược quá trình, còn gọi là tiến trình sửa chữa não ^^ Dưới đây là một số phương pháp mình đúc rút được qua nhiều năm luyện tập và nghiên cứu về các phương pháp tập trung.

  1. Sắp xếp môi trường xung quanh để tạo điều kiện tối đa cho sự tập trung bên trong

Hãy tưởng tượng, bạn đang ngồi học bài, mà thỉnh thoảng điện thoại reo, tin nhắn đến, bạn bè mời gọi, bạn có tập trung học được không?

Vậy bí quyết đầu tiên, hết sức đơn giản nhưng lại cần sự quyết tâm từ bạn. Và hơn ai hết, bạn là người lựa chọn tương lai của mình, hoàn toàn chịu trách nhiệm cho tương lai của mình.

  • Khi muốn tập trung, hãy chọn một góc ngồi khác với góc ngồi chơi hay nghe nhạc, hay ngủ. Khi tạo được thói quen này, bộ não sẽ cũng có những phản ứng sinh lý tương thích, và khi ngồi vào đúng chỗ đó thì cơ thể ngay lập tức đi vào chế độ tập trung học tập / làm việcpaplop◎ Ảnh minh họa vui về phản xạ sinh học
  • Đưa mọi thiết bị có khả năng gây xao nhãng vào chế độ im lặng, điện thoại vào chế độ im lặng, điện thoại bây giờ có chế độ im lặng trong vòng 1 tiếng, 2 tiếng, … sau thời gian đó tự động về chế độ bình thường rất tiện. Bạn có thể tưởng tượng đang tập trung mà tin nhắn facebook hay zalo cứ tin tin thì sẽ thế nào rồi đấy. Đôi khi, chỉ cần tắt đi 20 phút, bạn sẽ thấy 20 phút tập trung có hiệu quả bằng hàng giờ vừa ngồi làm việc vừa chat.
  • Nếu bạn làm việc trên máy tính, các hệ điều hành đều có khái niệm màn hình ảo (Virtual Desktop), hãy sắp xếp các cửa sổ làm việc liên quan đến một chủ đề bạn đang theo đuổi vào từng màn hình ảo đó, để mỗi thời điểm làm trên một vấn đề thôi, trong lúc làm việc thì chuyển hết tất cả notification sang chế độ Do not disturb. Hoặc tốt hơn nữa, hãy tạo account riêng cho công việc và thư giãn. Các trò chơi chỉ cài đặt ở tài khoản dành cho việc giải trí, từ đó lúc đang làm việc bạn ít có động lực chuyển đổi qua các trò chơi hơn, từ đó dễ tập trung hơn nhiều.
  1. Chuẩn bị cho sự tập trung từ bên trong
  • Giờ nào làm việc ấy, vẫn là nguyên lý sinh học. Bạn tạo ra các phản xạ có điều kiện, đúng giờ là đi ngủ, đúng giờ là làm việc, đúng giờ thì giải trí và đúng giờ thì ăn. Lúc này cơ thể của bạn sẽ tiết ra các hóc môn tối ưu nhất cho mọi việc bạn làm. Quá tuyệt vời đúng không? Bạn có thể thử duy trì trong vòng 1 tuần và thử xem thay đổi diễn ra như thế nào, rồi cùng chia sẻ nhé
  • Một số phương pháp khoa học khác nhiều người áp dụng khá thành công như Pomodoro. Lấy tên theo quả đồng hồ hình quả cà chua, phương pháp này chia thời gian trong ngày ra nhiều block nhỏ, mỗi block tầm 25 phút, mỗi 25 phút bạn xét mục tiêu của mình hoàn thành một việc nào đó, hết 25 phút tự thưởng cho mình 5 phút nghỉ ngơi, rồi lại tiếp tục như thế. Tất nhiên bất cứ công việc nào bạn đều có thể thử chia nhỏ ra từng block nhỏ như vậy. Mình đã thử áp dụng và rất thành công, và có thể dùng app trên điện thoại đấy, còn bạn thì sao?

pomodoro◎ Chiếc đồng hồ quả cà chua huyền thoại

  • Cuối cùng, một công cụ đang là xu thế của rất nhiều người và nhiều công ty lớn trên thế giới như Google đã khuyến khích cho nhân viên có điều kiện tối đa, đó là thiền. Thiền chính là tập trung liên tục vào một đối tượng nào đó một cách thoải mái không cố gắng. Một người thực hành thiền trong thời gian dài, có thể áp dụng cùng kỹ thuật thiền vào trong mọi mặt đời sống như công việc, giao tiếp, chỉ cần thay đổi đối tượng thiền là sẽ phát huy tác dụng. Ví dụ trong công việc, đối tượng của sự tập trung của bạn sẽ là vấn đề và công việc bạn đang giải quyết, trong học tập sẽ là môn học hay vấn đề bạn đang học, trong giao tiếp thì đối tượng của sự tập trung sẽ là người nói và lời nói của người đối diện – lúc này bạn lắng nghe sâu và không bỏ sót, không phán xét – là những điều kiện tiên quyết để có một giao tiếp sâu và thấu hiểu.

meditation◎ Nhân viên Google đang tập thiền

Riêng với mình, do cơ duyên tiếp xúc với một khóa học online về chủ đề hạnh phúc, đã tiếp cận tới thiền theo cách không thể đơn giản hơn. Mỗi ngày chỉ cần dành 10 phút, vào bất cứ khoảng thời gian nào để thử quan sát suy nghĩ, hoặc có thể quan sát cơ thể, hoặc quan sát hơi thở. Vì 10 phút quá đơn giản nên mình đã làm theo được và duy trì mỗi ngày. Chỉ trong vòng 2 tuần sau đó, cuộc sống của mình như sang trang, lúc ngồi làm việc bất cứ lúc nào suy nghĩ đi lan man đều dễ dàng phát hiện và nhẹ nhàng kéo sự tập trung quay trở lại công việc.

Mình tin rằng, sếp của bạn hoàn toàn hiểu tầm quan trọng của việc tập trung. Do đó nếu bạn cũng tập thiền đều đặn, đừng ngần ngại báo cho sếp biết nhé.

Tầm quan trọng của sự tập trung và làm việc chuyên sâu với ngành công nghệ

Mình vừa tổng hợp các bí kíp để rèn luyện sự tập trung, một kỹ năng tối quan trọng của một người kỹ sư. Vì sao lại vậy? Hơn bất cứ ngành nghề nào khác, ngành công nghệ có tốc độ thay đổi chóng mặt, kiến thức mới ra liên tục, hàng triệu người nghiên cứu và public các bài báo khoa học mỗi năm, hàng triệu người publish các dòng code trên github mỗi năm, với hàng tỉ dòng code. Hàng chục framework và thư viện mới cho bất cứ ngôn ngữ lập trình nào mà bạn chọn. Vậy nếu vẫn dùng cách thông thường đối diện với sự bất thường này, bạn nghĩ có được không? Qua quá trình tiếp xúc với nhiều bạn kỹ sư đồng nghiệp mà mình cho là xứng đáng nhận danh hiệu 10x engineer, mình thấy rất rõ những thói quen và đặc điểm tính cách mà họ xây dựng được. Một trong số đó chính là khả năng tập trung nghiên cứu một vấn đề mới, một framework mới, một ngôn ngữ mới trong thời gian rất ngắn. Họ có thể chỉ mất vài giờ để thử nghiệm một ngôn ngữ và framework mới, nắm được khái niệm căn bản của framework, lý do framework ra đời, kiến trúc của framework, các thành phần của nó, cũng như khi nào thì nên sử dụng nó.

frameworks◎ Rất rất nhiều framework như thế này mỗi năm

Nếu bạn không đủ sự tập trung cho từng công nghệ mới, bạn sẽ mất nhiều năm để tìm hiểu một công nghệ duy nhất, do đó bạn sẽ mất rất nhiều cơ hội vì không biết được những công nghệ khác hay như thế nào, cũng như lúc bạn làm chủ được công nghệ đấy thì lúc công nghệ cũng lỗi thời rồi, hoặc rất nhiều người khác đã vượt qua bạn trước đó. Còn nếu có đủ sự tập trung, thời gian chỉ tính bằng giờ hoặc ngày. Và quan trọng hơn hết, một người đã xây cho mình thói quen tập trung và đi sâu vào công nghệ rồi, thì sẽ tới thời điểm các bạn như ve sầu thoát xác, bạn không còn nhận ra mình nữa vì tầm nhận thức lên một tầm cao mới, cũng như khi tích lũy đủ kiến thức về các loại framework rồi, bạn dễ dàng học framework mới dễ như trở bàn tay. Điều này cũng giống như một người thợ sửa xe máy lành nghề, bạn có đưa bất cứ chiếc xe hỏng nào, cho dù công nghệ có thay đổi họ cũng nhanh chóng phát hiện ra vấn đề và sửa được ngay.

Bài cũng khá dài rồi, mình xin tạm kết thúc chủ đề ở đây, nếu các bạn quan tâm tiếp ở cấp độ chuyên sâu hơn nữa làm sao để luyện tập các kỹ năng vừa nói ở trên, đừng ngần ngại để lại comment bên dưới nhé.

TopDev via Learn2code

Ôn tập đề thi cũ, chuẩn bị cho Quiz 03!

Quiz 03

Để có sự chuẩn bị tốt nhất cho Quiz 03, các bạn có thể luyện tập giải các đề thi về AI đã diễn ra trong các Quiz cũ của Kambria. Các vòng thi Quiz có những dạng đề bài tương tự nhau, nên việc luyện tập các vòng thi trước sẽ giúp bạn làm quen và nâng cao điểm số khi tham gia dự thi.

Các vòng thi cũ của Kambria Code Challenge luôn được lưu tại tab Previous Challenges trong mỗi quiz. Chỉ cần vài cú click đơn giản, bạn sẽ tìm thấy đề thi cũ và tiến hành giải thử.

Quiz 03

Hoặc, bạn có thể luyện tập giải Quiz 01 và Quiz 02 ngay khi click vào các đường link dưới đây. Ngoài ra, bạn cũng có thể xem lại bài giải của các Quiz sau khi hoàn thành xong.

🔹Link Practice Quiz 01: http://bit.ly/KambriaQuiz01

🔹Link Practice Quiz 02: http://bit.ly/KambriaQuiz02 

Kambria cũng chuẩn bị các tài liệu khác để giúp bạn ôn tập kiến thức. Bạn có thể xem tại đây: https://app.kambria.io/library

Kambria Code Challenge có tổng cộng 4 Quiz, trong đó Quiz 04 có giải thưởng lớn nhất. Riêng với Quiz 04, bạn phải tham dự ít nhất 2 Quiz bất kỳ trước đó để đủ điều kiện tham gia. Kambria Code Challenge hiện tại đang diễn ra Quiz 03. Bạn click vào link sau để tìm hiểu thêm thông tin! Hoặc đăng ký tham dự Quiz 03 theo hướng dẫn sau:

1️⃣ Truy cập bounty Quiz 03 – Kambria Code Challenge tại: http://bit.ly/KambriaQuiz03

2️⃣ Click vào nút “Join This Challenge”

3️⃣ Sau khi click, bạn sẽ thấy 1 form đăng ký. Chỉ cần điền đầy đủ các thông tin cá nhân để tham gia cuộc thi.

4️⃣ Kambria sẽ gửi email tới các bạn để xác nhận việc đăng ký!

5️⃣ Quiz 03 sẽ diễn ra vào lúc 14h00 – 14h45 thứ 7, ngày 02/05/2020. Bạn có 30 phút để hoàn thành bài Quiz và nộp bài muộn nhất vào lúc 14h45.

—–

Thông tin Quiz 03

⏰Thời gian: 14:00 – 14:45 UTC + 7, Thứ Bảy, ngày 2 tháng 5 năm 2020

📌Đăng ký tại: http://bit.ly/KambriaQuiz03

📢Để biết thêm chi tiết, vui lòng truy cập: https://kambria.io/blog/code-challenge-quiz-03/

Rời bỏ công việc tại các doanh nghiệp nhỏ – Nguyên nhân và giải pháp

doanh nghiệp nhỏ

Đối với các doanh nghiệp có quy mô nhỏ thì việc giữ chân và khiến các nhân viên đồng hành cùng phát triển được xem là một thách thức lớn trong ngành Nhân sự . Từ thực tế trên, trong lĩnh vực nhân sự, việc tìm ra nguyên nhân và các giải pháp phù hợp để giảm thiểu sự rời đi của nhân viên là một điều quan trọng.

Dựa trên khảo sát hơn 300 người đã bỏ việc tại các doanh nghiệp nhỏ tại Mỹ trong vòng hai năm gần đây chúng tôi đã thống kê những nguyên nhân khiến các nhân viên quyết định rời bỏ các doanh nghiệp nhỏ. Bài viết sau đây sẽ phân tích một vài nguyên nhân đồng thời đưa ra những giải pháp phù hợp cho các doanh nghiệp.

doanh nghiệp nhỏ

1. Những lý do hàng đầu: Chính sách giải quyết phúc lợi kém, vấn đề ở người quản lý

Những sự bồi thường hoặc phúc lợi kém là lý do được 33% số người cho là nguyên nhân hàng đầu dẫn đến việc họ chấp nhận rời bỏ công việc hiện tại. Song, có 26% nhân viên lại cho lý do khiến họ từ bỏ đến người người quản lý của họ. 

Tiền không thể mua được hạnh phúc nhưng nó có thể đóng một vai trò quan trọng trong việc liệu các nhân viên có ở lại đồng hành cùng quanh doanh của bạn hay không. Vấn đề lương bổng luôn trì trệ sẽ vô tình tạo cho các nhân viên cảm giác họ chưa nhận được quan tâm từ tổ chức của mình.

doanh nghiệp nhỏ

Giải quyết vấn đề trì trệ

Nếu doanh nghiệp bạn có doanh thu cao, hãy quan tâm đến việc kích hoạt tăng lương. Điều này không chỉ là cách để tạo động lực giúp thu hút và giữ chân nhân viên đồng thời còn giảm bớt sức cạnh tranh so với các công ty đối thủ trong một thị trường tiền lương đang trì trệ. 

Để tránh những phát sinh ngoài ý muốn cũng như đảm bảo tính minh bạch trong vấn đề nhạy cảm này, bạn nên sử dụng các phần mềm quản lý lương thưởng để có kế hoạch phân chia chi phí phù hợp. Quan tâm nhiều hơn đến các vấn đề phúc lợi cho nhân viên như áp dụng các gói bảo hiểm với giá phải chăng và toàn diện hơn, hỗ trợ các dịch vụ ăn uống, đi lại để giảm thiểu sự chi tiêu không cần thiết. 

Chú trọng đến việc phát triển và đào tạo người quản lý

Theo một nghiên cứu nhỏ từ Gallup , có đến 50% nhân viên đã bỏ việc để rời xa người quản lý nhân sự của họ tại một số thời điểm trong chặng đường phát triển sự nghiệp.

Theo đó, các nhà quản lý có thể vô tình tạo ra những áp lực cho nhân viên thông qua các công việc hằng ngày của họ như: Luôn đặt ra những mục tiêu cần đạt; thay đổi liên tục những mong muốn hoặc thậm chí là không cho nhân viên có cơ hội bày tỏ những nguyện vọng, ý kiến cá nhân. Nguyên nhân có thể đến từ chính người quản lý và cả quy trình đào tạo của cả tổ chức. Đây được xem là hệ quả của việc các doanh nghiệp nhỏ thiếu sự đầu tư đúng mực trong việc phát triển tiềm lực của các nhân viên có triển vọng trước khi họ trở thành các nhà quản lý tuyệt vời.

Nói một cách đơn giản, chất lượng của những người quản lý của doanh nghiệp bạn đang sở hữu có khả năng phát triển thêm hoặc làm phá vỡ đi cả một hệ thống và quá trình tạo lập doanh nghiệp. Vì thế, trước khi mong muốn giữ chân các nhân viên, hãy chắc chắn rằng những người quản lý nhân viên của tổ chức bạn phải có phẩm chất tốt; được phát triển hoàn thiện các kỹ năng quan trọng bên cạnh khả năng chuyên môn nghề nghiệp. 

2. Hạn chế khả năng phát triển nghề nghiệp

Có đến 22% số lượng nhân viên cho rằng lý do họ rời công ty là do họ cảm thấy bị giới hạn trong việc phát triển nghề nghiệp. Doanh nghiệp với quy mô nhỏ chưa thật sự tạo cho họ niềm tin về mô hình đào tạo, định hướng lâu dài cho mỗi cá nhân mà chỉ đơn thuần là đang giới hạn họ trong một phạm vi đủ đáp ứng các nhu cầu công việc hiện tại. 

doanh nghiệp nhỏ

Đặc biệt hơn đối với những nhân viên trẻ trong thế hệ thế hệ Z (1995 – 2012), họ đánh giá cao những môi trường có thể mang lại cho họ sự thăng tiến. Đó cũng chính là ưu tiên hàng đầu của họ khi đánh giá các nhà tuyển dụng tiềm năng. 

Cũng theo một nghiên cứu của Robert Half, 20% lực lượng lao động Gen Z kỳ vọng sẽ trở thành một doanh nhân thành đạt và 32% mong muốn được trở thành nhà quản lý nguồn lực về nhân sự. Điều này cho thấy, họ đang thật sự tìm kiếm một sự phát triển lâu dài. Các nhà tuyển dụng có thể cho rằng họ trẻ với bản tính tham vọng hoặc thiếu sự kiên nhẫn, muốn “đốt cháy giai đoạn”. Tuy nhiên, một sự thật là nếu các doanh nghiệp nhỏ có thể đưa ra một lộ trình tiến bộ rõ rệt cho mỗi nhân viên thì họ đã không phải rời bỏ doanh nghiệp của mình. 

Thiết lập lộ trình phát triển và đánh giá những nỗ lực

Để khắc phục tình trạng hiện tại, các doanh nghiệp cần xác định rõ lộ trình thăng tiến cho mỗi nhân viên dựa trên năng lực của họ. Cụ thể, các lãnh đạo nhân sự cần thiết lập những tiêu chí phù hợp cho mỗi vị trí nghề nghiệp trong tổ chức của mình. 

Đồng thời, việc đánh giá liên lục những thay đổi của mỗi nhân viên rất quan trọng. Doanh nghiệp cũng có thể sử dụng những các công cụ hỗ trợ để thuận tiện hơn trong việc theo dõi, đưa ra những phản hồi, đánh giá cụ thể cho nhân viên về hiệu suất công việc của họ. Điều này cho thấy, tổ chức đang thật sự đề cao những nỗ lực, ghi nhận những thành quả của từng nhân viên nhằm hướng đến việc phát triển một tập thể vững mạnh toàn diện. 

3. Văn hóa môi trường doanh nghiệp

Như khảo sát mà chúng tôi đưa ra từ đầu bài viết, có 22% nhân viên cho rằng nguyên nhân khiến họ quyết định từ bỏ công việc là văn hóa môi trường trong doanh nghiệp.

Điều này là điều dễ nhận thấy vì khi một cá nhân không thể hòa hợp trong một môi trường văn hóa chung thì khó có thể hợp tác cùng nhau phát triển. Có nhiều nguyên nhân cụ thể hơn cho thấy một cá nhân không thích ứng được văn hóa làm việc của tổ chức. 

Chẳng hạn như một nhân viên cảm thấy cách vận hành những hoạt động của doanh nghiệp chưa thật sự đi đúng định hướng so với các giá trị cốt lõi mà nhà tuyển dụng hay chính tổ chức đó đề ra. Chính từ sự nhìn nhận này mà có thể những đề xuất, góp ý của nhân viên không được chấp nhận, bị bác bỏ và họ cảm thấy mình không được tôn trọng dẫn đến việc rời đi. 

doanh nghiệp nhỏ

Bên cạnh đó, sự tương tác quá ít hoặc quá căng thẳng khi làm việc cũng được xem là một yếu tố chi phối văn hóa doanh nghiệp. Điều này không đáng trách bởi lẽ mỗi công ty sẽ có những hình thức văn hóa tổ chức – ứng xử riêng tùy thuộc vào từng lĩnh vực, đặc tính tôn giáo, tuổi tác và cá tính của tập thể nhân sự. Ví dụ, nếu đó là một môi trường đầy sự năng động, đôi khi quá đến mức phải có sự cạnh tranh hay thậm chí là những tin đồn về bè phái, các nhân viên sẽ cân nhắc về khả năng đồng hành của mình sau khi họ có thời gian trải nghiệm.

Sự nhìn nhận và thay đổi từ cả hai phía –  Doanh nghiệp & Nhân viên

Đối với doanh nghiệp, các nhà lãnh đạo nên có những hướng tiếp cận mới hơn để tạo ra một môi trường làm việc thoải mái cho nhân viên của mình. Hãy là một “lãnh đạo tinh tế” bằng cách lược bỏ bớt những nội quy kỷ luật thừa thãi, tăng giao tiếp – tương tác hiệu quả giữa các nhân viên thông qua những buổi thuyết trình, đánh giá. Đó là cách tạo cơ hội cho nhân viên trình bày quan điểm, những ý kiến phản hồi để cải thiện một môi trường làm việc chung. Các doanh nghiệp có thể tạo ra động lực cho nhân viên để họ có thể tự phát triển thông qua những cố gắng. Một nguyên tắc cần nhớ đối với mọi doanh nghiệp: Hãy để nhân viên bảo chúng ta nên làm gì thay vì chúng ta bảo họ phải làm gì.

Đối với nhân viên, việc đầu tiên chính là xác định cá tính và mục tiêu làm việc dựa trên tiêu chí sự phù hợp để có thể đưa ra quyết định đúng đắn trước khi làm việc trong bất kỳ tổ chức/doanh nghiệp nào. Đồng thời, nhân viên cũng cần có khả năng thích ứng nhanh với môi trường và hoàn cảnh công việc. Bạn nên nhớ dù bạn có là một nhân viên giỏi nhưng bạn không có sự thích ứng, tính linh hoạt thì khó có thể thành công. 

Có rất nhiều nguyên nhân dẫn đến việc một nhân viên có thể rời bỏ công ty và bài viết mà TopDev trình bày chỉ tập trung phân tích những nguyên nhân phổ biến nhất. Song, dù cho lý do có là gì thì việc xác định và tìm ra các giải pháp nhằm khắc phục tình trạng đó là điều cần thiết. Hi vọng các nhà tuyển dụng nhân sự và cả nhân viên sẽ có cách nhìn mở cùng lối suy nghĩ sâu sắc hơn về vấn đề này.

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

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

Con đường để bạn trở thành tech lead

tech lead road map

Bạn là một lập trình viên sành sỏi, code bạn viết chưa bao giờ làm các sếp thất vọng, vậy đâu là bước tiếp theo cho bạn – lead một team. Bài viết này sẽ tóm gọn những đặc điểm, kỹ năng, kinh nghiệm cần có để thành công trở thành tech lead.

Thế nào là một Tech Lead (TL)

  • TL là cánh tay phải đắc lực của Project manager (PM)
  • Sự thành/bại của một TL được đong đo bằng sự thành công của team anh ấy dẫn dắt
  • Là người có thể đưa ra một tầm nhìn công nghệ, đưa ra lựa chọn, quyết định sử dụng cái nào và không sử dụng cái nào
  • Là người đưa đường dẫn lối cả team làm việc được cùng nhau
  • TL có thể nâng cao và giải quyết các vấn đề của team thông qua giao tiếp, kỹ năng lãnh đạo, và tầm ảnh hưởng.

Technical Leader Jobs for you

Kỹ năng công nghệ

  • Nắm một cách thông thạocứng cựa một ngôn ngữ, công nghệ nhất định
  • Là người có thể debug những issue khó nhất mà cả team bó tay
  • Đưa ra giải pháp cốt lõi để cả team có thể làm việc hiệu quảphối hợp ăn ý

Giao tiếp, lãnh đạo

  • Khả năng trình bài rõ ràng, thuyết phục các ý tưởng, tầm nhìn, và kiến trúc công nghệ của mình cũng như của người khác
  • Hướng dẫn, chỉ dạy những người lập trình viên khác với sự vui vẻ và nhiệt tâm

Đối với dự án

  • Đưa ra nhưng giải pháp giúp khách hàng, dự án, team hoàn thành tốt công việc của mình
  • Phân chia công việc tránh các bản release to bự không thể kiểm soát, tránh bị BA (business analyser) đè đầu làm cả trăm feature trong một sprint
  • Luôn trong tâm ý làm sao đạt được kết quả một cách tiết kiệm, hợp lý, đưa ra những dự đoán về rủi ro có thể gặp

Tính cách

  • Kỹ năng làm việc với áp lực một cách hiệu quả là yêu cầu bắt buộc
  • Luôn giữ mối quan hệ tốt đẹp với khách hàng, thành viên trong team

Tầm ảnh hưởng

  • Giúp mọi người tốt hơn, thông qua code reviewtài liệu, định hướng kỹ thuật, và hướng dẫn trực tiếp
  • Khả năng xây dựng, phát triển kiến trúc ứng dụng tiến xa hơn, bay cao hơn và đưa đường dẫn lối cho team đi theo

TopDev via Vuilaptrinh

Tổng hợp các tài liệu về Recurrent Neural Network – chuẩn bị cho Quiz 03 Kambria Code Challenge

Kambria quiz 3

Có thể bạn chưa biết, Quiz 03 của Kambria Code Challenge sẽ tập trung vào chủ đề Recurrent Neural Networks. Cuộc thi sẽ diễn ra vào cuối tuần sau ngày 02/05/2020.

Recurrent Neural Network (RNNs – Mạng nơ-ron hồi quy) là một trong những mô hình Deep Learning trong công nghệ trí tuệ nhân tạo. RNN ra đời với ý tưởng chính là sử dụng một bộ nhớ để lưu lại thông tin từ từ những bước tính toán xử lý trước để dựa vào nó có thể đưa ra dự đoán chính xác nhất cho bước dự đoán hiện tại. Cơ bản thì nó là một mạng neural hồi quy là một mạng neural chứa một vòng lặp bên trong nó. 

Trong bài viết này, TopDev sẽ tổng hợp những nội dung về Recurrent Neural Network để giúp bạn nhanh chóng ôn tập kiến thức trước khi tham gia Quiz 03.

Deep Learning cơ bản

Code Challenge

Bài viết này sẽ giúp làm sáng tỏ một số quan niệm sai lầm về Machine Learning. Quan trọng hơn là làm rõ một số quy trình của deep learning cũng như nguyên nhân tại sao nó hoạt động tốt trong các lĩnh vực như xử lý ngôn ngữ tự nhiên (NLP), nhận diện hình ảnh, và dịch ngôn ngữ trong khi lại không thành công ở những mảng khác.

Machine Translation với thuật toán Attention trong Deep Learning

Code Challenge

Bài toán dịch ngôn ngữ là 1 bài toán khá hay. Hôm nay, bài này sẽ hướng dẫn bạn chi tiết về cách code lại thuật toán Attention trong Deep learning cho dạng bài toán Sequence to sequence (Seq2Seq). Trong bài hướng dẫn này mình sẽ code một Machine Translation có chức năng dịch ngôn ngữ Anh -> Việt.

Với mục đích hiểu sâu hơn về thuật toán, sản phẩm được code trên Tensorflow 2.0 thay vì Keras (code với Keras đơn giản hơn rất nhiều nhưng khó hiểu sâu).

Deep Learning quá khó? Đừng lo, đã có Keras.

Bài viết này sẽ hướng dẫn các bạn làm quen với Keras – 1 framework DL rất dễ sử dụng, thân thiện với người dùng nhưng cũng rất mạnh mẽ. Cụ thể, trong bài này mình sẽ nói về 4 modules chính trong Keras: Keras models, Keras layers, Keras losses và Keras optimizers.

Code Challenge

Bài viết này chủ yếu dành cho những bạn đã có kiến thức cơ bản về ML, DL và đang muốn tìm 1 framework để xây dựng các mô hình ML, DL 1 cách nhanh nhất. Nếu bạn chưa có nên tảng về ML, DL hay còn lạ lẫm với các khái niệm filter, kernel size, strides trong CNN hoặc vẫn còn chưa quen với mạng recurrent network thì các bạn có thể tham khảo tại đây để có thể hiểu được những kiến thức cơ bản về mặt lý thuyết trước khi sử dụng Keras.

Bài toán dự báo thời tiết với Machine Learning

Đây là bài toán đặc trưng để sử dụng mô hình RNN. Trong nhiều mạng neural truyền thống khác, dữ liệu đầu vào và đầu ra hoàn toàn độc lập với nhau, tức là chúng không có liên kết thành chuỗi. Do đó khi áp dụng vào bài toán dự báo sẽ rất khó để đưa ra kết quả dự đoán.

Mô hình của thuật toán RNN tỏ ra lợi thế hơn trong việc áp dụng vào bài toán dự báo bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính trước đó. 

Bạn có thể tìm thấy một số bài toán thuộc thể loại này, như phân tích tài chính, tỉ số chứng khoán, hay áp dụng nó để phân tích tỉ giá Bitcoin để đầu tư đúng chỗ, đúng thời điểm.

Chúc bạn chuẩn bị tốt trước khi dự thi Quiz 03 – Kambria Code Challenge!

—–

Thông Tin Quiz 03

⏰Thời gian: 14h00 – 14h45 (giờ Việt Nam) ngày 02/05/2020

📌Đăng ký tại: http://bit.ly/KambriaQuiz03

Làm quen với React Hook bằng ví dụ

Chúng ta cùng bắt đầu học sử dụng React Hook, nó giải quyết vấn đề gì, sử dụng nó ra sao.

Mấy tháng trước thiên hạ rần rần với React hook khi nó còn đang ở bản proposal (show hàng cho các anh lập trình viên, nếu thích thì họ phát triển tiếp), bây giờ khi React chính thức công bố trên trang chủ rồi, chúng ta cùng làm quen với React hook cũng ko có gì muộn.

State trong React

Khi khai báo một component trong React bằng class (stateful component), không dùng function để khai báo (stateless component), thì trong component đó chúng ta có state

class StatefulComponent extends React.Component {
    constructor(props) {
        super(props);

        this.state = {
            name: 'An Luu'
        }
    }

    render() {
        return (
            <div>
                Hello {this.state.name}
            </div>
        )
    }
}

const StatelessComponent = ({ name }) => {
    return (
        <div>
            Hello {name}
        </div>
    )
}

Vấn đề của hàm setState là nó chỉ có khi chúng ta khai báo component bằng class, nó là hàm async – nghĩa là nếu chúng ta gọi setState nhiều lần, component được render lại với số lần gọi setState.

Nguyên nhân chính đẻ ra cái hook chính là việc ko thể setState trong function component (ủa vậy tại sao đẻ ra khái niệm function component chi, stateless component chi?)

Sử dụng React Hook

Trước tiên muốn dùng React Hook, phải đảm bảo version React đang dùng thấp nhất là 16.8.0

Hàm quan trọng cần nhớ là useState

import React, {useState} from 'react';

Hàm useState nhận tham số initial state, sau đó sẽ trả về một mảng 2 phần tử, phần tử đầu tiên là state hiện tại, thứ 2 là hàm để update state (setState đó mà)

const [state, setState] = useState(false);

Sử dụng trên component thực tế đi nhỉ

import React, { useState } from 'react';

const Form = ({ addTodo }) => {
  const [value, setValue] = useState("");

  const handleSubmit = e => {
    e.preventDefault();
    if (!value) return;
    addTodo(value);
    setValue("");
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        value={value}
        type="text"
        onChange={e => setValue(e.target.value)}
        placeholder="Add a todo"
      />
    </form>
  );
};

const StatelessComponent = () => {
    const [todos, setTodos] = useState([]);
    const addTodo = text => {
        const newTodos = [...todos, { text }];
        setTodos(newTodos);
    }
    const deleteTodo = index => {
        const newTodos = [..todos];
        newTodos.splice(index, 1);
        setTodos(newTodos);
    }
    return (
        <div>
            <Form addTodo={addTodo} />
            <div>
                {todos.map((todo, index) => (
                        <div key={index} onClick={() => deleteTodo(index)}>
                            <span>{text}</span>
                        </div>
                ))}
            </div>
        </div>
    )
}

Làm quen với React Hook bằng ví dụ thực tế

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

TopDev via Vuilaptrinh

Em có muốn hỏi câu gì không?

đặt câu hỏi khi phỏng vấn

Một câu bạn sẽ được hỏi trong lúc phỏng vấn, một cơ hội để bạn tìm hiểu về công ty, vậy nên hỏi những câu nào?

Quy trình, nơi làm việc, team

Một task dài nhất là bao lâu? Fix một lỗi tốn nhiều nhất là bao lâu? Theo anh đánh giá, mất bao lâu để hiểu hết toàn bộ source code hiện tại?

Một task càng ngắn, chứng tỏ quy trình tốt và kiến trúc dự án tốt, task được phân chia một cách rõ ràng, lỗi được cô lập và kiểm soát tốt.

Với level junior hoặc mid thì tốn một tháng để thành thạo là bình thường, người quản lý có vấn đề gì với thời gian để thích nghi như thế không, đặc biệt nếu bạn chỉ ở mức junior

Rất nhiều team sẽ không có 1 người có thể hiểu hết toàn bộ source code, có thể giải thích cho bạn bất cứ chổ nào. Nhưng hy vọng bạn lead có thể nắm sơ và biết ai đang phụ trách phần nào.

Tìm kiếm việc làm ngành IT

Mình được cấp máy tính gì, công ty có cấp cho mình thiết bị mà mình cần để phục vụ công việc

Với mấy ngành khác thì không biết sao, chứ là dân dev, cái máy tính rất quan trọng, một ngày làm việc 8 tiếng, một tuần cày đủ 7 ngày, việc một cái máy tính chạy ngon lành không chết nửa chừng, không dính virus, ko tự tắt máy bất thình lình là vô cùng cần thiết.

Các công ty lớn thường việc mua thêm thiết bị cũng rất lằng nhằn về quy trình mua sắm thiết bị mới.

Làm sao công ty đánh giá được là em việc tốt, hiệu quả cao?

Câu này quan trọng nhất nhé, mỗi người quản lý, mỗi công ty sẽ có cách trả lời khác nhau.

Nó cũng tùy thuộc vị trí bạn đang apply, junior có thể bạn học được nhanh từ những người khác, senior thì bạn giúp đồng nghiệp của mình nâng cao chất lượng công việc.

Thường thì 2 dev có cùng làm 1 task không? (hoặc nhiều hơn)

Pair program hoặc mob program có được áp dụng trong công ty không?

Cách nhìn nhận của người làm chung về vấn đề hỗ trợ giữa các bộ phận, đã áp dụng chưa?

Có bao nhiêu dev trong công ty chỉ mới làm việc trong khoảng 6 tháng?

Có 2 nguyên nhân cho vấn đề này: (1) phát triển nhanh cần thêm người, (2) các bạn dev rủ nhau ra đi quá đông.

Công ty phát triển nhanh không có nghĩa là không có vấn đề, họ sẽ áp dụng những quy trình mới, tập hợp những người chưa từng làm việc chung với nhau thành một team.

Dev rủ nhau ra đi quá đông là tình huống không ai muốn nghe. Có thể công ty đang gặp khó khăn để cứu vớt dự án sắp chết, chính sách công ty không tốt, hay là lead nghỉ kéo người theo, dù là nguyên nhân gì cũng nên biết chính xác.

Team size đang là bao nhiêu người, số lượng mong muốn là bao nhiêu cũng là một cách để biết.

Có bao nhiêu dev làm ở đây 2, 4 năm rồi?

Một minh chứng cho việc các dev cảm thấy hài lòng với công ty. 1 dev có thể chịu đựng công ty trong tối đa một năm, nhưng sẽ hiếm thấy việc nhiều dev có thể cùng chịu đựng được trong nhiều năm.

Với những công ty startup (thời gian thành lập bé hơn 2 năm) thì chỉ cần biết người đầu tiên gia nhập công ty còn làm không.

Các vấn đề liên quan đến kỹ thuật

Môi trường làm việc là sản phẩm các dev đang tạo và văn hóa quản lý tạo bởi lead, môi trường làm việc tốt là công việc không luôn trong tình trạng chạy đua với deadline.

Tốn bao lâu để hoàn tất deploy?

Nếu tốn nhiều thời gian deploy, nghĩa là nó đang được làm thủ công, dễ phát sinh lỗi.

Thế nào được xem là một pull request lớn, số dòng code, số file

Nếu task được chia nhỏ sẽ dễ quản lý, ít bị conflict. Pull request nhỏ chứng tỏ merge code thường xuyên, công ty đang theo quy trình quản lý hiện đại. Branche lớn, kéo dài, cho thấy người senior thiếu kinh nghiệm chia công việc. Pull request lớn chỉ khi source code được phân tách rất rõ ràng, độc lập, pull request nhỏ cũng chứng tỏ code được tổ chức rất tốt.

Với cá nhân mình, một pull request được cho là lớn khi có khoảng 2000 dòng code, 20 file khác nhau.

Một câu trả lời mình cũng mong muốn nhận được là các team sẽ làm việc trên từng feature branch. Tổ chức gít theo từng feature giúp code dễ maintain hơn, mặc dù cái này không phải lúc nào cũng đúng, đôi khi feature branch cũng rối lắm.

  Bí kíp chinh phục tất cả nhà tuyển dụng IT trong vòng phỏng vấn (Phần 1)
  'Toát mồ hôi' phỏng vấn tuyển dụng vào Apple

Phải đụng đến bao nhiêu repository để update một tính năng nào đó?

Có những project chỉ bao gồm một repository, cả ngàn commit một ngày. Có dự án được tổ chức bởi cả chục cái repository quan hệ chằng chịt với nhau. Câu hỏi này giúp hiểu rõ hơn cấu trúc project và cách phân chia code.

Với những công ty trẻ, chỉ có một sản phẩm, có quá nhiều repository cũng không tốt. Công ty nhỏ nên tập trung và tiết kiệm thời gian tối đa, xây dựng sản phẩm đưa đến user, việc có nhiều repository khiến tiêu tốn thời gian để quản lý và deploy khá nhiều.

Mình cũng thường hỏi cách quản lý khi code bị duplicate và các thư viện của riêng công ty.

Việc phải thay đổi trên nhiều repository có thường xuyên không?

Nếu các module không được tách biệt tốt, việc thay đổi như thế rất hay xảy ra. Phải deploy cùng lúc nhiều service sẽ khó đoán được lỗi do đâu nếu có xảy ra. Cùng đồng nghĩa với việc service chưa được cấu trúc tốt.

Xử lý các tình huống khẩn cấp

Có hay xảy ra tình huống phải fix lỗi khẩn cấp? Thế nào được xem là tình huống khẩn cấp?

Thí dụ như user không thể truy cập vào website, thực hiện thanh toán không được sau khi nâng cấp tính năng mới.

Nếu những tình huống như vậy xảy ra thường xuyên, chứng tỏ việc thay đổi một phần dù chỉ nhỏ trong code cũng rất khó. Trong source code phụ thuộc lẫn nhau không biết trước được.

Quá trình xử lý lỗi phát sinh là như thế nào?

Với các công ty startup, thiếu các quy trình này là điều tốt, code chạy tốt quá đâu cần quy trình :D. Chưa có nhiều lỗi đến mức người ta phải nghĩ ra quy trình cho vấn đề này.

Với những công ty đã được thành lập lâu thì ngược lại, chắc chắn họ đã gặp nhiều lần vấn đề này, cần có quy trình rõ ràng để giải quyết để tránh lặp lại những lỗi như vậy

Giữa đêm em có bị nhận cuộc gọi lên để fix bug không?

Trong trường hợp nào bạn sẽ bị gọi lên sữa lỗi, yêu cầu OT, trong trường hợp OT thì có thêm tiền không

Thường trường hợp như vậy trong công ty có xảy ra nhiều không, có được request thêm ngày nghỉ phép không trừ lương trong trường hợp đó.

Thật lòng mà nói mình cũng không thích làm việc trong các công ty yêu cầu nhân viên làm việc ngoài giờ quá nhiều như vậy.

Con đường phát triển cho từng nhân viên

Nếu đã hoàn thành công việc được giao, thời gian rảnh thì mình có thể tự nghiên cứu, học tập không?

Là một Developer, sống trong môi trường công nghệ luôn phát triển không ngừng, chúng ta không ngừng học hỏi cho kịp với lớp trẻ. Các công ty luôn yêu cầu hoàn thành công việc sớm chừng nào tốt chừng ấy, và vẫn đảm bảo chất lượng, để đáp ứng được chuyện đó, developer phải có rất nhiều kiến thức, học hỏi không ngừng từ cộng đồng, áp dụng vào công việc đang làm, cho các dự án mới. Để trở thành dev chất không có cách nào khác là bạn phải dành thời gian nghiên cứu đều đặn.

Với câu hỏi này, người trả lời tốt nhất chính là các bạn dev đang làm trong công ty, chứ không phải cấp quản lý, vì những người quản lý sẽ luôn nói điều tốt về chính sách. Không phải công ty nào cũng có đồng quan điểm về việc học từ đâu, học như thế nào, học thời gian nào, sẽ có những công ty không cho phép nhân viên truy cập youtube, vốn là nguồn resource học lớn đối với mình, bên cạnh medium. Nếu nói thời gian nghiên cứu của nhân viên là việc nhân viên phải làm ở nhà, công ty chỉ trả tiền 8 tiếng cho bạn để làm việc trong công ty không phải để ngồi nghiên cứu là mình thấy không đồng ý.

Cách đánh giá một developer chất lượng, có sự phát triển trong công việc?

Một số công ty đánh giá developer chất bằng việc anh ta hoàn thành toàn bộ deadline, không gây nhiều issue. Một vài công ty có chương trình đào tạo cho nhân viên mới, giúp bạn đạt vị trí cao hơn, hoặc được nghía các dự án khác để học hỏi công nghệ. Nhưng cơ bản phải biết mình muốn gì trong tương lai, và làm ở công ty đó thì bạn có đạt được mục tiêu của mình ngày qua ngày không.

Công ty có những hoạt động chia sẻ kiến thức như là semi tổ chức rầm rộ không?

Chia sẻ kiến thức giữa các developer là một phần rất quan trọng. Nếu có các buổi workshop hàng tháng, hàng quý để đồng nghiệp senior chia sẻ và cùng nhau bàn luận thì tuyệt vời, nếu được trả lời “có, nhưng thật sự chưa đủ” thì quá đỉnh rồi.

Có được tham gia các hội thảo có tính phí không?

Các hội thảo chuyên môn, đặc biệt có tính phí tham gia rất tốt cho sự phát triển cá nhân, nếu công ty có chi trả cho nhân viên tham gia những hội thảo như vậy thì quá tuyệt. Nếu được tài trợ tham gia các hội thảo như vậy, bạn cũng nên share lại kiến thức có được với đồng nghiệp trong các buổi meeting nội bộ. Mỗi năm một lần là đủ với mình.

Phương pháp quản lý dự án và xét độ ưu tiên

Cách anh điều phối giữa việc đưa thêm tính năng mới và bảo trì những tính năng cũ

Theo nhiều kinh nghiệm được chia sẻ từ các nhà quản lý, 1/3 thời gian để bảo trì, ví dụ như refactor code, xóa code thừa, bổ sung unit test, tăng tốc độ, là mức hợp lý để cân bằng giữa bổ sung tính năng mới và bảo trì.

Hoặc hỏi thêm kinh nghiệm những gì cần làm trong để maintain

Quy trình phát triển một sản phẩm, tính năng mới, từ lúc lên ý tưởng đến lúc deploy là thế nào?

Câu hỏi này sẽ phải trả lời rất nhiều, từ lúc lập kế hoạch, trao đổi giữa các bộ phận, đến lúc implement, feedback, deploy. Nó đã gom đủ một vòng.

Task được kiểm tra như thế nào? Ai là người tạo ra mấy task này?

Mỗi công ty mỗi khác, tùy người quản lý.

Làm thế nào để xác định nên build một version?

Dựa trên tính năng đặt ra, khách hàng yêu cầu, thời gian cố định

Khi nào task được xem là complete?

Đúng yêu cầu của PR, QA bảo đóng sau khi test, bên kinh doanh đã thấy được sản phẩm deploy và không nhận thêm bất cứ phàn nàn nào?

Phần mềm đang sử dụng để quản lý task?

Nhiều phần mềm dạng này lắm: Pivotal, Asana, Wrike, JIRA, Trello, post-it + tấm bảng, thẻ được in ra, Visual Studio Online, Marvel.

Cá nhân tác giả bài viết cũng như mình đồng quan điểm: JIRA là thằng gớm nhất

Đã hết giờ hỏi!

Không có con người hoàn hảo, không có công ty hoàn hảo, bạn chấp nhận được những gì, những gì bạn sắp ưu tiên nó thấp hơn. Chúc các bạn tìm được công việc tốt. Mình đã có việc rồi, không muốn đi phỏng vấn nữa đâu các bạn.

TopDev via Vuilaptrinh

3 điều quan trọng cần nắm về tương lai của ngành Nhân sự

Khi thế giới nhân sự có tính đổi mới, nhiều sự gián đoạn đã xảy ra trong quy trình phát triển nguồn nhân sự. Theo một khảo sát về tương lai nhân sự toàn cầu của KPMG International, gần 3 trong số 5 (chiếm 57%) giám đốc nhân sự tin rằng nếu chức năng nhân sự không thể hiện rõ tính hiện đại hóa cách tiếp cận để hiểu và lập kế hoạch cho nhu cầu trọng yếu (tức sự phát triển) của lực lượng lao động trong tương lai, nó sẽ nhanh chóng trở nên lạc lối, xa rời định hướng chiến lược trong tổ chức hiện đại. Vì thế, việc tiếp cận, dự đoán những khả năng có thể xảy ra và lập kế hoạch giải quyết những gián đoạn là điều quan trọng.

Các tổ chức nhân sự thế giới đang nỗ lực tìm kiếm và xây dựng khung năng lực trên ba khả năng riêng biệt. 

Theo quan điểm của chúng tôi, thông qua các khả năng này, HR có thể lập biểu đồ cho một khóa học đào tạo trong tương lai một cách bài bản nhằm giúp định hướng tốt hơn nguồn lực lao động trong tương lai trước những phát bất ngờ trong thời đại kỹ thuật số.

Trong nghiên cứu của mình, có tổng cộng ba khả năng bao gồm:

  • Định hình lực lượng lao động trong tương lai và xây dựng một nền văn hóa có mục đích
  • Ưu tiên phát triển chiến lược dựa trên trải nghiệm của nhân viên
  • Mã hóa dữ liệu thông qua hiểu biết về lực lượng lao động

1. Định hình lực lượng lao động và xây dựng một nền văn hóa DN có mục đích

Các tổ chức nhận ra rằng các cấu trúc lực lượng lao động hiện tại đang bị phá vỡ bởi các mô hình kinh doanh và công nghệ mới. Họ đang cố nắm bắt cơ hội để định hình lại lực lượng lao động và mong muốn đạt được những lợi ích tối đa khi trí thông minh của con người và khả năng hoạt động của máy móc được cộng hưởng. 

Một khi ngành Nhân sự đang được vận hành và biến đổi theo xu hướng phát triển của kỹ thuật số, nhiều mô tả tương lai gần cho một định hướng phát triển nguồn nhân lực được tạo ra. Và thực tế cho thấy, định hướng đó bị chi phối bởi quá nhiều đặc tính của thời buổi công nghệ số như: hợp thức hóa quy trình hoạt động nhân sự, tiếp cận quá nhiều nguồn dữ liệu phức tạp,… Điều đó dễ khiến việc định hướng trở nên khó khăn vì chưa tập trung vào một mục tiêu nhất định.

Nghiên cứu cho thấy ¾ các tổ chức nhân sự Pathfinding đồng ý rằng HR cần chủ động tạo ra các thách thức cho thành phần lực lượng lao động để đáp ứng nhu cầu phát triển của tổ chức trong tương lai. Đồng thời, họ cũng đang dành sự ưu tiên cho việc nâng cao lực lượng lao động để quản trị những ảnh hưởng của AI – trí tuệ nhân tạo với đối tượng này.

Ngoài việc định hình lực lượng lao động trong tương lai, các tổ chức nhân sự của Pathfinding hiểu rằng HR đóng một vai trò quan trọng trong việc định hình và duy trì văn hóa phù hợp với chiến lược kinh doanh của họ. Cụ thể, những số liệu thực từ nghiên cứu cho thấy, những người hoàn toàn đồng ý việc một chiến lược phù hợp có ý nghĩa trong vấn đề duy trì văn hóa cho tổ chức của họ thì cao gấp 6 lần so với số lượng người không đồng ý.

2. Ưu tiên phát triển chiến lược dựa trên trải nghiệm của nhân viên

Đã có một cuộc khảo sát diễn ra với những nguồn dữ liệu được thu thập và phân tích dựa trên mối quan hệ giữa các tổ chức nhân sự và nhân viên. 

Có đến 95% nhân sự viên chia sẻ rằng họ đang ưu tiên cho những trải nghiệm cá nhân của mình như một lĩnh vực trong tâm bên cạnh chuyên môn về nhân sự. Nhiều tổ chức nhân sự của Pathfinding cũng đồng quan điểm rằng kinh nghiệm của các nhân viên trong tổ chức là sự lựa chọn hàng đầu để họ tập trung phát triển chiến lược.

Quan tâm đến những trải nghiệm của nhân viên là một kỹ năng cần thiết hàng đầu mà nhà quản trị nhân sự cần có. Đây là một biểu hiện của cách tiếp cận mới, nói lên rằng những lãnh đạo cấp cao đã thật sự chú trọng đến sự phát triển chung của tổ chức trong tương lai. Đi từ sự thấu hiểu nhân viên cũng chính là cách tìm ra sự gián đoạn làm cản trở quá trình hoàn thiện định hướng chiến lược nhân sự lâu dài. 

3. Thấu hiểu dữ liệu về lực lượng lao động

Các tổ chức nhân sự Pathfinding tin rằng sức mạnh của khoa học dữ liệu có thể tạo những hiểu biết và biểu diễn thành những hành động cụ thể. Tất nhiên những hành động ấy đều mang lại giá trị cho toàn bộ tổ chức. Vì thế, khi các nhà quản trị nhân sự đã hiểu biết rõ về lực lượng lao động có thể dễ dàng mã hóa nguồn dữ liệu để đề ra các giải pháp nhân sự hiệu quả. 

Ví dụ đơn giản, khi đủ sự hiểu biết về nhân sự của mình, các nhà lãnh đạo có thể yên tâm áp dụng những cách thức tiếp cận mới. Đầu tư vào công nghệ số, trí tuệ nhân tạo,… những sản phẩm khoa học sáng tạo sẽ giúp nhà lãnh đạo phân tích, mã hóa các dữ liệu, cho ra những số liệu chuẩn và từ đó, đưa ra những quyết định chính xác hơn. Sự đầu tư nào cũng cần dựa trên một nền tảng vững chắc và ở đây sự hiểu biết về lực lượng lao động (sự thấu hiểu về những nhân viên) chính là nền tảng đó. 

Lời kết:

Nếu xem xét trong một cách khoa học, chúng ta sẽ thấy một logic liên kết và củng cố lẫn nhau để xây dựng khả năng trong cả 3 khả năng riêng biệt. Năm 2020 được xem thời điểm mà ngành nhân sự đang có những bước tiến đột phá, đổi mới toàn diện vì thế đòi hỏi HR phải có lối tư duy hiện đại đồng thời hiểu rõ chức năng của nhân sự. 

Hãy nhớ rằng, điều tạo ra sức mạnh của thế hệ nhân sự tiếp theo không phải là theo đuổi các khả năng rời rạc, mà là tạo ra một cách tiếp cận toàn diện, đổi mới và củng cố lẫn nhau để thiết lập một hệ thống hoàn chỉnh; xây dựng và phát triển nguồn lực lao động cho tổ chức trong tương lai.

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

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

Những tính năng cơ bản của Firebase

tính năng firebase

Năm 2016 Google giới thiệu Firebase. Khi bắt đầu phát triển ứng dụng điện thoại, bạn sẽ cần đến server và một developer để làm việc với server

Firebase cung cấp những tính năng chúng ta cần ở server, thêm vào đó là realtime database, storage, hosting, authentications, analytics, notifications, crash report,…

Firebase Analytics

Firebase Analytics cho phép bạn analyse các thao tác của user trên app, miễn phí cho 500 sự kiện khác nhau.

Với kết quả analyse này chúng ta có thể biết được người dùng cần gì, sử dụng app ra sau, chúng ta nên nâng cấp những tính năng nào

Realtime Database

Firebase cung cấp NoSQL realtime cloud database. Lưu trữ dữ liệu ở dạng JSON và cho phép đồng bộ với client

Khi kết nối Realtime Database với Android, iOS, Javascript SDK, một realtime database sẽ được tạo ra và dùng chung cho tất cả user. Tất cả client sẽ nhận được update khi có sự thay đổi của dữ liệu

Authentication

Sử dụng Firebase Authentication user sẽ xác thực tài khoản bằng nhiều cách, email, Facebook, Twitter, Google hay Github.

Firebase Authentication cho phép tạo một user mới lưu xác thực của user xuống Firebase Database, không còn cực khổ đi config ở phía server

Thậm chí chúng ta còn có thể gởi confirm email sau khi đăng ký và forget password.

Crash Reporting

Một tính năng hữu ích cho mội developer, với Firebase Crash Reporting chúng ta sẽ có tất tần tật log từ thông tin OS đến chi tiết lỗi nếu xảy ra

Cloud Messaging

Với Firebase Cloud Messaging(FCM) chúng ta có thể tương tác với user theo một khoảng thời gian chỉ định, notify user những thay đổi đã xảy ra.

Sử dụng FCM để chạy quảng cáo, khuyến mãi, miễn là nó dưới 4KB

Remote Config

Remote config theo các developer là tính năng xịn nhất của Firebase, cho phép thực hiện những thay đổi mà không cần chạy lại build. User sẽ có được những thay đổi đổi mới nhất mà không cần update lại app.

App Indexing

Nếu google tìm thấy bất kỳ từ khóa tìm kiếm nào khớp với app của chúng ta và nếu app được cài rồi, user sẽ ngay lập tức thấy kết quả có app của chúng ta.

Invites

Nếu app có nội dung tốt, được nhiều người thích thú, user có thể share nó với người khác sử dụng Firebase Invites.

AdMob

Sau tất cả cố gắng để build app, chúng ta cần đến AdMob để kiếm chút đỉnh từ quảng cáo.

TopDev via Vuilaptrinh