0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Khám Phá Sức Mạnh Của 'Flow' Trong Lập Trình

Đăng vào 4 ngày trước

• 5 phút đọc

Khám Phá Sức Mạnh Của 'Flow' Trong Lập Trình

Được xuất bản lần đầu vào ngày 23 tháng 7 năm 2022

Một hiện tượng thú vị trong tâm lý học, rất phù hợp với công việc lập trình, được gọi là 'flow'. Nhờ vào điều này, tôi có thể nói rằng tôi hiếm khi cảm thấy nhàm chán khi làm việc và thực sự cảm thấy biết ơn khi là một lập trình viên, vì lập trình là một cách tương đối dễ dàng để đạt được trạng thái 'flow' này. Hãy cùng tôi khám phá một số điều về nó mà có thể bạn sẽ thấy thú vị và hữu ích. 😎

'Flow' Là Gì?

'Flow' là trạng thái mà bạn hoàn toàn bị cuốn hút vào hoạt động mà bạn đang thực hiện. Bạn không cảm thấy thời gian trôi qua, không bị áp lực bởi những suy nghĩ về bản thân hay về những gì người khác nghĩ về bạn. Bạn không nghĩ về quá khứ hay tương lai; bạn chỉ tập trung vào hiện tại và cảm thấy như bạn có toàn quyền kiểm soát những gì bạn đang làm.

Theo nhà tâm lý học Mihaly Csikszentmihalyi, con người thường hạnh phúc nhất khi tâm trí của chúng ta hoạt động tích cực trên một nhiệm vụ mà mang lại sự phát triển và do đó mang lại sự thỏa mãn bên trong. Bạn có thể đã trải qua cảm giác này khi chơi một trò chơi, chơi nhạc cụ, khiêu vũ, thể thao, giải quyết một bài toán khó, hay khi trò chuyện với một người thú vị… hoặc khi lập trình! 😅

Làm Thế Nào Để Đạt Được Trạng Thái 'Flow'?

Quá trình này đơn giản nhưng không hẳn là dễ dàng. Có 4 yếu tố cần thiết:

  1. Nhiệm vụ phù hợp với kỹ năng của bạn: Nhiệm vụ không nên quá khó hoặc quá dễ.
  2. Mục tiêu rõ ràng: Bạn cần biết chính xác điều mà bạn đang cố gắng đạt được, vì những mục tiêu không rõ ràng dẫn đến kết quả không rõ ràng.
  3. Phản hồi từ nhiệm vụ: Bạn cần có cách để biết liệu bạn có đang tiến gần đến việc hoàn thành nhiệm vụ không.
  4. Sự tập trung: Bạn không nên bị phân tâm bởi các hoạt động bên ngoài; nếu không, bạn sẽ không thể đạt được trạng thái flow.

Ví Dụ Về Trạng Thái 'Flow'

Ví dụ: chơi cờ vua. Bạn có một số kỹ năng (trong trường hợp này là bạn biết luật chơi cờ vua) và chơi với một đối thủ có trình độ tương đương (nếu đối thủ yếu hơn, bạn sẽ cảm thấy nhàm chán, nếu đối thủ mạnh hơn, bạn sẽ cảm thấy nản lòng và bỏ cuộc). Mục tiêu của bạn là rõ ràng: chiến thắng. Bạn nhận được phản hồi: bạn thấy các quân cờ bạn đã thắng, quân cờ bạn đã thua, theo dõi vua trên bàn cờ và cảm nhận xem bạn có tiến gần đến chiến thắng không. Bạn hoàn toàn tập trung vào trò chơi. Khi có những điều kiện này, bạn sẽ bị cuốn hút vào trò chơi và không nhận ra thời gian trôi qua.

'Flow' Trong Lập Trình

Tương tự, trạng thái 'flow' cũng hoạt động trong bối cảnh lập trình:

1. Bạn Có Kỹ Năng

Ví dụ, bạn nắm vững các nguyên tắc cơ bản của lập trình, biết một ngôn ngữ lập trình và một số framework.

2. Bạn Có Một Nhiệm Vụ Rõ Ràng

Ví dụ, bạn cần triển khai một tính năng mới trong dự án mà bạn đang làm. Nhiệm vụ không quá dễ cũng không quá khó — bạn biết chính xác những gì cần làm, biết cách thực hiện và cảm thấy đó là một thử thách nhưng không đến mức khiến bạn bị sốc.

3. Nhận Phản Hồi

Bạn kiểm tra mã đã viết và xem liệu nó có hoạt động như mong muốn không. Bạn sẽ nhận được thông tin từ trình biên dịch, các unit test, các REST API, và cả ứng dụng của bạn (vì vậy bạn có thể thấy rõ liệu mọi thứ có diễn ra như bạn mong đợi hay không). Ngay cả khi bạn nhận được thông báo lỗi, điều đó cũng giúp bạn biết cách tiếp tục.

4. Tập Trung

Có thể bạn đã mở nhạc nền, nhưng nhìn chung bạn chỉ tập trung vào việc viết mã. Và đây, bạn đã bị cuốn hút vào những gì bạn đang làm, và kết quả là thời gian trôi qua rất nhanh!

Những Gì Làm Khi Nhiệm Vụ Quá Dễ Hoặc Quá Khó?

Những điều đã nêu ở trên nghe có vẻ tuyệt vời, nhưng đó là tình huống lý tưởng. Trong thực tế, nhiệm vụ ở công việc thường quá dễ (hoặc đơn giản, nhàm chán) hoặc quá khó (không rõ ràng). Ví dụ, “tái cấu trúc 1000 thứ trong mã” là một nhiệm vụ quá dễ, trong khi “triển khai tính năng này, nhưng trong ticket Jira không có chi tiết, và chỉ có một người biết rõ cách thực hiện” là một nhiệm vụ quá khó.

Khi Nhiệm Vụ Quá Dễ

Khi nhiệm vụ quá dễ (hoặc có thể là quá đơn giản), tôi thường xen kẽ làm việc trên nó với một cái gì đó khác. Tôi làm một chút công việc trên nhiệm vụ nhàm chán, rồi chuyển sang một hoạt động khác liên quan đến lập trình: một khóa học, sách, video hoặc một nhiệm vụ khác từ backlog. Bằng cách này, công việc trên nhiệm vụ ban đầu trở nên dễ chịu hơn và dần dần tôi tiến gần hơn đến việc hoàn thành nó. 😅

Khi Nhiệm Vụ Quá Khó

Nếu nhiệm vụ quá khó hoặc phức tạp, tôi ưu tiên chia nhỏ nó thành các phần nhỏ và làm rõ mọi thứ mà tôi chưa hiểu. Nếu ngay cả sau đó, nó vẫn có vẻ quá khó khăn, tôi sẽ xen kẽ làm việc trên đó với một thứ gì đó đơn giản hơn. Bằng cách này, tôi lại tiến dần đến việc hoàn thành nhiệm vụ.

Kết Luận

Đó là tất cả cho bây giờ. Bạn có thể đọc thêm về hiện tượng này trong cuốn sách “Flow” của Mihaly Csikszentmihalyi. Chúc bạn thành công trong việc đạt được trạng thái 'flow' trong lập trình! 😎

Câu Hỏi Thường Gặp (FAQ)

1. 'Flow' có thể áp dụng cho các lĩnh vực khác không?

Có, trạng thái 'flow' có thể áp dụng cho nhiều lĩnh vực khác như thể thao, nghệ thuật và học tập.

2. Làm thế nào để cải thiện khả năng đạt được trạng thái 'flow'?

Tập trung vào việc thiết lập mục tiêu rõ ràng và tìm kiếm những nhiệm vụ phù hợp với kỹ năng của bạn.

3. Có cách nào để duy trì trạng thái 'flow' lâu hơn không?

Có, bạn có thể thử các kỹ thuật như thiền hoặc thực hành mindfulness để cải thiện khả năng tập trung.

4. Làm thế nào để biết tôi đang ở trong trạng thái 'flow'?

Bạn sẽ cảm thấy thời gian trôi qua nhanh chóng và hoàn toàn tập trung vào nhiệm vụ mà bạn đang thực hiện.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào