Home Blog Page 161

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

networking

Tạo dựng và duy trì mối quan hệ (Networking) là phương pháp tiếp thị hiệu quả cho mọi cá nhân nhằm nâng cao chất lượng hoạt động của công việc. Thực tế cho thấy, nhiều người vẫn chưa hiểu rõ về cách thức thực hiện của networking vì thế dẫn đến tình trạng hiệu quả còn nhiều hạn chế. Với bài viết sau đây, TopDev sẽ bật mí với bạn cách làm thế nào để xây dựng và duy trì mối quan hệ một cách tối ưu.

Đâu là những nguồn networking hiệu quả?

Nền tảng networking từ việc học tập

networking

Việc học tập có thể nói là ưu tiên hàng đầu của bất cứ ai khi mong muốn xây dựng những nền tảng ban đầu về networking. Nếu còn là sinh viên thì bạn nên kết hợp việc tiếp thu kiến thức với việc bắt đầu thiết lập các mối quan hệ. Không một sinh viên xuất sắc nào mà lại không có những networking từ giảng viên cả. Việc duy trì mối quan hệ với thầy cô sẽ có giá trị lớn đối với bạn trong việc thực hiện các đề tài nghiên cứu, công trình khoa học, đồ án, kế hoạch thực tập, học bổng,.. 

Trải nghiệm và xây dựng networking từ hội thảo, chương trình hợp tác

Ngược lại, nếu là một người đã đi làm, bạn vẫn có thể dễ dàng xây dựng và duy trì mối quan hệ bằng cách tham gia các khóa học về kỹ năng sống, chương trình nghiệp vụ, ngoại khoá. Chúng là sự lựa chọn khá hoàn hảo để bạn gặp gỡ những người có kinh nghiệm trong các lĩnh vực có liên quan đến vị trí công việc của bạn. 

Có được networking tốt với họ là cơ hội để bạn bước đầu phát triển thêm về chuyên môn đồng thời là bước đệm hỗ trợ lâu dài cho việc chinh phục mục tiêu của bạn trong tương lai. Một bí quyết nhỏ cho bạn đó là hãy chủ động tìm hiểu trước về chủ đề và nội dung để thuận lợi hơn trong việc kết nối với các diễn giả hoặc những người tham dự tiềm năng nhé.

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

Làm thế nào để có thể thiết lập và duy trì networking hiệu quả?

Tính chuyên nghiệp được đặt lên hàng đầu

Tính chuyên nghiệp rất quan trọng vì nó chi phối đến hiệu quả của việc xây dựng và phát triển networking.

networking

Hãy xuất hiện một cách chỉn chu nhất. Sự chỉn chu được thể hiện qua trang phục lịch sự, thái độ và phong cách giao tiếp chuyên nghiệp.

Hãy là chính mình, đừng cố gượng gạo. Bạn có thể mở đầu bằng cách nở một nụ cười thật tươi, hay trao cho họ những lời hỏi thăm. Tiếp đến thì một cuộc hội thoại ngắn sơ bộ về thông tin cá nhân, không quá rườm rà nhưng đủ tạo điểm nhấn để người đối diện nhớ về bạn là điều bạn nên lưu tâm và thực hiện. Để kết lại cho lần chạm mặt đầu tiên một cách chuyên nghiệp nhất, hãy gửi cho họ một tấm danh thiếp của bạn. Danh thiếp được xem là một chiếc vé giúp bạn đến gần hơn với đối tác. Việc họ nhớ đến bạn và liên hệ lại hay không còn phụ thuộc nhiều yếu tố, tuy nhiên hãy là một người chuyên nghiệp từ những hành động, ứng xử nhỏ nhất.

Không ngừng thúc đẩy và nuôi dưỡng các mối quan hệ

Việc duy trì networking cũng giống như việc phát triển công tác về nhân sự trong tổ chức của bạn. Nhà quản lý nhân sự về IT sẽ luôn đặt ra những mối quan tâm lớn về việc làm thế nào để giữ chân và đồng hành cùng nhân viên của mình một cách lâu dài nhất. Đó là lý do họ vạch ra rõ những đường hướng, lộ trình phù hợp cho mỗi nhân viên thông qua các chính sách, phúc lợi,… Bạn cũng vậy, việc bạn duy trì networking với các đối tác rất cần sự thúc đẩy và nuôi dưỡng. Hãy cho phép đôi bên hiểu rõ về nhau thông qua những cuộc gặp mặt. 

  4 cách thúc đẩy sự phát triển nhân viên tại công ty

networking

Cụ thể, bạn có thể đặt câu hỏi và lắng nghe họ. Bạn không cần phải nói quá nhiều về những gì mình đã làm để truyền thông hay quảng cáo cho bản thân. Thay vào đó, hãy thảo luận với những người bạn gặp về công việc của họ, lắng nghe để nắm bắt thông tin và tiếp nhận những phản hồi. Đồng thời, hãy tìm kiếm những điểm tương đồng mà bạn có thể đưa vào cuộc trò chuyện để gia tăng sự tương tác. 

Hoạt động trên nền tảng sự thấu hiểu và tính thích nghi là nước cờ đúng đắn. Bạn và đối tác có thể chia sẻ về những khó khăn, thách thức riêng để tìm thấy sự phụ ứng từ đó mở ra nhiều cơ hội hợp tác với nhau hơn.

Thông minh và chủ động để tìm kiếm và duy trì networking 

Đừng giữ mãi quan niệm thiết lập được càng nhiều networking càng tốt. Chất lượng vẫn hơn số lượng. Vì thế mỗi lần có cơ hội trải nghiệm, tham gia các sự kiện, hoạt động lớn nào đó, bạn hãy thông minh trong việc tiếp cận trao đổi với đối tượng. Dù cho đó chỉ là 2-3 người nhưng với mỗi cá nhân, bạn có thể có đủ thời gian và sự đầu tư nghiêm túc cho cuộc thoại của mình trở nên đáng nhớ và hấp dẫn các đối tác tiềm năng. Một cuộc giao tiếp dài và sâu thay vì diễn ra chớp nhoáng là minh chứng cho tính hiệu quả trong việc tạo lập và duy trì mối quan hệ.

  Kỹ năng giao tiếp? Làm thế nào để cải thiện giao tiếp hiệu quả?

networking

Ngoài ra tính chủ động cũng rất quan trọng để giúp bạn khai thác tốt các networking. Chủ động liên hệ và tương tác với những người có tên tuổi, có thâm niên về bể đay hoạt động. Dành một ít thời gian để phân bố tìm hiểu thông tin về họ, tạo ra các cơ hội gặp gỡ và trao đổi cụ thể về những điều thú vị hay những vấn đề xoay quanh hội thảo đã diễn ra cũng là một phương án không tồi tí nào

Tuy nhiên, bạn nên sẵn sàng cho những trường hợp tiêu cực có thể xảy đến. Hãy giữ một tâm thế thoải mái và cởi mở hơn. Đừng quá đặt nặng mục tiêu là buộc mình phải trở thành thợ săn network; giảm bớt những mong đợi tìm kiếm các mối quan hệ lớn vì thực tế đôi khi khác xa những gì bạn kỳ vọng.

Lời kết

Networking là một quá trình, không phải là sự kiện chỉ diễn ra duy nhất một lần. Tất nhiên, mục tiêu xây dựng và duy trì networking đang là mối quan tâm lớn đối với mọi doanh nghiệp. Tuy nhiên, điều bạn cần làm là dành cho nó một sự đầu tư nghiêm túc nhất để nó có thể phát triển. Hãy tự tin và vững bước trước những áp lực. 

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

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

UX là gì? UX Designer thì làm những gì?

ux-la-gi-ux-designer-thi-lam-nhung-gi

UX là gì? – Theo báo cáo gần đây nhất của TopDev, mức lương trung bình của vị trí UX/UI Designer đạt 22 triệu đồng/tháng ($954 USD). Chắc chắn một điều, khi ngày càng nhiều sản phẩm công nghệ xuất hiện trên thị trường, điều khách hàng quan tâm không chỉ đến từ chức năng hay chất lượng của sản phẩm. Có nhiều yếu tố cấu thành nên sự thành công của phần mềm/website, và trong đó không thể thiếu yếu tố UX/UI.

Vậy UX là gì? Và liệu Developer có nên quan tâm đến UX/UI design?

UX là gì?

Viết tắt từ User Experience – trải nghiệm người dùng, UX là quá trình tạo ra sản phẩm cung cấp trải nghiệm có ý nghĩa liên quan tới người dùng (hay khách hàng), bao gồm toàn bộ quá trình ứng dụng và tích hợp sản phẩm kết hợp nhiều khía cạnh như: branding (thương hiệu), design (thiết kế), usability (khả năng sử dụng) và function (chức năng).

Có thể nói, mọi thứ đều có một UX của riêng nó. Và công việc của UX Designer không phải là tạo ra UX, mà chính là tối ưu nó. Và thế nào là một UX “đủ tốt”? Liệu có phải làm làm cho người dùng vui vẻ chính là một “trải nghiệm người dùng” tốt? Tuy nhiên đích đến của UX không nằm ở việc làm cho người dùng vui vẻ, mục tiêu mà một UX Design cần đạt chính là làm cho người dùng hiệu quả. Và thực ra trải nghiệm người dùng chỉ là bề nổi của cả tảng băng.

Nhiều người lầm tưởng rằng UX chỉ bao quanh user’s experience mà quên mất khái niệm thật sự của UX là gì, thực chất nó bao gồm cả một quá trình User Experience Design – Thiết kế trải nghiệm người dùng. Một trải nghiệm của một cá thể người dùng nào đó, là cảm giác hay ý kiến chủ quan của họ lên app hay web của bạn. Có thể feedback từ người dùng khá là quan trọng, nhưng đôi khi UX Designer có nhiều thứ để làm hơn thế.

Thực hiện UX: Thiết kế UX (UXD) là quá trình cũng tương tự như làm khoa học vậy: tạo research để hiểu người dùng, triển khai các ý tưởng để giải quyết nhu cầu của người dùng – nhu cầu của kinh doanh – và cả xây dựng, đo lường những giải pháp thực tế để xem chúng có thực sự hiệu quả hay không.

5 nguyên liệu quan trọng trong món ăn UX

Tâm lý (Psychology)

Tâm lý người dùng khá là phức tạp. Nhưng bản thân bạn cũng như thế. Tuy nhiên đây cũng là lý do mà UXD phải gạt bỏ những định kiến và ý kiến của bản thân. Để làm được điều này, hãy tự hỏi:

  1. Đâu là lý do người dùng ở trang này lần đầu tiên?
  2. Việc này khiến họ cảm thấy như thế nào?
  3. Người dùng phải làm bao nhiêu hành động để có thứ họ muốn
  4. Nếu họ làm việc này lặp đi lặp lại thì sẽ tạo ra thói quen nào?
  5. Họ mong đợi gì khi click vào chỗ này>
  6. Bạn có cho rằng họ đã biết điều mà họ chưa từng học qua?
  7. Đây có phải hành động mà họ muốn làm lại lần nữa? Tại sao? Bao lâu một lần?
  8. Bạn có cân nhắc về nhu cầu và mong đợi của user, hay là của bạn?

Tính khả dụng (Usability)

Nếu tâm lý người dùng thuộc về tiềm thức thì tính khả dụng lại nghiêng nhiều hơn về ý thức, từ đó mang tính chủ quan hơn. Tính khả dụng đuợc tối ưu sẽ cho phép user thực hiện thao tác nhanh chóng, dễ dàng hơn.

Thiết kế (Design)

Tất nhiên là khái niệm “thiết kế” trong UXD thì sẽ không bay bổng so với designer khác. Với UX thì design là thiết kế nguyên lý hoạt động chứ không liên quan nhiều tới “phong cách” của designer.

  • User thấy nó như thế nào? Họ có tin tưởng ngay lập tức không?
  • Nó có chuyển giao được mục đích và chức năng mà không cần phải giải thích?
  • Nó có đại diện cho thương hiệu? Tổng thể mọi thứ có liên quan đến nhau?
  • Thiết kế này có huớng mắt người dùng tới đúng nơi chưa? Và làm sao bạn biết điều đó?
  • Các màu sắc, hình dáng, kiểu chữ giúp người dùng tìm thấy thứ họ muốn và cải thiện tính khả dụng của các chi tiết không?
  • Liệu những thứ click-được trông khác với những thứ không-click?
  Điều gì nói một trang web có UX tốt trên mobile

Copywriting

Sự thật là giữa nội sáng tạo nội dung (copywrite) cho thương hiệu với nội dung của UX thì hoàn toàn khác nhau. Nội dung của thương hiệu phục vụ cho hình ảnh và giá trị của công ty, còn UX thì cần phải rõ ràng, trực quan và đơn giản nhất có thể.

Phân tích (Analysis)

Theo mình, phân tích là điểm yếu của hầu hết UX Designer. Nhưng điều đó có thể cải thiện được. Phân tích là điều kiện chính để phân biệt giữa thiết kế UX với các thiết kế khác và là điểm mạnh riêng của ngành UX. Cho nên:

  • Bạn có đang sử dụng dữ liệu để chứng minh ý kiến mình đúng, hay rút ra kinh nghiệm cho bản thân mình
  • Bạn đang tìm kiếm ý kiến chủ quan hay sự thật chủ quan?
  • Bạn đã thu thập đủ thông tin để trả lời các câu hỏi trên chưa?
  • Bạn có biết vì sao người dùng làm vậy hay chỉ đang mô phỏng hành vi của họ?
  • Bạn sẽ đo luờng như thế nào? Bạn có đo lường đúng “đối tượng”?
  • Bạn có đang mong chờ một kết quả xấu luôn không? Tại sao không?
  • Bạn sẽ dùng những phân tích này để cải thiện chúng như thế nào?

Công việc của một UX Designer

Vai trò của một nhà thiết kế UX khá phức tạp và thử thách. Tùy vào công ty mà trách nhiệm của một UX designer cũng khác, tuy nhiên một team UX sẽ tập trung vào việc thiết kế và mô phỏng nên trải nghiệm người dùng thông qua informative architecture (cấu trúc thông tin), interaction design (thiết kế tương tác), information design (thiết kế thông tin) và visual design (thiết kế trực quan).

Một UX Designer sẽ “kinh” qua 6 công việc như sau:

Nghiên cứu sản phẩm (Product research)

Quá trình research sản phẩm sẽ bao gồm luôn việc nghiên cứu người dùng và nghiên cứu thị trường. Một thiết kế tuyệt hảo sẽ không thể thiếu buớc này vì chính nó sẽ giúp designer “né” những quan điểm cá nhân và đưa ra các quyết định dựa trên thông tin.

Product research sẽ giúp:

  • UX designers hiểu về người dùng: hành vi, mục đích, động lực và nhu cầu của họ.
  • UX designer có cái nhìn về các tiêu chuẩn trong ngành cũng như xác định cơ hội cho sản phẩm trong khu vực.

Tạo chân dung và kịch bản (Creating Personas and Scenarios)

Dựa trên kết quả của product research, bước tiếp theo chính là xác định nhóm key user và tạo nên chân dung đại diện.

ux là gì

Personas không phải là cái người dùng muốn mà là cái mà họ có. Personas tuy không có thật nhưng sẽ đại diện cho một nhóm có thật và những hành vi của họ.

Khi đã xác định được personas, việc tiếp theo là viết kịch bản, mô tả một ngày bình thuờng của một “persona”, tất nhiên sẽ bao gồm những website và app họ thuờng xuyên sữ dụng. Dù bạn đang thiết kế app hay website, bạn đang thiết kế sản phẩm mới hay build lại một sản phẩm sẵn có, cũng nên c6n nhắc những bước mà một user sẽ thực hiện khi tương tác với sản phẩm đó.

Kiến trúc thông tin (Information Architecture)

Sau khi hoàn thành research và tạo persona, tiếp theo bạn sẽ định hình Information Architecture – IA. IA có thể hiểu là cấu trúc của website, app hay các product cho phép người dùng biết họ đang ở đâu và các thông họ cần dựa trên vị trí hiện tại của họ. IA sẽ dẫn đến sự xuất hiện của navigation (điều huớng), hierachies () và categorization. Ví dụ như bạn phác thảo top-level meny giúp người dùng hiểu họ đang ở đâu trên 1 site, thì đó chính là IA.

Tạo bản phác thảo (Creating Wireframes)

Wireframe là phần thiết kế quen thuộc nhất đối với UX Designers, hiển thị từng bước hay màn hình ứng với mỗi tương tác của người dùng với sản phẩm. Các đặc điểm của wireframe có thể kể tới:

  • Là xương sống của một thiết kế sản phẩm – thường là huớng dẫn sử dụng khi quá trình development (phát triển) bắt đầu và hiển thị các phần quan trọng của sản phẩm cuối cùng.
  • Nên được dựng nhanh – có thể hiển thị các UI objects cơ bản thôi.
  • Ít khi được dùng trong quá trình kiểm thử sản phẩm.

Mô phỏng (Prototyping)

Dù chức năng nghe có vẻ tương đồng nhưng prototype và wireframe thực ra khác nhau vì chuyển tải nội dung và phục vụ mục đích khác nhua. Wireframe tương tự như dựng bản kiến trúc, còn prototype thì sẽ là bản mô tả chính xác của thành phẩm cuối cùng. Prototype thì sẽ:

  • Cho cảm giác thực nhất khi tương tác với sản phẩm.
  • Có thể dùng để user testing, cho phép người dùng trải nghiệm nội dung và thử nghiệm các loại tương tác giống với sản phẩm cuối cùng.

Thử nghiệm sản phẩm (Product Testing)

Testing là bước giúp designer tìm ra các vấn đề mà người dùng gặp phải khi tương tác với sản phẩm. Một trong những cách phổ biến nhất là designer có thể observe quá trình sử dụng của user, sau đó thu thập và phân tích các feedback và tạo ra UX tốt hơn.

Xem thêm 5 bước phát triển UX từ ý tưởng thành sản phẩm

Làm sao để trở thành UX Designer/UX Roadmap?

Bức hình dưới đây tổng hợp chi tiết những kỹ năng mà một newbie cần trau dồi để trở thành designer chuyên nghiệp. (Save về máy sau đó zoom in nhé)

UX là gì

ux là gì

Có 2 con đường dẫn đến cái đích là UX Designer:

  • Từ Graphic Designer: khác với các sản phẩm của graphic design, các sản phẩm UX không đòi hỏi sự sáng tạo quá nhiều. Với khả năng của mình, các graphic designer hoàn toàn có thể trau dồi thêm các kỹ năng thiết kế web, thiết kế app. Tuy nhiên, theo ý kiến của anh Lê Anh Quang (Head of UX/UI tại Be), các bạn có nền tảng graphic designer cũng cần trau dồi hơn kỹ năng lắng nghe, từ đó bỏ bớt cái tôi và đẩy cái ta lên.
  • Từ Developer: với lợi thế có sẵn, các bạn developer đã có khả năng phân tích vấn đề và đưa ra giải pháp. Song, cũng theo anh Quang, vì tính chất công việc nên các coder khá “hướng nội” nên một bạn developer sẽ cần trau dồi kỹ năng lắng nghe, vượt qua trở ngại “sống trong thế giới riêng” và trở nên hòa nhập hơn.

Tìm hiểu thêm những lời khuyên từ anh Quang tại đây.

Tài liệu hướng dẫn UX

  • 101 design ingredients to solve big tech problems của tác giả Eewei Chen

ux là gì

  • Lean UX: Applying Lean Principles to Improve User Experience của tác giả Jeff Gothelkf và Josh Seiden

UX là gì

  • Mapping Experience của tác giả James Kalbach

ux là gì

  • UX for beginners: A Crash Course in 100 Short Lesson của tác giả Joel Marsh

ux là gì

TopDev tổng hợp

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

Xem thêm các vị trí UX Designer hấp dẫn tại TopDev 

Big data là gì? Trò chuyện cùng CTO của Datamart Solutions để hiểu hơn về data

Big data là gì

Big data là gì? – Thực chất Big data có phải chỉ là câu chuyện của data? Trong mục chuyên gia nói kỳ này, cùng TopDev tìm hiểu về khái niệm Big data đã quá phổ biến trong làng công nghệ, và những công việc xung quanh một data scientist. 

Về khách mời Phạm Hoàng Việt

Người trả lời phỏng vấn là anh Phạm Hoàng Việt – CTO/CIO tại Datamart Solutions:

  • Founder của Datamart Solutions – một startup đã đoạt giải Quán quân startup Việt 2018 với giải pháp bán hàng đa kênh tự động PowerSell
  • Dành khoảng thời gian dài làm việc tại các tổ chức, trường đại học lớn tại Châu Âu.
  • Sau đó trở về Việt Nam và làm việc tại Lazada ở vị trí Data Scientist.

Việc làm tuyển Data Analytics nhiều ngành hấp dẫn

Anh có thể giới thiệu sơ về bản thân và công việc hằng ngày của mình tại Datamart Solutions được không?

Xin chào, mình là Việt, đồng sáng lập của Datamart Solutions, cùng với 3 người bạn nữa, trong đó có anh CEO là Bùi Hải Nam thì các bạn đã biết rồi. Hiện tại mình đang phụ trách mảng kiến trúc và định hướng công nghệ cho tổ chức.

Đó là về mặt chức danh. Còn công việc hàng ngày của mình thì không hoàn toàn theo chức danh này, mà nó theo một cái vai trò khác: nhà đồng sáng lập. Nó khác nhau ở chỗ là mình phải suy nghĩ khá nhiều về việc hôm nay phải làm gì để mang lại giá trị tốt nhất cho tổ chức, tất nhiên trong giới hạn về năng lực. Chính vì thế mà mỗi ngày của mình thì đều có thể khác nhau rất nhiều: lúc thì mình code, lúc thì thiết kế, lúc thì test, lúc thì vận hành monitor, lúc thì làm sản phẩm, lúc thì làm chiến lược.

Anh hãy chia sẻ thêm về hành trình của mình từ khi tốt nghiệp đến hiện tại?

Mình tốt nghiệp cuối 2014, và từ đó đến nay thì mình chỉ làm 2 công ty, là Lazada và công ty hiện tại. Thực ra là bọn mình đã có ý tưởng về Datamart từ trước đó, tuy nhiên khi tốt nghiệp ra thì bọn mình cũng cảm thấy chưa đủ năng lực cũng như thời cơ để khởi nghiệp nên quyết định đầu quân vào một môi trường khởi nghiệp hết sức mạnh mẽ như Lazada để học hỏi cũng như là tìm kiếm các cơ hội. Đến cuối 2016 thì cơ hội đến và bọn mình rời Lazada để lập ra Datamart, và một trong những khách hàng đầu tiên của bọn mình lại chính là Lazada. Và rồi sau đó khoảng 1 năm thì bọn mình chuyển hướng sang xây dựng Powersell, là một nền tảng giải pháp cho tập khách hàng vừa và nhỏ, tuy nhiên lại có nhiều tiềm năng hơn, và đó là các nhà bán hàng hàng trên thương mại điện tử và các trang mạng xã hội như Facebook hay Instagram. Hành trình đó bắt đầu từ giữa 2017 và đã trải qua vài phiên bản, hiện tại là v5.

Những chia sẻ thực tế về data tại Datamart

Trước đây anh là một CIO và hiện tại là CTO. Theo anh, công việc của 2 vị trí này khác nhau như thế nào tại một công ty chuyên về làm về data?

Như mình đã nói ở trên công việc chính của mình nó không phụ thuộc vào cái chức danh. Còn nói về sự khác nhau giữa CIO đối với CTO tuỳ thuộc rất nhiều vào hoàn cảnh mỗi tổ chức. Thông thường CIO tập trung vào xây dựng và vận hành các hệ thống thông tin nội bộ, còn CTO thì có 3 điểm chính. Thứ nhất về mặt đối ngoại là người phát ngôn về năng lực công nghệ của một tổ chức. Về mặt đối nội thì là người có tiếng nói quyết định về các chủ đề công nghệ bên trong tổ chức. Và điểm thứ ba, là nội tâm, tức là luôn luôn đặt câu hỏi cho bản thân về việc tìm kiếm những năng lực công nghệ có thể mang lại được giá trị giúp cho sự bền vững và phát triển của tổ chức. Và những cái này thì bất kể là công ty có làm về data hay không.

Datamart Solutions là gì? Những giải pháp đặc biệt của Datamart Solutions có thể kể đến?

    • Datamart là công ty cung cấp các giải pháp cho hệ sinh thái thương mại điện tử dựa trên nền tảng thu thập, lưu trữ và phân tích dữ liệu thị trường.
    • Thời kỳ đầu, đối tượng khách hàng của Datamart là bản thân các sàn thương mại điện tử. Họ cần một đối tác cho họ bức tranh toàn cảnh được cập nhật liên tục về thị trường, để có thể đưa ra những quyết định mang tính chiến lược về marketing và sales.
    • Sau đó, Datamart xây dựng giải pháp PowerSell để giúp đỡ các nhà bán hàng trên TMĐT (đặc biệt các nhà bán hàng trên đa kênh) có thể vận hành các gian hàng của họ một cách hiệu quả, nhanh chóng, và kinh tế.
    • Datamart cũng đang phát triển các giải pháp cho Brand, trong đó brand intelligence phân tích không những tình hình bên ngoài thị trường, như xu hướng tiêu dùng, mức độ cạnh tranh, mà còn tình hình nội tại, như hành vi khách hàng, các chỉ số kinh doanh của brand. Dữ liệu đến từ cả nguồn nội bộ lẫn dữ liệu public.

Anh hãy chia sẻ điều thú vị trong quá trình giải quyết bài toán của khách hàng.

big data là gì

Đôi khi những giải pháp ngờ nghệch và thô sơ lại làm nên kết quả tốt hơn là những suy nghĩ phức tạp. Đó là bài học về sự cân bằng giữa theo đuổi mục tiêu công nghệ và mục tiêu kinh doanh.

Liệu anh có thể chia sẻ một số sự thật thú vị về thị trường thương mại điện tử thông qua quá trình tiếp cận rất nhiều data? Lượng dữ liệu hiện có của Datamart Solution đã “nói” cho anh điều gì mà mọi người vẫn đang lầm tưởng về E-commerce?

    • Thực ra ngược lại, phần lớn kết quả phân tích lại có thể được lý giải bởi các sự kiện diễn ra trong xã hội.
    • Ví dụ như đợt COVID này, nhiều người nghĩ là trong khi cách ly thì mua sắm qua TMĐT sẽ tăng. Trên thực tế thì đúng là như vậy, bình thường thì mức tăng trưởng của TMĐT mỗi tháng là tầm 6-7%, tuy nhiên trong đợt COVID này thì mức tăng trưởng là tầm 14-15% một tháng. Mặc dù vậy thì nó cũng vẫn chưa được cao như mức kỳ vọng của nhiều người.
    • Ngoài ra thì trong đợt này thì lượng đặt hàng mua webcam tăng chóng mặt, thì có thể lý giải là do nhu cầu làm việc ở nhà. Tương tự như vậy là nhu cầu bao cao su.

Theo quan điểm của anh, Data là một nghề hay là kỹ năng? 

    • Mình không có quan điểm về việc data là nghề hay kĩ năng, vì đó là suy nghĩ mang tính áp đặt, gượng ép.
    • Data là một loại sở hữu có giá trị
    • Các công việc liên quan đến data trong cuộc sống hàng ngày của mình là một kĩ năng. Data chưa bao giờ là nghề của mình.

Liệu có vấn đề gì mà anh nhận thấy mọi người, đặc biệt là các bên truyền thông đang hiểu sai về data/big data hay không?

    • Có. Sự thật là big data thực ra không phải nói về data, mà là nói về cái thứ đằng sau nó, tức là công nghệ big data. Cụm từ này ám chỉ một xu hướng công nghệ mới có thể đáp ứng được tầm nhìn về việc xử lý một lượng dữ liệu, mà có thể lúc bắt đầu thì không đáng kể, như nó có tốc độ tăng trưởng bùng nổ mỗi ngày.
    • Sự bùng nổ này được thể hiện rõ ràng khi nhìn vào bản đồ công nghệ big data, chỉ trong hơn 15 năm đổ lại, đã có hàng trăm công nghệ big data mới ra đời. Chúng chủ yếu được phát triển song song bởi các tổ chức có nhu cầu xử lý dữ liệu, mà các công nghệ hiện có ở thời điểm đó không đáp ứng được.

big data

Những tranh cãi xung quanh khái niệm “Big data”

Quá trình từ việc khai thác data cho đến khi có thể đưa ra quyết định (decision-making) diễn ra như thế nào? Bao gồm những bước gì?

Chuẩn bị dữ liệu: vấn đề gì? Lĩnh vực nào? Cụ thể loại dữ liệu nào? Lấy từ đâu? Làm thế nào lấy?

    • Tổ chức dữ liệu: lưu trữ như thế nào? Loại bỏ những gì, giữ lại những gì? Sắp xếp thứ tự ra sao?
    • Phân tích và thể hiện dữ liệu: chuyện gì đã xảy ra trong quá khứ, đang xảy ra trong hiện tại, có thể xảy ra trong tương lai?
    • Make decision: thực hiện hành động gì? Thay đổi định hướng/chiến lược ra sao?

Theo anh thấy, những vấn đề và thách thức khi làm việc với data là gì?

    • Chủ yếu đến từ việc thiếu kiểm soát đối với nguồn cung cấp dữ liệu:
      • Nguồn cung không ổn định
      • Dữ liệu sai, thiếu, rác (do vô tình hay chủ đích)
    • Tính an toàn và riêng tư của đối tượng gắn với dữ liệu

Có rất nhiều tranh cãi về việc data thế nào mới có thể gọi là “big” (tầm cỡ Google, Facebook hay chính phủ Trung Quốc mới là đang sở hữu Big Data), vậy quan điểm của anh là như thế nào?

Nếu coi sở hữu là khả năng thu thập dữ liệu thì bất cứ business nào cũng có khả năng sở hữu big data. Còn nếu coi sở hữu là tạo ra dữ liệu từ nội tại, thì thông thường chỉ có các business nào phục vụ trực tiếp người tiêu dùng phổ thông, hoặc các tổ chức nghiên cứu các hiện tượng trong tự nhiên như vật lý, sinh học, thì mới tạo ra nhiều dữ liệu đến mức cần các công nghệ về big data. Nhưng dù là hiểu theo cách nào, thì không phải chỉ lớn cỡ Google, FB, hay các chính phủ mới sở hữu Big Data.

  Tổng hợp Cheat Sheets cho AI, Neural Networks, Machine Learning, Deep Learning và Big Data
  Những điều cần biết về nghề Data Analytics và Business Analytics

Theo anh liệu việc các startup sở hữu big data là “có khả thi” hay không?

Theo như cách hiểu của mình về big data như giải thích ở trên thì việc startup sử dụng big data là điều hết sức bình thường. Ví dụ: Datamart có giai đoạn thu thập đến trên 300 triệu mảnh dữ liệu mỗi ngày để xây dựng bức tranh toàn cảnh về thị trường, với tần suất cập nhật rất cao để phục vụ nhu cầu khách hàng lớn. Trên thực tế thì nhà đầu tư thường ít bác bỏ về câu chuyện sử dụng big data. Họ hay bác bỏ câu chuyện startup sử dụng AI hơn, và thực tế thì đúng là như vậy, vì hầu hết mọi người hiểu sai về AI, và đánh đồng nó với các phương pháp phân tích dữ liệu. (có thể giải thích thêm nếu cần).

Theo anh những ngành nào (như Ecommerce, fintech, banking…) và những nền tảng nào (như Facebook, Google,…) có tiềm năng khai thác được nhiều data giá trị nhất tại Việt Nam và trên thế giới thời điểm hiện tại?

Gần như bất cứ lĩnh vực nào bây giờ cũng sẽ hưởng lợi từ big data, vì đây là thời kỳ số hóa và bùng nổ về thông tin. Điều này đặc biệt đúng đối với các ngành phục vụ số đông, như bán lẻ, sức khỏe, du lịch, viễn thông, tài chính. Ngoài ra thì còn có một xu hướng nữa giữa các nền tảng sở hữu dữ liệu, đó là xu hướng hợp tác kết nối dữ liệu để tạo ra cái gọi là “customer 360”, tức là một bản thông tin hoàn chỉnh về một khách hàng, đến từ nhiều nguồn dữ liệu khác nhau thuộc nhiều lĩnh vực khác nhau có tương tác với khách hàng đó. Như vậy giá trị của dữ liệu càng được nâng cao, vì hiểu biết về khách hàng trở nên rõ ràng và chuẩn xác hơn, do được tổng hợp từ nhiều góc nhìn khác nhau.

big data là gì

Việc xây dựng một cấu trúc dữ liệu ở quy mô lớn và với tốc độ tăng trưởng nhanh sẽ có những khó khăn gì và đòi hỏi những khả năng gì để quản lý?

    • Về mặt kỹ thuật thì có thể dễ dàng tìm ra một số những quy chuẩn về nguyên tắc thiết kế một hệ thống như vậy. Ví dụ:
      • Đảm bảo không có tình trạng thắt cổ chai
      • Đối với các business hoạt động dựa trên các giao dịch, thì cần đảm bảo một số các tiêu chuẩn an toàn cho giao dịch như ACID. Những tiêu chuẩn này thì đã được thiết lập trên các CSDL riêng lẻ, nhưng khi nhìn toàn bộ hệ thống như 1 khối, thì đòi hỏi đội ngũ kỹ thuật phải tự thiết lập tiêu chuẩn này.
      • Giảm thiểu tối đa độ trễ trong truy xuất. Các hệ thống dữ liệu lớn thì thường có kiến trúc tương đối phức tạp (vì họ có nhiều cách sử dụng dữ liệu), với các tương tác đi qua nhiều modules, nên nếu không chặt chẽ về mặt kiến trúc thì sẽ dẫn đến độ trễ cao.
      • Các vấn đề về tính toàn vẹn của dữ liệu. Đối với dữ liệu lớn, bất cứ một thao tác backup hay recover, hay sửa chữa dữ liệu cũng có thể tốn hàng ngày, thậm chí hàng tuần.
    • Tuy nhiên vấn đề khó khăn nhất thực ra không phải là kĩ thuật, mà là tiền và thời gian. Đây thường là 2 yếu tố cản trở tầm nhìn của một hệ thống với quy mô lớn và tăng trưởng nhanh trong thời gian dài.

Làm thế nào để quản lý và phân loại để biết được những dữ liệu nào là bị “out-of-date”?

    • Bản thân dữ liệu thì không có sự lỗi thời hay không lỗi thời, mà sự lỗi thời nó chỉ xuất hiện khi dữ liệu được dùng để trả lời một câu hỏi/vấn đề cụ thể. Và muốn biết thì dựa trên sự thay đổi của câu trả lời theo thời gian.
    • Các hệ thống làm việc với dữ liệu gắn với thời gian thì thường có cơ chế archiving dữ liệu theo khoảng thời gian, để khi cần thì có thể lấy ra xử lý một cách hiệu quả.

Đối với dữ liệu phi cấu trúc (unstructured data) nói chung thì những khó khăn về mặt kỹ thuật thường gặp phải là gì?

    • Nhiều dữ liệu nên tốn chỗ chứa
    • Nhiều dữ liệu nên cơ chế post-processing sẽ chậm
    • Khó phân tích, phải sử dụng các phương pháp tách lọc phức tạp.

Developer lên trình về big data như thế nào?

Để theo đuổi các công việc về data thì theo anh cần có tố chất và kỹ năng như thế nào? Nên học những kiến thức nền tảng nào?

    • Hứng thú với số liệu
    • Khả năng xâu chuỗi và lập luận logic
    • Khả năng tìm kiếm thông tin trong dữ liệu
    • Về việc học, thì nói chung là có 2 kiểu học:
      • Học kiểu “ăn xổi”: tức là cứ nhè các công nghệ và công cụ phổ biến mà học. Kiểu này thì làm được việc ngay, đặc biệt là các vị trí fresh hoặc junior, hoặc trên đó một chút.
      • Học kiểu nền tảng:
        • Data engineer: học về cấu trúc dữ liệu, về các thuật toán lưu trữ, về hệ điều hành, về lập trình, về tối ưu hoá hệ thống. Nói chung cơ bản về khoa học máy tính. Sau đó mới học đến các công nghệ thịnh hành.
        • Data analyst thì học về kinh doanh, kinh tế, cơ bản về xác suất, thống kê. Sau đó thì học cách sử dụng các công cụ trình bày dữ liệu như Excel hay PowerBI
        • Data scientist thì học chuyên sâu về toán (giải tích và đại số tuyến tính hoặc phi tuyến tính), xác suất thống kê, machine learning. Sau đó thì học cách sử dụng các công nghệ, công cụ phân tích và hiển thị dữ liệu. Xu hướng hiện nay có khá nhiều bạn học làm data scientist theo hướng này nhưng chỉ chú trọng vào những thứ thời thượng như deep-learning. Đây cũng là một lựa chọn, tuy nhiên các bạn này về sau sẽ thiếu hẳn một kỹ năng, là tóm tắt và truyền tải thông điệp từ dữ liệu ra ngôn ngữ kinh doanh. Năng lực này thường có ở những người giỏi về xác suất thống kê và một số các thuật toán machine learning cổ điển.

Làm về data có rất nhiều vị trí và chuyên môn khác nhau, các vị trí liên quan đến ngành data và các giai đoạn phát triển của từng vị trí là gì? 

Về giai đoạn phát triển thì mình không đủ kinh nghiệm để chia sẻ. Tuy nhiên mình có lời khuyên là không nên đóng khung mình vào một con đường phát triển sự nghiệp nào cả, vì nó sẽ trở thành gánh nặng cản trở. Thế giới thay đổi từng ngày, cơ hội mới đến, cơ hội cũ ra đi liên tục. Chỉ cần luôn có tinh thần học hỏi, cầu tiến, và có sự cân bằng giữa năng lực và sở thích/đam mê, thì sự nghiệp tự nó sẽ phát triển.

Cảm ơn anh Việt đã mang đến những chia sẻ mới mẻ và đa dạng về khía cạnh Big Data. Hy vọng qua bài phỏng vấn này, các bạn độc giả sẽ hiểu hơn cái thú vị khi làm việc với dữ liệu, cũng như thu thập cho mình một số kinh nghiệm, lời khuyên khi theo đuổi công việc Data Engineer.

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

Xem thêm cơ hội việc làm IT hấp dẫn tại TopDev

5 trang web, nguồn học thuật toán chất lượng để bạn luyện “lên cơ”

web frontend

Yêu thì cần phải nói, cũng như đói cần phải ăn, muốn giỏi lập trình thì nên biết về thuật toán, đơn giản thế thôi các bạn ạ! Bài viết này gửi đến các bạn 5 trang web, nguồn học thuật toán hữu ích để luyện trong lúc hơi rảnh rỗi như này.

  Thuật toán, tính chất và ý nghĩa đặc biệt của thuật toán

Tiêu chí mình sắp xếp trang web đi từ lý thuyết đến thực hành

Exercism.io

nguồn học thuật toán

Exercism.io là bước khởi đầu để bạn học thuật toán, trang không chuyên về thuật toán nhưng chuyên về cách dùng ngôn ngữ lập trình. Đây là một nguồn học thuật toán khá thú vị để bạn học thêm một ngôn ngữ mới. Bạn cũng có thể vừa làm vừa xem bài giải của người khác nhưng hãy vững tâm không để “sách giải” làm sa ngã nhé

Sau khi thành thạo về ngôn ngữ lập trình thì mình đến với muc tiêu chính của bải viết này, học thuật toán.

Geekforgeeks

Giới thiệu với các bạn trang web Geekforgeeks chuyên về thuật toán đây, trong đây có ty tỷ bài tập. Không chỉ có bài tập để luyện mà mỗi bài tập lại gồm nhiều cách giải khác nhau, đi kèm với độ phức tạp của mỗi người giải, tuy rất hay và bổ ích nhưng bạn hãy tỉnh táo, đừng bơi trong đây nhé! Có một điểm trừ nhỏ là bài tập không phân loại nên bạn sẽ phải chịu khó tìm kiếm bài tập phù hợp với mục tiêu của mình.

Bên cạnh đó, cũng có một trang để bạn vừa học lý thuyết, vừa thực hành về thuật toán, nhưng theo mình đánh giá thì luyên trang này sẽ giúp bạn “lên cơ” về thuật toán hơn.

Leetcode

web học thuật toán

Leetcode cũng như Geekforgeek vậy, nhưng có ưu điểm hơm là được phân hóa rõ ràng về mức đọ, có 3 mức độ khó dễ khác nhau. Có chuyện ngộ nghĩnh, tuy là easy nhưng lâu lâu cũng gặp phải bài khó nhai lắm :))

Trang web này cũng được những ông lớn công nghệ lựa chọn để test trình độ ứng viên, chịu khó làm những bài tập trong này biết đâu được khi apply, bạn trúng tủ.

Trang web này cũng có một điểm cộng là nó đo performance/runtime code của bạn, rồi so sánh với người khác, đánh giá xem code của bạn có optimize được không hay chưa tối ưu chỗ nào. Tính ra cứ như đường đua ấy nhỉ, việc so sánh này có thể lúc đầu bạn sẽ cảm thấy hơi khó chịu, nhưng mình thấy nó cũng có lợi lắm, giúp mình yếu chỗ nào để cải thiện hơn, và “chạy nhanh hơn”.

Học hành thì 3 trang web trên đã giải quyết cho các bạn, nhưng biết đâu được một ngày các bạn hết hứng không học nữa thì trang web tiếp theo sẽ giúp nhắc nhở các bạn luyện tiếp.

Daily Coding Problem

Tên gọi Daily Coding Problem cũng đã miêu tả đầy đủ chức năng của trang web này rồi. Khác với những trang trên, trang này không có danh sách bài tập, bạn đăng kí email và mỗi ngày trang web sẽ gửi bạn 1 bài, nên dù bạn có lỡ lười thì bạn cũng không trốn đi được :))). Khi bạn dùng gói premium thì sẽ được gửi kèm lời giải.

Hackerrank 

web hoc thuật toán

Trùm cuối xuất hiện đây, lý do mình để Hackerrank cuối cùng là vì nơi đây bạn có thể tìm kiếm nhà tuyển dụng mơ ước. Trang này chắc không ai mà không biết nhỉ, từ junior cho đến senior, từ developer cho đến tuyển dụng.

  HackerRank là gì? Lời khuyên khi tham gia HackerRank

Trang này cũng chia mức đô easy/medium/hard. Có cái rất tiện của trang này đó là bạn viết code, cho chạy trực tiếp và xem kết quả được luôn, nếu giải không được, không biết fix sao thì có mục dicussion, bạn vào đó xem lời giải. Trang này cũng được các nhà tuyển dụng lấy làm công cụ test trình độ ứng viên đó!

Thế là mình đã đi qua 5 trang web giúp các bạn luyện thuật toán. Đây là source mình hay dùng, các bạn có trang nào hay và hữu ích thì góp vui cùng TopDev tụi mình nha!

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

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

Bí quyết phát triển hoạt động nhân sự qua email (Email Marketing) hiệu quả – Bạn đã biết?

Email Marketing

Trong nghiên cứu thị trường Nhân sự, nhiều nhà quản lý cho rằng tuy việc thu hút các khách hàng tiềm năng là điều quan trọng với doanh nghiệp, nhưng trên thực tế, việc giữ chân người tiếp cận lâu hơn lại có ý nghĩa lớn đối với sự phát triển chung của tổ chức. Trong nghiên cứu mới nhất từ trang Emaketer, 80% nhà cung cấp các dịch vụ cho rằng tiếp thị qua email (Email Marketing) là một chiến lược tốt nhất để giữ chân khách hàng, đồng thời xem xét nó với tư cách là một phương tiện truyền thông xã hội giúp định hình và phát triển các chiến lược quan trọng. Cùng TopDev tìm hiểu những bí quyết giúp tối ưu hóa quy trình hoạt động của doanh nghiệp thông qua Email Marketing.

“Cá nhân hóa” email & Xác định đúng phân khúc thị trường  

Không giống như một tấm bảng quảng cáo đơn thuần được trưng diện cho người tiếp cận, email marketing là một chiến lược quan trọng và vì thế, nó cần phải đạt mục tiêu khi đã được đề ra. Email Marketing

Với đặc điểm này, email marketing hoàn toàn phù hợp, là sự lựa chọn hoàn hảo cho phân khúc tiếp thị. Nói một cách dễ hiểu, tức là bạn có thể điều chỉnh thông điệp của mình theo đối tượng.

Email Marketing cho phép tạo ra sự đột phá trong tiếp cận các đối tượng chuyên môn tùy thuộc vào nguồn dữ liệu và những hiểu biết của bạn về nguồn dữ liệu đó.” Chính hiểu biết về dữ liệu, lấy ví dụ về nguồn dữ liệu của một nhóm người thuộc lĩnh vực nhân sự, bạn nắm bắt được những thông số, đặc tính, sự tương tác theo các quỹ thời gian của họ. Chính sự hiểu biết đó sẽ giúp bạn xác định rõ phân khúc đối tượng đồng thời tối ưu hóa những thông điệp truyền tải một cách phù hợp nhất, đúng thời điểm nhất.”

Tiêu chí phân khúc bổ sung có thể được đánh giá dựa trên vị trí địa lý, độ tuổi, trình độ học vấn, chức năng công việc, khả năng chuyên môn, tính cách và sự tương tác với các chiến dịch nhân sự trong quá khứ. Nắm bắt rõ những yếu tố này, bạn sẽ dễ dàng trong cách phân đoạn danh sách email. Tuy nhiên, điều này còn phụ thuộc nhiều vào nhu cầu doanh nghiệp hoặc chính yêu cầu của các đối tượng cụ thể trong ngành nhân sự.

Những cách thức tiếp cận giúp phát triển phân khúc thị trường

Email Marketing

Câu hỏi của người đăng ký: Câu hỏi được xem là một công cụ tạo ra sự tương tác với những người tiếp cận tiềm năng. Chúng cũng là một cách dễ dàng để người đăng ký của bạn xác định những gì họ quan tâm nhất.

Phân khúc hành vi: Phân khúc hành vi hoạt động theo cùng một cách, nhưng theo cách có thể mở rộng và có giá trị cho doanh nghiệp của bạn. Để thực hiện điều này một cách hiệu quả, bạn sẽ cần tích hợp dịch vụ tiếp thị email của bạn với trang web hoặc nền tảng các sản phẩm về nhân sự có liên quan đến doanh nghiệp. Có thể sau những thử nghiệm ban đầu, bạn sẽ biết được họ yêu thích những bài viết có cấu trúc và hình thức truyền tải như thế nào cho phù hợp. Tiếp đến là tập trung đến những biểu hiện về hoạt động, tương tác hành vi của người tiếp cận, xem xét lựa chọn nội dung và những thời điểm thích hợp để tạo ra số lương quan tâm lớn.

Khảo sát chọn tham gia: Bạn có muốn biết những người đăng ký email của bạn đam mê hoặc tò mò về điều gì không? Chỉ cần hỏi họ. Khi bạn cung cấp một món quà chọn tham gia, thật dễ dàng để thêm một bản khảo sát ngắn cho phép người đăng ký cho bạn biết thêm một chút về bản thân họ. Ngay cả một câu hỏi đơn giản như “Bạn đam mê điều gì nhất?” có thể mang lại vô số thông tin.

Quản lý phân tích thông điệp cần truyền tải

Việc quản trị nội dung thông điệp là điều rất quan trọng. Nó bao gồm nhiều yếu tố như quản trị về cách trình bày email, nội dung thông điệp cần truyền tải, thời gian tạo và gửi thông điệp.

Email Marketing

Trong đó, trước hết phải kể đến chủ đề email. Hãy chú trọng vào nó vì chủ đề là cái quyết định cảm nhận đầu tiên của người xem. Tất nhiên, một email với chủ đề tạo ra sự tò mò chắc chắn sẽ khiến họ thích thú để đọc email của doanh nghiệp bạn. Ngoài ra, thông điệp email cũng rất quan trọng. Một email tinh tế và dễ tiếp cận là một email không quá nhiều thông tin, không rườm rà và thiếu logic trong cách sắp xếp nội dung theo trình tự. 

Đừng làm phức tạp email của bạn. Hãy thông tin một cách ngắn gọn, súc tích nhưng vẫn phải đảm bảo độ chính xác những gì bạn muốn nói theo cách sẽ thu hút độc giả. 

““Thay vì bao gồm một số bài viết dài sẽ khiến độc giả mất nhiều thời gian để đọc qua, hãy viết ngắn gọn và thông minh, khéo léo hơn khi chèn thêm một liên kết đến blog của bạn, nơi họ có thể đọc thêm. Đồng thời bà cũng nhấn mạnh, một nguyên tắc nhỏ là nếu email của bạn phải mất nhiều hơn hai đến ba phút để đọc thì chúng dường như bị lãng quên.”

Chia sẻ của Emily Sidley, Giám đốc tiếp thị và PR của Three Girls Media Inc.

Thời gian tốt nhất để gửi email tiếp thị phụ thuộc vào đối tượng của bạn. Bạn phải dự đoán hoặc có một vài cuộc thử nghiệm về email để có thể đưa ra những dự đoán tương đối về những thời điểm này có thể sẽ mang lại hiệu quả cao về kết quả. Tuy nhiên, để có kết quả tối ưu, vẫn rất cần nghiên cứu danh sách email và phân tích chiến dịch một cách cụ thể. 

Lời kết cho Email Marketing

Email Marketing giúp doanh nghiệp tối ưu hóa hiệu quả tiếp cận, có vai trò lớn trong việc đưa thông điệp của doanh nghiệp đến gần hơn với những đối tượng phù hợp. Không còn đơn thuần là chú tâm đến một cái nhấp chuột, việc quản trị tiếp thị qua email giờ đã được tích hợp nhiều tính năng khác do sự hội nhập trong thời đại kỹ thuật số. Đây được xem là tín hiệu đáng mừng và tùy vào từng tổ chức, email marketing sẽ được thể hiện nhiều hình thức khác nhau.

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

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

10 câu hỏi javascript để nâng cao trình độ

10-cau-hoi-javascript-nang-cao-trinh-do
Bài viết được sự cho phép của tác giả Lưu Bình An
10 câu hỏi javascript lắc léo sau đây sẽ giúp bạn ôn luyện kiến thức ngôn ngữ “lâu năm” này đấy. Đừng coi thường nhé! 10 câu hỏi javascript này sẽ cho bạn thấy nền tảng về Java của bạn đến đâu và giúp bạn nâng cao trình độ hiện tại đây!
Bắt đầu cho 10 câu hỏi javascript “siêu đỉnh” nào:

1. So sánh sort của Array

Bạn đã biết Array là gì? Array được hiểu là mảng – là tập hợp những phần tử có cùng 1 loại dữ liệu (có thể khác giá trị) và phải có địa chỉ nối tiếp nhau trong Memory. Lưu ý, kích cỡ của Array là cố định, người dùng không thể thay đổi lớn nhỏ kích thước Array.

Giá trị log ra là gì

const arr1 = ['a', 'b', 'c'];
const arr2 = ['b', 'c', 'a'];

console.log(
    arr1.sort() === arr1
    arr2.sort() == arr2
    arr1.sort() === arr2.sort()
);

Trước tiên chúng ta cần biết hàm sort nó làm cái gì, nó sắp xếp lại các phần tử, hiển nhiên, sau đó trả về cho tham chiếu ban đầu, không thay đổi tham chiếu gốc.

Đáp án: true, true, false

  6 Javascript destructuring tricks
  1001 cách tạo Array trong Javascript (Phần 1)

2. Set của các Object

Nếu có một Set bao gồm các object sau, giá trị log ra là gì

const mySet = new Set([{ a: 1 }, { a: 1 }]);
const result = [...mySet];
console.log(result);

Khi tạo một object Set nó sẽ xóa các giá trị trùng nhau, tuy nhiên { a: 1} # { a: 1}, dù là giá trị trùng nhau, nhưng nó vẫn tham chiếu khác nhau. Chỉ khi chúng ta viết như bên dưới nó mới tự xóa giá trị trùng

const obj = { a: 1 };
new Set([obj, obj]);

Đáp án [{a: 1}, {a: 1}]

3. Mutate một object

Với đoạn code sau, kết quả log ra sẽ được gì

const user = {
  name: 'Joe',
  age: 25,
  pet: {
    type: 'dog',
    name: 'kitty kitty'
  }
};
Object.freeze(user);
user.pet.name = 'meo meo';

console.log(user.pet.name);

Object.freeze chỉ thực hiện freeze level 1 của object, nếu có mutate những level thấp hơn, vẫn được như thường.

Đáp án: meo meo

4. Prototype inheritance

Chúng ta có một constructor function Dog. Giá trị log sẽ là gì

function Dog(name) {
  this.name = name;
  this.speak = function() {
    return 'woof';
  };
}

const dog = new Dog('Pogo');

Dog.prototype.speak = function() {
  return 'chihuahua';
};

console.log(dog.speak());

Khi chúng ta new Dog, chúng ta đã gán giá trị cho speak là một function trả về woof. Phương thức speak bên dưới sẽ không bao giờ được gọi.

Đáp án: woof

  Câu chuyện xử lý bất đồng bộ trong Javascript (phần 2)
  Giới thiệu typeof trong Javascript cho người mới bắt đầu

5. Thứ tự resolve Promise.all

Chúng ta có một hàm timer trả về một Promise sẽ được resolve sau một khoảng thời gian ngẫu nhiên. Chúng ta dùng Promise.all để resolve toàn bộ array timer. Giá trị log ra là gì, hay là giá trị ngẫu nhiên?

const timer = (a) => {
  return new Promise((res) =>
    setTimeout(() => {
      res(a);
    }, Math.random() * 100)
  );
};

const all = Promise.all([timer('first'), timer('second')]).then((data) =>
  console.log(data)
);

Thứ tự resolve không quan trọng với Promise.all, chúng ta có thể hoàn toàn tin tưởng thứ tự trả về sẽ đúng với thứ tự chúng ta khai báo.

Đáp án: first, second

6. Tính toán với reduce

Giá trị log ra sẽ là?

const arr = [(x) => x * 1, (x) => x * 2, (x) => x * 3, (x) => x * 4];

console.log(arr.reduce((agg, el) => agg + el(agg), 1));

Với Array.reduce được truyền vào giá trị khởi tạo là 1 (cho biến agg), chúng ta loop qua các hàm trong mảng theo thứ tự

1 + 1 * 1 = 2
2 + 2 * 2 = 6
6 + 6 * 3 = 24
24 + 24 * 4 = 120

Đáp án: 120

7. Điều kiện rút rọn (short-circuit)

Kết quả log ra là…

const notifications = 1;
console.log(
  `You have ${notifications} notifications${notifications !== 1 && 's'}`
);

Cầu điều kiện rút gọn notifications !== 1 && 's' sẽ return false (dạng chuỗi). Chúng ta phải viết là notifications !== 1 ? '' : 's'

Đáp án: You have 1 notificationfalse

8. Spread và Rename

Chuyện gì xảy ra khi chúng ta spread mảng ra và thay đổi giá trị của object đầu tiên

const arr1 = [{ firstName: 'luckyluu' }];
const arr2 = [...arr1];
arr2[0].firstName = 'vuilaptrinh';

console.log(arr1);

Spread chỉ tạo một shallow copy, nghĩa là object bên trong mảng ban đầu cũng chỉ tham chiếu đến arr1, nên thay đổi giá trị này từ arr2 sẽ ảnh hưởng đến arr1

Đáp án: vuilaptrinh

9. Binding cho phương thức Array

Kết quả log ra là gì

const map = ['a', 'b', 'c'].map.bind([1, 2, 3]);
map((el) => console.log(el));

Khi gọi ['a','b','c'].map nó sẽ gọi Array.prototype.map với giá trị this là ['a','b','c']. Tuy nhiên khi sử dụng như một tham chiếu, thay vì gọi, nó trỏ đến Array.prototype.mapbind sẽ đặt giá trị this này thành [1,2,3]

Đáp án: 1 2 3

10. Đặt Unique và sắp xếp ( câu hỏi cuối trong list 10 câu hỏi javascript)

Trong code ở dưới chúng ta dùng object Set và spread để tạo một mảng mới. Giá trị log ra là gì ( những phần tử có bị force thành unique? chúng có được sắp xếp không?)

const arr = [...new Set([3, 1, 2, 3, 4])];
console.log(arr.length, arr[2]);

Set sẽ force các phần tử thành unique, trung nhau sẽ bị bỏ qua, nhưng không thay đổi thứ tự. arr sẽ có giá trị [3, 1, 2, 4]

Đáp án: 4 2

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

Có thể bạn muốn xem thêm:

Xem thêm việc làm Javascript tại TopDev!

Này, lập trình viên, bạn đã có Vịt cao su chưa?

nay-lap-trinh-vien-ban-da-co-vit-cao-su-chua

Liệu bạn có biết rằng, ngày nay, Vịt cao su là một phương  pháp debug hữu hiệu và thời thượng dành cho giới lập trình trên toàn thế giới. Điều thú vị ở chỗ, đây hoàn toàn không phải là một câu chuyện đùa. Cùng đọc tiếp nhé 😉

 

Lần đầu tiên khái niệm “Rubber Duck Debugging” xuất hiện là ở trong cuốn “The Pragmatic Programmer” của Andy Hunt and David Thomas. Cụ thể là như thế này:

Bản chất của phương pháp Debugging với Vịt cao su là bạn mua (hoặc thuê) một chú Vịt cao su về, để trên bàn ở nơi trang trọng nhất, và giải thích một cách ngắn gọn và dễ hiểu từng dòng một trong đoạn code của mình với nó. Và rồi BOOM!, điều kì diệu sẽ xảy ra, mọi vấn đề dường như sáng tỏ và việc debug chỉ nằm trong bàn tay bạn. Nghe tưởng vô lý, nhưng trên thực tế, nó có cả lý giải đầy tính khoa học hẳn hoi.

Lời giải thích cho phương pháp này nằm ở quá trình bạn biểu đạt vấn đề của mình một cách rành mạch, dễ hiểu cho một đối tượng không có chút hiểu biết nào về những việc bạn đang làm. Quan trọng là trong quá trình ấy, bạn sẽ phải huy động mọi giác quan bao gồm: mắt để nhìn, miệng để nói, não bộ để sắp xếp các suy nghĩ trong đầu. Việc này sẽ giúp cho bạn dễ dàng tìm thấy những lỗ hổng trong mạch tư duy mà có thể bạn chưa bao giờ nhìn ra, và tìm được giải pháp đơn giản nhất để giải quyết chúng.

Việc giải thích code cho một chú Vịt cao su, về mặt bản chất, chẳng khác gì việc bạn viết note khi học thuộc lòng, hay giảng bài cho người khác khi muốn củng cố lại kiến thức của mình. Tất cả đều có điểm chung là cố gắng vận dụng nhiều nhất các giác quan có thể để hỗ trợ quá trình tư duy và giải quyết vấn đề.

Nhưng tại sao lại là Vịt cao su? 

Đến đây thì nên nhắc tới tính cách đặc trưng của anh em Dev một chút. Dĩ nhiên, nếu chỉ là tìm một đối tượng không hiểu biết gì về code để áp dụng phương pháp “ồn ào” này, thì đâu có thiếu?

– Một cô nàng ư? – Dev nào mà lại dám ngồi đàm đạo về code với gái cơ chứ?

– Bố mẹ hay bạn bè? – Ai sẽ có thời gian và kiên nhẫn cơ chứ? Liệu họ hỏi lại có phải là mất công để giải thích không?

– Một chú cún? – Quá ồn ào

– Một chú mèo? – Quá thiếu sự tập trung

– Một chú chim? – Quá phiền hà

vân vân và mây mây…

Vậy thì cái gì đáng yêu, tích cực và tập trung tuyệt đối vào những gì mình nói hơn là một chú Vịt cao su xinh xắn nằm gọn ở góc bàn, như một người chiến hữu cơ chứ 😉


Những mẩu chuyện hài hước xung quanh Rubber Duck Debugging:

1. Quack (Overflow)! 

Vào ngày 1.4.2018, trên Stack Overflow xuất hiện một popup của người trợ lý Vịt cao su, luôn luôn lắng nghe, lâu lâu mới hiểu vấn đề mà bạn gặp phải với code của mình. 

Quack Step 2

 

Nó thậm chí còn khuyến khích dev chia sẻ suy nghĩ của mình, lắng nghe rất chăm chú và phản hồi vô cùng tận tâm.

No need of Mic

 

QuackBạn còn chờ đợi gì hơn ở phản hồi từ một chú vịt cao su chứ? :v

2. Mua Debugging Vịt cao su: 

Nếu bạn thật sự nghiêm túc về công việc của mình, hãy thuê/mua những chuyên gia có trình độ “đại học” để tư vấn về code cho mình nhé. Ở đây người ta có bán những chú Vịt cao su với rất nhiều chuyên ngành phong phú cho các anh em lựa chọn.

3. Những chú Vịt Online

Có riêng một trợ lý Vịt dĩ nhiên là rất tốt rồi, nhưng nếu bạn chưa có tiền để thuê chú trợ lý này thì sao? Đừng lo nhé, vẫn có những trợ lý ảo sẵn sàng “Quack! Quack!” vì bạn. 

Vậy thì, sau khi đọc bài viết này, bạn đã sẵn sàng để tậu một chú Vịt cao su chưa? 😉

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

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

TopDev via Spiderum

  Quy tắc 24x3 cho sáng tạo trong lập trình!
  12 nguyên tắc làm lập trình của Joel để tạo nên phần mềm tốt hơn

Khan hiếm lập trình viên làm việc tại Nhật, nhà tuyển dụng chấp nhận tuyển cả IT không biết tiếng Nhật

Khái niệm “hệ thống nhúng” (embedded system) mới “hot” ở Việt Nam một vài năm trở lại đây, và được dự báo sẽ làm nên làn sóng đổi mới thứ ba trong sự phát triển công nghệ thông tin và cơ hội làm việc – tuyển dụng IT đi Nhật cho cộng đồng developer tại Việt Nam.

Theo ước tính của các chuyên gia, đến năm 2020, hệ thống nhúng toàn cầu sẽ đạt doanh số là 8 tỷ đô-la Mỹ. Sự xuất hiện ngày càng nhiều các đối tác lớn trong lĩnh vực này tại Việt Nam, đã mở ra một hướng đi mới cho những ai đi theo con đường học lập trình nhúng. Ngoài ra, cơ hội việc làm IT cho người Việt cũng có thể lên đến gần 200 triệu đồng/ tháng, theo chuyên trang IT Techtalk.

Tuy nhiên, hiện nay tại Việt Nam, có khá ít các trường đại học đào tạo lập trình nhúng, nhưng nhu cầu nhân lực cho ngành này rất lớn và đang thiếu hụt nghiêm trọng.

Trong buổi phỏng phỏng vấn gần đây với TopDev, anh Nguyễn Trường Sơn – Giám đốc nhân sự của NATAES – công ty chuyên cung cấp lập trình viên nhúng cho thị trường Nhật Bản chia sẻ:

“Không như ở lĩnh vực phần mềm đơn thuần, một nhân viên mới vào nghề chỉ cần từ ba đến sáu tháng huấn luyện là đã có thể làm tốt công việc được giao. Còn trong ngành gia công phần mềm cho hệ thống nhúng, một nhân viên mới cần ít nhất sáu tháng đến một năm để có thể bắt đầu làm việc có hiệu quả, và cần tới năm năm mới có thể làm việc thành thạo. Việc tuyển người và đào tạo đã khó, việc giữ người lại càng khó hơn.

Đặc thù của ngành này là đòi hỏi nhân viên phải có sự kiên trì và bền bỉ để nắm bắt những kiến thức cần thiết, đồng thời cần một thời gian khá dài mới có thể thấy được thành quả. Đó là lý do tỷ lệ chuyển và nghỉ việc trong lĩnh vực này là khá cao”.

Xem thêm Các vị trí IT Nhật đang tuyển TẠI ĐÂY

Câu chuyện tuyển dụng IT đi Nhật – Khan hiếm lập trình viên & chấp nhận không có ngôn ngữ

Hệ thống nhúng tại Việt Nam mới chỉ có những bước đi chập chững ban đầu, vì vậy rất hiếm (gần như là không có) sản phẩm nào hoàn toàn “Made in Vietnam” . Đa phần, ở Việt Nam chỉ làm những công việc đơn giản như gia công cho công ty nước ngoài. Một hướng đi khác cho lập trình viên nhúng Việt Nam hiện nay là làm cho các công ty nước ngoài: Mỹ, châu Âu và đặc biệt là Nhật Bản – thị trường đang có nhu cầu lập trình nhúng khá cao, và có nhiều điểm tương đồng về căn hóa với Việt Nam, vì thế không ít nhà tuyển dụng it đi nhật xuất hiện tại thời điểm này.

Trở thành lập trình viên nhúng tại Nhật cần những gì?

Kiến thức lập trình:

  1. Lập trình C, C++ (Xem ngay hướng dẫn tự học C/ C++)
  2. Tiếng anh (Ít nhất bạn phải đọc được tài liệu chuyên ngành kĩ thuật, nhất là datasheet)
  3. Kiến thức về điện tử
  4. Các loại giao tiếp (protocol)
  5. Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.
  6. Cấu trúc dữ liệu và giải thuật:
  7. Memory: NOR, NAND, SRAM, DRAM, vv.
  8. Hệ điều hành thời gian thực (Real time OS).
  Tìm hiểu về HTTP (HyperText Transfer Protocol)
  Học lập trình thế nào để không thất nghiệp?

Kỹ năng mềm:

Theo anh Sơn cho biết: khi làm việc tại Nhật đôi khi yếu tố về kiến thức lập trình chưa phải là yếu tố quyết định, mà còn là về thái độ làm việc :

  • Trung thực : Đánh giá đúng năng lực của mình, và khả năng làm việc được tới đâu
  • Thái độ làm việc: Chuyên nghiệp, đảm bảo đúng kế hoạch đề ra và nổ lực 100% cho công việc
  • Kiên trì: Trong công việc đôi khi không phải là học nhiều có thể làm tốt mà còn cần có thời gian để trải nghiệm và tích lũy kinh nghiệm, đặc biệt trong lĩnh vực khó như lập trình nhúng

Tiếng Nhật:

Làm việc tại Nhật thì yêu cầu tiếng Nhật là điều tất yếu, nhưng khi tuyển dụng it đi nhật với đặc thù thị trường nhân lực lập trình viên lập trình nhúng là rất khó tìm, nên nhiều công ty Nhật chấp nhận cả những lập trình viên không biết tiếng Nhật sang làm việc. Anh Sơn cho biết thêm:

“NATAES với kinh nghiệm nhiều năm tuyển dụng lập trình viên nhúng cho thị trường Nhật Bản, hiện nay nhiều công ty Nhật chấp nhận tuyển cả những lập trình viên mà không cần tiếng Nhật, yêu cầu tiếng Anh cũng chỉ cẩn ở mức giao tiếp được, đọc hiểu được vẫn có cơ hội sang Nhật làm việc và phát triển ở Nhật.”

tuyển dụng it đi nhật

Bên cạnh đó, khi tuyển dụng it đi nhật thì chúng tôi còn nhận ra rằng, lập trình viên Việt Nam khi sang Nhật còn được các công ty đối tác của NATAES hỗ trợ các chi phí thủ tục xuất cảnh, NATAES cũng tổ chức các buổi training về kỹ thuật để hỗ trợ cho các bạn lập trình viên những sự chuẩn bị tốt nhất trước khi sang Nhật. Ngoài ra, vì lập trình viên được ký hợp đồng trực tiếp với bên công ty của Nhật nên gần như mọi chế độ, ưu đãi đều được hưởng như những lập trình viên bản sứ. Anh Sơn cũng nhận định: “Hiện tại thị trường còn đang khan hiếm nguồn nhân lực thì đây là cơ hội lớn cho những lập trình nhúng Việt vươn ra thị trường việc làm tại Nhật Bản.”

Xem thêm các cơ hội việc làm IT tại Nhật tại TopDev

  Những nguyên tắc, định luật của lập trình mà chúng ta nên có sẵn trong đầu
  6 điều tôi vỡ lẻ khi tự học code (P1)

React hook là gì và lợi ích mà React hook đem lại

react-hook-la-gi-va-loi-ich
Bài viết được sự cho phép của tác giả Lưu Bình An
React hook là gì và lợi ích mà react hook đem lại là chi, mà thiên hạ cứ rần rần lên vậy? Qua bài viết này chúng ta sẽ cùng trả lời 2 câu hỏi bạn cần đặt ra khi tiếp cận một đồ chơi mới như React Hook
  1. Tại sao React hook lại tồn tại trên trái đất này?
  2. React hook tồn tại trên trái đất này có lợi ích gì không?

Lịch sử

Tháng 5, 2013

Nếu bạn còn nhớ về cách viết một component trong React bằng React.createClass, chứng tỏ bạn đã là già làng trong React, ngày mới ra đời khi javascript không hề có khai báo class, chúng ta sẽ khai báo component như thế này

const ReposGrid = React.createClass({
  getInitialState () {
    return {      
    }
  },
  componentDidMount () {
  },
  componentDidUpdate (prevProps) {    
  },
  render() {
    return (<div />)
  }
})

Tháng giêng, 2015

Tổ chức Ác ma thế giới công bố chuẩn EcmaScript 2015, còn gọi với tên thân thương ES6. class chính thức có mặt trong javascript. Đội ngũ phát triển của React lúc đó kết luận, chúng ta không cần phát minh lại cái bánh xe (don’t reinvent the wheel), cứ xài theo chuẩn đã có. Thế là từ đó chúng ta khai báo component bằng class extends

class ReposGrid extends React.Component {
  constructor (props) {
    super(props)

    this.state = {
      repos: [],
      loading: true
    }

    this.updateRepos = this.updateRepos.bind(this)
  }
  componentDidMount () {
  }
  componentDidUpdate (prevProps) {
  }

  render() {
    return (<div />)
  }
}

Khi khai báo component bằng class, chúng ta khởi tạo giá trị của state bên trong phương thức constructor và nó sẽ được nhét vào trong this. Tuy nhiên, với cách khai báo đã quốc tế hóa của class, nếu chúng ta extends từ một class, chúng ta phải gọi super() trước khi có thể sử dụng this. Và riêng với React, chúng ta còn phải truyền thêm props vào trong super. Các bạn lập trình viên phát bệnh vì cách viết chướng mắt này.

constructor (props) {
  super(props) // 🤮
}

Ngày xưa khi dùng createClass của React, bên trong hàm đó nó sẽ làm luôn chuyện binding toàn bộ this vào các phương thức cho một instance của component. Tuy nhiên khi viết extends React.Component chuyện đó ko còn tự động xảy ra như phép màu nữa, chúng ta phải đi .bind từng phương thức một trong constructor

constructor (props) {
  this.updateRepos = this.updateRepos.bind(this) // 😭
}

Nếu nhìn vào các bạn sẽ nói, ồ cái này chả to tác gì đâu, chỉ là phải viết thêm mấy dòng ấy mà. Cũng vì lầm đường lạc lối theo class Ác ma mà React bị ko biết bao nhiều lời phàn nàn từ những lập trình viên khắp mọi nơi.

React hook

Hên sao, không lâu sau đó Class Field được thêm vào trong class, chúng ta có thể khai báo một biến bên trong class mà không cần dùng constructor, thay vì .bind chúng ta dùng arrow function

class ReposGrid extends React.Component {
  state = {}  
  updateRepos = (id) => {}
}

Vấn đề tồn đọng trong React hook

Vấn đề đã được giải quyết tương đối ổn thỏa? Tuy nhiên vẫn còn vấn đề khác React team cảm thấy chưa hài lòng lắm phiên bản hiện tại.

Ý tưởng chính của React là để chúng ta có thể quản lý những ứng dụng phức tạp bằng cách chia ra thành từng component nhỏ rồi kết hợp (compose) lại với nhau. Đây là cách làm tạo ra thương hiệu sáng ngời của React. Cách tiếp cận theo kiểu component chả có vấn đề gì, cách hiện thực những component hiện tại đang có vấn đề.

Logic trùng lặp

Trước đây chúng ta thiết kế component dựa rất nhiều vào component lifecycle. Chúng ta đặt để logic vào trong các từng lifecycle này, thí dụ như chúng ta cần phải gọi cùng một hàm bên trong cả 2 phương thức lifecycle componentDidMountcomponentDidUpdate

componentDidMount () {
  this.updateRepos(this.props.id)
}
componentDidUpdate (prevProps) {
  if (prevProps.id !== this.props.id) {
    this.updateRepos(this.props.id)
  }
}
updateRepos = (id) => {
  this.setState({ loading: true })

  fetchRepos(id)
    .then((repos) => this.setState({
      repos,
      loading: false
    }))
}

Để giải quyết vấn đề side effect (hàm fetchRepos làm cái quần gì ở ngoài đường ai mà biết, rõ ràng nó không thuộc phạm vi quản lý của component). Chúng ta cần một cách tiếp cận khác không thể sử dụng lifecycle nữa

Chia sẻ logic của React hook

Khi nghĩ về sự kết hợp giữa các component trong React, chúng ta sẽ nghĩ về cách các đối tượng UI kết hợp với nhau.

view = fn(state)

Trong thực tế, viết một ứng dụng không phải chỉ bao gồm tầng UI, rất nhiều trường hợp chúng ta cần tái sử dụng logic, kết hợp các logic lại với nhau. Trước đây React chưa hề có cách nào đáp ứng được nhu cầu này.

Ví dụ nếu có một component khác, nó cũng cần xài biến state repos và tất cả những logic liên quan, mà những cái đó nó đang nằm bên trong component ReposGrid. Làm sao chúng ta lấy ra xài lại? Cách bình thường là chúng ta copy-paste toàn bộ code bên trong qua một component mới. Cũng nhiều người làm vậy, ai có kinh nghiệm hơn thì dùng Higher-Order Component

function withRepos (Component) {
  return class WithRepos extends React.Component {
    state = {
      repos: [],
      loading: true
    }
    componentDidMount () {
      this.updateRepos(this.props.id)
    }
    componentDidUpdate (prevProps) {
      if (prevProps.id !== this.props.id) {
        this.updateRepos(this.props.id)
      }
    }
    updateRepos = (id) => {
      this.setState({ loading: true })

      fetchRepos(id)
        .then((repos) => this.setState({
          repos,
          loading: false
        }))
    }
    render () {
      return (
        <Component
          {...this.props}
          {...this.state}
        />
      )
    }
  }
}

Rồi giờ có bất kỳ component nào muốn dùng repos thì cứ mẹ-bồng-con thế này

// ReposGrid.js
function ReposGrid ({ loading, repos }) {
  ...
}

export default withRepos(ReposGrid)

// Profile.js
function Profile ({ loading, repos }) {
  ...
}

export default withRepos(Profile)

Hồi xưa chúng ta hay làm vậy, hoặc là dùng Render Props để chia sẻ những logic dùng tới dùng lui. Tuy nhiên, đây là cách tiếp cận không dành cho dân nghiệp dư, vì không phải dễ mà hiểu được cách tụi HOC nó chạy, thứ 2 nếu bạn cho chục mẹ bồng một đứa con thì sẽ sinh ra chuyện wrapper hell giống như callback hell

export default withHover(
  withTheme(
    withAuth(
      withRepos(Profile)
    )
  )
)

Vận động não để hiểu đoạn này chạy kết quả React hook thể nào

<WithHover>
  <WithTheme hovering={false}>
    <WithAuth hovering={false} theme='dark'>
      <WithRepos hovering={false} theme='dark' authed={true}>
        <Profile 
          id='JavaScript'
          loading={true} 
          repos={[]}
          authed={true}
          theme='dark'
          hovering={false}
        />
      </WithRepos>
    </WithAuth>
  <WithTheme>
</WithHover>

Tóm lại những vấn đề trước mặt cần giải quyết là gì

  • gọi super(props) là quá xàm xí đú
  • this là thứ mơ hồ mà không dễ biết cách nó hoạt động, bạn có thể là chuyên gia và biết đấy, nhưng chúng ta tuân thủ nguyên tắc khi code KISS, ngu ngốc nhất có thể, đừng tỏ ra thông minh
  • Tổ chức logic theo các phương thức lifecycle không còn hợp lý hợp tình
  • React chưa có câu trả lời chính thức nào cho việc chia sẻ logic (HOC là từ pattern của javascript, không phải đặc sản nhà React, nên không tính)

React hook

Giải quyết

Từ React 0.14 chúng ta có 2 cách tạo component, dùng class hoặc dùng function. Nếu cần state và các lifecycle thì dùng class, nếu chỉ nhận props rồi trả về UI thì dùng function. Đó là cách chúng ta được dạy.

Bác CTO John Carmack nói, em xin lỗi sửa câu văn của bác chút

Tụi bây dẹp phương thức, class, framework hết dùm tao cái, Dùng hết function đi

React team, chân lý đây rồi, chúng ta tìm cách biến function component đáp ứng được những gì class component làm được đi.

Với function component, chúng ta chả cần quan tâm tới super(props)this chạy thế nào. Chúng ta sẽ bổ sung state, giải quyết lifecycle, chia sẻ logic nữa là xong.

Và thế là các hook của React ra đời: useStateuseEffect, custom hook

Để sử dụng state, chúng ta dùng hook là React.useState

function ReposGrid ({ id }) {
  const [ repos, setRepos ] = React.useState([])
  const [ loading, setLoading ] = React.useState(true)
}
function ReposGrid ({ id }) {
  const [ repos, setRepos ] = React.useState([])
  const [ loading, setLoading ] = React.useState(true)
}

Lifecycle thì có thể bạn sẽ buồn (hoặc vui) khi nghe tin này. Nếu bắt đầu sử dụng React hook, function component, dẹp hết những gì bạn đã từng biết về lifecycle của component đi, quên đi những việc cần làm ở giai đoạn này, giai đoạn kia của component. Bạn hay tiếp cận cách tư duy khác hoàn toàn Đồng bộ hóa

Thử nghĩ những gì bạn làm ở một sự kiện của lifecycle, có thể là đổi state, fetch dữ liệu, cập nhập DOM, tất cả đều gom về một mục đích duy nhất Đồng bộ hóa. Những gì chúng ta cần đồng bộ thường là những thứ nằm ngoài React (gọi API, DOM, đại loại như thế) với những thứ bên trong React (state) hoặc ngược lại.

  Vì sao React Hooks lại được sử dụng nhiều trong các dự án đến thế?
  Làm quen với React Hook bằng ví dụ
  Làm sao để fetch dữ liệu bằng React Hook

Khi tiếp cận theo hướng đồng bộ hóa thay vì lifecycle event, nó cho phép chúng ta gom các logic liên quan lại với nhau. Để làm việc đó React cho chúng ta một Hook gọi là React.useEffect

Theo định nghĩa, useEffect cho phép chúng ta thực hiện side effect bên trong function component. Hàm này sẽ dùng để re-sync (thực hiện đồng bộ hóa các giá trị)

React.useEffect(() => {
  document.title = `Hello, ${username}`
}, [username])

Đoạn code trên sẽ chạy lại bất cứ khi nào giá trị state username có thay đổi

Để gọi lại fetchRepos khi có thay đổi từ state repos ở ví dụ trên

function ReposGrid ({ id }) {
  const [ repos, setRepos ] = React.useState([])
  const [ loading, setLoading ] = React.useState(true)

  React.useEffect(() => {
    setLoading(true)

    fetchRepos(id)
      .then((repos) => {
        setRepos(repos)
        setLoading(false)
      })
  }, [id])

  if (loading === true) {
    return <Loading />
  }

  return (<div />)
}

Như vậy, chúng ta đã có thể nói lời chia tay mãi mãi với React.Componentconstructorsuperthis, lifecycle vì React hook

Còn lại với cuộc chiến chống Higher-Order Component và Render Props. Để dùng lại logic, chúng ta sẽ vẫn dùng Hook, nhưng không phải do React làm sẵn cho xơi, chúng ta phải tự viết những custom Hook

Giờ chúng ta sẽ viết một custom hook useRepos, nó sẽ nhận một id lấy dữ liệu tương ứng.

function useRepos (id) {
  const [ repos, setRepos ] = React.useState([])
  const [ loading, setLoading ] = React.useState(true)

  React.useEffect(() => {
    setLoading(true)

    fetchRepos(id)
      .then((repos) => {
        setRepos(repos)
        setLoading(false)
      })
  }, [id])

  return [ loading, repos ]
}

Điều ngon lành ở đây là tất cả những gì liên quan đến repos điều gói gọn trong hook, ở đây mình muốn nói đến loadingrepos

Sử dụng custom hook này trên các component khác nhau

function ReposGrid ({ id }) {
  const [ loading, repos ] = useRepos(id)

  ...
}
function Profile ({ user }) {
  const [ loading, repos ] = useRepos(user.id)

  ...
}

Thật không thể tin được bạn có thể khai báo và setState bên trong một function bình thường. Chúng ta đã có một React mạnh mẽ với các đặc tính sau

  • Đơn giản hóa
  • Đóng gói
  • Linh động
  • Mở rộng

Không những giải quyết vấn đề đang có, như cách mà các bạn làm marketing cho React tuyên truyền: sử dụng Hook để có state bên trong function component. Thật ra nó còn mang tới những giá trị to lớn khác là tăng khả năng tái sử dụng và kết hợp logic.

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

Có thể bạn muốn xem thêm:

Xem thêm việc làm React tại TopDev!

Tìm hiểu các thông số cấu hình Cron job

Tìm hiểu các thông số cấu hình Cronjob

Vừa rồi, tớ có task phải làm 1 con scheduler xoá dữ liệu rác, 1 tháng chạy 1 lần. Trước giờ tớ chạy cron job bằng công cụ hỗ trợ của server, có UI nên cũng đếch quan tâm cơ chế nó cấu hình như nào, cứ táng đúng ngày-tháng-năm giờ-phút-giây vào đúng ô, click OK là nó tự generate ra cấu hình. That’s all =)).

Tuy nhiên lần này tớ phải động tới cấu hình cho cron job. Tiện tìm hiểu nó nên note lại 1 bài :))

Chức năng của Cron Jo là để thực hiện những lệnh được yêu cầu trong khoảng thời gian được xác đinh từ đầu bởi quản trị viên/ người điều hành Hosting. Nói dễ hiểu, Cron Job là chức năng hỗ trợ lên lịch tự động để thực hiện 1 số thao tác, công việc nào đó.

Cấu trúc cấu hình cron job

Cron job thường có dạng

cron = "X X X X X" (5 kí tự)

hay

cron = "X X X X X X" (6 kí tự)

Đối với 5 kí tự thì đó là:

<phút> <giờ> <ngày trong tháng> <tháng> <ngày trong tuần>

Còn với 6 kí tự thì thêm giây nữa:

<giây> <phút> <giờ> <ngày> <tháng> <ngày trong tuần>

Các kí tự X được thay thế bởi một trong các kí tự sau:

* : bất kì giá trị nào
, : danh sách các giá trị
- : khoảng giá trị
/ : theo bước nhảy

Đầu tiên đọc lướt qua dống này, tớ chợt nghĩ: dễ vkl. Giờ muốn cho nó chạy 2s 1 lần để test cái scheduler thì táng config

cron = "2 * * * * *"

có mẹ gì khó đâu :v. Tuy nhiên thì khi chạy test thì sai “cờ mờ nờ rờ”. Nó chạy 1 phút 1 lần. Đó là giây thứ 2 của mỗi phút, không phải mỗi 2s 1 lần. Như vậy, config của cron chính xác phải là:

<giây trong phút> <phút trong giờ> <giờ trong ngày> <ngày trong tháng> <tháng trong năm> <ngày trong tuần>

Config 2s 1 lần kiểu gì?

Cùng nhìn vào đống kí tự có thể thay thế của X, ta có thể cấu hình chạy 2s 1 lần bằng các cách sau:

Sử dụng “,”

Dấu “,” đại diện cho danh sách các giá trị. Nghĩa là bạn muốn chạy 2s 1 lần thì bạn liệt kê các giá trị giây cách nhau 2s xuất hiện trong một phút.

cron= "0,2,4,6,8,10,12,14,16,18,20.... 58 * * * * *"

Cách này khá là thủ công, chỉ nên dùng khi bạn sử dụng để cấu hình cho 1 vài giá trị đặc biệt, không có quy luật.

  Hướng dẫn sử dụng Cron Job trong Laravel 5.8

Sử dụng “-“

Dấu “-” đại diện cho khoảng giá trị. Ví dụ bạn muốn chạy vào các giây 1,2,3,4,5,6 thì bạn có thể dùng “-” cho ngắn gọn hơn, thay vì “,”. Đó là:

cron="1-6 * * * * *"

Tất nhiên là config này không sử dụng được cho 2s 1 lần. Tiện thì tớ giới thiệu luôn :))

Sử dụng “/”

Dấu “/” đại diện cho bước nhảy của giá trị, tính từ 0. Giả sử với kí tự ở vị trí của giây, tớ config:

*/1 => bước nhảy 1, tính từ 0: 0,1,2,3,4,...,59

*/2 => bước nhảy 2, tính từ 0: 0,2,4,6,8,...,58

*/5 => bước nhảy 5, tính từ 0: 0,5,10,15,...,55

Ngoài ra có thể thay dấu “*” là các vị trí bắt đầu của bước nhảy. Ví dụ

5/1 => bước nhảy 1, tính từ 5: 5,6,7,8,...59

5/8 => bước nhảy 8, tính từ 5: 5,13,21,29

13/4 => bước nhảy 4, tính từ giây thứ 13

blah,blah....

Tuy nhiên đây là “non-standard config”, tức là không phải config tiêu chuẩn nên có thể sẽ không hoạt động trên một số hệ thống cron job.

Như vậy để config 2s/lần thì config “dư lày”:

cron="*/2 * * * * *"

Done :))

Crontab.guru

1 trang web khá hay là https://crontab.guru. Crontab cho phép bạn nhập vào cấu hình và đưa ra kết quả ở dạng giải thích: “At every minute“, “At 00:00“, … khá dễ hiểu.  Ngoài ra bạn có thể click vào “next” như hình để xem 1 vài ví dụ.

Cron job

Giao diện crontab.guru

Bổ sung

Ngoài crontab.guru thì có trang http://www.cronmaker.com/ cũng là 1 tool giúp chúng ta tạo cronjob tốt hơn, với lượng example rộng hơn. Thanks @Jack đã suggest.

Tổng kết về SEO title preview:Cron job

Qua bài này, hi vọng có thể giúp bạn hiểu hơn được về cách cấu hình.

Hãy nhớ: “Cron job failures can be disastrous!”

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

Có thể bạn muốn xem thêm:

Xem thêm việc làm IT tại TopDev!

“Sống chung” với sếp siêu nóng tính, bí kíp nào là khôn ngoan?

sếp

Cảm giác căng thẳng, mệt mỏi luôn ám ảnh bạn trong công việc khi có một người sếp cực kỳ nóng tính? Bạn sợ hãi, mất tập trung dẫn đến việc không kiểm soát được việc phân bổ và thực hiện đúng tiến độ công việc? Bị la mắng, bị phạt khi mắc những sai phạm nên bạn thường khó giữ bình tĩnh và phản ứng tiêu cực? 

Đó không phải là những suy nghĩ, cảm nhận riêng của riêng bạn, vì ai cũng phải đi làm mà. Điều quan trọng là bạn cần nhận ra được những “bẫy cảm xúc” đó, nhẫn nhịn một chút để có cách giải quyết tốt hơn. Với bài viết sau đây, TopDev sẽ bật mí với các bạn những bí kíp hữu ích, chắc chắn sẽ là những “vị cứu tinh” tuyệt vời dành cho bạn.

Nói không với lời “bào chữa”

Việc bạn phạm lỗi trong quá trình thực hiện công việc là điều khó tránh khỏi trong những giai đoạn đầu tiên. Tuy nhiên, dù lỗi nhỏ hay lớn đều gây ra ảnh hưởng đến công việc chung nên bạn khó tránh khỏi việc sếp tức giận và có review không tích cực về bạn. 

sếp

Trong trường hợp này, bạn nên chịu trách nhiệm với những lỗi bạn đã gây ra và đưa ra giải pháp và cách xử lý ngay cho vấn đề hiện tại. Đừng cố viện cớ cho hoàn cảnh, do quên hay một lý do nào đó thiếu chuyên nghiệp. Bạn nên nhớ thái độ quyết định tất cả, vì vậy đừng cố bào chữa một cách thiếu kiểm soát trong cảm xúc. Thay vào đó, hãy đưa ra một chiến lược rõ ràng về cách bạn khắc phục lỗi và cải thiện công việc tốt hơn. Cách hành xử ấy thể hiện bạn là một nhân viên tinh tế, thông minh và hướng đến mục tiêu phát triển chung cho tổ chức/doanh nghiệp.

Tìm nguyên nhân của cơn giận – Tìm đúng “bệnh” – dùng đúng “thuốc”

Khi bạn nhận ra sếp của bạn là một người rất “nóng tính” và thường bộc lộ sự nóng giận ngay khi nhân viên làm sai hoặc mắc lỗi, bạn nên để ý về những trường hợp cụ thể khiến sếp bạn như vậy. Việc này giúp bạn có thể biết được nguyên nhân nào khiến sếp bạn “bốc hỏa”. Từ đó, bạn nắm bắt được những thông tin giúp bạn tự điều chỉnh bản thân để tránh những cơn giận dữ từ sếp đồng thời tìm ra được những cách thức hiệu quả để giải quyết nguồn cơn giận.

  5 biểu hiện của nhân viên cần cân nhắc sa thải

sếp

Khi đã có một quá trình dài làm việc, bạn nên nhận ra được phong cách làm việc của sếp. Cách sếp làm việc, tương tác với bạn như thế nào, nhận xét và đánh giá bạn ra sao? Hãy khéo léo quan sát và so sánh điều này. 

Điều này giúp bạn nhận ra liệu mình có phải là người duy nhất “chịu đựng” nguồn cơn từ sếp hay không? 

Đây được gọi là khai thác đúng “bệnh” và dùng đúng “thuốc”. Ngoài ra, trong trường hợp nếu bạn không tự tin với những cách thức giải quyết của mình, back-up hiệu quả nhất là hãy đề xuất một cuộc trò chuyện riêng với sếp của bạn hoặc nhờ sự trợ giúp của bộ phận nhân sự.

Kiểm soát cảm xúc của bản thân và khôn ngoan khi “đối đáp” với sếp

Sự tức giận là một cảm xúc rất tiêu cực của con người. Và trong 7 loại cảm xúc, bẫy cảm xúc của sự tức giận có phạm vi ảnh hưởng lớn nhất vì sự chi phối của nó đến suy nghĩ, nhận thức và hành vi của một cá nhân là vô hạn. Vì vậy, nếu bạn muốn “dập tắt” cơn giận của sếp thì trước hết, hãy lắng nghe cảm xúc và kiểm soát tốt cảm xúc của mình. 

  Trí tuệ cảm xúc là gì và áp dụng như thế nào trong ngành Nhân sự

sếp

Việc dùng sự tức giận để đáp trả sự tức giận là một điều dại dột, thiếu khôn ngoan. Nó không những không giúp bạn giải quyết được vấn đề mà còn làm cho những mâu thuẫn trở nên nghiêm trọng hơn. Tuy nhiên, điều này không có nghĩa là bạn trở nên thờ ơ trước những cảm xúc của chính mình. Thay vào đó, hãy tự tìm những cách thiết thực để làm dịu cơn giận của chính bạn. Nghe một bản nhạc mà bạn yêu thích, hít một hơi thật sâu để điều hòa nhịp thở, nghỉ giải lao để tạo sự thư giãn và suy nghĩ tích cực hơn… là những gợi ý tuyệt vời giúp bạn lấy lại sự cân bằng trong cảm xúc của mình.

Vậy phải giải quyết thế nào trước cơn giận của sếp? Cách ứng biến khôn khéo nhất là đừng “cãi chày cãi cối” – đừng “vụng chèo khéo chống”. Hãy bình tĩnh và có một lựa chọn thông minh nhất khi đối diện với cơn giận của sếp. 

Trong quá trình làm việc, những mâu thuẫn và bất đồng quan điểm giữa bạn và sếp là điều hoàn toàn bình thường, thậm chí nó còn rất cần thiết trong những trường hợp cần thảo luận, xem xét để đi đến một quyết định chung. Bạn hãy giữ thái độ ôn hòa, cư xử đúng mực để cuộc “đối đầu” không quá căng thẳng. Bạn chấp nhận mình sai với những phát ngôn có đôi chút tự trách móc mình không phải thể hiện bạn giả tạo hay lấy lòng sếp, mà đó là cách bạn xử lý những phát sinh tiêu cực. 

Cái bạn hướng đến thật sự là làm thế nào để tìm kiếm những giải pháp hiệu quả để khắc phục vấn đề, giải quyết các sai phạm còn tồn đọng trong quá trình thực hiện công việc. Vì thế, bạn hãy ưu tiên lợi ích công việc lên hàng đầu, tránh để những cảm xúc lấn át tâm trí của bạn và cả sếp. 

Nhận thức được bản thân và thực hiện tốt công việc được giao

Chiến lược tuyệt vời nhất để “từ chối” sự nóng giận của sếp chính là thực hiện tốt vai trò của mình. Và dù bạn làm công việc gì, bạn cũng nên nắm rõ nhiệm vụ và trách nhiệm của bạn trong các công việc, hoạt động được giao. Điều này giúp bạn xác định được các vấn đề có thể xảy ra mâu thuẫn với sếp hoặc có thể bị sếp la mắng. Từ đó, tìm ra giải pháp để cải thiện nó trong tương lai.

sếp

Khi cố gắng hoàn thành tốt các công việc của mình cũng có nghĩa bạn đang “loại trừ” đi những lý do có thể khiến bạn bị sếp la mắng. Hãy cho sếp thấy, dù sếp không thích bạn nhưng vẫn không có lý do trách cứ bạn. Một điều quan trọng cần nhớ là bạn cũng có thể sử dụng hiệu suất làm việc của mình như một phương tiện bảo vệ chính bản khỏi sự giận dữ từ sếp của bạn. 

Lời kết

“Sống chung” với sếp khó tính thật là một vấn đề khiến chúng ta đau đầu đúng không nào. Song, việc có thể tìm ra những nguồn gốc phát sinh ra cơn giận dữ hay những giải pháp thiết thực là do chính bạn nhận biết và lên kế hoạch thực hiện. Mong rằng với những chia sẻ gần gũi của TopDev, các bạn sẽ có cho mình những cách thức phù hợp để xoa dịu cơn giận của một người sếp khó tính đồng thời giúp bạn thấu hiểu sếp của mình hơn, tạo ra một môi trường làm việc thật sự hiệu quả.

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

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

Data Scientist là gì? Và hành trình để trở thành Data Scientist

data scientist

Vào năm 2018, Harvard Business Review đã bầu chọn nghề Data Scientist – Nhà khoa học dữ liệu công việc “hot” nhất thế kỷ 21 để nhấn mạnh sự thành công và sức ảnh hưởng của Dữ liệu đến thị trường thế giới. Tuy nhiên, lĩnh vực này chưa hoàn toàn lớn mạnh như kỳ vọng, cũng như còn nhiều hiểu lầm – hiểu sai về công việc data scientist là gì. Nó xuất hiện với nhiều người như một thứ “kỹ thuật mờ”, có thể có khả năng triển khai sản phẩm hoặc dịch vụ của họ.

Sự hiểu lầm này có thể dẫn đến thất bại trong việc sử dụng tốt các nguồn lực. Hãy cùng lùi lại một bước để có cái nhìn chi tiết hơn về nghề Data Scientist, cùng như giải mã cách để bạn có thể “dấn thân” theo con đường này. 

Data Scientist là gì? 

Data Scientist (kỹ sư khoa học dữ liệu) là những người phân tích, sắp xếp và thay dữ liệu “kể chuyện”, bất kể nó có cấu trúc hay không. Công việc của họ sẽ cần phối hợp giữa cả khoa học máy tính, thống kê và toán học. Họ sẽ là người phân tích, xử lý và “mô hình hóa” các dữ liệu, sau đó diễn giải các kết quả để tạo ra các kế hoạch hoạt động cho team và doanh nghiệp. 

Nói một cách dễ hiểu, nghề data scientist làm việc cũng dữ liệu và cho ra các insight mang tính phân tích. Họ sẽ truyền đạt các phát hiện và insight này với các bên liên quan – từ lãnh đạo cấp cao, quản lý đến khách hàng. Từ đó các công ty có thể trực tiếp hưởng lợi từ việc đưa ra các quyết định sáng suốt nhất để thúc đẩy tăng trưởng kinh doanh và lợi nhuận của họ (tức là, phụ thuộc vào bối cảnh của các ngành công nghiệp).

Tại Việt Nam, ngành CNTT cũng đang chứng kiến sự tăng trưởng tiềm năng của ngành Khoa học dữ liệu. Ngày càng có nhiều doanh nghiệp quan tâm hơn tới ngành khoa học dữ liệu và sẵn sàng đổ tiền cho việc nghiên cứu và phát triển. Không sai khi nói nghề Data Scientist đang là một trong những ngành hot nhất trên thị trường Việt Nam, liệu bạn hiểu rõ về nó?

Công việc của một Data Scientist

Data Science là gì ?

data science

Credit: Matt Dancho 

Mục tiêu của bộ phận Data Science là làm sao để các bộ phận các tại Doanh nghiệp có thể đưa ra các quyết định dựa trên dữ liệu tốt hơn. Vì thế Data Science có vai trò hỗ trợ (tương tự như CNTT) cho phép tổ chức hoạt động tốt hơn và tăng giá trị nhanh hơn thông qua việc ra quyết định tốt hơn.

Luồng công việc của bộ phận Data Science sẽ gồm các Cột mốc quan trọng (đám mây), các giai đoạn (đường kẻ đứt nét) và các bước (box màu xám). Quy trình bắt đầu từ một vấn đề cụ thể (Cột mốc 1) – doanh nghiệp sẽ ưu tiên đưa vấn đề này đến nhóm khoa học dữ liệu và họ sẽ bắt đầu vào quy trình quản lý dự án. 

Chu trình Data Science có 3 giai đoạn:

  1. Chuẩn bị – Dữ liệu được thu thập và làm sạch. Điều này cần một lượng thời gian đáng kể vì hầu hết dữ liệu còn nhiễu, có nghĩa là cần thực hiện các bước để cải thiện chất lượng và chuyển nó sang thành định dạng mà máy có thể hiểu và đọc.
  2. Thử nghiệm – Đây là nơi các giả thuyết được tạo ra, dữ liệu được trực quan hóa và các mô hình được tạo ra. Điều này mất ít thời gian hơn so với khâu Chuẩn bị.
  3. Phân phối – Báo cáo kết quả được ghi lại thành tài liệu, slideshow trình bày cho quản lý và một khi quản lý thông qua, các quyết định sẽ được truyền tải xuống để thay đổi.

Khi kết thúc quy trình, phần triển khai này sẽ là lúc một Business Value (cột mốc) mới cho doanh nghiệp được tạo ra.

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

Phân biệt Data Scientist vs Data Engineer vs Data Analyst

công việc data scientist

“Tháp workflow” của bộ phận Data Science

Tuỳ thuộc vào quy mô và mô hình doanh nghiệp, mỗi vị trí tại mỗi tổ chức sẽ có vai trò và trách nhiệm khác nhau. Tuy nhiên, mô hình tổng quan nhất về sự khác nhau của bộ ba Data như sau:

  • Data Scientist sẽ phân tích, kiểm tra, tổng hợp, tối ưu hóa dữ liệu và trình bày nó cho công ty. Các nhà khoa học dữ liệu thường có 4 nhiệm vụ chính trong một công ty: Phân tích, kiểm tra, tạo và trình bày chúng cho nhóm.

Các nhà khoa học dữ liệu phải có một nền tảng toán học và thống kê. Họ cũng hiểu và thành thạo việc tạo ra các mô hình máy học và trí tuệ nhân tạo. Việc tìm kiếm Data Scientist của doanh nghiệp cũng như tìm kiếm một Full-stacker và đòi hỏi nhiều thời gian.

  • Data Engineers sẽ phụ trách thu thập dữ liệu liên quan. Họ di chuyển và biến đổi Dữ liệu này thành “Pipeline” cho bộ nhóm Khoa học dữ liệu. Họ có thể sử dụng các ngôn ngữ lập trình như Java, Scala, C ++ hoặc Python tùy theo nhiệm vụ của họ. Kỹ sư dữ liệu chuyên về 3 hành động dữ liệu chính: thiết kế, xây dựng và sắp xếp các đường ống dữ liệu.

Có thể gọi họ là loại kiến ​​trúc sư dữ liệu. Kỹ sư dữ liệu thường có kỹ thuật máy tính hoặc nền tảng khoa học và kỹ năng tạo hệ thống.

  • Data Analysts cũng sẽ tham gia vào việc lấy dữ liệu liên quan từ nhiều nguồn khác nhau và chuẩn bị nó để phân tích thêm. Dựa trên phân tích, một nhà phân tích dữ liệu cần đưa ra kết luận, hoàn thành các báo cáo cùng hình ảnh minh hoạ. 

Do đó, chúng ta có thể thấy rằng phạm vi công việc của các nhà phân tích dữ liệu nhằm phân tích và mô tả các chiến lược trong quá khứ hoặc trước đó dựa trên dữ liệu quá khứ hoặc hiện tại, trong khi các nhà khoa học dữ liệu tập trung vào việc dự đoán và tính toán trước để tạo ra các chiến lược trong tương lai.

Workload của một Data Scientist

Nhìn vào nhánh Data Science, hầu hết mọi người sẽ nói rằng Data Science = Machine Learning. Tuy nhiên trên thực tế, Machine Learning (hoặc Modeling) sẽ chỉ chiếm khoảng 20% trong workload của một Data Scientist. Phần trăm công việc của Data Scientist được phân chia như sau:

  • Hiểu vấn đề của doanh nghiệp: Tiếp xúc và giao tiếp với Lãnh đạo/ Khách hàng (15%)
  • Làm việc của Dữ liệu: Lọc sạch dữ liệu, Học data, Visual hoá, Xử lý, Chuyển đổi, và Thấu hiểu (70%)
  • Truyền tải kết quả: Báo cáo, Soạn Slide Decking, và Build nên Công cụ ra quyết định tự động) (15%)

Data scientist sẽ dựa vào phân tích dự đoán, học máy, điều hòa dữ liệu, mô hình toán học và phân tích thống kê. Một chuyên gia dữ liệu sẽ tiến hành xử lý khối lượng dữ liệu lớn theo quy trình như sau: 

data scientist là gì

Machine Learning Model

Mặc dù sự hiểu nhầm trên gần như đã phổ biến ở mọi nơi, việc xây dựng các mô hình máy học Machine Learning models chỉ là một bước của cả quá trình workload của một nhà khoa học dữ liệu. Sau khi đầu ra mô hình xử lý hậu kỳ, Data scientist sẽ truyền đạt kết quả cho các nhà quản lý, thường sử dụng các phương tiện trực quan hóa dữ liệu. Khi kết quả được thông qua, nhà khoa học dữ liệu đảm bảo công việc được tự động hóa và được phân phối một cách thường xuyên.

Nói tóm lại, người làm Data Scientist sẽ bao gồm:

  • Áp dụng các kỹ thuật định lượng từ kiến thức về thống kê, kinh tế lượng, optimizations và machine learning / deep learning về giải pháp cho doanh nghiệp từ nhiều lĩnh vực
  • Vận dụng các phương pháp thống kê để xây dựng các mô hình dự đoán
  • “Mở đường” cho việc ra quyết định dựa trên insight phân tích từ các bộ data có cấu trúc và không cấu trúc
  • Xác định các nguồn dữ liệu mới và khám phá tiềm năng sử dụng của chúng trong việc phát triển thêm các insight trong phát triển sản phẩm 
  • Khám phá công nghệ mới và các giải pháp phân tích để sử dụng trong phát triển mô hình định lượng
  • Thiết kế và phát triển các báo cáo và bảng điều khiển tương tác tùy chỉnh
  • Duy trì và cải thiện các mô hình hiện có
  • Truyền tải insight và các phân tích với dàn lãnh đạo và Stakeholder cũng như các phòng ban liên quan để tiến hành thay đổi/ cập nhật 

Lộ trình trở thành Data Scientist trong năm 2022

kĩ năng data scientist

Tin vui cho tất cả những người đang bước vào ngành Data Science: Đường learning curve của ngành này không còn quá dốc nữa – đường vào nghề ở thời điểm hiện tại đơn giản hơn ngày xưa rất nhiều. Từ bất kì background nào bạn cũng có thể vào lĩnh vực này, đương nhiên phải kiên trì học nhiều – hiểu nhiều – cày nhiều, nhưng có thể đi chậm và chắc từ những cái căn bản. 

Các ngôn ngữ Lập trình cơ bản

Python 

Python mãi xứng đáng có một vị trí cao ổn định trong bộ toolkit của một Data Scientist. Nhiều chuyên gia chọn ngôn ngữ này vì hệ sinh thái được thiết kế đặc biệt cho khoa học dữ liệu. Python có cộng đồng phân tích dữ liệu lớn nhất, sẽ dễ dàng tìm thấy các ví dụ về phân tích trong Kaggle, tìm các ví dụ mã trong Stackoverflow (trang web hỏi đáp với hầu hết người mới bắt đầu và thường nâng cao câu hỏi là tốt) và cơ hội việc làm vì nó là ngôn ngữ phổ biến nhất trên thị trường.

SQL

Việc “nói cùng ngôn ngữ với database” là điều cần thiết cho các nhà khoa học dữ liệu. Bạn sẽ cần phải thành thạo SQL (xem thêm SQL là gì?) để có thể lấy thông tin từ cơ sở dữ liệu bằng cách sử dụng các hướng dẫn truy vấn mà không cần phải nối mã tùy chỉnh.

R

Với nhiều tính năng đặc biệt, R là ngôn ngữ được “làm thủ công” dành riêng cho data science và là khởi đầu cần thiết cho các Data Scientist năm 2020. Mọi thông tin và vấn đề số liệu sẽ được xử lý bằng R.

Hadoop

Mặc dù kiến thức về công cụ này là không bắt buộc, nhưng Hadoop làm tăng giá trị và khả năng chuyên môn của một nhà khoa học dữ liệu, đặc biệt nếu họ có kinh nghiệm với Hive hoặc Pig. Các công cụ đám mây như Amazon S3 cũng có thể giúp ích rất nhiều.

Machine Learning

Không có cách nào để trốn được Machine Learning (xem thêm Machine Learning là gì?) đâu, bạn chắc chắn phải hiểu hết những điều cơ bản của ML. Điều này cung cấp cho bạn một kiến thức khổng lồ để hiểu cách các mô hình khác nhau hoạt động bên trong và thậm chí nghĩ về mô hình tốt hơn cho từng vấn đề.

Có nhiều kỹ thuật phổ biến cho hầu hết mọi mô hình và bạn nên học các kỹ thuật này trước và chỉ sau đó tập trung vào tìm hiểu sự khác biệt toán học và chi tiết triển khai của chúng.

Thống kê (Statistics)

Phần tốt nhất, quan trọng nhất và không may là khó nhất để cuối cùng – Thống kê. Chính kỹ năng này sẽ phân biệt là Data scientist và Machine Learning Engineer. Không có đường tắt ở đây. Bạn nên bắt đầu với thống kê mô tả, biết cách thực hiện phân tích dữ liệu khám phá tốt (EDA) hoặc tối thiểu là các khái niệm cơ bản về xác suất và suy luận, hiểu rõ các khái niệm về sai lệch lựa chọn, Nghịch lý Simpson, liên kết các biến (cụ thể là phương pháp phân tách phương sai ), những điều cơ bản của suy luận thống kê (và thử nghiệm A / B nổi tiếng như suy luận được biết đến trên thị trường), và một ý tưởng cho thiết kế thử nghiệm.

data scientist là gì

Soft Skill: Suy nghĩ như một Data Scientist

Việc tự trau dồi và rèn luyện tư duy của một Data Scientist là một trong những kỹ năng quan trọng để phân biệt giữa một Scientist giỏi và một Scientist vừa đủ. Một số gợi ý cho bạn để tự rèn luyện cho mình:

  • Luôn tò mò

Hãy luôn đặt câu hỏi “Vi sao?”, tìm liên kết và những thông tin mới với những vấn đề trong cuộc sống hằng ngày. Trong công việc, các nhà khoa học dữ liệu cho ra insight từ dữ liệu và thông tin từ dataset và đưa ra các quyết định quan trọng theo đó. Việc phân tích hoàn hảo sẽ không hữu ích nếu nó không giải quyết được vấn đề cơ bản. Đôi khi bạn cần quay lại, thử một cách tiếp cận mới và điều chỉnh lại câu hỏi bạn đang cố gắng trả lời. Hãy luôn đặt câu hỏi.

  • Có tính tiểu tiết

Các nhà khoa học dữ liệu sử dụng rất nhiều công cụ để quản lý quy trình công việc, dữ liệu, chú thích và mã của họ. Điều quan trọng là phải làm việc khoa học, quan sát, thử nghiệm và ghi chép lại mọi lúc, để bạn có thể xem lại và suy nghĩ. Ngoài ra cần phải lưu lại tất cả các nghiên cứu, thông tin bạn phát hiện được không chỉ ở hiện tại – trong quá khứ nữa.

  • Biết sáng tạo

Nghe thì có vẻ mâu thuẫn, nhưng khoa học dữ liệu cần được tiếp cận ở nhiều cách thức – phương diện và góc nhìn khác nhau. Bạn không nhất thiết phải có background kĩ thuật, nhưng bạn cần phải có tư duy sáng tạo. Thông thường, suy nghĩ thay thế (alternative thinking) là chìa khóa cho cách bạn giải quyết một vấn đề mới. Nó sễ đi song song của tư duy logic để giúp bạn thành công trong nghiên cứu và giải mã insight.  

  • Ngừng lo lắng

Bạn không nhất thiết phải là chuyên gia lập trình, hay tài chính hay bắt buộc từ chuyên môn nào cả. Rất nhiều Data Scientist trên thế giới đến từ ngành luật hoặc kinh tế hoặc khoa học hoặc cả bác sĩ. Tất cả nằm ở chính mình và nỗ lực mà thôi.

Nếu có thể linh hoạt và làm việc có hệ thống, bạn hoàn toàn có thể quen với các tool, frameworks và datasets, cũng như nhanh chóng phát triển sự thấu hiểu về về ngành và vấn đề của doanh nghiệp.

Tìm kiếm các nguồn học tập dành cho Data Scientist

Các Data Science course phổ biến nhất hiện nay

  1. Machine Learning (Google ML): Các khóa học nhanh được update liên tục từ Google.
  2. Deep Learning (Kaggle Learn): Sản phẩm mới từ Kaggle bên cạnh động đồng Kaggle đang hot, từ lý thuyết nhỏ đi kèm với nhiều ứng dụng thực tế.
  3. Python for Data Science and Machine Learning (Udemy): Giải thích rất rõ ràng về các khái niệm khác nhau của cả khoa học dữ liệu và máy học. Khóa học này sẽ giúp bạn thành thạo thư viện scikit-learn phổ biến cho máy học. Nó cũng bao gồm phần giới thiệu về Spark và TensorFlow. 
  4. Complete SQL Bootcamp (Udemy): Một nhà khoa học dữ liệu cần có nhiều công cụ hơn trong kho vũ khí của mình hơn là chỉ lập trình R và Python. SQL là một ngôn ngữ quan trọng khác mà bạn sẽ thường sử dụng để tương tác với cơ sở dữ liệu. Khóa học này đã giúp tôi có được thực tập hiện tại và dạy tôi mọi thứ tôi cần biết về SQL trong hai ngày.
  5. DataCamp: DataCamp có các khoá học từ 4-6 tiếng. Các khóa học này có các video giải thích ngắn và sau đó bạn sẽ có các bài tập để áp dụng các nguyên tắc từ các video. Mọi thứ xảy ra trong trình duyệt của bạn, vì vậy bạn không phải cài đặt bất cứ thứ gì. Điều này làm cho DataCamp trở thành sự giới thiệu hoàn hảo cho lập trình R và Python. 

Tham khảo các khoá học Data Science miễn phí trực tuyến tại đây

Các đầu sách về Data Scientist cần đọc

  1. Machine Learning: 
  2. Statistic:
  3. Data:

Github cần follow:

Các đầu git không thể bỏ qua nếu như đang dấn thân vào DS:

Hy vọng với thông tin từ bài blog sẽ cung cấp được kiến thức hữu ích về Data Scientist là gì cũng như các lộ trình cơ bản để trở thành lập trình Data Scientist tương lại. TopDev Blog cũng sẽ tiếp tục series về Data Science trong thời gian sắp đến. Đừng bỏ lỡ nhé!

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

Xem thêm việc làm Data Scientist trên TopDev

MMA Ideathon 2020 bắt đầu kêu gọi đăng ký tham dự

MMA Ideathon 2020

Sự kiện quy tụ những bộ óc thiên tài và sáng tạo để khám phá ra các giải pháp giúp giải quyết thử thách của các nhãn hàng đưa ra.

Singapore, 01 tháng 6 năm 2020 – Hiệp Hội Mobile Marketing (MMA), hiệp hội toàn cầu hàng đầu cho ngành tiếp thị di động, chính thức kêu gọi đăng ký tham gia MMA Ideathon 2020, một nền tảng cho sinh viên, chuyên gia công nghệ và chuyên gia Marketing cùng hợp tác và giải quyết các thử thách mà các nhãn hàng đưa ra trong thời kỳ COVID -19. Sự kiện trực tuyến tập trung vào chủ đề “The Next Big Tech Opportunity” – sẽ diễn ra từ ngày 26 đến 28 tháng 6 năm 2020.

Với lượng thời gian dành cho thiết bị có màn hình ngày càng tăng trong số những người tiêu dùng, di động đã trở thành kênh tiếp cận hàng đầu để các thương hiệu tiếp cận đối tượng mục tiêu của họ. Tuy nhiên, khoảng thời gian dịch bệnh COVID-19 đã đưa ra những thách thức khác nhau cho các marketer, chẳng hạn như làm sao để giảm ngân sách quảng cáo trong khi nhu cầu người tiêu dùng đang thay đổi. MMA Ideathon 2020 sẽ đưa những người tham gia cùng đi sâu vào những thách thức mà các thương hiệu hiện đang phải đối mặt cũng như những lo ngại mà họ cần phải giải quyết để phát triển sau khoảng thời gian COVID-19, mang đến các giải pháp phù hợp hơn. 

MMA Ideathon 2020

Rohit Dadwal, Giám đốc điều hành MMA Châu Á Thái Bình Dương cho biết: “Cuộc thi IDEATHON 2020 sẽ cho phép người tham dự hiểu rõ hơn về số liệu nhờ các mentor về cách họ giải quyết hiệu quả những thách thức mà các thương hiệu gặp phải khi họ thực hiện những chiến dịch ưu tiên marketing. Chúng tôi chào đón tất cả những người quan tâm đến chương trình hãy đăng ký tham gia trước ngày đóng đăng ký là 26 tháng 6. 

Trong suốt chương trình, các Nhãn hàng sẽ đưa ra các vấn đề của họ và đặt mục tiêu rõ ràng về các vấn đề họ gặp phải cũng như kết quả mà họ mong muốn. Sau bốn tuần, các đội tham dự sẽ trình bày các giải pháp của họ trước các Nhãn hàng. Hội đồng ban giám khảo sau đó sẽ chọn ba đội chiến thắng. Đối tượng tham gia bao gồm sinh viên, các nhà công nghệ, developers, freelancers và chuyên gia trong cộng đồng marketing hoặc mobile marketing. Cuộc thi không mất phí để đăng kí tham dự. 

Các mốc thời gian cần lưu ý cho MMA Ideathon là:

  • Mở Cổng Đăng Ký Tham Dự Cuộc Thi: ngày 1 tháng 6
  • Nhận Ý Tưởng Dự Thi: ngày 6 tháng 6
  • Đóng Đăng Ký Tham Dự Cuộc Thi: 26 tháng 6
  • Webinar Giới thiệu cuộc thi: sẽ được cập nhật sớm
  • Chốt Ý Tưởng: sẽ được cập nhật sớm
  • Thông Báo Danh Sách Chung Cuộc: sẽ được cập nhật sớm
  • HACK IN 48 : sẽ được cập nhật sớm (trình bày kế hoạch làm việc và trình diễn nguyên mẫu)
  • Thông báo người thắng cuộc: sẽ được cập nhật sớm

Xem danh sách các mentor của cuộc thi MMA Ideathon 2020 và nhanh thay đăng ký tham dự tại:https://www.mmaglobal.com/local-events/ideathon2 

————

MMA là hiệp hội tiếp thị di động phi lợi nhuận hàng đầu thế giới, bao gồm hơn 800 công ty thành viên, đến từ gần 50 quốc gia trên thế giới với trụ sở chính toàn cầu được đặt tại New York. Để biết thêm thông tin về MMA, vui lòng truy cập www.mmaglobal.com 

AMP là gì? Vì sao AMP thật sự quan trọng với web performance?

amp là gì?

AMP là gì? – Theo khảo sát của Google, khoảng 53% khách truy cập website sẽ rời đi nếu trang web này mất hơn 3s để load. Tốc độ tải trang là một trong những yếu tố quan trọng cần lưu tâm khi thiết kế websites. Vì vậy, khi Google phát hành bản update mobile-friendliness (thân thiện với mobile) và dần biến nó thành một trong những yếu tố đánh giá mobile search engine, các site owner dần tìm cách cải thiện mobile experience nhanh hơn.

Dù cho có tối ưu hóa trang cho người dùng mobile, nếu như trình duyệt mobile không tải nhanh hơn thì cũng khiến cho trải nghiệm người dùng bị gián đoạn. Vậy giải pháp nằm ở đâu? Cân nhắc qua AMP – hay còn được gọi Accelerated Mobile Pages. Hãy tìm hiểu AMP là gì và nó ảnh hưởng đến trải nghiệm người dùng mobile như thế nào.

AMP là gì?

Theo Google, AMP plugin có thể cắt giảm thời gian download từ 15 đến 85%. Tháng 12 năm 2015, Google phát biểu rằng Accelerated Mobile Pages có thể trở thành một yếu tố ranking (đánh giá trang). Các trang được tối ưu hóa AMP được thăng hạng tốt hơn, nhanh hơn và thậm chí còn chuyển đổi khách truy cập trang (visitor) sang khách mua hàng (customer).

  Tìm hiểu Google AMP và AMP HTML

AMP plugin ra đời giữa sự kết hợp giữa Google và Twitter – dự án open-source với mục đích tối ưu hóa tốc độ tải page trên điện thoại, biến một trang (vốn đã mobile friendly) có thể load nhanh hơn bằng cách tối giản hóa chỉ giữ những chức năng cơ bản.

Lợi ích của AMP

Tốc độ site, lượt truy cập, mobile search engine rankings có một mối tương quan đáng kể. Khi một trang web cụ thể load nhanh, người dùng mobile sẽ xem nhiều mục trên trang đó hơn, từ đó giảm bounce rate.

Tất nhiên khi bounce rate giảm và mức độ trải nghiệm tăng, Google cũng sẽ tăng điểm trên page. Như vậy, các trang có AMP plugin thường sẽ có ranking cao hơn các trang không có AMP. 

AMP là gì, AMP giúp làm giảm bounce rate

Để kể ra những điểm cộng của AMP thì vô số, tuy nhiên 5 điểm đáng chú ý là:

  • Web có tốc độ tải nhanh đáng kể:

Content cũng quan trọng, tuy nhiên nếu user không thể truy cập trang thì đâu có ai đọc được bạn viết cái gì. Thậm chí chỉ delay 1 giây thôi có thể giảm conversion đến 3.5% và giảm lượt pageview đến 9.4% và tăng bounce rate đến 8.3% (theo 1 nghiên cứu)

amp là gì

Nếu trang tải chậm như rùa thì dĩ nhiên khả năng chuyển đổi mobile user sang khách hàng cũng khó mà xảy ra.

  • Tăng khả năng hiển thị mobile browsers cho content marketers:

Google đã bắt đầu hiển thị kết quả AMP trên list organic. Và bạn có thể xem chúng với các biểu tượng AMP màu xanh .

AMP là gì?

Nhờ vào đặc điểm “khác biệt” này từ biểu tượng AMP này sẽ giúp làm tăng click-through-rate. Người dùng sẽ có xu hướng click vào những trang có “tick xanh” khi họ nhận ra những trang này load nhanh hơn hẳn.

  • Cải thiện điểm ranking mobile search engine:

Tốc độ trang và tỷ lệ chuyển đổi có mối quan hệ khá chặt chẽ. Nếu người dùng thích trang tốc độ cao, khả năng họ theo dõi list hoặc mua hàng sẽ cao hơn. Tuy nhiên, AMP vẫn chưa là yếu tố đánh giá ranking của Google. AMP chỉ khả dụng trên bản mobile chứ không sử dụng trên phiên bản desktop.

Tuy nhiên với phiên bản mobile, các trang có ranking cao với organic mobile search result thì các trang được khai triển với AMP sẽ có rank cao hơn hẳn so với non-AMP.

  • Hỗ trợ ad linh hoạt

Một số người sử dụng website hay blog với mục đích kiếm tiền và cũng có thể thay thế công việc hàng ngày. Tuy nhiên luôn luôn có yếu tố làm “kỳ đà cản mũi” làm giảm conversion rate: như là header image, navigation menu, thanh sidebar, nút share social media, … Với AMP thì sẽ loại bỏ những thứ gây xao lãng này. Khi mà code được giảm đến 6 lần.

  • Tracking người dùng đơn giản hơn

Có nhiều lý do vì sao cần xác định người dùng đến từ đâu, họ xem những trang nào, … Và các công ty hỗ trợ giải pháp này bao gồm WordPress, Chartbeat, LinkedIn, Adobe Analytics, Pinterest và cả Twitter.

AMP Plugin hoạt động như thế nào?

AMP sẽ render các trang sử dụng optimized HTML. Những trang này sẽ load nhanh hơn vì một số HTML code tag manager sẽ làm chậm các trang sẽ được loại bỏ. Nếu JavaScript có trong các trang mobile thì các script này sẽ không được render trong AMP.

Một số lưu ý bạn cần biết:

  • Với AMP, bạn phải dùng CSS phiên bản streamlined.
  • Bạn chỉ được phép sử dụng thư viện JavaScript mà AMP cung cấp. Có thế sẽ có lazy loading và đó cũng là điểm trừ của AMP.
  • Để các site AMP hoạt động, chúng cần được validate đúng cách.
  • Forms không được cho phép trên các trang AMP plugin.
  • Để có trải nghiệm tốt hơn thì một số fonts custom phải được load theo cách riêng.
  • Tránh các hình biến dạng bằng cách chỉnh lại chiều cao và rộng.
  • Sử dụng extension AMP-approved nếu muốn chiếu video trên trang.

Nếu bạn muốn tích hợp AMP plugin và dùng nó để cải thiện trang mobile, điều quan trọng chính là speed (tốc độ) và readability (có thể đọc được) chứ không phải share – ability (khả năng chia sẻ). Các button chia sẻ lên social media thậm chí cũng không hiển thị được vì đa số chúng dùng JavaScript.

Theo Paul Shappiro, cấu trúc của AMP có 3 loại:

1. AMP HTML

Là tập con của HTML, ngôn ngữ này có các tag tùy chỉnh và properties, cũng có khá nhiều restriction (hạn chế). Tuy nhiên nếu quen thuộc với HTML cơ bản, cũng không phức tạp mấy khi adapt các trang sẵn có với AMP HTML.

Sự khác biệt giữa HTML thường và AMP HTML là trang AMP HTML phải có markup sau:

Quy tắc Mô tả
Bắt đầu với cụm <!doctype html>  Tiêu chuẩn của HTML
Chứa tag <html ⚡> ở đầu

(<html amp> cũng được)

Xác định trang này là AMP content
Chứa tag <head> and <body>  HTML chính quy thì có hay không cũng được, nhưng AMP thì bắt buộc
Chứa tag <meta charset="utf-8"> như là tag con của tag <head> . Xác định encode cho trang
Chứa tag <script async src="https://cdn.ampproject.org/v0.js"></script> bên trong thẻ <head>. Tốt nhất là để script này sớm nhất có thể trong thẻ head Bao gồm và tải thư viện AMP JS
Chứa tag <link rel="canonical" href="$SOME_URL"> bên trong <head> Hướng document AMP HTML đến phiên bản  HTML chính quy
Chứa tag <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"> trong tag <head>. Nên có luôn initial-scale=1.  Xác định viewport responsive.
Chứa AMP boilerplate code trong thẻ <head>. CSS boilerplate dùng để tạm ẩn content cho tới khi AMP JS được load

 (nhớ copy và lưu dưới đuôi .html nhé):

<!doctype html>
<html amp lang="en">
  <head>
    <meta charset="utf-8">
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <title>Hello, AMPs</title>
    <link rel="canonical" href="https://amp.dev/documentation/guides-and-tutorials/start/create/basic_markup/">
    <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
    <script type="application/ld+json">
      {
        "@context": "http://schema.org",
        "@type": "NewsArticle",
        "headline": "Open-source framework for publishing content",
        "datePublished": "2015-10-07T12:02:41Z",
        "image": [
          "logo.jpg"
        ]
      }
    </script>
    <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  </head>
  <body>
    <h1>Welcome to the mobile web</h1>
  </body>
</html>

2. AMP JS

Là framework JavaScript cho trang mobile. Với một số phần, nó sẽ quản lý resource handling và bất đồng bộ loading. Lưu ý rằng bên thứ ba như JavaScript sẽ không được cho phép với AMP.

3. AMP CDN

Content Delivery Network thì không bắt buộc, nó lấy trang đã được kích hoạt AMP, đánh dấu cache và tạo một số tối ưu hóa hiệu suất.

Làm thế nào để AMP-hóa site của bạn?

Với trình độ cơ bản, bạn phải có sẵn 2 phiên bản của trang: phiên bản nguyên bản mà người dùng nào cũng thấy, và một phiên bản AMP.

Vì AMP sẽ không cho phép những thứ như form elements hay third-party như JavaScript, nên bạn sẽ không thể có lead forms, comments trên trang và các elements khác như phiên bản tiêu chuẩn.

Một lưu ý nữa là bạn phải viết lại template để phù hợp với các quy tắc. Ví dụ, tất cả CSS trong AMP phải in-line (nằm cùng dòng) và nhẹ hơn 50KB. Với một số font custom phải được load dưới dạng amp-font để kiểm soát loading tốt hơn.

Ngoài ra, multimedia cũng nên được “xử lý” cẩn thận. Hình ảnh cần sử dụng yếu tố amp-img tùy chỉnh và bắt buộc phải theo size cố định. Nếu hình ảnh sử dụng dưới dạng GIFs thì cần dùng amp-anim extended.

Để Google (và các sites khác có hỗ trợ AMP) detect được phiên bản AMP thì bạn cần phải xác định phiên bản gốc, và trang gốc phải có tag sau:

<link rel="amphtml" href="http://www.example.com/blog-post/amp/">

Tích hợp AMP như thế nào? Làm sao để bắt đầu với AMP trong WordPress

Một trong những cách đơn giản nhất để làm quen với AMP là thử nghiệm trực tiếp trên website WordPress – plugin official được phát triển vởi Automattic/WordPress là thường xuyên được update trên GitHub.

Bước 1: Install bản Official WordPress Plugin

Truy cập trang amp-wp GitHub và chọn “Download Zip”

amp là gì?

Khi đã cài xong, bạn chỉ cần đánh dấu “/amp/” tại một trang article.

Bước 2: Xác thực (validation) và tùy chỉnh

Google Search Console sẽ chọn phiên bản AMP qua tag rel=”amphtml” được đính kèm bởi plugin, cho phép validations các articles. Tuy nhiên nó cũng không detect thay đổi nhanh chóng nên nếu bạn fix cái gì đó thì bản fix sẽ không cập nhật trong vài ngày.

amp là gì? cách làm tăng tốc mobile page

Bạn nên sử dụng kết hợp giữa Search Console và Chrome validation. Để dùng Chrome validation process, truy cập một trong những AMP page trên Chrome và thêm “#development=1” vào cuối URL. Nhấn Ctrl + Shift + I để mở Chrome Developer Tools và đến Console.

Khi bạn refresh trang thì có 2 trường hợp: “AMP validation successful” (xác thực AMP thành công) hoặc nhận một list các vấn đề cần sửa.

amp là gì cách tăng tốc mobile page

Tuy nhiên thì mỗi cài WordPress plugin không đủ, và bạn sẽ phải dò lại và xác thực toàn bộ các trang liên quan đến AMP. Tùy thuộc vào các articles được định dạng thế nào mà có sự thay đổi phù hợp để được validate các trang AMP. Vấn đề mà mình thường gặp nhất là specify các thuộc tính chiều cao, chiều rộng của images và sửa các đoạn embed code YouTube không có https.

Bước 3: Sử dụng Schema Markup để validate

Để test các page có markup valid hay không, bạn có thể dùng Google’s Structured Data Testing Tool. Mình gặp vài vấn đề là WordPress không hiển thị logo và cần làm một số sửa đổi với plugin như sau.

Edit class-amp-post-template.php file, thông qua FTP hoặc bên trong WordPress Dashboard (Plugins > Editor và chọn “AMP”) sau đó đổi:

if ( $site_icon_url ) {
$metadata['publisher']['logo'] = array(
'@type' => 'ImageObject',
'url' => $site_icon_url,
'height' => self::SITE_ICON_SIZE,
'width' => self::SITE_ICON_SIZE,
);
}

thành:

$metadata['publisher']['logo'] = array(
'@type' => 'ImageObject',
'url' => 'http://domain.com/wp-content/uploads/logo-60.png',
'height' => 60,
'width' => 170,
);

Hãy chắc chắn bạn đổi URL với đường dẫn tới logo và xác định chiều cao rộng với pixels. Thường thì logo tiêu chuẩn sẽ có kích thước 60px cao với chiều rộng <=600px.

Bước 4: Cài đặt Google Analytics tích hợp vào AMP WordPress Plugin

Để cho phép AMP WordPress plugin hoạt động với Google Analytics, edit amp-post-template-actions.php (khác file bên trên), qua FTP hay bên trong WordPress Dashboard (Plugins > Editor và chọn “AMP”), và thêm vào ở cuối đoạn:

add_action( 'amp_post_template_head', 'amp_post_template_add_analytics_js' );
function amp_post_template_add_analytics_js( $amp_template ) {
	$post_id = $amp_template->get( 'post_id' );
	?>
	<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>
	<?php
}

add_action( 'amp_post_template_footer', 'xyz_amp_add_analytics' );

function xyz_amp_add_analytics( $amp_template ) {
    $post_id = $amp_template->get( 'post_id' );
    ?>
	<amp-analytics type="googleanalytics" id="analytics1">
	<script type="application/json">
	{
	  "vars": {
		"account": "UA-XXXXX-Y"
	  },
	  "triggers": {
		"trackPageview": {
		  "on": "visible",
		  "request": "pageview"
		}
	  }
	}
	</script>
	</amp-analytics>
    <?php
}

Nhớ phải đổi UA-XXXXX-Y để đại diện GA property ID của website.

Giờ thì validate lần nữa các trang AMP và bạn đã có setup AMP cơ bản và có thể tracking cho WordPress website.

Lời kết

AMP thực sự khá tiện lợi, là bản nâng cấp của các trang mobile-friendly, giúp đáp ứng mong đợi tối ưu tốc độ của trang. Tuy nhiên ngoài việc tập trung vào AMP cũng đừng bỏ qua thiết lập các chiến lược mobile marketing phù hợp để tạo ra khách hàng và phát triển doanh nghiệp.

Vậy bạn đã AMP-hóa trang web của mình chưa? Nếu chưa, thì bạn còn đang chờ điều gì?

TopDev tổng hợp

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

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

4 sai lầm lớn khiến bạn “vuột mất” những nhân viên tài năng

4-sai-lam-lon-khien-ban-vuot-mat-nhung-nhan-vien-tai-nang

Có rất nhiều lý do khác nhau để một nhân viên có thể rời bỏ công việc hiện tại của mình. Nguyên nhân có thể đến từ những áp lực công việc, định hướng phát triển của tổ chức, môi trường và văn hóa doanh nghiệp chưa phù hợp nên họ mong muốn có thể tìm kiếm một công việc khác tốt hơn. Qua bài viết dưới đây, TopDev sẽ chỉ ra 4 yếu tố có thể khiến những người nhân viên giỏi trong doanh nghiệp của bạn rời đi. Đây cũng là những sai lầm mà nhiều tổ chức gặp phải trong chính công tác đào tạo, quản lý và phát triển nhân viên của mình.

Chưa có cơ hội phát huy những khả năng, thế mạnh bản thân

Bất cứ một nhân viên nào cũng muốn có cơ hội được thể hiện những thế mạnh của mình trong công việc. Tuy nhiên, nhiều doanh nghiệp hiện chưa có một kế hoạch rõ ràng về lộ trình phát triển của nhân viên.

nhân viên

Điều này vô tình khiến nhân viên trở nên hoài nghi về chiến lược phát triển lâu dài và những mục tiêu đã đề ra trước đó, liệu có quá xa vời, bất khả thi chăng? Mỗi nhân viên đều có những kỳ vọng nhất định về việc thăng tiến trong sự nghiệp của mình. Vì thế, nhân viên rất cần các tổ chức/doanh nghiệp tạo cơ hội để họ tham gia các hoạt động có liên quan đến việc định hướng, phát triển nghề nghiệp. Hãy trao cho họ cơ hội học hỏi để nâng cao trình độ, kỹ năng nghề nghiệp của bản thân mình một cách tốt nhất.

Ngược lại, một doanh nghiệp nếu không tạo được một môi trường làm việc năng động, cho họ cơ hội thử sức với nhiều cái mới, mang đến cho họ những thách thức cần phải vượt qua thì họ sẽ mãi dậm chân tại chỗ, không thể tiến bộ được. Ngoài ra, khi nhân viên cảm nhận rằng, họ không có cơ hội để phát huy tối đa những tiềm năng của mình, đôi khi họ sẽ tự trách mình vì nghĩ rằng mình yếu kém, mình không mang lại giá trị gì cho tổ chức.

Ví dụ như trong ngành lập trình IT, nếu công ty chỉ giao cho bạn những đầu công việc đơn giản, và chưa thật sự đi vào chuyên môn, bạn sẽ cảm thấy chán nản và thiếu động lực. Đồng thời, khả năng của bạn cũng không được phát huy triệt để ngoài việc chỉ làm việc theo một cái khuôn mẫu đề ra. Dù nhà quản lý có chia sẻ cho nhân viên tất tần tật về tầm nhìn, sứ mệnh và toàn bộ kế hoạch thì cũng vô ích nếu nhân viên họ cảm thấy chưa thỏa mãn về nhu cầu thể hiện năng lực.

“Sức sống nơi làm việc” – Yếu tố cốt lõi chưa được quan tâm đủ

Trong một báo cáo của Mars Drinks và LinkedIn cho thấy, “sức sống nơi làm việc” là khái niệm nhằm mô tả các yếu tố biểu thị những cảm nhận riêng của nhân viên về công việc như: sự hợp tác, khả năng gắn kết, niềm vui trong công việc, hiệu suất làm việc,… Sức sống nơi làm việc là điều mà bất kỳ doanh nghiệp nào cũng cần phải có, sự giao lưu và tương tác có ý nghĩa quan trọng vì nó tạo ra một môi trường thân thiện, sôi nổi từ đó giúp nhân viên có thể dễ dàng giao tiếp nhiều hơn.

  Bí mật giúp tạo động lực và tăng năng suất cho nhân viên!

nhân viên

Tuy hiểu được vai trò, nhưng dường như các doanh nghiệp vẫn chưa có sự đầu tư đúng mực. Kết quả môi trường làm việc thì tẻ nhạt, thiếu giao tiếp nên sự cộng tác trong công việc trở nên khó khăn từ đó làm phát sinh những tranh luận, bất đồng. Và với những lý do đó, một nhân viên dù cho giỏi đến nhường nào thì việc rời bỏ vị trí công việc hiện tại chỉ còn là vấn đề thời gian. 

Nhà tuyển dụng nên lưu ý rằng các nhân viên sẽ cảm thấy gắn kết hơn nếu công việc của họ đầy thách thức và quan trọng đối với họ, tạo ra cho họ giá trị về bản thân cũng như sự những đóng góp cho tổ chức. Và sức sống nơi làm việc là yếu tố quan trọng kích thích họ nỗ lực tạo ra các hiệu suất công việc mới và có động lực để tiếp tục phát triển năng lực của bản thân ngày một tốt hơn.

Sự công nhận về những nỗ lực

Nhiều người cho rằng việc tăng lương hằng năm sẽ đủ để khiến một nhân viên cảm thấy mình được đánh giá cao về sự nỗ lực. Tuy nhiên, nghiên cứu đã cho thấy tiền không phải lúc nào cũng là động lực tốt nhất mà.                 

nhân viênTrên thực tế, một phần năm (20%) nhân viên cho biết họ chấp nhận một sự thăng tiến lên một danh hiệu cao hơn mà không cần phải tăng lương – họ mong muốn sự ghi nhận lớn về thành quả về những cống hiến của họ. Mặt khác, một phần ba trong số họ lại mong đợi sự công nhận cho thành tích mà mình đạt được một cách rõ ràng nhất, ví dụ tuyên dương trong cuộc họp hay những lời khen, đánh giá tích cực qua email chung của công ty thay vì trao cho họ một phần thưởng riêng.

Khi nhân viên họ nhận được sự công nhận đến từ sự thăng tiến trong nghề nghiệp, họ buộc phải cố gắng nhiều hơn. Đó là sự cam kết về việc đảm bảo được hiệu suất trong công việc, tác phong làm việc chuyên nghiệp, trách nhiệm đối với công việc sẽ nhiều hơn đồng thời việc họ cũng sẽ đối mặt với nhiều thách thức hơn.

Nếu một doanh nghiệp thiếu đi việc tạo động lực cho nhân viên mình thì đó được xem là lỗ hổng lớn khiến “vuột mất” những nhân viên tài năng.

Văn hóa môi trường công ty chưa phù hợp

Đây là lý do dễ nhận thấy vì khi một cá nhân không thể hòa nhậ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. 

  Mãi phàn nàn - than vãn về công ty, xu hướng chung của người bắt đầu công việc?

nhân viên

Văn hóa công ty là một trong những yếu tố quan trọng với nhân viên. 

  • Cách vận hành của tổ chức như thế nào? 
  • Nhà quản lý có đánh giá cao nhân viên, tôn trọng họ, đối xử một cách công bằng không? 
  • Có tổ chức các sự kiện, hoạt động và xây dựng nhóm để tạo môi trường làm việc tốt cho họ không? 
  • Nhân viên có cảm thấy hạnh phúc khi làm việc trong công ty không? 

Rất nhiều câu hỏi phát sinh xoay quanh vấn đề này. Ví dụ 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. 

Điều nhân viên cần ở nơi làm việc chính là sự minh bạch và công bằng. Một người quản lý dễ gần đủ tinh tế và hiểu được cảm nhận của nhân viên, dẫn dắt và định hướng tốt về lộ trình phát triển của nhân viên. Quả thật, văn hóa công ty là yếu tố có thể giúp bạn giữ nhân viên của mình gắn bó lâu dài.

Lời kết

Những sai lầm phổ biến được đúc kết từ kinh nghiệm tuyển dụng, phát triển nhân sự là không giới hạn. Tuy vậy, TopDev đã xem xét và trình bày 4 sai lầm có ảnh hưởng lớn nhất đối với sự khả năng gắn bó lâu dài của nhân viên tại doanh nghiệp. TopDev hy vọng bài sẽ viết giúp các bạn có cái nhìn cụ thể hơn về vấn đề đồng thời có thể lập ra những kế hoạch quản lý, đồng hành và giữ chân các tài năng nhân sự của mình.

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

Lập trình viên có cần biết thuật toán không?

Thuật toán là gì

Tại các công ty công nghệ lớn, thuật toán là một trong những “cửa ải” mà nhà tuyển dụng đặt ra để thử thách tư duy logic của ứng viên IT. Vậy lập trình viên giỏi có cần “luyện” thuật toán hay không, và nên học thuật toán như thế nào? Cùng TopDev trò chuyện cùng anh Phạm Nguyễn Sơn Tùng – CEO tại trung tâm giảng dạy thuật toán BigO và cũng là giảng viên tại trường Đại học Khoa học Tự nhiên TP.HCM.

Những khái niệm xung quanh thuật toán

Trước hết, anh hãy giải thích Thuật toán là gì? Cách mà thuật toán hoạt động là như thế nào.

Thuật toán thực ra cũng đơn giản, không phải cái gì đó phức tạp. Nó là những phương pháp, những cách mà người ta yêu cầu mình làm đúng theo những quy trình như vậy thì nó sẽ ra được kết quả tối ưu.

Phương pháp này có thể đến từ nhiều nguồn khác nhau, có thể là một nhà khoa học họ sáng chế ra, cũng có thể là một nhóm người nào đó hoặc kinh nghiệm truyền nhiều năm, khi mà mình áp dụng đúng quy cách như vậy thì mình sẽ có những kết quả tốt hơn là những cái gì đó mình tự làm.

Thuật toán khác gì với cách lập trình thông thường? Nếu không biết về thuật toán thì có thể lập trình được không?

Bạn không biết thuật toán, bạn vẫn có thể lập trình và cũng có thể lập trình giỏi, tuy nhiên nếu bạn biết thuật toán bạn sẽ có thêm những phương pháp hay hơn. Tôi ví dụ thuật toán đơn giản như vậy, tôi cho bạn dãy số, và tôi yêu cầu bạn hãy tìm một con số mà tôi đưa có nằm trong dãy số đó không? Nếu như bạn không học thuật toán thì rất đơn giản, bạn cứ so sánh mỗi số một lần miễn sao bạn tìm được con số có nằm trong dãy số này hay không. Còn người khi học thuật toán, họ sẽ nghĩ khác, thứ nhất họ sẽ nghĩ những con số mà người ta đưa ra liệu nó có lớn hay không, tại vì nếu như người ta đưa lớn quá sẽ gây hiện tượng tràn số và nếu như mình phải làm thêm thao tác cộng, trừ, nhân, chia.

Số lượng người ta đưa ra bao nhiêu cũng ảnh hưởng đến việc sử dụng thuật toán, ví dụ người ta đưa ra 10 số, 20 số thì làm dễ, còn người ta đưa 1 tỷ số hoặc 10 tỷ số thì việc tìm kiếm đó nó rất không khả thi nếu mình tìm bình thường, như vậy thì mình phải áp dụng thêm thuật toán vào, bằng cách mình có thể sắp xếp trước những con số đó lại và khi mình sắp xếp như vậy thì mình sẽ tốn thời gian cho việc sắp xếp đó nhưng sau đó mình tìm kiếm rất là nhanh. Cuối cùng thời gian tìm kiếm rất là nhanh, dù là 1 tỷ số hay 10 tỷ số thì tìm kiếm trong vòng 1s cũng ra kết quả được. Còn nếu mình không áp dụng thuật toán, mình cứ làm hoài, cứ so sánh hoài, rồi khi người ta tăng lên thì thời gian chạy rất là lâu.

  C++ algorithm: Những thuật toán cơ bản trong C++

Vì sao gần đây thuật toán đang dần được chú trọng trong quá trình phỏng vấn?

Ở Việt Nam, tôi thấy mới thời gian gần đây thôi nhưng mà ở nước ngoài thì khá là lâu rồi. Từ lúc tôi học thuật toán hồi còn sinh viên cách đây mười mấy năm, gần 15 năm thì đã có những bài toán về thuật toán ở trên mạng rồi. Khi tôi đi thi đấu ở nước ngoài thì tôi mới nhận thấy rằng rất nhiều công ty hỏi về thuật toán. Họ thích hỏi về thuật toán như vậy vì khi ứng viên gặp các bài thuật toán khác nhau, từ đó họ hình thành nên kỹ năng giải quyết vấn đề, gọi là problem-solving, đó là một kỹ năng cần thiết trong lĩnh vực CNTT.

Thuật toán tối ưu không gian bộ nhớ và tăng tốc độ xử lý như thế nào?

Thực ra thuật toán gặp trong hằng ngày đời sống của mình. Nếu như bạn đi siêu thị, bạn sẽ có một thao tác cuối cùng trước khi ra siêu thị đó là bạn đứng tính tiền, nếu như bạn đứng tính tiền như vậy và người ta cho tính tiền thoải mái, người ta cho ai lại cũng tính tiền mà không cần phải xếp hàng, thì không gian chỗ đó sẽ trở nên rối và người tới trước, chưa chắc được tính tiền trước, đôi khi người tới sau họ chen lên họ tính tiền, tức là không có quy định gì hết.

Còn nếu như mình quy định ai tới trước người đó tính tiền trước, ai tới sau tính tiền sau thì như vậy mọi người sẽ sắp theo hàng thì không gian chỗ đó sẽ bình thường, sẽ không bị rối và tốc độ để người tính tiền xử lý sẽ nhanh hơn, đó là một thuật toán ứng dụng bên ngoài, mà thường trong thuật toán người ta gọi là queue, hàng đợi. Tức là nó có trong đời sống hằng ngày của chúng ta mà chúng ta không thấy thôi.

Thuật toán và tầm quan trọng không thể bỏ lỡ

Vì sao học thuật toán ở đại học lại “kém hấp dẫn” với nhiều bạn sinh viên? Nếu không học thuật toán thì sẽ bỏ lỡ những cơ hội nào?

Thực ra thuật toán cũng là một hướng đi trong ngành CNTT thôi, nếu như mình không học thuật toán nhưng mình học thứ khác thì mình cũng có con đường, định hướng nghề nghiệp tốt, nhưng mà khi mình học thuật toán mình sẽ có thêm nhiều lựa chọn. Còn về trường đại học, chúng ta có một số môn dạy về thuật toán, hình như 2 hoặc 3 môn, thực ra số lượng này không đủ, thuật toán thực ra rất khó và số lượng để chúng ta học và làm việc được với thuật toán thì cần ít nhất 6 đến 7 môn.

Với số lượng như vậy mà nhét hết vào chương trình để giảng dạy thì không đủ, tại vì không đủ thời gian cho những môn khác, người ta cần đa dạng hóa nhiều hướng đi cho sinh viên thì cắt bớt, bỏ bớt, như vậy sẽ gây ra hiện tượng khó hiểu, tại vì chúng ta dạy theo cấp bậc thì sẽ dễ hiểu hơn, còn chúng ta dạy 3, dạy 7, dạy 8, như vậy khi người học học vào, họ sẽ không bước lên từ từ, mà cảm giác là mình phải bước với lên mới hiểu, đâm ra gây tâm lý thuật toán khó hiểu, nhưng với tôi thuật toán không khó hiểu lắm nếu như chúng ta học từng cấp bậc một.

Thuật toán có thể tự học được không? Sẽ có những khó khăn gì nếu tự học?

Khi mình tự học mình phải trả giá một vấn đề rất lớn đó là thời gian, thực ra trong CNTT bất kỳ một hướng đi nào mình cũng có thể tự học, mình có thể tự học web, tự học AI, kể cả thuật toán cũng có thể tự học, tuy nhiên cần phải suy nghĩ lại đó là mình cần trả một cái giá lại đó là thời gian, tại vì tự học là mình phải tự tìm hiểu tất cả mọi thứ, mình sẽ có hướng đi sai và phải quay lại học, có những thuật toán mình cứ nghĩ là tự học nhưng thật ra người ta đã bỏ từ lâu rồi, khi mình tự học xong hết rồi thì khi quay lại người ta đã học được một cái mới hơn, hay hơn để giải quyết vấn đề đó, và như vậy mình phải học một cái khác bổ sung vô, phải mất một khoảng thời gian rất lâu.

Tuy nhiên việc tự học sẽ giúp mình sau này có một power rất mạnh, nghĩa là mình đã sai và làm lại, sai và làm lại thì tự nhiên mình có một nguồn năng lượng tự học rất nhanh nhưng như tôi đã nói là mình phải trả giá lại thời gian của mình, thời gian mất rất nhiều. Nên phải cần cân nhắc, sẽ học nhưng không phải là học ở trung tâm, mình có thể học ở người anh của mình, một người bạn của mình hay là người thầy nào đó mà có thể giao tiếp được thường xuyên, họ sẽ chỉ cho mình hướng đi để mình tự học tốt hơn. Chứ khi mình tự học, mình lên đọc sách, mình coi video thì như vậy tốn rất nhiều thời gian.

  Các thuật toán sắp xếp phổ biến trong JavaScript

Một số nguồn tài liệu có thể tự học thuật toán

Theo tôi thấy thường tự học chúng ta sẽ đọc blog hoặc là xem video, như là bạn có thể vào các trang như Geeks for Geeks, nó là một trang viết rất nhiều thuật toán trên đó và có những video mẫu minh họa, rồi mình xem và sau đó có thể làm ngay luôn bài tập trên đó, đó là một trang khá hay, tôi nghĩ đó là một nguồn có thể đọc được và thực hành luôn. Còn sách thì đọc rất tốt nhưng lại nhanh chán, vì người ta viết rất formal, cuốn sách mà tôi nghĩ mới học thuật toán mà có thể đọc được đó là Introduction to Algorithm, cuốn sách đó đọc khá là chuẩn.

Ở góc nhìn từ một trung tâm đào tạo về thuật toán, anh nhận thấy mọi người đang có mối quan tâm thế nào đối với việc học thuật toán?

Như tôi đã nói, nếu mà ta tự học, tự tìm thì thuật toán trên mạng sẽ không đưa cho chúng ta từ số 1, số 3, số 4, số 5, số 6, mà khi mình tìm vô, mình tìm số 1, sau đó mình làm bài khác sẽ ra số 7, tự nhiên mình sẽ cảm thấy sao cái này khó hiểu quá và mình làm không được, tại vì tài liệu mình đọc được nâng cấp lên mà mình không biết, sau đó mình quay lại đọc số khác thì lại ra số 6, chứ không ra số 2. Nên dần bị tình trạng nản, rồi bỏ thời gian học lại, đi lại từ đầu nên đâm ra học hoài mình không tiến bộ. Nên tôi nói là nếu chúng ta tự học, tự tìm hiểu thì tốt nhất nên tìm người nào đó cho mình được lời khuyên, hoặc là khi mình đọc tài liệu, mình đọc một cái thôi, chú tâm mình đọc một cái đó thôi, đọc hết cái đó rồi hẵng tìm cái khác, chứ không sẽ bị tràn lan kiến thức, không chú tâm vào 1 cái.

Quy mô thị trường giảng dạy về thuật toán hiện nay ra sao? Nếu có một đơn vị khác tham gia vào thị trường giảng dạy thuật toán thì lợi thế của BigO Coding là gì?

Thực ra thị phần về thuật toán hiện nay chưa lớn lắm, so với lứa lân cận của mình, chẳng hạn Thái Lan, Singapore, mở rộng ra là Trung Quốc, Ấn Độ hoặc Mỹ, thì thị trường VN khá là nhỏ, chưa lớn lắm. Do tôi nghĩ môi trường Việt Nam còn khá nhiều những công ty về gia công phần mềm, mà thuật toán thông thường họ sẽ cần những công ty khởi nghiệp, những công ty mà họ có sản phẩm, cần tối ưu hóa sản phẩm đó hơn là những công ty gia công phần mềm nên tôi thấy thị trường hiện tại đang có nhưng rất nhỏ, không lớn lắm.

Hiện tại thì tôi đang mở là 3 khóa, tôi chia theo màu: blue, orange, red và black. Mà hiện tại ở Việt Nam mình chỉ mở được 3 khóa thôi, tại vì số lượng người học thuật toán chưa đủ nhiều để mình có thể dạy tiếp những khóa sau.

Với khóa đầu tiên, khóa green, dành cho những người họ chưa biết gì về lập trình, họ có thể học được mà không cần bài test đầu vào. Còn khóa blue, thứ 2, khóa chuyên giảng dạy về thuật toán, nhưng chủ yếu về đồ thị, khóa đó chỉ cần biết lập trình thôi, không cần biết thuật toán, vô sẽ dạy lại từ đầu về thuật toán, nhưng bạn phải rành lập trình rồi, rành syntax này nọ hết rồi. Khóa thứ 3 thì phải có bài test đầu vào, vì đó là khóa rất khó, có liên quan tới thuật toán, có 30-40% liên quan tới toán học nữa, mình phải rèn thêm về toán học để tối ưu hóa nữa, chỉ có khóa 3 có bài test đầu vào. Còn 2 khóa còn lại thì tôi hi vọng rằng 1-2 năm tới tôi sẽ được mở khóa đó, tức là có nhu cầu về khóa đó để tôi mở, hiện tại thì ở TQ, Ấn Độ thì họ đều có những cái lớp tới màu red và black luôn rồi, ở Việt Nam thì chưa, nhưng tôi hi vọng là sẽ được.

Anh hãy chia sẻ rõ hơn về chương trình đào tạo thuật toán tại Việt Nam và thế giới

Đối tượng tham gia thuật toán hiện tại theo tôi thấy khá là phong phú, tiểu học cũng có. Xong có khi mình nghe thấy, tiểu học thì học cái gì, học cái này tính toán nhức đầu, nhưng mà tôi thấy, khi tôi đi thi đấu bên nước ngoài, đặc biệt ở những nước châu Âu, tôi thấy mấy bạn nhỏ tiểu học đã học rồi, nhưng mà các bạn học thì cũng đơn giản thôi, ví dụ là cho con gấu bị lạc trong mê cung, làm sao đó dẫn con gấu đó ra theo đường ngắn nhất chẳng hạn, người ta tiếp cận những bài đơn giản như vậy, nên là tiểu học cũng có thể học được, các bạn THCS chắc chắn có thể học được rồi, chúng ta học từ từ, rồi quen; những bạn THPT chủ yếu học để đi thi, đặc biệt là thi quốc gia, thì khi bạn có giải quốc gia thì bạn sẽ được tuyển thẳng đại học. Còn đối tượng tiếp theo bên tôi là những người đi làm.

Người đi làm thì có hai dạng, một là muốn áp dụng thuật toán vào bên sản phẩm của họ, để họ tối ưu hóa giai đoạn nào đó mà đang bị mất thời gian. Còn đối tượng thứ hai là họ muốn có con đường nghề nghiệp khác hơn bình thường, nghĩa là họ muốn qua Singapore làm việc, họ muốn qua Canada, qua Mỹ, qua Úc, v.v….; thì ở đó những công ty lớn đầu vào thường là thuật toán nên là các bạn cần phải luyện, các bạn đó chủ yếu học để chuẩn bị cho phỏng vấn, nên đối tượng khá là rộng, nhưng chủ yếu bên tôi là người đi làm với sinh viên.

Liệu việc học thuật toán từ đại học có phải là hơi muộn? Vì sao nên học thuật toán ở giai đoạn sớm?

thuật toán là gì

Như tôi nói thì thuật toán nó rất rộng, nó phủ nhiều lĩnh vực khác nhau, và vì vậy nếu như không dành thời gian nhiều để luyện nó thì đôi khi sẽ bị lủng kiến thức, nếu như có 1 cơ hội tốt luyện từ nhỏ thì mình sẽ học dần dần, sẽ đỡ hơn. Tuy nhiên, không phải ai cũng có cơ hội học từ nhỏ, đôi khi chúng ta ở dưới quê, tiếp xúc với máy tính đã khó rồi, huống chi là thuật toán, thì tôi nghĩ rằng nếu như chúng ta chưa tiếp xúc thuật toán, từ cấp 3 hay từ cấp 2 mà mình học ngay khi vào đại học thì cũng không có vấn đề gì cả, chỉ có 1 vấn đề duy nhất là liệu mình có đủ cái quyết tâm để mình theo nó hay không, mình phải học gấp 2 gấp 3 lần người khác, nếu có đủ quyết tâm, dành riêng thời gian cho nó thì tôi nghĩ nó vẫn rất tốt. Ví dụ như tôi có mấy bạn nữ học chuyên văn vẫn vào được các công ty lớn ở Mỹ, Twitter hay Facebook, vẫn bình thường và các bạn đó học 2 ngành không chuyên về tin học rồi và lại xa rất xa so với tin học, chỉ mới bắt đầu học từ đại học thôi, thì bạn vẫn vào được, thì tôi nghĩ rằng là chúng ta đừng nghĩ là “Ô, chúng ta học bây giờ nó quá trễ rồi, học từ năm 2, năm 3 là quá trễ, mà quan trọng là ta danh bao nhiêu thời gian từ đây cho đến lúc mà chúng ta bắt đầu, phỏng vấn thuật toán, làm những cái việc về thuật toán thế nào, dành đủ thời gian như vậy là sẽ được.

Lập trình viên có thế mạnh về thuật toán sẽ rất “khác”

Điểm mạnh và điểm yếu của lập trình viên Việt Nam so với khu vực? Đâu là thế mạnh mà LTV VN chưa khai phá hết?

thuật toán là gì

Thì thực ra khi tôi dẫn dắt đội tuyển như vậy thì trong nhóm các bạn thường rất là giỏi rồi, tôi sẽ đánh giá chung các bạn lập trình viên ở Việt Nam so với những bạn nước ngoài như thế nào nó sẽ hợp lý hơn. Có 1 điều mà tôi thấy là những bạn học công nghệ thông tin ở nước mình họ thường rất chăm, chăm chỉ lắm, và nói 1 câu bình dân chút xíu là họ chịu cày, rất chịu cày, khi có 1 mục tiêu gì đó thì rất chịu cày, đó là ưu điểm rất tốt, tuy nhiên tôi thấy có 2 khuyết điểm đáng suy ngẫm, thứ 1 là họ dễ nản, tức là khi có 1 vấn đề mới xuất hiện, không còn quen thuộc so với họ trước đây, rất là dễ nản, nhưng mà công nghệ thông tin thường nó sẽ thay đổi rất nhanh, nên dễ nản như vậy thì ta sẽ không đến được đích cuối cùng.

Cái thứ 2 là rào cản về ngôn ngữ, đây là rào cản khá lớn, thí dụ bạn biết cái thuật toán là cái mức 7 bạn trình bày cho người khác bằng ngôn ngữ khác, chỉ ở mức 3 thôi, thì trình độ thuật toán của bạn cũng chỉ là 3 thôi, chứ không có 7, rào cản ngôn ngữ rất nguy hiểm là bình thường mình muốn đi ra bên ngoài, thành 1 công dân toàn cầu,  mình phải giao tiếp bằng tiếng Anh, thông thường cái này những bạn Việt Nam hay yếu thế hơn so với những nước khác, đó là 2 khuyết điểm tôi thấy rất đáng lo, nhưng mà bù được cái ưu điểm của mình, mình chăm chỉ vô những gì mà mình thấy mình thiếu là được.

Career Path của lập trình viên thiên về Thuật toán và đâu là đích đến cuối cùng?

Tôi lấy ví dụ cụ thể học trò tôi luôn, mục tiêu của bạn đó là vầy, đầu tiên là các bạn sẽ làm ở 1 số công ty startup ở Việt Nam, nho nhỏ thôi, sau đó các bạn sẽ vào làm ở những công ty lớn hơn ở Việt Nam, khi các bạn đã bắt đầu có 1 số kinh nghiệm rồi, các bạn học thuật toán, sau đó các bạn sẽ qua các nước lân cận đặc biệt như là Singapore, các bạn làm ở 1 công ty startup lớn hơn, đó là ‘unicorn’ rồi. Sau đó các bạn có thể qua Úc, Canada hoặc thậm chí qua Mỹ, để các bạn có thể tiếp cận các công nghệ khác tốt hơn, thì cuối cùng tôi thấy được khi các bạn đã làm ở những công ty như Google, Facebook ở Mỹ rồi, nếu làm nhiều năm rồi thì các bạn có thể quay trở lại startup do chính cái sản phẩm của mình, và bạn áp dụng vô những cái thuật toán mà mình đã từng biết đã từng học để mình giải quyết 1 cái vấn đề nào đó trong cuộc sống bằng cái ứng dụng của chính mình, và đó là con đường mà các học trò của tôi đang đi như vậy.

Những lời khuyên thực tế cho lập trình viên

Có rất nhiều cuộc thi dành cho lập trình viên nói chung và về thuật toán nói riêng. Anh nhận xét gì về những “sân chơi” này?

Hiện tại nói về cuộc thi thì Việt Nam mình chưa có nhiều đâu, Việt Nam mình là rất ít, chúng ta phải có nhiều hơn những cuộc thi về thuật toán, chủ yếu hiện nay các bạn học thuật toán là các bạn thi của nước ngoài thôi, Việt Nam rất ít, những cuộc thi mà tôi thấy rất hay, chẳng hạn như cuộc thi của Google – Google Code Jam, Facebook Hacker Cup, đó là những cuộc thi chúng ta nên tham gia, là những công ty về toàn cầu, và những câu hỏi họ ra không phải là dùng để đánh đố mình 1 cái vấn đề gì đó mà có thể trong đó là 1 cái dự án gì đó của họ, mà họ chưa thể tối ưu hóa được, và họ nhờ 1 cái cộng đồng thi đấu có thể giải quyết được cái vấn đề đó hay không và khi mà họ có được 1 cái solution từ thí sinh rồi, thậm chí họ có thể gửi cái lời mời làm việc fulltime cho cái người đó, hoặc là họ lấy cái solution đó họ về để họ tham khảo giải quyết vấn đề của mình, nên đó là những cuộc thi mà chúng ta nên tham gia, nhưng nó rất khó đó. Nhưng bạn không cần phải đứng top 100 hay là 200, top 10000 cũng được, vì rất nhiều người thi trên thế giới, top đó cũng là rất giỏi rồi, và kỹ năng như vậy cũng rất tốt rồi.

Một số tips trong quá trình phỏng vấn tại những công ty lớn như Google, Facebook, …

thuật toán là gì

Thông thường thì những bạn ứng viên phỏng vấn sợ hỏi lại câu hỏi mà người phỏng vấn hỏi, thường mình vào công ty công nghệ lớn người ta hỏi mình 1 câu hỏi thì điều quan trọng là mình phải làm rõ câu hỏi đó cái đã, đôi khi họ cố tình họ hỏi không đầy đủ, họ để cho cái người ứng viên hỏi lại họ để làm rõ ràng hơn câu hỏi, đó cũng là 1 cái cách mà để sau này người này join vào công ty của mình, tôi đưa cho anh 1 cái project chung như vậy, anh không hiểu anh vẫn cứ làm, mà không hỏi lại, sau này làm ra xong rồi mới biết làm sai, rất nguy hiểm nên kinh nghiệm của mình là sau khi nghe câu hỏi xong, thì mình phải rõ câu hỏi thật là rõ cái đã, thậm chí là có thể cho cái ví dụ vào để hỏi người khác rằng là với cái ví dụ này của tôi thì đúng như yêu cầu của anh là xuất ra kết quả này hay không, khi mà mình đã rành được, mình đã rõ được câu hỏi rồi, thì lúc này mình mới bắt đầu vào câu trả lời của mình.

Vào cái câu trả lời của mình thì mình lại có 1 cái kinh nghiệm nữa là phải nói ra những gì mình suy nghĩ. Bạn không thể đứng bạn viết hay ngồi bạn code từ đầu đến cuối xong rồi nói “Ờ tôi làm xong rồi, kết quả phải là như vầy” là ngày mai bạn rớt liền. Khi viết ra 1 dòng thì bạn phải nói ra là cái dòng này tôi muốn làm cái gì đó, tức là bạn phải thinking out loud, nói ra những gì mình suy nghĩ, thì khi mình nói ra như vậy thì người ta sẽ nghĩ “bạn này được, tức là tôi đang bắt nhịp với lại solution của anh” và điều này rất là tốt.

Mình phải nói ra cái suy nghĩ của mình, thì khi mình nói ra suy nghĩ của mình thì nó sẽ gặp 1 cái trở ngại là có thể mình đúng, có thể mình sai. Nó sai không có vấn đề gì cả, nếu vấn đề đó sai thì mình nói là “hồi nãy mình nghĩ nhưng nó bị thiếu cái chỗ này, nên bây giờ tôi có thể cập nhật lại chỗ này được hay không, thì mình cứ cập nhật thôi. Hoặc là “cái giải pháp của tôi đưa ra vừa rồi nó không có tối ưu lắm, anh có thể cho tôi 5p suy nghĩ để tôi tối ưu hóa cái này được hay không, thì người ta sẽ rất là thích những cái ứng viên như vậy, chúng ta trao đổi thẳng thắng và nó giống như là 1 cuộc trò chuyện giữa tôi với bạn như vầy, nó bình thường và nó không phải là 1 buổi phỏng vấn nghề nghiệp này nọ, nó quá quan trọng, xong rồi thì chúng ta vui vẻ nhận kết quả như vậy thôi.

Xin cảm ơn phần chia sẻ từ anh Tùng. Hy vọng qua bài viết này các bạn lập trình viên, hay các bạn sinh viên có đam mê với ngành CNTT có thêm những thông tin hữu ích về thuật toán cũng như cách nâng cao kỹ năng phù hợp. Từ đó, xây dựng cho bản thân những bước đệm chắc chắn trong sự nghiệp.

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

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

25 blogger IT nổi tiếng mà dân lập trình ai cũng phải biết

IT blogger

Khi còn là một junior developer, tôi luôn cảm thấy mình không có đủ kiến thức để chia sẻ với thế giới. Và tôi nhận ra vẫn còn nhiều người gặp khó khăn cùng vấn đề như tôi từng trải qua. Do đó, dựa vào kinh nghiệm của tôi và những người đi trước sẽ là chỉ dẫn tuyệt vời cho các fresher và junior thông qua các IT blogger.

Vì sao viết blog?

Trải nghiệm của bạn sẽ không giống với bất kỳ ai. Vì vậy, bài học rút ra luôn hữu ích cho mọi người, nhờ vào việc viết blog, tôi không chỉ giúp cho người khác học hỏi mà còn đang tự ôn lại những kỉ niệm quý giá ấy của chính bản thân.

Ngoài ra, blog còn giúp tôi cập nhật và theo dõi quá trình phát triển của bản thân. Nó cũng vô cùng hữu ích để bạn xác định hướng đi tiếp theo trong tương lai dựa trên những lĩnh vực mà mình còn yếu hoặc chưa biết.

Đây chính là những lý do chính của việc tôi viết blog. Bởi nó làm tôi cảm thấy mình có giá trị vì đã tạo ra được một thứ gì đó của riêng mình mà lại có ích cho những người khác. Chính những điều hữu ích như vậy mà nay tôi tổng hợp tại biết này những blogger nổi tiếng ngành IT cả trong và ngoài nước.

Cùng tìm hiểu thôi nào!

Blogger “nhà nội”

Nguyễn Văn Hương

Blogger Nguyễn Văn Hương, Java Dev tại AXON Active Việt Nam. Nội dung chính của blog là những chia sẻ thủ thuật linh hoạt xử lý các vấn đề với Java – Agile mà anh từng trải qua. Đồng thời, đây còn là nơi anh nghiên cứu nhiều vấn đề trong cuộc sống.

Nguyễn Nhật Hoàng

Nguyễn Nhật Hoàng là một full-stack developer, blog của anh rất đa dạng về chủ đề, từ hướng dẫn học các skill cơ bản của AngularJS, ReactJS, JavaScript, Web Development… đến một số bài viết về kỹ năng mềm cho coder trong phỏng vấn, tìm việc, start-up.

Huỳnh Công Thành

Blog của anh có tên là asktester.com, đúng với tên gọi, đây là diễn đàn thảo luận, chia sẻ về ngành testing. Anh với nhiều năm kinh nghiệm đưa ra thông tin cụ thể, chi tiết và định hướng các nhân tố mới trong lĩnh vực testing.

Nguyễn Thành Luân

Với hơn 4 năm kinh nghiệm làm việc với Ruby, blog của anh là nơi chia sẻ quan điểm lập trình cũng như nhiều tutorial, tips và sách về Ruby on Rails.

Khang Nguyễn

Anh là một developer trẻ tuổi nhưng đã từng là trưởng đại diện của Cogini tại Việt Nam. Blog của anh viết nhiều về công nghệ và một số chủ để yêu thích của cá nhân anh.

Ehkoo

Ehkoo là blog chuyên về lập trình web của Ân Cao, một front-end developer, hiện đang sống và làm việc tại Phần Lan. Mặc dù blog còn khá mới, số lượng bài viết chưa nhiều, song chất lượng bài viết của Ehkoo tương đối tốt. Nội dung blog xoay quanh 2 chủ đề chính:

  • Công nghệ web, đặc biệt về front-end
  • Chia sẻ những câu chuyện/ kinh nghiệm của đời lập trình viên.

Phạm Huy Hoàng

“Lập trình viên giỏi không phải chỉ biết code”, chính là phương châm của blogger Phạm Huy Hoàng. Kỹ thuật lập trình chiếm phân nửa nội dung mà anh hướng tới, phần còn lại là kỹ năng mềm khác như: cách thương lượng lương, sắp xếp thời gian, con đường phát triển sự nghiệp

Trần Duy Thanh

Anh là Thạc sĩ trường Đại học Công nghệ Thông tin. Mục đích lập ra blog này nhằm để hướng dẫn học viên lập trình Android, Windows Phone, Web Service, C++, C#, Java, Swift, …… từ cơ bản đến nâng cao. Bên cạnh hệ thống kiến thức bài bản, blog còn đưa ra những ví dụ thực tiễn khá hữu ích.

The Full Snack Developer 

Tác giả của blog là anh Huy Trần, hiện đang là một Software engineer tại Mỹ. Anh viết blog từ năm 2015 và đã có một gia tài các bài viết hay về kỹ thuật, review sách và chuyện làm nghề. Phong cách viết của anh ngắn gọn và thực tế nên sẽ là một địa chỉ rất hay ho cho bạn ghé thăm. Các bài blog từ trước đến nay được anh tổng hợp dưới dạng markdown, bạn có thể truy cập trang blog để tải và tham khảo.

Võ Duy Khang

Anh là giám đốc kỹ thuật của Zappasoft tại Úc, từng xuất bản cuốn sách “Pro iOS Apps Perfromance Optimization and Tuning”. Trang blog của anh thuần về công nghệ thông tin và khoa học. Tuy đã ngưng viết một thời gian nhưng những bài viết của anh vẫn luôn được thu hút và bạn đọc quan tâm.

Đỗ Trọng Nguyên (Giaosucan)

Anh là một Solution Architect của FPT Software tại Đà Nẵng. Blog chứa đựng những chia sẻ kiến thức về pattern design, JavaScript, blockchain, microservices ….. với văn phong kiếm hiệp, kinh dị, cổ tích …. nến rất hài hước và thú vị, thu hút nhiều bạn đọc theo dõi.

Khoa Nguyễn

Anh đang là sinh viên Đại học Công nghệ thông tin nhưng đã sở hữu một blog cá nhân với tài nguyên đồ sộ. Blog của anh chủ yếu viết về kỹ năng, định hướng nghề nghiệp, các vấn đề học tập cho các developer. Ngoài ra, Khoa cũng viết bài trả lời các thắc mắc của mọi người về con đường học tập và chiến lược nghề nghiệp, tư vấn tận tình và anh cũng đứng lớp vài khóa học ngắn trên các trang web học code online.

Thái Dương

Thái Dương là một developer đã làm việc tại Việt Nam nhiều năm. Sau đó, anh chuyển đến Sillicon Valley và hiện tại đang là kỹ sư bảo mật tại Google. Thái viết về khoa học máy tính, phát triển nghề nghiệp, kỹ năng tìm việc cho các developer. Blog của anh được nhiều developer yêu thích vì phong cách viết rất ngắn gọn, súc tích và có tính cởi mở

Tiger Nguyễn

Đây là blog của anh Nguyễn Văn Trọng, một Bridge Software Engineer (BrSE) đang sống và làm việc tại Nhật Bản. Blog của anh Trọng tập trung và mang đến những thông tin hữu ích về con đường sự nghiệp từ developer thành BrSE.

Ngoài ra, blog của anh còn có những bài viết rất hữu ích về việc học tiếng Nhật và từ vựng IT tiếng Nhật cho các developer đang muốn theo đuổi việc làm tại thị trường này.

Thạch Phạm

Blogger Thạch Phạm rất được yêu thích với các bài viết về thủ thuật WordPress. Ngoài ra, blogger này còn có các bài viết hướng dẫn về PHP, JavaScript, HTML/CSS, Linux Webserver

Sang Bùi

Blogger Sang Bùi hiện tại là QA Specialist cho một công ty ở Bangkok, Thái Lan. Anh thường xuyên đăng các bài viết bằng cả tiếng Việt và tiếng Anh chia sẻ kiến thức về software testing, đặc biệt là về automation và security test.

  3 công cụ ngon bổ rẻ cho Front-End developer

Blog “nhà ngoại”

Coding Horror

Tác giả của blog này là blogger cực kỳ nổi tiếng – Jeff Atwood, đồng sáng lập website hỏi đáp Stack Overflow thân thuộc với developer. Blog này với tiêu đề “Programming and Human Factors” viết về kinh nghiệm nhiều năm làm lập trình với những vấn đề “rùng rợn” của developer nhưng cuối cùng luôn đi kèm giải pháp cho vấn đề đó.

Joel on Software

Joel Spolsky là nhà đồng sáng lập Stack Overflow cùng Jeff Atwood. Bạn có thể tìm thấy mọi thứ như thiết kế, phát triển phần mềm, quản lý cho đến bán sản phẩm ra thị trường. Độc giả blog cũng đa dạng từ junior developer, rock-star developer, software designer, tech lead, project manager, start-up, founder cho đến CEO. Và quan trọng là các bài viết của Joel cực kỳ chất lượng.

Scott Hanselman

Scott Hanselman là một developer, giảng viên và diễn giả làm việc cho nhóm web platform tại Microsoft. Với kinh nghiệm lập trình đa dạng, những bài viết của Scott là kho công cụ cực kỳ hữu ích cho developer và những ý kiến về công nghệ, văn hóa, code và web.

Dr.Dobb’s

Một nhóm developer giàu kinh nghiệm thực hiện blog với những bài viết sâu sắc về phát triển phần mềm đám mây, web và những ngôn ngữ lập trình căn bản như C++, Java.

Phil Haack

Phil Hacck làm việc tại Github có sự quan tâm đặc biệt với cộng đồng phần mềm mã nguồn mở. Blog chia sẻ những kinh nghiệm về lập trình, Github và các dự án mã nguồn mở anh đang tiến hành

Robert Scoble

Robert Scoble là blogger nổi tiếng trong cộng đồng developer độc lập, một nhà “truyền giáo công nghệ”. Bài viết của Robert Scoble chủ yếu là những chia sẻ ngắn hướng đến cộng đồng IT đa ngành nghề.

Cyril Mottier 

Blog này dành cho Android developer, Cyril Mottier được công nhận là Google Developer Expert trên nền tảng Android. Blog chia sẻ kinh nghiệm tạo những ứng dụng di động với giao diện thân thiện, làm việc nhanh và tính tương tác cao giúp tạo ra những trải nghiệm thú vị cho người dùng.

Eril Bernhardsson 

Dù chủ yếu sử dụng ngôn ngữ Python trong việc viết code nhưng những bài blog của Erik dường như không giới hạn, rất đa dạng chủ đề. Từ machine learning, data engineering, back-end developer cho đến quản lý, cách tuyển dụng hiệu quả. Quá nhiều thứ hay ho bạn có thể gặt hái được trong blog này.

Morning Brew

Blog rất hữu ích cho .NET developer. Chris Alcocl chon lọc thông tin và software hữu ích hàng ngày về .NET và chia sẻ trên blog. Bạn sẽ có cái nhìn cập nhật về những gì đang diễn ra xung quanh ngôn ngữ lập trình này một cách nhanh chóng.

Davish Walsh

Nếu bạn có hứng thú và muốn tìm hiểu thêm về những công nghệ liên quan đến front-end thì Davish Walsh đích thị là blogger không thể bỏ qua.

On coding

Ed Rex sưu tập nhũng bài viết sâu sắc và thú vị về code và công việc của developer.

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

TopDev tổng hợp

Những điều doanh nghiệp cần “lưu tâm” khi làm việc với Gen Z

Gen Z

Thế hệ Z (1995 – 2012) là nhóm thế hệ ra đời trong thời kỳ ổn định của sự phát triển công nghệ kỹ thuật số trước khi nó bùng nổ và có những bước tiến đột phá như hiện nay. Các nhà tuyển dụng ngày nay có xu hướng tuyển chọn những ứng viên thuộc nhóm thế hệ này. 

Tuy có nhiều ý kiến trái chiều đã “nổ ra”, thế nhưng không thể phủ nhận được khả năng thích nghi, học hỏi và sáng tạo của thế hệ này. Cùng TopDev chỉ ra 3 điều cần biết khi lựa chọn đồng hành cùng Gen Z nhé!

1. Sự tôn trọng và công nhận về năng lực

Những áp lực mà Gen Z phải đối mặt không hề nhỏ khi nhiều người hoài nghi rằng kinh nghiệm và kỹ năng của họ đôi khi chưa đáp ứng kịp thời với xu hướng phát triển của nhiều mô hình doanh nghiệp

Gen Z

Tuy nhiên, nếu đặt cạnh giữa những người lớn – thế hệ Millennials (1980 – 1994) thì thế hệ Z (1995 – 2012) lại nổi bật lên những đặc điểm nổi trội như hình bên dưới, đặc biệt là chính là sự am hiểu về công nghệ.

Gen Z chính là thế hệ đầu tiên của người bản địa kỹ thuật số thực sự.” Và quả thật, công nghệ chính là điểm đặc biệt lớn nhất của Gen Z. Việc am hiểu về công nghệ tạo ra một lợi thế trong bối cảnh thời đại mới và thời đại kỹ thuật số cần nhiều thứ hơn bên cạnh năng lực chuyên môn. Điều này không có nghĩa là các thế hệ khác không có sự hứng thú với công nghệ hoặc có những kiến thức về công nghệ của riêng họ.

Chính vì Gen Z hội đầy đủ tố chất để có thể phát triển xa hơn trong nghề nghiệp. Do đó, họ được kỳ vọng kế thừa và phát triển việc kết hợp năng lực tư duy đổi mới với những am hiểu về công nghệ để tạo ra sự thay đổi lớn hơn. Các nhà lãnh đạo nhân sự đã tôn trọng và công nhận năng lực của họ. Đó là lý do tại sao, nhiều doanh nghiệp đã chọn thế hệ Z là nhóm nhân viên tiếp theo tham gia đồng hành vào bộ phận nhân sự của tổ chức mình.  

Việc tôn trọng và công nhận còn thể hiện qua việc tạo cơ hội cho các nhân viên Gen Z học hỏi, trau dồi những kỹ năng về công nghệ và vận dụng nó vào lĩnh vực nhân sự. Đó là cách thức hiệu quả giúp nguồn nhân lực hiện tại được đào tạo chuyên sâu, hướng đến một nguồn lực đa nhiệm. Đồng thời, do là nhóm thế hệ ra đời trong kỷ nguyên công nghệ số nên nhiều doanh nghiệp tin tưởng vào khả năng tương tác mạnh mẽ của Gen Z với thế giới công nghệ thông qua các phương tiện truyền thông xã hội, internet,…

2. Tạo ra tương tác thông qua sự phản hồi công việc

Gen Z là một thế hệ có ý thức xã hội cao với những mong muốn tham gia các chương trình xã hội thông qua nơi làm việc của họ. Nếu nắm bắt điều này, các nhà quản lý sẽ tạo ra sự tương tác tốt hơn với các nhân viên thế hệ Z. Điều này rất có ý nghĩa trong việc thúc đẩy phát triển các hoạt động. 

  5 lưu ý để viết đánh giá hiệu suất của bạn

Idalia Salsamendi, Giám đốc kinh doanh tại Chriselle Inc cho biết : “Những nhân viên thuộc Gen Z họ có một niềm tin rằng họ có thể là một phần của giải pháp nào đó khi thực hiện giải quyết một nhiệm vụ.”

Đồng thời, Gen Z còn tin tưởng vào việc xử lý các vấn đề và tự tìm giải pháp phù hợp sau đó, họ sẵn sàng trình bày với mọi người hơn là đưa ra câu trả lời đơn thuần, thiếu tính khả thi (hay nói cách khác là họ không phải kiểu người easier said than done). Vậy khi thấu hiểu điều này, các nhà quản lý cần cố gắng tạo ra một môi trường làm việc nhiều tương tác hơn bằng cách cho nhân viên bộc lộ những suy nghĩ của mình, hãy tiếp nhận những phản hồi của họ một cách chân thành nhất.

Vậy tại sao lại mở ra cho họ cơ hội trình bày sự phản hồi? Đơn giản, tính cách của thế hệ này chính là họ thích người quản lý của mình hành động giống như một huấn luyện viên (mentor/coach) hơn là ông chủ (boss). Và bản thân các nhà lãnh đạo nhân sự cần nhận biết đặc điểm này để làm việc với Gen Z hiệu quả hơn. Một điều quan trọng nữa là các nhà quản lý cần đặc ra các câu hỏi để khai thác góc nhìn của nhân viên, kích thích tư duy sáng tạo và trình bày quan điểm, đánh giá của mình về các vấn đề khác nhau. Khi đó, nhân viên được bộc lộ những gì mình có để tạo ra sự tương tác qua lại. Đó được xem là một biểu hiện cho việc tạo ra sự tương tác thông qua phản hồi.

Việc chấp nhận những phản hồi của nhân viên Gen Z chính là sự tôn trọng quyền lợi của họ trong công việc, đồng thời tạo ra sự liên kết bền vững hơn giữa sếp và nhân viên, giúp thiết lập một hệ thống nhân sự chặt chẽ.

3. Ưu tiên kết nối của con người và nắm bắt sự đa dạng

Mặc dù được biết đến như là một thế hệ nổi trội công nghệ, thế nhưng Gen Z lại có xu hướng đề cao các giá trị tương tác về trực diện (khả năng tương tác thông qua tiếp xúc) nhiều hơn. Vì đơn giản, với một thế hệ trẻ trung, năng động, sáng tạo và linh hoạt thì họ đề cao tính hiệu quả thông qua sự giao tiếp, tương tác trực tiếp. 

Gen Z thích làm đồng nghiệp hơn là thích sự phân tầng trong xã hội. Họ gần gũi và không phân biệt cấp trên hay cấp dưới. Họ cho rằng con người là nhân tố quan trọng làm nên nhiều điều và sức mạnh từ sự kết nối của con người thật sự không có giới hạn. Chính sự kết nối tốt giúp các mối quan hệ được nuôi dưỡng sâu sắc hơn, công việc sẽ trở nên suôn sẻ khi chúng ta có cùng một kiến thức nền (background knowledge).

  Phân tích con người - Chiến lược quan trọng trong ngành Nhân sự năm 2023

Gen Z

Gen Z cũng đang dẫn đầu trong việc bảo vệ sự đa dạng trong vấn đề hòa nhập. Gen Z kỳ vọng về giá trị đang dạng trong mọi tình huống. Với sự kỳ vọng đó, Gen Z thật sự tạo ra sự thay đổi lớn về khả năng phát triển, vận dụng linh hoạt và biến đổi dựa trên sự sáng tạo không ngừng của mình. Nhiều nhân viên họ có khả năng thích nghi rất tốt đồng thời biết rõ điểm mạnh, điểm yếu, những thế mạnh cần phát huy và những gì cần phải hạn chế tiếp xúc.

Các nhà quản lý cần hiểu điều này để đề ra những phương án tiếp cận hiệu quả hơn thông qua quá trình làm việc với Gen Z. Đừng gò bó họ trong một khuôn mẫu nhất định nào cả. Có thế, họ mới thật sự thoải mái và thể hiện đúng con người mình trong công việc.

Lời kết

Mỗi nhân viên là một mảnh ghép góp phần tạo nên những giá trị lâu dài cũng như giúp phát triển công ty ngày một vững mạnh hơn dựa trên những nền tảng đầu tiên. Các nhà tuyển dụng đã thật sự biết quan tâm, lắng nghe và theo dõi nhiều mối quan hệ của các nhân viên. Một doanh nghiệp phát triển toàn diện là một doanh nghiệp biết cách thể hiện được năng lực về tầm nhìn thông qua việc đánh giá năng lực các ứng viên và cả tổ chức.

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

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

Ra mắt Nền tảng kết hợp tuyển dụng và đánh giá ứng viên IT chuẩn quốc tế đầu tiên tại Việt Nam TopDev x HackerRank

nền tảng

Trong 5 năm gần đây, Việt Nam đã có nhiều thay đổi tích cực trong công cuộc chuyển đổi số, tiến tới một nền kinh tế số, xã hội số. Cũng chính vì vậy, làn sóng khởi nghiệp công nghệ (tech startup), cũng như việc gia tăng các dự án startup từ các công ty lớn đã có mặt trên thị trường. Với sự tăng trưởng mạnh của toàn ngành công nghệ nói chung, có thể nói năm 2020, Việt Nam sẽ được coi là một quốc gia IT của khu vực Đông Nam Á. Đi kèm theo đó là những khó khăn mà các nhà tuyển dụng ngành IT phải đối mặt trong suốt thời gian vừa qua. 

“Với đặc thù tuyển dụng khó khăn của ngành IT, chúng ta đều hiểu rằng cách tốt nhất để tìm được ứng viên mới đó là phải trực tiếp test kỹ năng quan trọng nhất của vị trí đó, chưa kể là thông qua những phần kiến thức cơ bản để giúp nhà quản lý nhanh chóng biết được ứng viên có phù hợp và đủ khả năng làm việc cho doanh nghiệp của mình hay không, giảm thiểu được rủi ro tối đa trong quá trình sàng lọc ứng viên.” – ông Nguyễn Hữu Bình, CEO của TopDev, cho hay.

Việc đánh giá sai năng lực developer khiến sản phẩm nhiều lỗi, kéo dài thời gian phát triển, năng lực không tương xứng mức lương, chất lượng sản phẩm không đạt…khiến doanh nghiệp phải trả giá đắt bằng chính chi phí cơ hội

TopDev x HackerRank mang lại lợi ích giải phóng Tech Lead/ Manager khỏi công việc đánh giá ứng viên, trợ giúp các HR/ IT Recruiter không có background công nghệ trong việc tuyển dụng IT.

Khó khăn của doanh nghiệp khi “tự ý” sàng lọc ứng viên 

“Cần phải đánh giá nhưng chưa thể thực hiện được” đó là ý kiến chung của hơn 1000 doanh nghiệp được TopDev khảo sát về quy trình sàng lọc ứng viên. Họ cho biết thêm, việc tuyển dụng đã khó, việc đảm bảo đầu vào của ứng viên chất lượng còn nan giải hơn. Trong thời điểm hiện tại, dù ngành IT đang được đánh giá là một trong những ngành mũi nhọn cho Việt Nam với hơn 153 cơ sở tổ chức đào tạo được khoảng 50,000 nhân sự cho ngành IT, nhưng các nhà tuyển dụng vẫn còn gặp nhiều khó khăn trong việc đảm bảo đầu vào của mình. Để có thể ứng dụng được các bài đánh giá hay phương pháp đánh giá giá ứng viên vào quy trình tuyển dụng, nhân sự đã và vẫn còn đối mặt với các rào cản sau: 

  • Nếu tự xây dựng 01 đánh giá cho một kỹ năng nhất định, nhà tuyển dụng sẽ phải phối hợp cùng một Senior hoặc cả Tech lead có chuyên môn về kỹ năng đó, cho ra một sườn câu hỏi / challenge tương ứng với SOW (scope of work) của vị trí bạn đang tuyển. Tuy nhiên, 01 bài cho một kỹ năng và một mức level nhất định. Đối với các kỹ năng và level khác, quá trình này sẽ lặp lại, và người tuyển dụng sẽ phải tốn không ít thời gian và công sức để hoàn thiện được một bộ Test / Challenge hoàn thiện và đầy đủ. 
  • Nếu phát triển cùng bên thứ ba: Các kênh tạo challenge và đánh giá ứng viên hiện tại chưa có mặt tại Việt Nam, cũng như nằm ở 1 hệ thống riêng lẻ. Vì thế nếu muốn sử dụng một bên ngoài hỗ trợ, Nhà tuyển dụng phải quản lý một lúc quá nhiều kênh trong quy trình tuyển dụng mà chưa tối ưu về 1 kênh duy nhất. Chưa kể giá thành các gói doanh nghiệp của service này khá đắt đỏ và cao cửa với doanh nghiệp Việt Nam.

“Một trong những đặc thù của tuyển dụng nhân sự IT là có thể đánh giá chính xác năng lực ứng viên dựa vào các bài test từ thấp đến cao. Với việc TopDev hợp tác với HackerRank, nhà tuyển dụng thậm chí còn được giải phóng khỏi khâu thiết kế bài test, khép kín hoàn chỉnh quy trình tuyển dụng từ khi đăng tin, nhận CV đến kiểm tra trình độ theo chuẩn quốc tế hoàn toàn tự động.” ông Bình cho biết thêm. 

Đối với các doanh nghiệp lớn thì đối với mỗi vị trí có sẽ cần quy trình khác nhau, chính vì thế nhân sự viên nên phân định các yếu tố theo từng vị trí. Vì thế cần thiết phải có một nền tảng “của người Việt” và có thể tích hợp cả vào quy trình tuyển dụng cho nhà tuyển dụng IT, để tối ưu hoá lưu lượng quản lý và nhanh chóng đạt hiệu suất tuyển dụng. Cũng chính vì vậy, TopDev đã kết hợp với HackerRank để tạo ra những sản phẩm bài đánh giá sát hạch giúp nhà tuyển dụng có thể sàng lọc ứng viên qua các quy chuẩn của quốc tế. 

nền tảng

TopDev lần đầu tiên mang chương trình đánh giá ứng viên IT uy tín nhất thế giới đến Việt Nam. 

Nền tảng chấm điểm lập trình được ứng viên IT tin tưởng

HackerRank là một trang web cho phép các lập trình viên có thể trau dồi khả năng của mình, thông qua việc yêu cầu những người tham gia đưa ra lời giải cho những “thử thách và test lập trình”. Nổi cộm trong cộng đồng giới Lập trình viên và có hơn 11 triệu Lập trình viên toàn cầu tham gia rèn luyện, thực hành và kiểm tra năng lực ngay tại nền tảng của HackerRank. 

HackerRank có gần 91 triệu thử thách/ test viết code cho Developer mọi kỹ năng thử trình độ, từ cơ bản cho tới phức tạp. Các bài tập đều có phân loại từ dễ tới khó, bất kỳ ai muốn thử sức cũng có thể tham gia. 

“Đã làm Lập trình viên thì phải biết đến HackerRank để tập luyện.” 

Hiện nay tất cả các công ty công nghệ hàng đầu thế giới đều đang sử dụng HackerRank for Work – cho quá trình tuyển dụng mảng kỹ thuật như Facebook, Quora, Shopify,… Tuy nhiên, với các doanh nghiệp Việt Nam thì vẫn còn khá xa lạ và với các gói Doanh nghiệp ‘khá đắt đỏ” làm cho doanh nghiệp Việt Nam khó tiếp cận được với phương pháp mới này. 

… tích hợp cùng nền tảng tuyển dụng IT hàng đầu Việt Nam 

Tích hợp được quy trình đánh giá ứng viên vào quy trình tuyển dụng hiện tại một cách nhanh chóng và tối ưu là vấn đề nan giải nhất với nhân sự IT hiện tại. Vì thế, hệ thống trang tuyển dụng TopDev đã tích hợp HackerRank ngay trên nền tảng của TopDev, để nhân sự có thể theo dõi trực tiếp và nhận ứng viên thích hợp chỉ từ 1 hệ thống duy nhất. Quy trình tuyển dụng sẽ giúp nhân sự đánh giá ứng viên một cách chuyên sâu hơn khi lấy ứng viên làm trung tâm.

Quy trình Tích hợp Trang tuyển dụng TopDev x HackerRank như sau: 

  1. Sau khi có kế hoạch đăng tuyển IT cho phía công ty với TopDev.vn, nhân sự cũng sẽ làm việc với team TopDev để thống nhất các vị trí – level cần test kỹ năng trên nền tảng TopDev x HackerRank để bổ sung vào JD cũng như tin đăng, theo các ngôn ngữ và trình độ cho trước
  2. Luồng CV và ứng viên cho các vị trí trên hệ thống TopDev sẽ có thứ tự như sau:
    • Với các vị trí không cần test: Nguồn CV sẽ được hệ thống sàng lọc và gửi trực tiếp đến HR
    • Với các vị trí cần đánh giá qua HackerRank
  • Các CV đạt yêu cầu sẽ được TopDev gửi qua email đến nhà tuyển dụng. Đồng thời nền tảng TopDev x HackerRank sẽ thông báo và yêu cầu ứng viên truy cập để thực hiện bài test theo level được tùy chỉnh và có sẵn của HackerRank.
  • Sau khi ứng viên hoàn thành bài test HackerRank trong thời gian quy định, kết quả bài test do HackerRank đánh giá sẽ được TopDev gửi qua email đến nhà tuyển dụng. Trường hợp ứng viên không hoàn thành bài test theo thời gian quy định, nhà tuyển dụng sẽ nhận được email từ TopDev thông báo kết quả ứng viên không hoàn thành bài test HackerRank.
  • Nhà tuyển dụng xem xét, đánh giá và tiến hành quy trình tuyển dụng tiếp theo sau đó

Từ đây quá trình đánh giá sàng lọc ứng viên sẽ hiệu quả hơn nhiều khi (1) nhận biết các ứng viên tiềm năng phù hợp nhất để nhanh chóng offer vào các vòng tuyển dụng tiếp theo và (2) nắm được tình hình năng lực các ứng viên nói chung để cho ra thanh đánh giá tối ưu hơn về doanh nghiệp.   

Bộ tích hợp TopDev x HackerRank sẽ trực tiếp giải quyết cho nhà tuyển dụng IT:

  • Đánh giá phần “chìm” của các CV lập trình viên  

Những phần “nổi” từ các CV như Điểm mạnh – Điểm yếu, các Skill ,… thông qua bài test sẽ giúp HR có cái nhìn trực quan hơn về mỗi ứng viên, tránh bias thiếu sót, mở rộng talent pool hiện có và nhanh chóng đạt mục tiêu tuyển được nhân sự IT của mình

Tham khảo một số Skill trong ngành IT như:

Nhờ bài đánh giá mà công tác lọc CV sẽ nhanh chóng hơn, dễ “loại” hơn. Khi đối diện với cả chục trăm CV mỗi vị trí, càng ngày HR sẽ có xu hướng “mạnh tay” và “dã tâm” loại CV hơn nhiều. Các yếu tố về tâm lý và cảm xúc không nên ảnh hưởng đến chất lượng và làm tụt mất người tài. Từ kết quả đánh giá thu được, cả phía nhân sự và tech lead phụ trách sẽ loại bỏ được các CV “yếu” theo thang tiêu chí rõ ràng, rút ngắn quy trình tuyển dụng

  • Tạo nên quy trình tuyển dụng thống nhất 

Nắm được tình hình tổng quan nhân sự để cho ra được thang đánh giá ứng viên và quy trình tuyển dụng thích hợp mà không phải hy sinh chất lượng. Đồng thời, nâng cao chất lượng talent pool của doanh nghiệp nói chung và thu hút thêm developer giỏi. 

Tìm hiểu thêm chương trình tuyển dụng IT cùng TopDev.vn tại đây 

Đồng hành cùng sứ mệnh nâng cao chất lượng ứng viên IT Việt Nam

Nền tảng tích hợp TopDev x HackerRank là sản phẩm đến từ mục tiêu đồng hành cùng nhà tuyển dụng IT tại Việt Nam và tăng cường chất lượng ứng viên IT cho doanh nghiệp Việt Nam. Nhu cầu về phương pháp đánh giá ứng viên đã từ lâu xuất hiện trên thị trường, nhưng vẫn còn quá nhiều khó khăn để triển khai và áp dụng vào quy trình tuyển dụng của doanh nghiệp Việt Nam. Từ đó, nền tảng tích hợp TopDev x HackerRank sẽ không chỉ mang “công nghệ” mới đến gần hơn với nhà tuyển dụng Việt, mà còn trực tiếp tích hợp vào một nền tảng đơn giản dễ sử dụng nhất cho HR với mức chi phí tối ưu và nguồn ứng viên chất lượng nhất.

TopDev x HackerRank hy vọng giải pháp ra đời sẽ tạo ra một sự cộng hưởng lớn, mang lại những giá trị thiết thực nhất cho doanh nghiệp.

 

Bỏ túi những kinh nghiệm đi thực tập hay dành cho lập trình viên!

bo-tui-nhung-kinh-nghiem-hay-danh-cho-lap-trinh-vien-thuc-tap

Bài viết này tôi sẽ chia sẻ một số lời khuyên về những điều tôi đã làm trong thời gian thực tập 3 tháng vốn cực kì tuyệt vời này.

Dành nhiều thời gian nhất có thể với các đồng nghiệp

Khi một thực tập sinh đã xây dựng mối quan hệ với nhân viên của công ty và cho thấy rằng mình là một phần của nhóm, nhà tuyển dụng sẽ cảm thấy rất khó khăn để cho họ rời khỏi công ty.

Bản chất công việc của một nhà phát triển sẽ có liên quan tới nhóm. Hãy sử dụng kiến ​​thức này làm lợi thế của bạn. Khi đã xây dựng được mối quan hệ tốt đẹp với đồng nghiệp của mình thì làm việc nhóm cũng sẽ được cái thiển. Quan trọng hơn, không một nhà tuyển dụng nào lại loại bỏ một thành viên tốt trong nhóm cả.

Vì vậy, hãy tận dụng thời gian nghỉ trưa và sau giờ làm, hãy luôn luôn cố gắng tạo mối quan hệ với các đồng nghiệp của bạn. Dành thời gian và tiếp tục xây dựng kết nối với các thành viên của công ty.

Hãy quan tâm đến tất cả các dự án và bài tập cho dù bạn nghĩ rằng bạn có khả năng làm việc đó hay không

Bản chất của một nhà phát triển là luôn tham gia các dự án và đối đầu với thách thức. Khi bạn được giao nhiệm vụ để làm việc với một cái gì đó hoàn toàn mới mẻ, nó có thể sẽ hơi đáng sợ nhưng bạn nên nhìn nhận chúng như một cơ hội học tập.

Nhà phát triển là những nhà giải quyết vấn đề tài ba. Khi vấn đề đó xa lạ với họ, lập trình viên sẽ làm tất cả để có được các tài liệu / tài nguyên cần thiết để tự tìm hiểu và hiểu rõ vấn đề.

Là thực tập sinh, các kỹ năng giải quyết vấn đề của bạn đang được thử thách. Hãy thử bước ra ngoài vùng an toàn của bản thân và học hỏi những điều mới

Làm theo trách nhiệm

Đừng chỉ làm đúng giờ rồi về. Thay vào đó, hãy tiếp tục làm việc về các dự án ngày cả khi ở nhà. Tất nhiên không phải lúc nào cũng vậy nhưng trong giai đoạn intern thì bạn cần phải làm mọi thứ để tận dụng cơ hội học hỏi.

Thời gian bạn làm việc cũng chính là lúc bạn phát triển.

>>> Xem thêm: Phân biệt các level Developer

Đừng ngại hỏi câu hỏi

Nó không bao giờ là một câu hỏi ngu ngốc. Nếu bạn không hiểu điều gì đó hoặc cần làm rõ thêm, luôn luôn hỏi.

Việc đặt các câu hỏi cho thấy bạn tò mò và thực sự quan tâm đến chất lượng công việc của mình. Bạn muốn mọi thứ được thực hiện đúng, cũng như muốn rõ ràng và có sự hiểu biết đầy đủ.

Mặt khác, nó luôn luôn tốt hơn là tự mình suy đoán. Hơn nữa, thực tập là một cơ hội để học hỏi từ những người khác, vì vậy hãy tận dụng nó.

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

  Học như thế nào là đủ để có thể đi thực tập/fresher anh/bạn/em ơi ?
  Đi thực tập vất vả và thậm chí không có lương: Câu chuyện của những người thành công trên toàn thế giới!

Chỉ vì bạn là một thực tập sinh, không có nghĩa là bạn nên suy nghĩ hoặc hành động như vậy

Suy nghĩ của bạn tạo ra thực tại. Mất tinh thần tập luyện thì bạn cũng sẽ không có nhiệt tình dù có cố gắng tới thế nào đi nữa.

Thật ra, bạn không khác so với bất cứ ai. Bạn cũng sẽ phải chịu nhiều trách nhiệm cho công việc. Bạn được mong đợi sẽ thể hiện tốt nhất giống như mọi người khác. Bạn nắm giữ quyền lực để đóng góp cho công ty, cũng như mọi người khác.

Với suy nghĩ này, bạn chắc chắn sẽ thực hiện tốt trong thời gian thực tập của mình.

Bằng cách nghĩ về mình như là thành viên của công ty chứ không phải là một người chỉ đến để thực tập sẽ giúp bạn:

Hài hòa với văn hoá và với những người xung quanh bạn trong công ty.

Nhận được nhiều dự án và thách thức với sự tự tin.

Có khuynh hướng đặt nhiều nỗ lực và thời gian vào công việc của bạn.

Không bao giờ ngần ngại để nâng cao và cải thiện bản thân

Tôi chưa bao giờ nghĩ mình là một thực tập sinh, ngay cả khi tôi viết đơn xin thực tập. Thay vào đó, tôi luôn nghĩ rằng đó là một cơ hội để chứng tỏ mình cũng như là chìa khóa mang tới thành công.

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

TopDev via Medium