Cuốn sách The Effective Engineer là một cuốn sách hay, sẽ giúp bạn trả lời câu hỏi trên. Nó trình bày những kỹ năng mà một kỹ sư cần học và rèn luyện để trở nên năng suất. Cuốn sách cũng đề cập tới những sai lầm mà nhiều bạn fresher, junior hay mắc phải. Do đó, các bạn fresher, junior cần biết để luyện ngay từ bây giờ!
Vậy năng suất là gì? (What is effectiveness?)
Có thể hiểu nôm na, năng suất là tối ưu quá trình chuyển hóa từ nỗ lực, công sức của bạn thành tầm ảnh hưởng của kết quả.
Kiến xén lá (Leaf-Cutter Ants - Atta and Acromyrmex species) thường sống ở những vùng nhiệt đới ở châu Mỹ. Chúng là một ví dụ điển hình thể hiện rõ sự năng suất (làm việc chăm chỉ + thông minh) thông qua cách phân chia vai trò cụ thể khi làm việc và cấu trúc tổ cầu kì. Khi đi cắt lá, những con kiến thợ nhỏ (small worker) trách nhiệm cắt và vận chuyển lá, trong khi những con kiến thợ to hơn (large worker) đứng bảo vệ lãnh thổ. Một vài con có vai trò điều phối những kiến thợ khác. Kiến thợ có thể vác vật có trọng lượng lớn gấp 50 so trọng lượng cơ thể. Lá không phải thức ăn của loài kiến này, lá dùng làm ph.â.n b.ó.n cho 1 loài nấm khác, đó mới là thức ăn của loài này. Tổ kiến được xây dựng dưới lòng đất và có cấu trúc cầu kỳ với nhiều khoang chứa có vai trò khác nhau như lưu trữ thức ăn, nuôi trứng kiến, …
Mình xin note lại một số ý (bao cả ý kiến cá nhân của mình) và phân loại như sau:
Cách thứ làm việc (Working method)
- Leverage, tạm dịch là đòn bẩy, một thuật ngữ đc sử dụng xuyên suốt cuốn sách, nó là thước đo cho mức độ năng suất của bạn.
- Leverage = Impact Produced / Time Invested (Dịch: Đòn bẩy = Tầm ảnh hưởng / Thời gian, công sức bỏ ra).
- TẬP TRUNG VÀO NHỮNG TASK CÓ ĐÒN BẨY CAO TRƯỚC.
- Nguyên tắc 80/20: 80% kết quả đến từ 20% khối lượng công việc.
- Việc hôm nay chớ để ngày mai. Não chúng ta như CPU có 1 core. Nếu nó làm nhiều task đang dở dang cùng 1 lúc, khi nhảy qua nhảy lại giữa các task, bạn phải load ngữ cảnh của task định làm rồi mới tiếp tục làm đc (switch context). Việc này rất tốn kém, mất thời gian.
- Tạo thói quen thường xuyên lại đánh giá mức độ ưu tiên những thứ mình cần làm (to-dos). Những task có tính rủi ro cần được xử lý đầu tiên, tránh những rủi ro tiềm tàng phát sinh thêm theo thời gian. Tiếp đến là các task đơn giản có đòn bẩy cao.
- Tự vấn: “Làm sao mình có thể xử lý những task này nhanh hơn / tự động hóa?”
- Một trong những cách giúp xử lý task nhanh hơn đó là áp dụng tools, toys, … Hiện tại các tool AI rất phát triển. Cần nắm được ưu điểm và giới hạn của các tool để sử dụng đúng cách và tránh phụ thuộc vào nó.
- Đo lường kết quả bằng những metric. Ví dụ, những metric phản ánh performance của hệ thống là QPS (Query Per Second), response time p(99), …
- Ưu tiên chuẩn hóa dữ liệu, tăng sự đúng đắn của dữ liệu. Dữ liệu sai còn tệ hơn là không có dữ liệu. Vì dữ liệu sai sẽ dẫn những quyết định sai và việc khai thác dữ liệu trở nên khó khăn.
- Cách giao tiếp hiệu quả nhất là trao đổi trực tiếp, thay vì nhắn tin hay mail. Ngoài ra, vẽ khi trình bày sẽ giúp bạn nhớ “dai" hơn.
- Viết tài liệu về giải pháp, hệ thống, data flow, API, … Thứ nhất giúp bạn luyện khả năng trình bày. Thứ hai, nhiều người có thể học được từ tài liệu. Thứ ba, có được lưu trữ lại.
- Kéo team đi lên thông qua các buổi đào tạo, chia sẻ, review code, giúp đỡ nhau và cùng giải quyết các vấn đề của tổ chức, team trong quy trình làm việc … impact của số đông luôn hơn impact của 1 cánh én.
Thái độ làm việc (Work attitude)
- Xung phong xử lý những task khó, ít gặp sẽ giúp bạn học được nhiều trong khoảng thời gian ngắn.
- Luôn đặt hỏi tại sao, luôn verify những giả định của bản thân vì bug hay xảy ở đây (unknown unknowns)
- Làm việc với người thông minh và tích cực. Bạn sẽ học hỏi được mindset từ những người thông minh và được tiếp thêm năng lượng từ những người tích cực.
- Cẩn thận! Double-check Always. Sai một li là đi một tị 😬 Các bạn junior hay thiếu điểm này. Dành chút thời gian trước khi bắt tay thực hiện một giải pháp để validate cách tiếp cận đó có thực sự chạy. Sau khi thực hiện xong, ít nhất cần test lại một lượt.
- Lắng nghe feedback. Cố gắng lắng nghe và hiểu hết ý kiến của tất cả mọi người thay vì giải thích ngang hoặc đổi lỗi cho ngoại cảnh. Feedback tích cực là nguồn kiến thức được đọng lại lâu nhất.
Cân bằng (On balance)
- Làm việc chăm chỉ không đồng nghĩa với năng suất. Năng suất mang tính lâu dài (long-term). Khi work hard rất dễ dẫn đến kiệt sức (burn out). Hạn chế việc overtime, chỉ overtime trong khoảng thời gian ngắn khi bạn tự tin kiểm soát được thời gian hoàn thành.
- Rèn luyện sức khỏe cả về thể lực (physical) và trí lực (mental). Suy nghĩ về công việc quá nhiều sẽ khiến bạn cảm thấy kiệt sức nhưng đó là mệt não còn cơ thể vẫn khỏe. Một tinh thần thép, biết cân bằng mới giúp ta đi được đường dài.
- Ủy quyền cho người khác. Chia sẻ hoặc giao quyền của 1 đoạn code, 1 service cho người khác. Tránh quá trình phát triển có một nút thắt cổ chai (bottleneck) là một mình bạn.
- Khiêm tốn sẽ giúp bạn biết lắng nghe và được trao cơ hội.
- Cải thiện kỹ năng giao tiếp, trình bày. Bạn học được 1 kỹ thuật (tương ứng 1 giá trị), bạn truyền tải được đúng và đủ cho nhiều người thì giá trị đó được nhân lên.
- Bạn không có chỉ có ăn với code, hãy cân bằng cuộc sống, bạn còn phải có sức khỏe, có gia đình, tri kỷ, có bạn bè, có sở thích, …
Cám ơn anh em đã đọc hết bài viết 🙏
Nếu anh em thấy hay thì cho mình xin 1 upvote và 1 share nhé. Cám ơn anh em rất nhiều 🙏
Tham khảo (References)
- “The Effective Engineer” book - author: Edmond Lau
- http://www.effectiveengineer.com/
- https://www.treehugger.com/crazy-facts-leaf-cutter-ants-4864484
✅ Facebook: https://fb.com/groups/systemdesign.vn
✅ Discord: https://discord.gg/SyekpYxdzz
⚠️ Nhóm đang tuyển writer và graphic designer nếu anh em có hứng thú thì comment ở dưới giúp mình nhé. Khi tham gia anh em có quyền lợi sau:
- Trau dồi kỹ năng viết, kỹ năng chuyên môn
- Được chia sẻ tài liệu nghiên cứu
- Kết nối, học hỏi từ anh em trong nhóm